【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷507及答案解析.doc

上传人:花仙子 文档编号:1332317 上传时间:2019-10-17 格式:DOC 页数:3 大小:35KB
下载 相关 举报
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷507及答案解析.doc_第1页
第1页 / 共3页
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷507及答案解析.doc_第2页
第2页 / 共3页
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷507及答案解析.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

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

2、return ch ; main () char cl, c2; printf(“/nThe result :/n“); cl=2; c2 = fun(cl); printf (“cl=%c c2=%c/n“, cl, c2); cl=8; c2 = fun(cl); printf(“cl=%c c2=%c/n“, cl, c2) ; cl=a; c2 = fun(cl); printf(“cl=%c c2=%c/n“, cl, c2); (分数:2.00)_二、程序修改题(总题数:1,分数:2.00)2.给定程序 MODI1C 中函数 fun的功能是:将 p所指字符串中的所有字符复制到 b中

3、,要求每复制三个字符之后插入一个空格。 例如,在调用 fun函数之前给 a输入字符串:ABCDEFGHIJK,调用函数之后,字符数组 b中的内容则为:ABC DEF GHI JK。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 #include void fun(char *p, char *b) int i, k=0; while(*p) i=l; while(is=0; while(is=si; i+; p-next=q; p=q; p-next=0; return h; outlist(STREC *h) STREC *p

4、; p=h-next; printf(“head“); do printf(“-%4.If“,p-s);p=p- next; while(p!=0); printf(“/n/n“)/ main () double sN = 85,76,69,85,91, 72, 64,87 ,ave; void NONO (); STREC *h; h=creat(s); outlist(h); ave=fun(h); printf(“ave= %6.3f/n“,ave); NONO(); void NONO() /*本函数用于打开文件,输入数据, 调用函数,输出数据,关闭文件。*/ FILE *in, *o

5、ut ; int i,j ; double sN,ave; STREC *h ; in = fopen(“in.dat“,“r“); out = fopen(“out.dat“,“w“); for(i = 0 ; i =0 return ch ; main () char cl, c2; printf(“/nThe result :/n“); cl=2; c2 = fun(cl); printf (“cl=%c c2=%c/n“, cl, c2); cl=8; c2 = fun(cl); printf(“cl=%c c2=%c/n“, cl, c2) ; cl=a; c2 = fun(cl);

6、 printf(“cl=%c c2=%c/n“, cl, c2); (分数:2.00)_正确答案:(正确答案:(1)char (2)ch=0”且“chs=0; while(is=si; i+; p-next=q; p=q; p-next=0; return h; outlist(STREC *h) STREC *p; p=h-next; printf(“head“); do printf(“-%4.If“,p-s);p=p- next; while(p!=0); printf(“/n/n“)/ main () double sN = 85,76,69,85,91, 72, 64,87 ,ave

7、; void NONO (); STREC *h; h=creat(s); outlist(h); ave=fun(h); printf(“ave= %6.3f/n“,ave); NONO(); void NONO() /*本函数用于打开文件,输入数据, 调用函数,输出数据,关闭文件。*/ FILE *in, *out ; int i,j ; double sN,ave; STREC *h ; in = fopen(“in.dat“,“r“); out = fopen(“out.dat“,“w“); for(i = 0 ; i 10 ; i+) for(j=0 ; j N; j+) fscan

8、f(in, “%lf,“, h=creat(s); ave=fun(h); fprintf(out, “%6.31f/n“, ave) ; fclose(in); fclose(out); (分数:2.00)_正确答案:(正确答案:STREC *p=h 一next; * 由于头结点 中没有存放数据 * double av=00; *对计算成绩平均 值的变量进行初始化 * int n=0; while(p!=NULL) *判断链表是否结束 * av=av+p 一s; * 对成绩进行累加 * p=p 一next; * 到下一个结点位置 * n+; * 人数加 1 * av =n; * 计算成绩平均值 * return av; * 返回成绩平均值 *)解析:解析:(1)首先定义存放平均值的变量,并对其初始化。 (2)在循环中,依次取链表中存放的成绩,并对其求和。 (3)最后计算平均值,并返回值。

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

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

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