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

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

1、国家二级( C语言)机试模拟试卷 278及答案与解析 一、程序填空题( 30分) 1 甲乙丙丁四人同时开始放鞭炮,甲每隔 t1秒放一次,乙每隔 t2秒放一次,丙每隔 t3秒放一次,丁每隔 t4秒放一次,每人各放 n次。函数 fun的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时炸响,只算一次响声,第一次响声是在第 0秒。 例如,若 t1=7, t2=5, t3=6, t4=4, n=10,则总共可听到 28次鞭炮声。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正 确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或

2、删行,也不得更改程序的结构 ! #include *found* #define OK(i, t, n)(【 1】 t=0) &(i t #include *found* fun(int n) double sum, s0, s1, s2, s, int k; sum=1 0; if(n void fun(int *s, int t, int*k) main() int a10=876, 675, 896, 101, 301, 401, 980, 431, 451, 777, k; void NONO(); fun(a, 10, &k); printf(“ d, d n“, k, ak); N

3、ONO(); void NONO() *本函数用于打开文件,输入测试数据,调 用 fun函数,输出数据,关闭文件。 * int a10, i, k, j; FILE*rf, *wf; rf=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; i10; i+) for(j=0 ; j10; j+)fscanf (rf, “ d“, &aj); fun(a, 10, &k); fprintf(wf, “ d, d n“, k, ak); fclose(rf); fclose(wf); 国家二级( C语言)机试模拟试卷 278答案与解析

4、一、程序填空题( 30分) 1 【正确答案】 (1)i (2)t+ (3)count 【试题解析】 第一空:由 “if(OK(t, t1, n)|OK(t, t2, n)| OK(t, t3, n)|OK(t,t4, n)coullt+; “可知 count计数听到的鞭炮声,在满足 if条件时,计数加 1。 t时刻,至少有一个人放了一个鞭炮才能听得到声音,故 t t1=0、 t t2=0、 tt3=0、 t t4=0这四个当中至少一个成立,四者是或的关系。第一个标识下是宏OK的定义,由前面的分析可知。 OK宏的作用就是判断 t ti(i等于 1、 2、 3和 4)是否等于 0且 i tn,故第

5、一空处应为 “i“。 第二空:时间 t从第一秒开始,到最大时刻结束,时间是一秒一秒增加,在每个时刻判断是否能够听到声音。故第二空是 “t+“。 第三空:变量 count记录了听到的声音次数,因此 count是函数的返回信,故第三空应为 “count“。 二、程序修改题( 30分) 2 【正确答案】 (1)double fun(int n) (2)return sum; 【试题解析】 (1)第一个错误标识下 fun函数的定义根据题干要返回前 n项的平方根之和,函数具有返回值,所以 “fun(int n)“应改为 “double fun(int n)“,其中double为双精度型变量。 (2)第二

6、个标识符下返回平方根之和,根据 C语言语法每一句 C语言后面应该以“; “为结尾,所以 “return sum“改为 “return sum; “。 三、程序设计题( 40分) 3 【正确答案】 int i, pos=0, max=*s; for(i=1; it; i+) if(max*(s+i) max=*(s+i); pos=i; *k=pos; 【试题解析】 进入 fun函数,根据前 面的分析: 函数 fun中形参 “*s“为指针变量,与主函数中的 a相对应; t的实参值为 10;形参 “*k“为指针变量对应 k的值。 首先, min赋值给数组 s的第一个元素,通过 “for(i=1; it; i+)“循环将 max与 s数组中的元素依次比较,求出数组的最大元素值。

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

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

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