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

上传人:figureissue185 文档编号:498111 上传时间:2018-11-28 格式:DOC 页数:5 大小:44KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷189及答案与解析.doc_第1页
第1页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷189及答案与解析.doc_第2页
第2页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷189及答案与解析.doc_第3页
第3页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷189及答案与解析.doc_第4页
第4页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷189及答案与解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

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

2、-_3_); return ch; msin() char c1, c2; Printf(“ nThe result: n“); c1=2; c2=fun(c1); printf(“c1= c c2= c n“, c1, c2); c1=8; c2=fun(c1); printf(“c1= c c2= c n“, c1, c2); c1=a; c2=fun(c1); printf(“c1= c c2= c n“, c1, c2); 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:将十进制正整数 m转换成 k(2k9)进制数,并按高位到低位顺序输出。 例如,若输入 8和 2,

3、则应输出 1000(即十进制 数 8转换成二进制表示是 1000)。 请改正 fun函数中的错误,使它能得出正确的结果。 注意:不要改动 main函数。不得增行或删行,也不得更改程序的结构 ! #include #include void fun(int m, nt k) int Eta20, i; for(i=0; m; i+) *found* aai=m k; m =k; for(; i ; i-) *found* printf(“ d“, aai); main() int b, n; printf(“ nPlease enter a number and a base: n“); sca

4、nf(“ d d“, n, b); fun(n, b), printf(“ n“), 三、程序设计题 3 请编写函数 fun,其功能是:计算并输出下列多项式的值:例如,在主函数中从键盘给 n输入 15,则输出为: s=2 718282。 注意:要求 n的值大于 1但不大于 100。 部分源程序在文件PROGl C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #includedouble fun(int n)main() int n; double s; printf(“Input n: “); scanf(“ d“, n); s=fun

5、(n); printf(“s= f n“, s); NONO(); NONO() *请在此 函数内打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。 * FILE*rf, *wf; int n, i; double s; rf=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; i 国家二级 C语言机试(操作题)模拟试卷 189答案与解析 一、程序填空题 1 【正确答案】 (1)char (2)ch=0且 ch=9,故第二空处应为 ch=9。 第三空:数字字符转换规则是: 0转换成 9, 1转换成 8, 2转换成7, ,

6、 9转换成 0,即返回值为 9-(ch-0),故第三空处应为 “0”。 二、程序修改题 2 【正确答案】 (1)aai=m k; (2)printf(“ d“, aai-1); 【试题解析】 (1)第二个标识下的 “aai=m k; ”是进制的转换,应该是取余,所以第二个标识下 “aai=m k; ”应该改为 “aai=m k; ”。 (2)数制转换处理过程中所得的结果,和实际要输出的结果顺序是相反的,所以必须对存放余数的数组反向输出。原题中 “printf(“ dt“, aai); ”的下标有误。因为下标 i的起始值为 0,故反向输出时应该从 i-1开始,因此改为 “printfi(“d“, aai-1); ”。 三、程序设计题 3 【正确 答案】 double s=1; long t=1; int i; for(i=1 ; i=n; i+) t=t*i; *计算阶乘 * s+=1 t; *计算每项的值并累加至变量 s中 * return s; *返回多项式的值。 【试题解析】 (1)根据题干中给出的数列,推出每一项是阶乘的倒数,所以首先在循环中求得每一项的阶乘。其中阶乘的计算公式定义为:公式分为参数 n是 1和大于 1的两种情况,例如, 1的阶乘 1!=1; 5的阶乘 5!=54321。 (2)然后求 得阶乘分之一的累加和。

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

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

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