1、国家二级 C语言机试(操作题)模拟试卷 255及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:将 NN矩阵中元素的值按列向右移动 1个位置,右边被移出矩阵的元素绕回左边第 l列。 例如, N=3,有下列矩阵 1 2 3 4 5 6 7 8 9 计算结果为: 3 1 2 6 4 5 9 7 8 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #include stdio h 2 #define N 4 3 void fun(int(*t)N) 4 5 int i,
2、 j, x; 6 for(i=0; i 【 1】 ; i+) 7 8 x=ti【 2】 ; 9 for(j=N-1; j 0; j-) 10 tij=tij-1; 11 ti【 3】 =x; 12 13 14 main() 15 16 int i, j, tN=21, 12, 13, 24, 25, 16, 47, 38, 29, 11, 32, 54, 42,21, 33, 10; 17 printf (The orriginal ar-ray: n); 18 for(i: 0; i N ; i+) 19 20 for(j=0; j N; j+) 21 printf( 2d, tij); 2
3、2 printf( n); 23 24 fun(t); 25 printf( nThe result is: n); 26 for(i=0; i N ; i+) 27 28 for(j=0; j N; j+) 29 printf( 2d, tij); 30 printf( n); 31 32 二、程序修改题 2 下列给定程序中函数 fun的功能是:判断一个整数是否为素数,若是素数返回1,否则返回 0。 在 main函数中,若 fun返回 1输出 YES,若 fun返回 0输出 NO!。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结
4、构 ! 试题程序: 1 #include stdlib h 2 #include conio h 3 #include stdio h 4 int fun(int m) 5 6 int k=2; 7 while(kn) *如果 k大于 n,则使 p的前部保留 n个星号,其后的字符依次存入数组 a中 * 9 while(*p) 10 ai=*(p+k-n); 11 i+; 12 p+; 13 14 ai= 0; *在字符串最后加上结束标识 * 15 16 【试题解析】 字符串 中前导 *号不能多于 n个,多余的应删除。首先需要通过while循环统计字符串前导 *号的个数,然后通过 if条件语句完成前导 *号的个数和n的比较,如果前导 *号多于 n个,需要把 n个 *号和其余字符重新保留。