数据结构习题及答案-第11章 文件
第十一章文件 一、选择题 1. 散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址,因为散列函数是一对一的关系,则选择好的()方法是散列文件的关键。【哈尔滨工业大学 2001二、5 (2分)】 A. 散列函数 B. 除余法中的质数 C. 冲突处理 D. 散列函数和冲突处理 2. 顺序文件采用顺序结构实现文件的存储,对大型的顺序文件的少量修改,要求重新复制整个文件,代价很高,采用()的方法可降低所需的代价。【北京邮电大学 2000 二、 8 (20/8分)】 A. 附加文件 B. 按关键字大小排序 C. 按记录输入先后排序 D. 连续排序 3. 用ISAM组织文件适合于()。【中科院软件所 1998】 A.磁带 B.磁盘 4.下述文件中适合于磁带存储的是()。【中科院计算所 2000 一、7(2分)】 A. 顺序文件 B. 索引文件 C. 散列文件 D. 多关键字文件 5. 用ISAM和VSAM组织文件属于()。 A. 顺序文件 B. 索引文件 C. 散列文件 【中国科技大学 1998 二、5(2分)中科院计算所 1998 二、5(2分)】 6. ISAM文件和VASM文件属于()。【山东大学 2001 二、5 (1分)】 A. 索引非顺序文件 B. 索引顺序文件 C. 顺序文件 D. 散列文件 7. B+树应用在()文件系统中。【北京邮电大学 2001 一、1(2分)】 A. ISAM B. VSAM 二、判断题 1. 文件是记录的集合,每个记录由一个或多个数据项组成,因而一个文件可看作由多个记录组成的数据结构。【长沙铁道学院 1998 一、5 (1分)】 2. 倒排文件是对次关键字建立索引。【南京航空航天大学 1997 一、10(1分)】 3. 倒排序文件的优点是维护简单。【南京航空航天大学 1995 五、10(1分)】 4. 倒排文件与多重表文件的次关键字索引结构是不同的。【西安交通大学 1996 二、6 (3分)】 5. Hash表与Hash文件的唯一区别是Hash文件引入了‘桶’的概念。【南京航空航天大学1996六10(1分)】 6. 文件系统采用索引结构是为了节省存储空间。【北京邮电大学 2000 一、10 (1分)】 7. 对处理大量数据的外存介质而言,索引顺序存取方法是一种方便的文件组织方法。 【东南大学 2001 一、1-10 (1分)】 8. 对磁带机而言,ISAM是一种方便的稳健组织方法。【中科院软件所 1997 一、10(1分)】 9. 直接访问文件也能顺序访问,只是一般效率不高。【北京邮电大学 2002 一、10(1分)】 10. 存放在磁盘,磁带上的文件,即可以是顺序文件,也可以是索引结构或其他结构类型的文件。 【山东大学 2001 一、7 (1分)】 11. 检索出文件中的关键码值落在某个连续的范围内的全部记录,这种操作称为范围检索。对经常需要做范围检索的文件进行组织,采用散列法优于顺序检索法。【中山大学 1994 一、
C语言结构体实验报告
《高级语言程序设计》实验报告实验序号:8 实验项目名称:结构体
附源程序清单: 1. #include struct student { int num; char name[20]; char classname[20]; float score[3]; float aver_score; }stu[5]; void input() { int i; for(i=1;i<6;i++) { printf("第%d个同学",i); printf("请输入学号名字班级三门课程成绩:\n"); scanf("%d %s %s %f %f %f",&stu[i].num,stu[i].name,stu[i].classname,&stu[i].score[1],&stu [i].score[2],&stu[i].score[3]); } }; void averagescore() {
for(i=1;i<=5;i++) stu[i].aver_score=((stu[i].score[1]+stu[i].score[2]+stu[i].score[3])/3); printf("平均成绩:"); for(i=1;i<6;i++) printf("第%d个同学的平均成绩%f:\n",i,stu[i].aver_score); printf("\n"); }; void max() { int i,k=0; float temp=stu[1].aver_score; for(i=2;i<=5;i++) if(stu[i].aver_score>temp) {temp=stu[i] .aver_score;k=i;}; printf("成绩最好的同学:\n"); printf("%d %s %s %4.2f %4.2f %4.2f %4.2f\n", stu[k].num,stu[k].name,stu[k].classname,stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].aver _score); }; void main() { input(); averagescore(); max(); } 2.#include struct worker { char name[20]; int workyear; float salary; }work[5]; void input() { int i; for(i=1;i<=5;i++) { printf("第%d个工人:",i); printf("请输入名字工作年限工资总额:\n"); scanf("%s %d %f",&work[i].name,&work[i].workyear,&work[i].salary);
C语言结构体习题及答案
第9章结构体 1.定义以下结构体类型 struct s { int a; char b; float f; }; 则语句printf("%d",sizeof(struct s))的输出结果为【】。 A) 3 B) 7 C) 6 D) 4 # 2.当定义一个结构体变量时,系统为它分配的内存空间是【】 A)结构中一个成员所需的内存容量 B)结构中第一个成员所需的内存容量 C)结构体中占内存容量最大者所需的容量 D)结构中各成员所需内存容量之和 3.定义以下结构体类型 struct s { int x; float f; }a[3]; < 语句printf("%d",sizeof(a))的输出结果为【】 A) 4 B) 12 C) 18 D) 6 7.定义以下结构体类型 struct student { char name[10]; int score[50]; float average; }stud1; 则stud1占用内存的字节数是【】。 ( A) 64 B) 114 C) 228 D) 7 9、设有一结构体类型变量定义如下: struct date { int year; int month; int day; }; struct worklist { char name[20]; char sex; $
struct date birthday; } person; 若对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是。。。。 A. year=1976 B. =1976 C. D. =1976 1、若程序中有以下的说明和定义: struct abc { int x;char y; } 花括号后少了分号。 struct abc s1,s2; 则会发生的情况是______。 A) 编译时错B) 程序将顺序编译、连接、执行C) 能顺序通过编译、连接、但不能执行D) 能顺序通过编译、但连接出错
C语言实验八结构体上机报告
《标准C语言程序设计》上机报告实验八结构体程序设计 专业:电子信息工程 班级:电信1301 学号:U201313480 姓名:秦行 完成日期:2014/6/9
一、实验目的: 1、掌握结构体类型的说明和结构体变量的定义; 2、掌握结构体变量成员的引用和对结构体变量的初始化; 3、掌握结构体数组及结构体指针变量的定义及使用。 4、理解并掌握结构体在函数间的传递; 5、进一步掌握复杂程序编译、连接和调试的技巧。 二、实验内容及要求(鼓励一题多解) ——以下均要求不得使用全局变量: 1 (1)、正确定义该表格内容要求的数据类型; (2)、分别输入各成员项数据,并打印输出(为简便起见,假设只有3名考生)。#include #include #define N 3 struct date { int year; int month; int day; }; struct student { unsigned int num; char name[20]; char sex; struct date birth; }; void main()
{ struct student tester[N]; int i; for(i=0;i #include #include #define N 10 struct worker { char name[20]; int salary; };
数据结构实验报告七查找、
云南大学软件学院数据结构实验报告 (本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □ C □ 学期:2010秋季学期 任课教师: 实验题目: 查找算法设计与实现 姓名: 王辉 学号: 20091120154 电子邮件: 完成提交时间: 2010 年 12 月 27 日
云南大学软件学院2010学年秋季学期 《数据结构实验》成绩考核表 学号:姓名:本人承担角色: 综合得分:(满分100分) 指导教师:年月日(注:此表在难度为C时使用,每个成员一份。)
(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%) 1 哈希表查找。根据全年级学生的姓名,构造一个哈希表,选择适当的哈希函数和解决冲突的方法,设计并实现插入、删除和查找算法。 熟悉各种查找算法的思想。 2、掌握查找的实现过程。 3、学会在不同情况下运用不同结构和算法求解问题。 4 把每个学生的信息放在结构体中: typedef struct //记录 { NA name; NA tel; NA add; }Record; 5 void getin(Record* a)函数依次输入学生信息 6 人名折叠处理,先将用户名进行折叠处理折叠处理后的数,用除留余数法构造哈希函数,并返回模值。并采用二次探测再散列法解决冲突。 7姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。将初始班级的通讯录信息存入文件。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 1抽象数据类型的功能规格说明和结构体: #include
第十一章结构体的试题
(1)()是关于C语言数据类型的正确叙述。 A) 枚举类型不是基本类型 B) 变量使用前应定义相应的数据类型 C) 不允许使用空类型 D) 数组不是构造类型 (2) 下列()对结构类型变量定义是错误的。 A) struct teacher { int num; int age; }; struct teacher teach1; B) struct { int num; int age; } teach1, teach2; C) struct { int num; int age; } teacher; struct teacher teach1; D) struct teacher { int num; int age; } teach1; (3) 若有定义: char ch; int j,k; enum day {sun, mon, tue, wed, thu, fri, sat}; int a[sat]; 则()对下列语句是否符合语法规则的判断是正确的。 sun=0; /*语句1*/ j=mon+tue; /*语句2*/ if (a[mon]>0) j++; /*语句3*/ A) 语句1、2、3均正确 B) 语句2正确,语句1和语句3错误 C) 语句1错误,语句2和语句3正确 D) 语句1、2、3均错误 (4) 若有定义: struct teacher { int num; char sex;
int age; } teacher1; 则下面叙述错误的是()。 A) teacher1是结构类型名 B) struct teacher是用户定义的结构类型 C) num、sex、age都是结构变量teacher1的成员 D) struct是结构类型的关键字 (5) 下列程序段运行后,表达式()的值为3。 struct point { int x; int y; } *p; struct point a[3]={1,2,3,4,5,6}; p=a; A) p[1].x B) *(p+2) C) p[3].x D) p[2].x (6) 若有定义: typedef int NUM[100]; NUM n; 则()语句是正确的。 A) n[0]=2; B) NUM=2; C) NUM=n; D) n=2; (7) 若有定义int a=1,b=2,t=3; struct data { char a; float b[3]; long c; }d1; 则变量d1的长度是()。 A) 4 B) 17 C) 12 D) 15 (8) 若有定义 struct teacher { int num;
C语言实验报告参考答案
《C语言程序设计》 实 验 手 册
《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。
三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )
练习题-第十章 结构体与共用体(有答案)
一、填空题 1.若有如下结构体定义: struct student { int num; float age; char sex; }stud; 则stud所占的内存空间是9 字节。 2.已有定义和语句: union data { int i; char c; float f; }a,*p; p=a; 则对a中成员c的正确访问形式可以是 a.c 或: p->c或:(*p).c。(只需 写出一种) 二、单项选择题: 1.若有下列定义: struct b { float a[5]; double c; int d;}x; 则变量x在内存中所占的字节为下列哪一个:( C ) A.6 B. 10 C. 30 D. 14 2.设有以下说明语句,则下面的叙述不正确的是( C ) struct stu { int a; float b; } stutype; A. struct 是结构体类型的关键字。 B. struct stu 是用户定义的结构体类型。 C. stutype是用户定义的结构体类型名。 D. a和b都是结构体成员名。 3.下面程序的运行结果是( ) #include main( ) { struct date { int year, month, day;
}today; printf(“%d\n”,sizeof(struct date)); } A. 6 B. 8 C. 10 D. 12 4.设有以下说明语句,则下面的叙述正确的是( B ) typedef struct { int a; float b; } stutype; A. stutype是结构体变量名。 B. stutype 是结构体类型名。 C. struct是结构体类型名。 D. typedef struct是结构体类型名。 三、填程序 1.结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名和年龄。请填 空。 static struct man { char name[20]; int age; }person[ ]={{“LiMing”,18},{“WangHua”,19},{“ZhangPing”,20}}; main( ) { struct man *p,*q; int old=0; p=person; for(; p age){ q=p; old=p->age ;} printf(“%s %d”, q->name,q->age ); }
实验九结构体
实验九结构体、共用体与枚举类型 实验时间:年月日 【实验目的】 1、掌握结构体类型、共用体类型和结构体类型变量的定义方法; 2、掌握结构体类型变量成员赋值和引用方法; 3、学会使用结构体数组; 4、掌握共用体和枚举类型数据的使用。 【实验内容】 1、结构体类型的定义; 2、结构体变量的定义、赋值与使用; 3、结构体数组与结构体指针的定义与使用; 4、共用体类型的定义,共用体变量的定义与使用; 5、枚举类型的定义与使用; 6、链表与动态内存分配; 7、自定义类型的使用。 【实验步骤】 一、在E或F盘上建立以自己的学号命名的文件夹。 二、上机验证与分析题 1、写出程序ex9_1.c运行的结果。 /*文件名ex9_1.c*/ #include struct HAR { int x,y; struct HAR *p; }h[2]; int main() { h[0].x=1; h[0].y=2; h[1].x=3; h[1].y=4; h[0].p=&h[1]; h[1].p=h; printf("%d %d\n",(h[0].p)->x,(h[1].p)->y); return 0; } 2、写出程序ex9_2.c运行的结果。
/*文件名ex9_2.c*/ #include "stdio.h" void main() { int z; union data { int x; int y; }a; a.x=3; a.y=6; z=a.x+a.y; printf("z=%d\n",z); } 3、阅读程序ex9_3.c,预测结果并上机验证。 /*文件名ex9_3.c*/ #include void main() { union data { int i; char ch; float f; }a,b,c; a.i=9; b=a; c=b; printf("b.i=%d,c.i=%d\n",b.i,c.i); } 4、运行下列程序,写出结果 /*文件名ex9_4.c*/ #include void main() { struct List {
c语言实验报告1
C语言程序设计报告 日
程序主要内容 任务1. 程序首先随机产生一到十之间的正整数,在屏幕上打印出问题,例如6*7=?然后让学生输入答案,序检查学生输入的答案是否正确,若正确,则“RIGHT”,然后问下一个问题,否则打印“WRONG,PLEASE TRY AGAIN”,然后提示学生重做,直到答对为止。 程序如下: #include #include #include int Magic(int x); int Answer(); main() { int guess,answer,counter=1; do{ printf("%d*%d=",Magic(1),Magic(2)); answer=Magic(1)*Magic(2); if(Answer()==answer) { printf("Right\n"); break; } else printf("Wrong!,please try again\n"); }while(counter>=1); } int Magic(int m)
int x,int y; srand(time(NULL)); x=rand()%10+1; y=rand()%10+1; if(m==1) return x; if(m==2) return y; } int Answer() { int n; scanf("%d",&n); return n; } 任务2:在(1)的基础上,当学生回答错误时,最多给三次重做的机会。 :程序如下: #include #include #include int Magic(int x); int Answer(); int Exam(); main() { int n; n=Exam(); if(n==0) printf("Right\n"); else if(n==1) printf("Wrong!You have tried
第10章练习 结构体
7.2典型例题分析与解答 例题1:下列结构体定义,正确的是()。 A.B. record { struct record { int no; int no; char num[16]; char num[16]; float score ; float score ; } ; } C.D. struct record { struct record { int no; int no char num[16]; char num[16] float score ; } ; float score } 答案:C 分析:结构体类型定义必须以关键字struct 开头,即A不正确,不能选择。D中结构体中定义成员语名没有用分号结束,故不正确,不能选择D。根据结构体类型说明形式要求必须用分号结束,所以B和C中,只能选择C。 例题2:下列声明结构体变量错误的是()。 A.struct student B.struct student {{ int no; int no; char name[16]; char name[16]; }st1,st2; }; struct student st1,st2; C.D. struct student { struct student { int no; int no; char name[16]; char name[16]; }; }; student st1,st2; struct st1,st2; 答案:D 分析:结构体变量定义有两种方式,一是在定义结构体类型时说明结构体变量,如A,即A 是正确的。二是用结构体类型说明结构体变量。如B和C,即B和C也是正确。不能只用结构体关键字去说明结构体变量,即D不正确,只能选择D。 例题3:设有以下说明,则正确的赋值表达式为()。 struct x {int no; char name[20]; float score;} y;
C语言实验报告
实验一进制转换一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。
五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制 的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。
七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n");
} else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c;
电子技术 第十章 结构体与共用体
第十章结构体与共用体 一、选择题 1.在说明一个结构体变量时系统分配给它的存储空间是。(0级) A)该结构体中第一个成员所需存储空间 B)该结构体中最后一个成员所需存储空间 C)该结构体中占用最大存储空间的成员所需存储空间 D)该结构体中所有成员所需存储空间的总和 2.若有以下说明和语句: struct worker { int no; char ﹡name; }work, ﹡p=&work; 则以下引用方式不正确的是。(1级) A) work.no B) (﹡p).no C) p->no D)work->no3.有如下定义: struct date { int year, month, day; }; struct worklist { char name[20]; char sex; struct date birthday; }person; 对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是。 (1级) A) year=1958 B) birthday.year=1958 C) person.birthday.year=1958 D) person.year=1958 4.以下对结构体类型变量的定义中不正确的是。(1级) A)#define STUDENT struct student B) struct student STUDENT { int num; { int num; float age; float age; }std1; }std1; C) struct D) struct { int num; { int num; float age; float age; } student; }std1; struct student std1; 5.设有以下说明语句 struct stu { int a; float b; }stutype; 则下面的叙述不正确的是。(1级) A)struct是结构体类型的关键字 B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名 6.C语言结构体类型变量在程序执行期间。(0级) A)所有成员一直驻留在内存中 B)只有一个成员主留在内存中 C)部分成员驻留在内存中 D)没有成员驻留在内存中
C语言结构体和共用体实验报告
实验九参考程序 实验 9- 1 /**************************************************************** * 实验 9.1 * * ( 1 )为某商店的商品设计合适的结构体 (PRODUCT) 。每一种商品包含编号 (number) 、 * 名称 (name) 、价格 (price) 、折扣 (discount)4 项信息,根据表 9-1 ,为这些信 息选择合适的数据类型。 * (2)建立 2个函数,以实现对商品的操作。 input 函数实现商品的输入; * display 函数显示商品信息。要求这 2个函数都以商品的结构体 (PRODUCT) 指针为 参数。 * (3 )在主函数中为商品键盘定义一个结构体变量 (keyboard) ,利用 input 函数实现键 盘信息的输入; * 定义一个结构体数组 (elec_device[3]) ,利用 input 函数实现冰箱、 空调、电视 信息的输入; * 最后利用 display 函数显示 4 种商品的信息。 * * 表 9-1 #include typedef struct _PRODUCT int iNumber; char strName[32]; float fPrice; float fDiscount; * 编号 名称 价格 折扣 *1010 键盘 89.50 0.85 *1021 冰箱 1024.00 0.95 *1022 空调 2058.50 0.90 *1023 电视 3001.88 0.95 *************************************************************** */