1、国家二级 C语言机试(操作题)模拟试卷 226及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:在形参 s所指字符串中的每个数字字符之后插入一个 *号。例如,形参 s所指的字符串为 “det35adh3kjsdf7”,执行后结果为“def3*5*adh3*kjsdf7*”。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #include stdio h 2 void fun(char*s) 3 4 int i , j, n; 5 for(i=0; si!= 0;
2、 i+) 6 *found* 7 if(si=0 【 1】 si【 2】 ) 12 n+; 13 for(j=i+n+1; j i; j-) 14 * found* 15 sj+1=【 3】 ; 16 sj+1=*; 17 i=i+1; 18 19 20 main() 21 22 char s60=def35adh3kjsdf7; 23 printf( nThe original string is: s n, s); 24 fun(s); 25 printf( nThe result is: s n, s); 26 二、程序修改题 2 假定整数数列中的数不重复,并存放在数组中。下列给定程序中
3、函数 fun的功能是:删除数列中值为 x的元素,变量 n中存放数列中元素的个数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #include stdio h 2 #defime N 20 3 fun(int*a, int n, int x) 4 5 int p=0 , i; 6 an=x; 7 while(x!=ap) 8 p=p+1; 9 *found* 10 if(p=n) 11 return-1; 12 else 13 14 for(i=p; i=i) *如果是素数,放入数组 xx中 * 8 xxn+=i; 9 10 【试题解析】 本题主要考查素数的判定方法,如果一个数不能被除了 1和其自身以外的数整除,则这个数为素数。本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存人数组 xx中。