1、国家二级 C语言机试(操作题)模拟试卷 271及答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.给定程序中,函数 fun的功能是:调用随机函数产生 20个互不相同的整数放在形参 a所指数组中(此数组在主函数中已置 0)。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1C 中。 不得增行或删行,也不得更改程序的结构! 试题程序: 1 #includestdlibh 2 #includestdioh 3 #define N 20 4 void fun(int*a) 5 int i,x,n=
2、0 ; 6 x=rand()20; 7 *found* 8 while(n 【1】 ) 9 for(i=0;in,i+) 10 *found* 11 if(x=ai) 12 【2】 ; 13 *found* 14 if(i= 【3】 ) 15 an=x; n+; 16 x=rand()2 0; 17 18 19 main() 20 int xN=0,i ; 21 fun(x); 22 printf(“The result:n“); 23 for(i=0;iN;i+) 24 printf(“4 d“,xi); 25 if(i+1)5=0)printf(“n“); 26 27 printf(“nn
3、“); 28 (分数:2.00)_二、程序修改题(总题数:1,分数:2.00)2.下列给定程序中,函数 fun的功能是:传入一个整数 m,计算如下公式的值。 (分数:2.00)_三、程序设计题(总题数:1,分数:2.00)3.编写函数 fun,其功能是:求 ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串“123412132”,输入字符为“1”,则输出 3。注意:部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。试题程序:#includestdlibh#includeconioh#includestdioh#def
4、2ne M 81int fun(char*ss,char c)void main() char aM,ch; system(“CLS“); printf(“nPlease enter a string:“); gets(a); printf(“nPlease enter a char:“); ch=getchar(); printf(“nThe number of the char is:dn“,fun(a,ch),(分数:2.00)_国家二级 C语言机试(操作题)模拟试卷 271答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.给定程序中,函数
5、fun的功能是:调用随机函数产生 20个互不相同的整数放在形参 a所指数组中(此数组在主函数中已置 0)。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1C 中。 不得增行或删行,也不得更改程序的结构! 试题程序: 1 #includestdlibh 2 #includestdioh 3 #define N 20 4 void fun(int*a) 5 int i,x,n=0 ; 6 x=rand()20; 7 *found* 8 while(n 【1】 ) 9 for(i=0;in,i+) 10 *found* 11 if(x=a
6、i) 12 【2】 ; 13 *found* 14 if(i= 【3】 ) 15 an=x; n+; 16 x=rand()2 0; 17 18 19 main() 20 int xN=0,i ; 21 fun(x); 22 printf(“The result:n“); 23 for(i=0;iN;i+) 24 printf(“4 d“,xi); 25 if(i+1)5=0)printf(“n“); 26 27 printf(“nn“); 28 (分数:2.00)_正确答案:(正确答案:(1)N 或 20 (2)break (3)n)解析:解析:填空 1:变量 n用于存储数组的下标,要通过
7、while语句对数组进行赋值,数组的容量为20,因此循环条件应为 n20。 填空 2:通过一个 for循环判断 x是否与数组中已存的元素重复,若重复则跳出 for循环结束。 填空 3:若 for循环是由 break语句结束的,则 x与数组中的元素重复,此时 i必然小于 n;若 for循环是因为循环变量 i递增到某值,而不再满足循环条件结束的,说明 x的值与数组中的元素不重复,则此时 i的值等于 n。二、程序修改题(总题数:1,分数:2.00)2.下列给定程序中,函数 fun的功能是:传入一个整数 m,计算如下公式的值。 (分数:2.00)_正确答案:(正确答案:(1)t=10i; (2)ret
8、urn t;)解析:解析:(1)变量 t存放公式的和,通过循环语句进行复合运算,因此此处应改为 t=10i,注意此处应进行变量的类型转换。 (2)循环结束后应将和值返回给主函数。三、程序设计题(总题数:1,分数:2.00)3.编写函数 fun,其功能是:求 ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串“123412132”,输入字符为“1”,则输出 3。注意:部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。试题程序:#includestdlibh#includeconioh#includestdioh#def
9、2ne M 81int fun(char*ss,char c)void main() char aM,ch; system(“CLS“); printf(“nPlease enter a string:“); gets(a); printf(“nPlease enter a char:“); ch=getchar(); printf(“nThe number of the char is:dn“,fun(a,ch),(分数:2.00)_正确答案:(正确答案:int fun(char*ss,char c) int i=0; for(;*ss!=0;ss+) if(*ss=c) i+; *求出 ss所指字符串中指定字符的个数* return i; )解析:解析:从字符串中查找指定字符,需要使用循环判断结构,循环语句用来遍历字符串,循环条件为字符串没有结束,即当前字符不是0,判断语句用来判断当前字符是否为指定字符。最后返回指定字符的个数。