1、国家二级 C+机试(操作题)模拟试卷 162及答案与解析 一、基本操作题 1 下列给定程序中,函数 fun的功能是:将形参 s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。 例如,若 S所指字符串为 “asd123fgh543df”,处理后新字符串为“asdfghdf123543”。 请在程序的中括号处填入正确的内容并将中括号删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试 题程序: #include #include #include char*fun(chars) int i, j, k,
2、 n; char*p, *t; n=strlen(s)+1; t=(char*)malloc(n*si- zeof(char); p=(char*)malloc(n*si zeof(char); j=0; k=0; for(i=0; i=a)&(si =A)&(si void fun(int(*s)10, int*b, int *n, int mm, int nn) main() int w1010=33, 33, 33, 33), 44, 44, 44, 44, 55, 55, 55, 55, i, j; int a100=0), n=0; printf(“The matrix: n“);
3、for(i=0; i3; i+) for(j=0; j4; j+) printf(“ 3d“, wij); printf(“ n“); fun(w, a, &n, 3, 4); pr2ntf(“The A array: n“); for(i=0; in; i+) printf(“ 3d“, ai); 国家二级 C+机试(操作题)模拟试卷 162答案与解析 一、基本操作题 1 【正确答案】 (1)si (2)k (3) 0或 0 【试题解析】 填空 1:将字符串 s中所有字母元素赋给数组 t。 填空 2:字符串中所有非字母元素放到字母元素后面,所以 i的取值范围是 0k。 填空 3:最后给字符串
4、加入结束标识 0。 二、简单应用题 2 【正确答案】 (1)t-=1 0 i; (2)return t; 【试题解析】 (1)变量 t存放公式的和,通过循环语句进行复合 运算,因此此处应改为 t-=1 O i;,注意此处应进行变量的类型转换。 (2)循环结束后应将和值返回给主函数。 三、综合应用题 3 【正确答案】 void fun(int(*s)10, int*b, int *n, int mm, int nn) int i, j; for(j=0; jnn; j+) * 将二维数组中的数据按列的顺序依次放入一维数组中 * for(i=0; immj i+) b*n=*(*(s+i)+j); *n=*n+1; *通过指针返回元素个数 * 【试题解析】 题目要求实现将二维数组元素存入一维数组,需使用 for循环语句来控制二维数组元素的下标,同时使用指针变量配合操作。可以用两个循环来处理问题,由于是按列的顺序取出,所以第 1个循环用于控制列下标,第 2个循环用于控制行下标。