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

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

1、国家二级 C语言机试(操作题)模拟试卷 168及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:统计形参 s所指字符串中数字字符出现的次数,并存放在形参 t所指的变量中,最后在主函数中输出。例如,形参 s所指的字符串为: abcdef35adgh3kjsdf7。输出结果为: 4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include void fun(char*s, int*t) int i, n ; n=0; *found* for(i=0;

2、 _1_!=0; i+) *found* if(si=0 si #include typedef struct aa int data ; struct aa *next; NODE; int fun(NODE*h) int max=一 1; NODE*p; *found* p=h; while(P) if(p-datamax) max=p-data; *found* p=h-next ; return max; outresult(int s, FILEpf) fprintf(pf, “ nThe max in link: d n“, s); ) NODE*creatlink(int n,

3、int m) NODE*h, *p, *s; int i; h=p=(NODE*)malloc(sizeof(NODE); h-data=9999; for(i=i; idata=rand() m; s-next=p- next; p-next=s ; p=p-next; p-next=NULL; return h; outlink(NODE*h, FTLE*pf) NODE*p; p=h-next; fprintf(pf, “ nTHE LTST: n n HEAD“); while(p) fprintf(pf, ”- d”, P-data); p=p-next ; fprintf(pf,

4、“ n“); main() NODE*head; int m; head=creatlink(12, 100); outlink(head, stdout); m=fun(head); printf(“ nTHE RESULT: n“); outresult(m, stdout); 三、程序设计题 3 请编写函数 fun,该函数的功能是: 统计一行字符串中单词的个数,作为函数值返回。字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。 注意:部分源程序在文件 PROGl C中。 请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中

5、填入所编写的若干语句。 试题程序: #include #include #define N 80 int fun(char*s) void main() FILE*wf; char lineN; int num=0; printf(“Enter a string: n“); gets(line); num=fun(lihe); printf(“The number of word is: d n n“, num); *found* wf=fopen(“out dat“, “w“); fprintf(wf, “ d“, fun(“a big car“); fclose(wf); *found*

6、国家二级 C语言机试(操作题)模拟试卷 168答案与解析 一、程序填空题 1 【正确答案】 (1)si (2)9 (3)*t=n 【试题解析】 第一空:循环终止条件是达到了字符串的尾部,字符串以 “ 0”(或NULL)结束,故第一空处应为 si。 第二空:数字字符的判断是 si=0且 sinext; (2)p=p-next; 【试题解析】 (1)根据题干中求得除了头结点之外的结点数据域中的最大值,头指针 h,工作指针 p指向头结点的下一个结点,所以第一个标识下的 “p=h; ”指向头结点应该改为指向下一个结点 “p=h=-next; ”。 (2)工作指针 p,利用 p实现对链表的遍历, p表示

7、指向链表的当前结点,所以指向下一个结点应该是 “p=p-next; ”。 三、程序设计题 3 【正确答案】 Int tun(cnar*s) int i, j=0; for(i=0; si!= 0; i+) if(si!=&(si+1= si+1= 0) *如果一个字母的下一个字符为空格或者结束标记,则表示一个单词结束 * j+; return j; *返回单词个数 * 【试题解析】 要判断单词的个数,首先想到的是程序怎样识别出一个单词,如果一个字母的下一个字符为空格或者结束标记,则表示一个单词结束,因此程序使用 for循环语句遍历整个字 符串,用 if条件语句判断当前字符是否表示一个单词的结束,如果当前字符表示一个单词结束,则存放单词个数的变量加 1,最后返回单词的个数。

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

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

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