1、国家二级 C+机试(操作题)模拟试卷 196及答案与解析 一、基本操作题 1 给定程序中,函数 fun的功能是:把形参 S所指字符串中最右边的 n个字符复制到形参 t所指字符数组中,形成一个新串。若 S所指字符串的长度小于 n,则将整个字符串复制到形参 t所指字符数组中。 例如,形参 S所指的字符串为: abedefgh, n的值为 5,程序执行后 t所指字符数组中的字符串应为: defgh。 请在程序的中括号处填入正确的内容并把中括号删除,使程序得出正确的结果。 注意:部分源程序在文件 BIANKl C中。 不得 增行或删行,也不得更改程序的结构 ! 试题程序: #include #incl
2、ude #define N 80 void fun(char*s, int n, char*t) int len, i, j=0; len=strlen(s); *found* if(n=len)strcpy(【 1】 ); else *found* for(i=len n; i #define N 80 void fun(int*w, int o, int n) main() ( int aN=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15; int i, p, 12=15; printf(“The original data: n“);
3、 for(i=0; i0 001) 【试题解析】 (1)程序中 会发现 r=(m+n) 2,而 m和 n都是 double型的,并且根据题意可知,变量 r需要定义为 double型。 (2)绝对误差不超过 0 00l,所以循环条件应为 labs(n m)0 001。 三、综合应用题 3 【正确答案】 void fun(int*w, int p, int n) int x, j, ch; for(x=0; x=p; x+) ( ch=w0; for(j=1; jn; j+) *通过 for循环语句,将 p+1到 n一 1(含 n一 1)之间的数细元素依次向前移动 p+1个存储单元 * wj一 1=wj; wn 1=ch; *将 0到 p个数组元素逐一赋给数组 wn一 1* 【试题解析】 本题要求把下标从 0 p(含 p, p小于等于 n一 1)的数组元素平移到数组的最后,可以根据输入的 p值,通过 for循环语句,将 p+1 n一 1(含 n一1)之间的数组元素依次向前移动 p+1个存储单元,即 wj一 1=wj;,同时将0 p个数组元素逐一赋给数组 wn 1,也就是通过语句 wn一 1=ch;来实现此操作的。