[计算机类试卷]国家二级C语言机试(操作题)模拟试卷405及答案与解析.doc

上传人:unhappyhay135 文档编号:498352 上传时间:2018-11-28 格式:DOC 页数:6 大小:32.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷405及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷405及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷405及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷405及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷405及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 405及答案与解析 一、程序填空题 1 程序通过定义学生结构体变量,存储了学生的学号、姓名和 3门课的成绩。函数fun的功能是对形参 b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。 例如: b所指变量 t中的学号、姓名、和三门课的成绩依次是: 10002、ZhangQi、 93、 85、 87,修改后输出 t中的数据应为: 10004、 LiJie、 93、 85、87。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果 。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结

2、构 ! 1 #include stdio h 2 #include string h 3 struct student 4 long sno; 5 char name10; 6 float score3; 7 ; 8 void fun(struct student *b) 9 10 *found* 11 b_1_=10004; 12 *found* 13 strcpy(b_2_, LiJie); 14 15 main() 16 struct student t=10002, ZhangQi, 93, 85, 87; 17 int i; 18 printf( n nThe original da

3、ta: n); 19 printf( nNo: id Name: s nScores: , t sno, t name); 20 for(i=0; i 3; i+)printf( 6 2f, t scorei); 21 printf( n); 22 *found* 23 fun( _3_); 24 printf( nThe data after modified: n); 25 printf( nNo: id Name: s nScores: , t sno, t name); 26 for(i=0; i 3; i+) printf( 6 2f, t scorei); 27 printf( n

4、); 28 二、程序修改题 2 给定程序 MODI1 C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数 fun的功能是将单向链表结点 (不包括头结点 )数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #include stdlib h 3 typedef struct aa 4 int data; struct aa *next; NODE; 5 int fun(NODE *h) 6 int sum=0; 7 N

5、ODE *p; 8 *found* 9 p=h; 10 while(p) 11 if(p- data 2=0) 12 sum+=p- data; 13 *found* 14 p=h- next; 15 16 return sum; 17 18 NODE *creatlink(int n) 19 (NODE *h, *p, *s; 20 int i; 21 h=p=(NODE*)malloc(sizeof(NODE); 22 for(i=1; i =n; i+) 23 s=(NODE *)malloc(sizeof(NODE); 24 s- data=rand() 16; 25 s- next=

6、p- next; 26 p- next=s; 27 p=p- next; 28 29 p- next=NULL; 30 return h; 31 32 outlink(NODE *h, FILE *pf) 33 NODE *p; 34 p=h- next; 35 fprintf(Pf, in nTHE LIST: in n HEAD); 36 while(p) 37 fprintf(pf, - d, p- data); p=p- next; 38 fprintf(pf, in); 39 40 outresult(int s, FILE *pf) 41 fprintf(pf, nThe sum

7、of even numbers: d n, s); 42 main() 43 NODE *head; int even; 44 head=creatlink(12); 45 head- data=9000; 46 outlink(head, stdout); 47 even=fun(head); 48 printf( nThe result: in); outresult(even, stdout); 49 三、程序设计题 3 学生的记录由学号和成绩组成, N名学生的数据已在主函数中放入结构体数组 s中,请编写函数 fun,它的功能是:把分数最低的学生数据放在 b所指的数组中,注意:分数最低的

8、学生可能不止一个,函数返回分数最低的学生的人数。 注意:部分源程序在文件 PROG1 C文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若 干语句。 1 #include stdio h 2 #define N 16 3 typedef struct 4 char num10; 5 int s; 6 STREC; 7 int fun(STREC *a, STREC *b) 8 9 10 main() 11 STREC sN=GA05, 85, GA03, 76, GA02, 69, GA04,85, CA01, 91, GA07, 72, (GA

9、08, 64, GA06, 87, CA015,85, CA013, 91, GA012, 64, GA014, 91, GA011, 91,GAO17, 64, GA018, 64, CA016, 72; 12 STREC hN; 13 int i, n; FILE *out; 14 n=fun(s, h); 15 printf(The d lowest score: n, n); 16 for(i=0; i n; i+) 17 printf( s 4d n, hi num, hi s); 18 printf( n); 19 out=fopen(out dat, w); 20 fprintf

10、(out, d n, n); 21 for(i=0; i n; i+) 22 fprintf(out, 4d n, hi s); 23 fclose(out); 国家二级 C语言机试(操作题)模拟试卷 405答案与解析 一、程序填空题 1 【正确答案】 (1)- sno (2)- name(3) t 【试题解析】 函数 fun的功能是对形参 b所指结构体变量中的数据进行修改。 第一空: “b _1_=10004; ”等号右边是整型值,故这里是修改结构体成员 sno的值, b是结构体指针,访问结构体数据成员时使用 “- ”运算符,因此第一空为“b- sno”。 第二空: “strcpy(b_2_

11、, LiJie); ”, strcpy是字符串拷贝函数,因此这里是修改结构体的 name成员值,故第二空处为 “b- name”。 第三空: fun函数的定义形式是: void fun(struct student *b),可知 fun的参数是指针,因此主函数内调用 fun函数时传入的参数是结构体 t的地址,故第 三空处为 “ 【试题解析】 (1)根据题干中求得除了头结点之外的结点数据域中的数据值,头指针 h,工作指针 p指向头结点的下一个结点,所以第一个标识下的 “p=h; ”指向头结点应该改为指向下一个结点 “p=h- next; ”。 (2)工作指针 p,利用 p实现对链表的遍历, p表示指向链表的当前结点,所以指向下一个结点应该是 “p=p- next; ”。 三、程序设计题 3 【正确答案】 1 int i, j=0, min=a0 s; 2 for(i=0 ; i N; i+) 3 if(min ai s) 4 j=0; bj+=ai; min=ai s; 5 6 else if(min=ai s) 7 bj+=ai; 8 9 return j; 【试题解析】 (1)要把最低分数的学生数据放在数组中,首先求出最低分数,再使用一个 for循环把所有的成绩进行比较,找出最低的分数来。 (2)找出所有与最低分数相等的学生,并将最低分数的人数累加。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1