1、国家二级 C语言机试(操作题)模拟试卷 116及答案与解析 一、程序填空题 1 甲乙丙丁四人同时开始放鞭炮,甲每隔 t1秒放一次,乙每隔 t2秒放一次,丙每隔 t3秒放一次,丁每隔 t4秒放一次,每人各放 n次。函数 fun的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时炸响,只算一次响声,第一次响声是在第 0秒。 例如,若 t1=7, t2=5, t3=6, t4=4, n=10,则总共可听到 28次鞭炮声。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,
2、也不得更改程序的结构 ! #inolude *found* #define OK(i, t, n)(_1_ t=0) & (i t include *found* void fun(int a, int b, int c) if(a+bc &b+ca & a+cb) if(a=b& b=c) return 3; else if(a=b b=c a=c) return 2; *found* else return 1 else return 0j main() int a, b, c, shape; printf(“ nInput a, b, c: “); scanf (“ d d d“, a,
3、 b, c); printf(“ na= d, b= d, c= d n“, a, b, c); shape=fun(a, b, c); printf(“ n nThe shape: d n“, shape); 三、程序设计题 3 请编写函数 fun,其功能是:计算并输出 3到 n之间 (含 3和 n)所有素数的平方根之和。 例如,在主函数中从键盘给 n输入 100后,输出为: sum=148 874270。 注意:要求 n的值大于 2但不大于 100。 部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #inolude doub2e fun(int n) NONO() *请在此函数内打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。 * FILE *rf, *wf; int n, i; double s; rf=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0 ; i1),所以判别 i是否为素数,只要用 2、 3、 、 i-1这些数逐个去除 i,观察余数是否为 0即可,只要有一次相除余数为 0, i就不是素数,否则 i为素数。 (2)在循环中找到每一个素数,然后对其求平方根,然后进行累加求和。