1、全国计算机二级 C语言上机试题 61+2015年及答案解析(总分:30.00,做题时间:90 分钟)1.函数 fun的功能是进行字母转换。若形参 ch中是小写英文字母,则转换成对应的大写英文字母;若 ch中是大写英文字母,则转换成对应的小写英文字母;若是其它字符则保持不变;并将转换后的结果作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include char fun(char ch) /*found*/ if (ch=a)_
2、1_(ch0;i-) k=aM-1; for(j=M-1;j0;j-) /*found*/ aaj=aj-1; a0=k; for(m=0; mprintf(“/n“); main() int aM; fun(a); printf(“/n/n“); (分数:10.00)_3.请编写一个函数 fun, 它的功能是: 计算并输出给定整数 n的所有因子(不包括 1与 n自身)之和。规定n的值不大于 1000。 例如,在主函数中从键盘给 n输入的值为 856, 则输出为:sum=763。 注意:部分源程序在文件 PROG1.C中。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号
3、中填入你编写的若干语句。 给定源程序: #include int fun(int n) main() int n,sum; printf(“Input n: “); scanf(“%d“, sum=fun(n); printf(“sum=%d/n“,sum); NONO(); (分数:10.00)_全国计算机二级 C语言上机试题 61+2015年答案解析(总分:30.00,做题时间:90 分钟)1.函数 fun的功能是进行字母转换。若形参 ch中是小写英文字母,则转换成对应的大写英文字母;若 ch中是大写英文字母,则转换成对应的小写英文字母;若是其它字符则保持不变;并将转换后的结果作为函数值返
4、回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include char fun(char ch) /*found*/ if (ch=a)_1_(ch0;i-) k=aM-1; for(j=M-1;j0;j-) /*found*/ aaj=aj-1; a0=k; for(m=0; mprintf(“/n“); main() int aM; fun(a); printf(“/n/n“); (分数:10.00)_正确答案:(第一处:在函数 f
5、un体中,a 是一个整型数组,所以形参 a应定义为指针型整数变量。 第二处:变量书写错误,aa 应为 a。)解析:3.请编写一个函数 fun, 它的功能是: 计算并输出给定整数 n的所有因子(不包括 1与 n自身)之和。规定n的值不大于 1000。 例如,在主函数中从键盘给 n输入的值为 856, 则输出为:sum=763。 注意:部分源程序在文件 PROG1.C中。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 给定源程序: #include int fun(int n) main() int n,sum; printf(“Input n: “); scanf(“%d“, sum=fun(n); printf(“sum=%d/n“,sum); NONO(); (分数:10.00)_正确答案:(int fun(int n) int s = 0, i ; for(i = 2 ; i n ; i+) if(n % i = 0) s +=i ; return s ; )解析: