1、国家二级 C+机试(操作题)模拟试卷 169及答案与解析 一、基本操作题 1 给定程序中,函数 fun的功能是:将形参 s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如, s所指字符串为: asd123fgh543df,处理后新字符串为: 123543asdfghdf。请在程序的中括号处填入正确的内容并把中括号删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! 试题程序 : #include #include #include #include char*fun(char*s)
2、 int i, j, k, n; char*p, *t; n=strlen(s)+1; t=(char*)malloc(n*sizeof (char); p=(char*)malloc(n*sizeof (char); j=0; k=0; for(i=0; ieps) s+=t; t=t*n(2*n+1); n+; *found* return(s); void main() doub2e x; printf(“ nPlease enter aprecision: “); scarlf(“ lf“, &x); printf(“ nPi= lfn“, fun(x); 三、综合应用题 3 请编写函
3、数 fun,函数的功能是查找 X在 s所指数组中下标的位置,并作为函数值返回,若 x不存在,则返回一 1。 注意:部分源程序在文件 PROGl C文件中,请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include #include #define N 15 void NONO(); int fun(int*s, int x) main() int aN=29, 13, 5, 22, 10, 9, 3, 18, 22, 25, 14, 15, 2, 7 r 27, i, x, index; printf(“a数组中的数据: n“
4、); for(i=0; iN; i+) printf(“ 4d“, ai); printf(“ n“); printf(“给 x输入待查找的数: “); scanf(“ d“, &x); index=fun(a, x); printf(“index= d n“, index); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数 ,输出数据,关闭文件。 * FILE*fp, *wf; int i, j, a10, x, index; fp=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; i10; i
5、+) for(j=0; j10; j+) fscanf(fp, “ d“, &aj); fscanf(fp, “ d“, &x); index: fun(a, x); fprintf(wf, “ d n“, index); fclose(fp); fclose(wf); 国家二级 C+机试(操作题)模拟试卷 169答案与解析 一、基本操作题 1 【正确答案】 (1)j (2)k (3)p或 (p) 【试题解析】 填空 1:函数中申请了两个内存空间,其中 p存放数字字符串, t存放非数字字符串,根据条件可知, p依次存放数字字符串,其位置由 j来控制,所以应填 j。 填空 2:利用 for循环再
6、把 t中的内容依次追加到 p中,其中 t的长度为 k,所以应填 k。 填空 3:处理之后的字符串存 放到 p中,最后返回 p的首地址即可,所以应填p。 二、简单应用题 2 【正确答案】 (1)t=1 0; (2)return(s*2); 【试题解析】 该题中,首先检查变量数据类型前后是否一致,因为变量 t定义为double型,所以赋值时要赋以实型数值。 return(s)是一个数学错误,应该返回return(s*2);。 三、综合应用题 3 【正确答案】 int fun(int*s, int x) int i; for(i=0; iN; i+) if(x=si)return i; return一 1; 【试题解析】 要找出数组中指定数据的下标,首先定义变量 i用于存放数组下标,然后使用循环语句对数组进行遍历,依次取出一个数组元素与指定的数进行比较,若相等,则返回该元素的下标,否则继续判断下一个元素,直到数组结束。若数组结束时仍没有找到与指定数相等的元素,则返回一 1。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1