1、国家二级 C语言机试(操作题)模拟试卷 206及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:找出 100 999之间 (含 100和 999)所有整数中各位上数字之和为 x(x为一正整数 )的整数,然后输出;符合条件的整数个数作为函数值返回。 例如,当 x值为 5时, 100 999之间各位上数字之和为 5的整数有: 104、113、 122、 131、 140、 203、 212、 221、 230、 302、 311、 320、 401、 410、 500。共有 15个。当 x值为 27时,各位数字之和为 27的整数是: 999。 只有 1个。 请在程序的下划线处填入
2、正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include int fun(int x) int n, s1, s2, s3, t; n=0; t=100: *found* while(t0): “); scanf(“ d“, x); printf(“ nThe resu2t is: d n“, fun(x); 二、程序修改题 2 给定程序 MODIl C中 fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。 例如,给字符串 S输入: AAaaBBb123CCccccd则应输出
3、结果: upper=6,lower=8。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #inc2ude *found* void fun (char *s, int a, int b) while(*s) if (*s = A *s = a *s #include double 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、 、 j-1这些数逐个去除 i,观察余数是否为 0即可,只要有一次相除余数为 0, i就不是素数,否则 i为素数。 (2)在循环中找到每一个素数,然后对其求平方根,然后进行累加求和。