国家二级C语言机试(操作题)模拟试卷271
程序填空题
1.给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdlib.h>
2 #include<stdio.h>
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;i<n,i++)
10 /*********found*********/
11 if(x==a[i])
12 【2】;
13 /*********found*********/
14 if(i==【3】)
15 {a[n]=x; n++;}
16 x=rand()%2 0;
17 }
18 }
19 main()
20 { int x[N]={0},i ;
21 fun(x);
22 printf(\\
(1)N或20
(2)break
(3)n
解析:填空1:变量n用于存储数组的下标,要通过while语句对数组进行赋值,数组的容量为20,因此循环条件应为n<20。
填空2:通过一个for循环判断x是否与数组中已存的元素重复,若重复则跳出for循环结束。
填空3:若for循环是由break语句结束的,则x与数组中的元素重复,此时i必然小于n;若for循环是因为循环变量i递增到某值,而不再满足循环条件结束的,说明x的值与数组中的元素不重复,则此时i的值等于n。
程序修改题
2.下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。
(1)t-=1.0/i;
(2)return t;
解析:(1)变量t存放公式的和,通过循环语句进行复合运算,因此此处应改为t-=1.0/i.,注意此处应进行变量的类型转换。
(2)循环结束后应将和值返回给主函数。
程序设计题
3.编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串“123412132”,输入字符为“1”,则输出3。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#def2ne M 81
int fun(char*ss,char c)
{
}
void main()
{
char a[M],ch;
system(\\
int fun(char*ss,char c)
{
int i=0;
for(;*ss!=’\0’;ss++)
if(*ss==c)
i++; /*求出ss所指字符串中指定字符的个数*/
return i;
}
解析:从字符串中查找指定字符,需要使用循环判断结构,循环语句用来遍历字符串,循环条件为字符串没有结束,即当前字符不是‘\0’,判断语句用来判断当前字符是否为指定字符。最后返回指定字符的个数。
本文档预览:3600字符,共2146字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载