admin 管理员组文章数量: 1184232
2024年4月22日发(作者:linux免费的虚拟机)
【考试题目】
程序填空题
请补充main函数,该函数
的功能是:从键盘输入一个字符
串及一个指定字符,然后把这个
字
符及其后面的所有字符全部删
除。结果仍然保存在原串中。
例如,输入“abcdef”,指定字符
为‘e’,则输出“abcd”。
注意:部分源程序已给出,
并保存在考生文件夹下的
blank1.c 文件中。
请勿改动主函数main和其
他函数中的任何内容,仅在main
函数的横线上填入所编写的若
干表
达式或语句,并将横线去掉,同
时确保答案与前后字符之间至
少保留一个空格。
#include
#define N 80
main()
{
int i=0;
char str[N];
char ch;
printf("n Input a string:n");
gets(str);
printf("n Input a charator;n");
scanf("%c", &ch);
while(str[i]!='0')
{
if(str[i]==ch)
______
______ ;
}
str[i]= ______ ;
printf("n*** display string
***n");
puts(str);
}
程序修改题
已知一个数列从0项开始
的前3项:0,0,1,以后的各
项都是其相邻的前3项之和。下
列给定的
程序中,函数fun()的功能是:计
算并输出该数列前n项的平方根
之和sum。n的值通过形参传入。
例如,当n=10时,程序的输出
结果应为23.197745。
请改正程序中的错误,使它能得
出正确的结果。
注意:源程序保存在考生文
件夹下的 modi1.c 文件中。
不要改动main函数,不得
增行或删行,也不得更改程序的
结构,注释语句(/**found**/)
下
方的第一条语句有错误。
#include
#include
#include
/**********************found
***********************/
fun(int n)
{double sum, s0, s1, s2, s; int k;
sum=1.0;
if (n<=2) sum=0.0;
s0=0.0; s1=0.0; s2=1.0;
for (k=4;k<=n;k++)
{ s=s0+s1+s2;
sum+=sqrt(s);
s0=s1;s1=s2;s2=s;
}
/**********************found
***********************/
return sum
}
main()
{int n;
printf("Input N=");
scanf("%d",&n);
printf("%fn",fun(n));
}
程序设计题
编写函数fun(),它的功能
是:根据以下公式求p的值,结
果由函数值带回。M与n为两个
正数且
要求m>n。P=m!/(n!(m-n)!),例
如:m=12,n=8时,运行结果为
495.000000。
注意:部分源程序已给出,
并保存在考生文件夹下的
prog1.c 文件中。
请勿改动主函数main和其
他函数中的任何内容,仅在函数
fun的花括号中填入所编写的若
干语
句,并将横线去掉。
#include
#include
float fun (int m, int n)
{
int i;
double p=1.0;
for(i=1;i<=m;i++)
p=p*i;
for(i=1;i<=n;i++)
______
______
______
______
}
main ()
{
printf ("p=%fn",fun (12,8) ) ;
}
【参考答案】
程序填空题:第15行 break;
第16行 i++【 ++i i+=1
i=i+1 】 第18行 '0'【 0 】
程序修改题:第5行 double
第16行 sum;
程序设计题:第10行 p=p/i;
【 p/=i; 】 第11行
for(i=1;i<=m-n;i++) 第12行
p=p/i;【 p/=i; 】 第13行
{
strlen++;
i++;
/**********************found
***********************/
return xa;
return 第13行 p;
【考试题目】
程序填空题
请补充函数fun(),该函数的功
能是:把ASCII码为奇数的字符
从字符串str中删除,结果仍然
保存在字符串str中。字符串str
从键盘输入,其长度作为参数传
入函数fun()。
例如,输入“abcdef”,输出“bdf”。
注意:部分源程序已给出,
并保存在考生文件夹下的
blank1.c 文件中。
请勿改动主函数main和其
他函数中的任何内容,仅在函数
fun的横线上填入所编写的若干
表达
式或语句,并将横线去掉,同时
确保答案与前后字符之间至少
保留一个空格。
#include
#define N 80
void fun(char s[],int n)
{
int i, j;
j=0;
for(i=0; ______ ;i++)
{
if( ______ )
s[j++]=s[i];
}
______ ;
}
main()
{
int i=0, strlen=0;
char str[N];
printf("nInput a string:n");
gets(str);
while(str[i]!='0')
}
fun(str, strlen);
printf("n*** display string
***n");
puts(str);
}
程序修改题
下列给定程序中,函数fun()
的功能是:给定n个实数,输出
平均值,并统计平均值以上(含平
均值)的实数个数。例如,n=8时,
输入193.199,195.673,195.757,
196.051,196.092,196.596,
196.579,196.763,所得平均值
为195.838745,在平均值以上的
实数个数应为5。
请改正程序中的错误,使它能得
出正确的结果。
注意:源程序保存在考生文
件夹下的 modi1.c 文件中。
不要改动main函数,不得
增行或删行,也不得更改程序的
结构,注释语句(/**found**/)
下
方的第一条语句有错误。
#include
#include
int fun(float x[], int n)
/**********************found
***********************/
;
int j, c=0;float xa=0.0;
for (j=0; j xa+=x[j]/n; printf("ave=%fn",xa); for (j=0; j if(x[j]>=xa) c++; } main() {float x[100]={ 193.199,195.673,195.75 7,196.051,196.092,196.596,196.5 79,196.763}; printf("%dn",fun(x,8)); } 程序设计题 m个人的成绩存放在score 数组中,请编写函数fun(),它的 功能是:将低于平均分的人数作 为 函数值返回,将低于平均分的分 数放在below所指的数组中。 例如,当score数组中的数据为 10,20,30,40,50,60,70, 80,90时,函数返回的人数应该 是 4,below中的数据应为10,20, 30,40。 注意:部分源程序已给出, 并保存在考生文件夹下的 prog1.c 文件中。 请勿改动主函数main和其 他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若 干语 句,并将横线去掉。 #include #include #include int fun(int score[],int m, int below[]) { int i,j=0; float av=0.0; for(i=0;i av=av+score[i]/m; for(i=0;i ______ ______ ______ } main() { int i, n, below[9]; int score[9]={10,20,30,40,50,60,70,8 0,90}; n=fun(score, 9, below); printf("nBelow the average score are: "); for(i=0;i printf("%d",below[i]); } 【参考答案】 程序填空题:第7行 i s[i] 】 第9行 s[i]%2==0 第12行 s[j]='0'【 s[j]=0 】 程序修改题:第5行 { 第 14行 c; 程序设计题:第11行 if(score[i] 第12行 below[j++]=score[i]; 第13行 return 第13行 j; 【考试题目】 程序填空题 请补充main函数,该函数的 功能是:计算两个自然数n和 m(m<10000)之间所有数的和(n 和m从 键盘输入)。 例如:当n=1,m=100时, sum=5050;当n=100,m=1000 时,sum=495550。 注意:部分源程序已给出, 并保存在考生文件夹下的 blank1.c 文件中。 请勿改动主函数main和其 他函数中的任何内容,仅在main 函数的横线上填入所编写的若 干表 达式或语句,并将横线去掉,同 时确保答案与前后字符之间至 少保留一个空格。 #include #include main() { int n,m; long sum; ______ ; printf("nInput n,mn"); scanf("%d,%d",&n,&m); while(n<=m) { ______ ; n++; } printf("sum= ______ n",sum); } 程序修改题 下列给定程序中,函数fun() 的功能是:通过某种方式实现两 个变量值的交换,规定不允许增 加语句和表达式。例如变量a中 的值原为8,b中的值原为3,程 序运行后a中的值为3,b中的 值为8。 请改正程序中的错误,使它能得 出正确的结果。 注意:源程序保存在考生文 件夹下的 modi1.c 文件中。 不要改动main函数,不得 增行或删行,也不得更改程序的 结构,注释语句(/**found**/) 下 方的第一条语句有错误。 #include #include int fun(int *x,int y) { int t; /**********************found ***********************/ t=x;x=y; /**********************found ***********************/ return y; } main() {int a=3,b=8; printf("%d %dn ",a,b); b=fun(&a,b); printf("%d %dn ",a,b); } 程序设计题 m个人的成绩存放在score 数组中,请编写函数fun(),它的 功能是:将高于平均分的人数作 为 函数值返回,将高于平均分的分 数放在up所指的数组中。 例如,当score数组中的数据为 24,35,88,76,90,54,59, 66,96时,函数返回的人数应该 是5,up中的数据应为88,76, 90,66,96。 注意:部分源程序已给出, 并保存在考生文件夹下的 prog1.c 文件中。 请勿改动主函数main和其 他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若 干语 句,并将横线去掉。 #include #include #include int fun(int score[],int m, int up[]) { int i,j=0; float av=0.0; for(i=0;i av=av+score[i]/m; for(i=0;i ______ ______ ______ } main() { int i, n, up[9]; int score[9]={24,35,88,76,90,54,59,6 6,96}; n=fun(score, 9, up); printf("nup to the average score are: "); for(i=0;i printf("%d ",up[i]); } 【参考答案】 程序填空题:第7行 sum=0 第12行 sum+=n 【 sum=sum+n 】 第15 行 %ld 程序修改题:第7行 t=*x;*x=y; 第9行 t; 程序设计题:第11行 if(score[i]>av)【 if(av 第12行 up[j++]=score[i]; 第13行 return 第13行 j; 【考试题目】 程序填空题 请补充函数fun(),该函数的 功能是:输出一个N×N矩阵, N由键盘输入,矩阵元素的 值为随机数,并计算出该矩阵四 周边元素的平均值,结果由函数 返回。例如:当N=4时: 平均值为3.917。 注意:部分源程序已给出, 并保存在考生文件夹下的 blank1.c 文件中。 请勿改动主函数main和其他 函数中的任何内容,仅在函数 fun的横线上填入所编写的若干 表 达式或语句,并将横线去掉,同 时确保答案与前后字符之间至 少保留一个空格。 #include #include #include #define N 20 double fun(int a[][N],int n) { int i,j; int k; double s=0.0; double aver=0.0; printf("***** The array *****n"); for(i=0;i { for(j=0;j { a[i][j]=rand()%10; printf("%4d",a[i][j]); if( ______ ) s+=a[i][j]; } printf("n"); } k= ______ ; aver= ______ ; return aver; } main() { int a[N][N]; int n; double s; printf("***** Input the dimension of array N*****n"); scanf("%d",&n); s=fun(a,n); printf("***** THE RESULT *****n"); printf("The average is %2.3fn",s); } 程序修改题 下列给定程序中,函数fun() 的功能是:先从键盘上输入一个 3行3列的矩阵的各个元素的 值, 然后输出主对角线元素之和。 请改正函数fun()中的错误,使它 能得出正确的结果。 注意:源程序保存在考生文 件夹下的 modi1.c 文件中。 不要改动main函数,不得 增行或删行,也不得更改程序的 结构,注释语句(/**found**/) 下 方的第一条语句有错误。 #include int fun() { int a[3][3],sum; int i,j; /**********************found ***********************/ sum=1; for (i=0;i<3;i++) { for (j=0;j<3;j++) /**********************found ***********************/ scanf("%d",a[i][j]); } for(i=0;i<3;i++) sum=sum+a[i][i]; printf("Sum=%dn",sum); } main() { fun(); } 程序设计题 i==0||i==n-1||j==0||j==n-1 【 i==0||j==0||i==n-1||j==n-1 22 】 第23行 4*n-4 第 24行 s/k 程序修改题:第7行 sum=0; 程序设计题:第8行 { ______ ; i++; } } } main() 第11行 scanf("%d",&a[i][j]); ______ ; if(maxmax) 】 请编写一个函数fun(),它的 功能是:求出一个2×M整型二 维数组中最大元素的值,并将此 值 返回调用函数。 注意:部分源程序已给出, 并保存在考生文件夹下的 prog1.c 文件中。 请勿改动主函数main和其 他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若 干语 句,并将横线去掉。 #define M 4 #include fun (int a[][M]) { int i,j,max=a[0][0]; for(i=0;i<2;i++) for(j=0;j ______ ______ ______ } main() { int arr[2][M]={5,8,3,45,76,-4,12,82}; printf("max=%dn",fun(arr)); } 【参考答案】 程序填空题:第18行 第9行 max=a[i][j]; 第10 行 return 第10行 max; 【考试题目】 程序填空题 请补充函数fun(),该函数的 功能是:删除字符数组中小于等 于指定字符的字符,指定字符 从键盘输入,结果仍保存在原 数组中。 例如,输入“abcdefghij”,指定 字符为‘d’,则结果输出 “defghij”。 注意:部分源程序已给出, 并保存在考生文件夹下的 blank1.c 文件中。 请勿改动主函数main和其 他函数中的任何内容,仅在fun 函数的横线上填入所编写的若 干 表达式或语句,并将横线去掉, 同时确保答案与前后字符之间 至少保留一个空格。 #include #define N 80 void fun (char s[], char ch) { int i=0, j=0; while(s[i]) { if(s[i] ______ ; else { char str[N],ch; printf("n Input a string:n"); gets(str); printf("n*** original string ***n"); puts(str); printf("n Input a character:n"); scanf("%c", &ch); fun(str, ch); printf("n*** new string ***n"); puts(str); } 程序修改题 给定程序中,函数fun()的功 能是:求输入的两个数中较小的 数。 例如:输入5 10,结果为min is 5。 请改正fun()程序中的错误,使它 能得出正确的结果。 注意:源程序保存在考生文 件夹下的 modi1.c 文件中。 不要改动main函数,不得 增行或删行,也不得更改程序的 结构,注释语句(/**found**/) 下 方的第一条语句有错误。 #include #include /**********************found ***********************/ void fun(int x, int y) { int z; z=x /**********************found ***********************/ return x; } main() {int a,b,c; scanf("%d,%dn",&a,&b); c=fun(a,b); printf("min is %d",c); } 程序设计题 请编写函数fun(),其功能 是:计算并输出下列多项式值。 S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1) -1/2n) 例如,若主函数从键盘给n输入 8后,则输出为S=0.662872。 注意:部分源程序已给出, 并保存在考生文件夹下的 prog1.c 文件中。 请勿改动主函数main和其 他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若 干语 句,并将横线去掉。 #include double fun(int n) { int i; double s=0.0; for(i=1;i<=n;i++) ______ ______ } main() { int n; double s; printf("nInput n: "); scanf("%d",&n); s=fun(n); printf("ns=%fn ",s); } 【参考答案】 程序填空题:第9行 i++【 ++i i+=1 i=i+1 】 第12行 s[j++]=s[i] 第16行 s[j]='0' 【 s[j]=0 】 程序修改题:第4行 int 第 8行 z; 程序设计题:第7行 s=s+(1.0/(2*i-1)-1.0/(2*i)); 【 s+=(1.0/(2*i-1)-1.0/(2*i)); s+=1.0/(2*i-1)-1.0/(2*i); s=s+1.0/(2*i-1)-1.0/(2*i); 】 第 8行 return 第8行 s; 【考试题目】 程序填空题 请补充函数fun(),该函数的 功能是:只保留字符串中的大写 字母,删除其他字符,结果 仍保存在原来的字符串中,由全 局变量m对删除后字符串的长 度进行保存。 注意:部分源程序已给出, 并保存在考生文件夹下的 blank1.c 文件中。 请勿改动主函数main和其他 函数中的任何内容,仅在函数 fun的横线上填入所编写的若干 表 达式或语句,并将横线去掉,同 时确保答案与前后字符之间至 少保留一个空格。 #include #include int m; void fun(char *s) { int i=0,j=0; char *p=s; while(*(p+i)) { if(*(p+i)>='A'&&*(p+i)<='Z') { ______ ; } ______ ; } s[j]='0'; ______ ; } main() { char str[80]; printf("nEnter a string:"); gets(str); printf("nnThe string is:%sn",str); fun(str); printf("nnThe string of changing is:%sn",str); printf("nnThe length of changed string is:%dn",m); } 程序修改题 下列给定程序中函数fun() 的功能是计算1/n!的值。 例如:给n输入5,则输出 0.008333。 请改正程序中的错误,使它能得 到正确结果。 注意:源程序保存在考生文 件夹下的 modi1.c 文件中。 不要改动main函数,不得 增行或删行,也不得更改程序的 结构,注释语句(/**found**/)
版权声明:本文标题:c语言考试题目2 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713727746a648766.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论