1、国家二级( C语言)机试模拟试卷 193及答案与解析 一、程序填空题( 30分) 1 函数 fun的功能是进行数字字符转换。若形参 ch中是数字字符 0 9,则 0转换成 9, 1转换成 8, 2啭换成 7, , 9转换成 0; 若是其他字符则保持不变;并将转换后的结果作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include *found* 【 1】 fun(char ch) *found* if(ch=0 long c; void NONO ()
2、; printf(“Input a, b:“); scanf(“%d,%d“, fun(a, b, printf(“The result is: %ldn“, c); NONO(); void NONO () /* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen(“in.dat“, “r“); wf = fopen(“out.dat“,“w“); for(i = 0 ; i =0且 ch0; i一一 ) (2)if(tjtj+1) 【试题解析】 (1)字符串的长度包括尾符,将字
3、符串中的字符按 ASC 码排序,应排除尾符号,所以第一个标识下的 “for(i=strlen(t); i; i )“改为“for(i=strlen(t)-1; i; i-)“。 (2)题干中要求升序排列,第二个标识下的 “if(tjtj+1)“。 三、程序设计题( 40分) 3 【正确答案】 *c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10); 【试题解析】 ( 1)分解两位数的正整数 n的个位和十位数,可用 n%10和 n/10实现。 ( 2)设 x0、 x1、 x2、 x3为一位数,则 x0、 x110、 x2100、 x31000,可以分别使 x0、 x1、 x2、 x3构成个、十、百、千带权数,而 x0+x110+x2100+x31000构成四位数。本题最多只考虑四位数。