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

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

1、国家二级 C语言机试(操作题)模拟试卷 360及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:求 ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参 n所指变量中。 ss所指字符串数组中共有 M个字符串,且串长 N。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #include string h 3 #define M 5 4 #define N 20 5 int fun(c

2、har(*ss)N, int *n) 6 int i, k=0, len=N; 7 *found* 8 for(i=0; i _1_; i+) 9 len=strlen(ssi); 10 if(i=0) *n=len; 11 *found* 12 if(len _2_ *n) 13 * n=len; 14 k=i ; 15 16 17 *found* 18 return(_3_); 19 20 main() 21 char ssMN=shanghai, guangzhou, beijing, tianjing,chongqing; 22 int n, k, i; 23 printf( nThe

3、 original strings are: n); 24 for(i=0; i M; i+)puts(ssi); 25 k=fun(ss, n); 26 printf( nThe length of shortest string is: d n, n); 27 printf( nThe shortest string is: s n, ssk); 28 二、程序修改题 2 给定程序 MODI1 C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数 fun的 功能是将单向链表结点 (不包括头结点 )数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数 fun中指定部位的错误,

4、使它能得出正确的结果。注意:不要改动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 NODE *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 NOD

5、E *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=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- ne

6、xt; 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 of even numbers: d n, s); 42 main() 43 NODE *head; int even; 44 head=creatlink(12); 45 head- data=9000; 46 outlink(head, stdo

7、ut); 47 even=fun(head); 48 printf( nThe result: in); outresult(even, stdout); 49 三、程序设计题 3 编写函数 fun,它的功能是计算下列级数和,和值由函数值返回。例如,当 n=10, x=0 3时,函数值为 1 349859。 注意:部分源程序在文件 PROG1 C文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 1 #include stdio h 2 #include math h 3 double fun(double x, int n)4 5 6

8、main()7 void NONO(); 8 printf( f n, fun(0 3, 10); 9 NONO(); 10 11 void NONO()12 *本函数用于打开文件,输入数据,调用函数,输 出数据,关闭文件。 * 13 FILE *fp, *wf; 14 int i, n; 15 double s, x; 16 fp=fopen(in dat, r); 17 wf=fopen(out dat, w); 18 for(i=0; i 10; i+)19 fscanf(fp, if, d,x, 22 23 fclose(fp); 24 fclose(wf); 国家二级 C语言机试(操

9、作题)模 拟试卷 360答案与解析 一、程序填空题 1 【正确答案】 (1)M (2) (3)k 【试题解析】 第一空:循环的目的是在 M个字符串中寻找长度最短的字符串,因此循环变量 i从 0变化到 “M-1”,故第一空处应为 “M”。 第二空: “*n”记录最小字符串的长度,由审题分析可知,字符串 ssi长度比 min小,则交换最小长度值和下标位置,故第二空处应为 “ ”。 第三空:变量 k记录了最小字符串的下标位置,函数的返回值是最短的字符串所在的行下标,故第三空处应为 “k”。 二、程序修改题 2 【 正确答案】 (1)p=h- next; (2)p=p- next; 【试题解析】 (1

10、)根据题干中求得除了头结点之外的结点数据域中的数据值,头指针 h,工作指针 p指向头结点的下一个结点,所以第一个标识下的 “p=h; ”指向头结点应该改为指向下一个结点 “p=h- next; ”。 (2)工作指针 p,利用 p实现对链表的遍历, p表示指向链表的当前结点,所以指向下一个结点应该是 “p=p- next; ”。 三、程序设计题 3 【正确答案】 1 double s=1 0, y=x ; 2 int i; 3 long k=1; 4 for(i = 1 ; i =n ; i+) 5 k=k*i; 6 s += y k ; 7 y *=x ; 8 9 return s ; 【试题解析】 (1)根据题干中给出的数列,推出每一项分子是在前一项的基础上乘以 x,分母是每一项的阶乘,它可以在前一项的基础上乘以当前项的项数,即第n项是 n。 (2)在循环中求得每一项,然后对其进行累加求和。

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

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

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