1、国家二级 C语言机试(操作题)模拟试卷 190及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是建立一个 NxN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为 1;从外向内第 2层元素的值全部为 2;第 3层元素的值全部为 3, 依次类推。例如,若 N=5,生成的矩阵为: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include #define N
2、 7 *found* void fun(int (*a) _1_) ( int i, j, k, m; if(N 2=0)m=N 2; else m=N 2+1; for(i=0; i int fun() int i, j, k, sum=0; printf(“ nThe result: n n“); *found* for(i=0; i=0 K #include #define M 3 #define N 20 void fun(char aMN, char*b) main() char wMN=“AAAA“, “BBBBBBB“, “CC“), a100; int i; void NONO
3、 (); printf(“The string: n“); for(i=0; i=0 k=1 K=0 k=6)”。 三、程序设计题 3 【正确答案】 int i, j, k=0 ; for(i=0; iM; i+) for(j=0; jN; j+) i f(*(*(a+i)+j) 如果不指向行的尾 bk=*(*(a+i)+j); 将行中的值赋值给数组 b k+;数组下标加 1 else如果指向尾,则跳出这一行 break; bk= 0;数组加尾符 【试题解析】 (1)二维字符数 组第 i行 j列元素 aij,就是指针形式的*(*(a+i)+j)。因此,如果字符 *(*(a+i)+j)是串的结束符,则说明该字符串已经结束。 (2)当一维字符数组存放完字符串中各字符后,必须在一维字符数组的尾字符处加一个结束符 0,才能把字符数组变成字符串。否则,字符数组就只能是非字符串的一般字符数组。