1、国家二级 C语言机试(操作题)模拟试卷 165及答案与解析 一、程序填空题 1 函数 fun的功能是:统计长整数 n的各个位上出现数字 1、 2、 3的次数,并通过外部 (全局 )变量 c1, c2, c3返回主函数。例如:当 n=123114350时,结果应该为:c1=3 c2=1 c3=2。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include int c1, c2, C3; void fun(long n) c1=c2=c3=0; while(n) *fo
2、und* switch(_1_) *found* case 1: c1+; _2_; *found* case 2: c2+; _3_; case 3: c3+; n =10 ; main() long n=123114350L; fun(n); printf(“ nThe result: n“); printf(“n= ld c1= d c2= d c3= d n“, n, c1, c2, c3); 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:首先将大写字母转换为对应小写字母;若小写字母为 a u,则将其转换为其后的第 5个字母;若小写字母为 v z,使其值减 21。
3、转换后的小写字母作为函数值返回。例如,若 形参是字母 A,则转换为小写字母 f:若形参是字母 W,则转换为小写字母 b。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #include #include char fun(char c) if(c=A c=a c=v c void fun(int m, int k, int xx) Main ) int m, n, zz1000; void NONO(); printf(“ nPlease enter two in tegers: “); scanf(“ d d“, m, n); fun(m, n, zz); for(m=0 ; m=temp) if(k=0) 判断已有的素数个数是否已经满足 sum个 xxr+=temp;将素数 temp存入数组 select k-; 将题目中要求的素数个数减 1 else break; 【试题解析】 进入 fun函数,根据前面的分析: 首先,定义、初始化变量 sign,作为素数的标志;定义 r,初始化为存储素数数组的起始位。 然后,每判断一次 temp中的值是否为素数后,使 temp的值增 1,再次对 temp中新的值进行判断其是否为素数,不断循环此过程,直到 m的值等于指定的个数,即函数中的 k个数。