1、国家二级 C语言程序设计机试(程序填空题)模拟试卷 1及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:把形参 a所指数组中的偶数按原顺序依次存放到 a0、 a1、 a2 中,把奇数从数组中删除,偶数的个数通过函数值返回。 例如,若 a所指数组中的数据最初排列为: 9, 1, 4, 2, 3, 6, 5, 8, 7,删除奇数后 a所指数组中的数据为: 4, 2, 6, 8,返回值为 4。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构 ! 试题程序: #include #define N 9 int fun(i
2、nt a, int n) int i, j; j=0; for(i=0; i void fun(char*s, char c) int i, j, n; *found* for(i=0; 8i!=_0_; i+) if(si=c) *found* n= Z_; while(si+1+n!= 0)n+; for(j=i+n+1; ji; j一一 ) sj+1=s j; *found* sj+1=_3_; i=i+1: main() char S80=“baacda”, c; printf(“ nThe string: s n”, s); prinff(“ nlnput a character:
3、”); scanf(“ e”, &c); fun(s, e); prinff(“ nThe result is: s n”, s); 3 下列给定程序中,函数 fun的功能是:有 NN矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为 0。 例如,若 N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 计算后结果为 1 0 0 6 5 0 10 14 9 请在程序的下画线处填入正确的内容并把下画线删除。使程序得出正确的结果。 注意:不得增行或删行,也不得改程序的结构 ! 试颢程序: #include #define N 4 *found* void fu
4、n(int(*t)_1_) int i, j; for(i=1; i void fun(char*s) int i, n, k; char c; n: 0; for(i=0; si!= 0; i+) n+: *found* if(n 2=0)k=n一 _1_; else k=n一 2: *found* c=_2_; for(i=k一 2; i=1; i=i一 2) si+2=si; *found* S1=_3_; main() char s80=“abedefgh”; printf(“ nThe original string is: s n”, s); fun(s); printf(“ nT
5、he result is: s n”, s); 国家二级 C语言程序设计机试(程序填空题)模拟试卷 1答案与解析 一、程序填空题 1 【正确答案】 (1)ai 2 (2)aj (3)j 【试题解析】 本题考查: if语句条件表达式;数组变量赋值;函数返回值。 填空 1: if语句条件表达式,判断数组元素是否为偶数,对 2求余,结果为 0,则为偶数;结果为 1则为奇数。 填空 2:如果该数组元素是偶数,则 将其值保存。 填空 3:最后按要求将偶数个数通过 return语句返回给 main函数。 2 【正确答案】 (1) 0 (2)0 (3)c 【试题解析】 本题考查:字符串结束标识 0;变量赋初
6、值操作;数组元素赋值。 填空 1: for语句循环条件是判断是否到达字符串结尾,即当前字符是否为 0。 填空 2: while语句用于确定字符串的长度,所以变量 n赋初值为 0。 填空 3:题目要求如果找到与参数 c相同的字符,就在后面插入一个相同的字符,所以找到后,应该给数组元素赋值,该题目给出参数为 c。 3 【正确答案】 (1)N (2)tij (3)tji 【试题解析】 本题考查:有参函数定义,需要根据题目要求和给定程序确定函数参数。 NN矩阵中如何表示左下角和右上角元素。 填空 1:主函数中调用函数的参数为二维数组,所以此处形参应定义为指针数组。 填空 2:根据题意可知,对称元素相加的和存放在左下三角元素中,那么应填入的是 tij。 填空 3:右上三角元素置 0,应填入 tji。 4 【正确答案】 (1)1 (2)sk或 *(s+k) (3)c 【试题解析】 本题考查:指针型变量; ifelse 语句;赋值语句。 填空 1:函数 fun中变量 n统计字符的长度,假如长度为偶数,则 k=n一 1;假如长度为奇数,则 k=n一 2,使得下标为奇数的最后一个元素有效 (不是 0)。 填空 2:了解变量 k的作用后,则将最右边的奇数位置的数赋值给变量 c。 填空 3:将最后一个下标为奇数的元素移到第一个奇数位置。