1、国家二级( C语言)机试模拟试卷 251及答案与解析 一、程序填空题( 30分) 1 函数 fun的功能是:把形参 a所指数组中的偶数按原顺序依次存放到 a0、a1、 a2、 中,把奇数从数组中删除,偶数个数通过函数值返回。例如: 若 a所指数组中的数据最初排列为: 9、 1、 4、 2、 3、 6、 5、 8、 7,删除奇数后a所指数组中的数据为: 4、 2、 6、 8,返回值为 4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include #define N
2、9 int fun(int a, int n) int i,j; j = 0; for (i=0; i #define N 20 void fun(int a, int n) int i, j, t, p; for (j = 0 ;j #include #define M 81 int fun(char *ss, char c) main() char aM, ch; void NONO (); printf(“nPlease enter a string:“); gets(a); printf(“nPlease enter a char:“); ch = getchar(); printf(
3、“nThe number of the char is: %dn“, fun(a, ch); NONO (); void NONO () /* 本函数用于打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。*/ int i ; FILE *rf, *wf ; char aM, bM, ch ; rf = fopen(“in.dat“,“r“); wf = fopen(“out.dat“,“w“); for(i = 0 ; i 10 ; i+) fscanf(rf, “%s“, a); fscanf(rf, “%s“, b); ch = *b ; fprintf(wf, “%c=%dn
4、“, ch, fun(a, ch); fclose(rf); fclose(wf); 国家二级( C语言)机试模拟试卷 251答案与解析 一、程序填空题( 30分) 1 【正确答案】 ai%2 aj j 【试题解析】 第一空:由 “_2_=ai; j+;”是将偶数元素保存起来并且计数变量加 1,可知 j记录了偶数元素的个数,第一空处是判断 ai是否是偶数,因此第一空处应为 “ai%2” 。 第二空: a所指数组中的偶数按原顺序依次存放到 a0、 a1、 a2. , j初始化为0, aj就可以将偶数元素存放在 a中,故第二空处应为 “aj”。 第三空: fun函数的返回值 是偶数个数,故第三空处
5、应为 “j”。 二、程序修改题( 30分) 2 【正确答案】 p=j; p=i; 【试题解析】 ( 1)第一个标识下面 “p=j”,根据 C语言的语法,不难发现语句结束缺少分号,因此改为 “p=j;”。 ( 2)第二个标识下面的 “p=j;”上两句是以 i作为循环和判断条件,其中语句“for(i=j;in;i+)”和 “if(aiap)”是将第 p个元素与剩下的所有元素从第 j个以后到最后一个进行循环比较,所以改为 “p=i;”。 三、程序设计题( 40分) 3 【正确答案】 int cnt=0; char *p=ss; while(*p) if(*p=c)cnt+; p+; return cnt; 【试题解析】 如果不是串尾就进入 while循环,在循环过程中利用 if条件表达式判断当前字符是否为指定的字符,如果符合条件,那么对统计计数变量进行加 1操作。