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

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

1、国家二级 C语言机试(操作题)模拟试卷 377及答案与解析 一、程序填空题 1 函数 fun的功能是进行数字字符转换。若形参 ch中是数字字符 0 9,则 0转换成 9, 1啭换成 8, 2转换成 7, , 9转换成 0;若是其他字符则保持不变;并将转换后的结果作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 *found* 3 _1_ fun(char ch) 4 5 *found* 6 if(ch =0 _2_)

2、 7 *found* 8 return 9-(ch- _3_ ); 9 return ch; 10 11 main() 12 char c1, c2; 13 printf( nThe result: n); 14 c1=2; c2=fun(c1); 15 printf(c1= c c2= c n, c1, c2); 16 c1=8; c2=fun(c1); 17 printf(c1= c c2= c n, c1, c2); 18 c1=a; c2=fun(c1); 19 printf(c1= c c2= c n, c1, c2); 20 二、程序修改题 2 给定程序 MODI1 C是建立一个带

3、头结点 的单向链表,并用随机函数为各结点数据域赋值。函数 fun的作用是求出单向链表结点 (不包括头结点 )数据域中的最大值,并且作为函数值返回。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #include stdlib h 3 typedef struct aa 4 int data; 5 struct aa *next; 6 NODE; 7 int fun(NODE *h) 8 int max=-1; 9 NODE *p; 10 *found* 11 p=h;

4、 12 while(p) 13 if(p- data max) 14 max=p- data; 15 *found* 16 p=h- next; 17 18 return max; 19 20 outresult(int s, FILE *pf) 21 fprintf(pf, nThe max in link: d n, s); 22 NODE *creatlink(int n, int m) 23 NODE *h, *p, *s; 24 int i; 25 h=p=(NODE*)malloc(sizeof(NODE);h- data=9999; 26 for(i=1; i =n; i+) 2

5、7 s=(NODE *)malloc(sizeof(NODE); 28 s- data=rand() m; s- next=p- next; 29 p- next=s; p=p- next; 30 31 p- next=NULL; 32 return h; 33 34 outlink(NODE *h, FILE *pf) 35 NODE *p; 36 p=h- next; 37 fprintf(pf, nTHE LIST: n n HEAD); 38 while(p) 39 fprintf(pf, - d, p- data); p=p- next; 40 fprintf(pf, n); 41

6、42 main() 43 NODE *head; int m; 44 head=creatlink(12, 100); 45 outlink(head, stdout); 46 m=fun(head); 47 printf( nTHE RESULT: n); outresult(m, stdout); 48 三、程序设计题 3 请编写函数 fun,它的功能是:计算并输出 n(包括 n)以内能被 5或 9整除的所有自然数的倒数之和。 例如,在主函数中从键盘给 n输入 20后,输出为: s=0 583333。 注意:要求 n的值不大于 100。 部分源程序在文件 PROG1 C中。 请勿改动主函数

7、 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 1 #include stdio h 2 double fun(int n) 3 4 5 6 NONO() 7 *请在 此函数内打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。 * 8 FILE *rf *wf; int n, i; double s; 9 rf=fopen(in dat, r); 10 wf=fopen(out dat, w); 11 for(i=0; i 10 ; i+) 12 fscanf(rf, d, n); 13 s=fun(n); 14 fprintf(wf, if n

8、, s); 15 16 fclose(rf); fclose(wf); 17 18 main() 19 int n; double s; 20 printf( nInput n: ); scanf( d, n); 21 s=fun(n); 22 printf( n ns= f n, s); 23 NONO(); 国家二级 C语言机试(操作题)模拟试卷 377答案与解析 一、程序填空题 1 【正确答案】 (1)char (2)ch =9 (3) 0 【试题解析】 函数 fun的 功能是进行数字字符转换 第一空:由主函数内 fun函数的调用 “c1=2;c2=fun(c1); ”,而 c1和 c2

9、是 char变量,可知 fun函数的返回值类型是 char,故第一空处补充返回值类型应为“char”。 第二空:数字字符是 “0 9p”,因此数字字符必须 “ch =0”且 “ch =9”,故第二空处应为 “ch =9”。 第三空:数字字符转换规则是: “0”转换成 “9”, “1”转换成 “8”, “2”转换成 “7, , 9”转换成 “0”,即返回 值为 “9-(ch-0)”,故第三空处应为 “0”。 二、程序修改题 2 【正确答案】 (1)p=h- next; (2)p=p- next; 【试题解析】 函数功能是求单向链表结点 (不包括头结点 )数据域中的最大值。其中,单链表查找最大值及

10、最小值的方法主要是对单链表的遍历,并在遍历过程中将初始化的最大值、最小值与链表中的每一个结点的数据域进行比较。 (1)根据题干中求得除了头结点之外的结点数据域中的最大值,头指针 h,工作指针 p指向头结点的下一个结点,所以第一个标识下的 “p=h; ”指向头结点应该改为指向下一个结点 “p=h- next; ”。 (2)工作指针 p,利用 p实现对链表的遍历, p表示指向链表的当前结点,所以指向下一个结点应该是 “p=p- next; ”。 三、程序设计题 3 【正确答案】 1 int i; 2 double sum=0 0; 3 for(i=1; i =n; i+) 4 if(i 5=0 i 9=0) *被 5或 9整除 * 5 sum+=1 0 i; 6 return sum; 【试题解析】 程序功能是计算并输出 n(包括力 )以内能被 5或 9整除的所有自然数的倒数之和。 (1)首先,通过循环,判断小于等于 n的每一个整数是否符合题干中的要求。其中的判断条件能否被 5或者被 9整除为: i 5=0i 9=0。 (2)然后求得符合 (1)要求的数的倒数的累加和。

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

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

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