1、国家二级( C语言)机试模拟试卷 326及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:在形参 ss所指字符串数组中,删除所有串长超过 k的字符串,函数返回所剩字符串的个数。 ss所指字符串数组中共有 N个字符串,且串长小于 M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include #inolucte #defitie N 5 #define M 10 int fun(char(*ss)M, int k) int i, j=0,
2、 len; /*found*/ for(i=0; i void fun(char *s) int i,j; for(i=0,j=0; sj=“0“; i+) if(si=0 long c; void NONO (); 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(“i
3、n.dat“, “r“); wf = fopen(“out.dat“,“w“); for(i = 0 ; i =0”语句应改为 “sj=0;”。 三、程序设计题( 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构成四位数。本题最多只考虑四位数。