c语言考精彩试题目2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【考试题目】
程序填空题
请补充main函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字
符及其后面的所有字符全部删除。

结果仍然保存在原串中。

例如,输入“abcdef”,指定字符为‘e’,则输出“abcd”。

注意:部分源程序已给出,并保存在考生文件夹下的blank1.c 文件中。

请勿改动主函数main和其他函数中的任何容,仅在main 函数的横线上填入所编写的若干表
达式或语句,并将横线去掉,同时确保答案与前后字符之间至少保留一个空格。

#include <stdio.h>
#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 <conio.h>
#include <stdio.h>
#include <math.h>
/**********************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("%f\n",fun(n));
}
程序设计题
编写函数fun(),它的功能
是:根据以下公式求p的值,结
果由函数值带回。

M与n为两个
正数且
要求m>n。

P=m!/(n!(m-n)!),例
如:m=12,n=8时,运行结果为
495.000000。

注意:部分源程序已给出,
并保存在考生文件夹下的
prog1.c 文件中。

请勿改动主函数main和其
他函数中的任何容,仅在函数
fun的花括号中填入所编写的若
干语
句,并将横线去掉。

#include <conio.h>
#include <stdio.h>
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=%f\n",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行return 第13行p;
【考试题目】
程序填空题
请补充函数fun(),该函数的功能是:把ASCII码为奇数的字符从字符串str中删除,结果仍然保存在字符串str中。

字符串str 从键盘输入,其长度作为参数传入函数fun()。

例如,输入“abcdef”,输出“bdf”。

注意:部分源程序已给出,并保存在考生文件夹下的blank1.c 文件中。

请勿改动主函数main和其他函数中的任何容,仅在函数fun的横线上填入所编写的若干表达
式或语句,并将横线去掉,同时确保答案与前后字符之间至少保留一个空格。

#include <stdio.h>
#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')
{
strlen++;
i++;
}
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 <conio.h>
#include <stdio.h>
int fun(float x[], int n)
/**********************found
***********************/
;
int j, c=0;float xa=0.0;
for (j=0; j<n; j++)
xa+=x[j]/n;
printf("ave=%f\n",xa);
for (j=0; j<n;j++)
if(x[j]>=xa)
c++;
/**********************found
***********************/
return xa;
}
main()
{float
x[100]={ 193.199,195.673,195.75
7,196.051,196.092,196.596,196.5
79,196.763};
printf("%d\n",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 <conio.h>
#include <stdio.h>
#include <string.h>
int fun(int score[],int m, int
below[])
{
int i,j=0;
float av=0.0;
for(i=0;i<m;i++)
av=av+score[i]/m;
for(i=0;i<m;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<n;i++)
printf("%d",below[i]);
}
【参考答案】
程序填空题:第7行i<n【n>i s[i] 】第9行s[i]%2==0 第12行s[j]='\0'【s[j]=0 】程序修改题:第5行{ 第14行c;
程序设计题:第11行if(score[i]<av)【if(av>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<stdio.h>
#include<conio.h>
main()
{
int n,m;
long sum;
______ ;
printf("\nInput n,m\n");
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 <conio.h>
#include <stdio.h>
int fun(int *x,int y)
{
int t;
/**********************found
***********************/
t=x;x=y;
/**********************found
***********************/
return y;
}
main()
{int a=3,b=8;
printf("%d %d\n ",a,b);
b=fun(&a,b);
printf("%d %d\n ",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 <conio.h>
#include <stdio.h>
#include <string.h>
int fun(int score[],int m, int up[])
{
int i,j=0;
float av=0.0;
for(i=0;i<m;i++)
av=av+score[i]/m;
for(i=0;i<m;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<n;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<score[i]) 】第12行up[j++]=score[i]; 第13行return 第13行j;
【考试题目】
程序填空题
请补充函数fun(),该函数的功能是:输出一个N×N矩阵,N由键盘输入,矩阵元素的
值为随机数,并计算出该矩阵四周边元素的平均值,结果由函数返回。

例如:当N=4时:
平均值为3.917。

注意:部分源程序已给出,
并保存在考生文件夹下的
blank1.c 文件中。

请勿改动主函数main和其他
函数中的任何容,仅在函数fun
的横线上填入所编写的若干表
达式或语句,并将横线去掉,同
时确保答案与前后字符之间至
少保留一个空格。

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#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<n;i++)
{
for(j=0;j<n;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.3f\n",s);
}
程序修改题
下列给定程序中,函数fun()
的功能是:先从键盘上输入一个
3行3列的矩阵的各个元素的
值,
然后输出主对角线元素之和。

请改正函数fun()中的错误,使它
能得出正确的结果。

注意:源程序保存在考生文
件夹下的modi1.c 文件中。

不要改动main函数,不得
增行或删行,也不得更改程序的
结构,注释语句(/**found**/)

方的第一条语句有错误。

#include <stdio.h>
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=%d\n",sum);
}
main()
{
fun();
}
程序设计题
请编写一个函数fun(),它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值
返回调用函数。

注意:部分源程序已给出,并保存在考生文件夹下的prog1.c 文件中。

请勿改动主函数main和其他函数中的任何容,仅在函数fun的花括号中填入所编写的若干语
句,并将横线去掉。

#define M 4
#include <stdio.h>
fun (int a[][M])
{
int i,j,max=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<M;j++)
______
______
______
}
main()
{
int
arr[2][M]={5,8,3,45,76,-4,12,82}; printf("max=%d\n",fun(arr)); }
【参考答案】
程序填空题:第18行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;
第11行scanf("%d",&a[i][j]);
程序设计题:第8行
if(max<a[i][j])【if(a[i][j]>max) 】
第9行max=a[i][j]; 第10
行return 第10行max;
【考试题目】
程序填空题
请补充函数fun(),该函数的
功能是:删除字符数组中小于等
于指定字符的字符,指定字符
从键盘输入,结果仍保存在原
数组中。

例如,输入“abcdefghij”,指定
字符为‘d’,则结果输出
“defghij”。

注意:部分源程序已给出,
并保存在考生文件夹下的
blank1.c 文件中。

请勿改动主函数main和其
他函数中的任何容,仅在fun函
数的横线上填入所编写的若干
表达式或语句,并将横线去掉,
同时确保答案与前后字符之间
至少保留一个空格。

#include <stdio.h>
#define N 80
void fun (char s[], char ch)
{
int i=0, j=0;
while(s[i])
{
if(s[i]<ch)
______ ;
else
{
______ ;
i++;
}
}
______ ;
}
main()
{
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 <stdio.h>
#include<conio.h>
/**********************found
***********************/
void fun(int x, int y)
{ int z;
z=x<y?x:y;
/**********************found ***********************/ return x;
}
main()
{int a,b,c;
scanf("%d,%d\n",&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<stdio.h>
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=%f\n ",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<stdio.h>
#include<conio.h>
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("\n\nThe string
is:\%s\n",str);
fun(str);
printf("\n\nThe string of
changing is:\%s\n",str);
printf("\n\nThe length of
changed string is:\%d\n",m);
}
程序修改题
下列给定程序中函数fun()
的功能是计算1/n!的值。

例如:给n输入5,则输出
0.008333。

请改正程序中的错误,使它能得
到正确结果。

注意:源程序保存在考生文
件夹下的modi1.c 文件中。

不要改动main函数,不得
增行或删行,也不得更改程序的
结构,注释语句(/**found**/)

方的第一条语句有错误。

#include <stdio.h>
#include <conio.h>
/**********************found ***********************/
int fun(int n)
{ double result =1.0;
if(n==0)
return 1.0;
while(n>1 && n <170)
/**********************found ***********************/
result*=n++;
result=1/result;
return result;
}
main()
{
int n;
printf("Input N:");
scanf("%d",&n);
printf("\n1/%d!=%lf\n",n,fun(n)); }
程序设计题
请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个非素数存入所指的数组中。

例如,若输入15,5,则应输出16,18,20,21,22。

注意:部分源程序已给出,并保存在考生文件夹下的prog1.c 文件中。

请勿改动主函数main和其他函数中的任何容,仅在函数fun的花括号中填入所编写的若干语
句,并将横线去掉。

#include <conio.h> #include <stdio.h>
void fun(int m, int k, int xx[])
{
int i,j,n;
for(i=m+1,n=0;n<k;i++)
for(j=2;j<i;j++)
if(i%j==0)
{
______
______
______
}
main()
{
int m,n,zz[1000];
printf("\nPlease enter two
integers: ");
scanf("%d%d",&m,&n);
fun(m, n, zz);
for(m=0;m<n;m++)
printf("%d ",zz[m]);
printf("\n ");
}
【参考答案】
程序填空题:第12行
s[j++]=*(p+i) 第14行i++
【++i i+=1 i=i+1 】第17
行m=j
程序修改题:第4行double
【float 】第10行
result*=n--;
程序设计题:第10行
xx[n++]=i; 第11行break;
第12行}
【考试题目】
程序填空题
请补充main函数,该函数的
功能是:输出一个N×N矩阵,
要求非对角线上的元素赋值为
0,对
角线元素赋值为1。

注意:部分源程序已给出,
并保存在考生文件夹下的
blank1.c 文件中。

请勿改动主函数main和其
他函数中的任何容,仅在函数
fun的横线上填入所编写的若干
表达
式或语句,并将横线去掉,同时
确保答案与前后字符之间至少
保留一个空格。

#include<stdio.h>
#define N 10
main()
{
int bb[N][N];
int i,j,n;
printf(" \nInput n:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
______ ;
if(i==j)
bb[i][j]= ______ ;
if( ______ )
bb[i][j]=1;
}
printf(" \n***** the result
***** \n");
for(i=0;i<n;i++)
{
printf(" \n\n");
for(j=0;j<n;j++)
printf("%4d",bb[i][j]);
}
}
程序修改题
下列给定程序中fun()函数
的功能是:将n个无序整数从小
到大排序。

请改正程序中的错误,使它能得
出正确的结果。

注意:源程序保存在考生文件夹下的modi1.c 文件中。

不要改动main函数,不得增行或删行,也不得更改程序的结构,注释语句(/**found**/)下
方的第一条语句有错误。

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
fun(int n,int *a)
{ int i,j,p,t;
for (j=0;j<n-1;j++)
{ p=j;
/**********************found ***********************/
for(i=j+1;i<n-1;i++)
if (a[p]>a[i])
/**********************found ***********************/
t=i;
if(p!=j)
{t=a[j];a[j]=a[p];a[p]=t;}
}
}
putarr( int n,int *z)
{int i;
for (i=1;i<=n;i++,z++)
{ printf("%4d",*z);
if (!(i%10) ) printf("\n");
} printf("\n");
}
main()
{int
aa[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;
printf("\n\nBefore sorting %d numbers:\n",n); putarr(n,aa);
fun(n,aa);
printf("\nAfter sorting %d numbers:\n",n);putarr(n,aa);
}
程序设计题
请编写函数fun(),函数的功
能是求出二维数组周边元素之
和,作为函数值返回。

二维数组

的值在主函数中赋予。

例如:若二维数组中的值为
1 3 5 7 9
2 9 9 9 4
6 9 9 9 8
1 3 5 7 0
则函数值为61。

注意:部分源程序已给出,
并保存在考生文件夹下的
prog1.c 文件中。

请勿改动主函数main和其
他函数中的任何容,仅在函数
fun的花括号中填入所编写的若
干语
句,并将横线去掉。

#include<conio.h>
#include<stdio.h>
#define M 4
#define N 5
int fun( int a [M][N])
{
int i,j,sum=0;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
if(i==0||i==M-1||j==0||j==N-1)
______
______
}
main()
{
int
aa[M][N]={{1,3,5,7,9},{2,9,9,9,4
},{6,9,9,9,8},{1,3,5,7,0}};
int i, j, y;
printf ("The original data is :\n
");
for(i=0; i<M;i++)
{for (j=0; j<N;j++)
printf("%6d
",aa[i][j]);
printf("\n ");
}
y=fun(aa);
printf("\nThe sun: %d\n ",y);
printf("\n ");
}
【参考答案】
程序填空题:第12行
bb[i][j]=0 第14行 1 第
15行j==n-1-i【i==n-1-j
i+j==n-1 i+j+1==n 】
程序修改题:第9行
for(i=j+1;i<n;i++) 第12行
p=i;
程序设计题:第11行
sum=sum+a[i][j];
【sum+=a[i][j]; 】第12行
return 第12行sum;
【考试题目】
程序填空题
数组str全由大小写字母字符
组成。

请补充函数fun(),该函数
的功能是:把str中的字母转
换成紧接着的下一个字母,如果
原来的字母为‘z’或‘Z’,则
相应地转换成‘a’或‘A’,
结果仍保存在原数组中。

例如,输入“StudentZz”,则输
出“TuvefouAa”。

注意:部分源程序已给出,
并保存在考生文件夹下的
blank1.c 文件中。

请勿改动主函数main和其
他函数中的任何容,仅在函数
fun的横线上填入所编写的若干

达式或语句,并将横线去掉,同时确保答案与前后字符之间至少保留一个空格。

#include <stdio.h>
#define N 80
void fun(char s[])
{
int i;
for(i=0; ______ ; i++) {
if(s[i]=='z'||s[i]=='Z')
s[i]-= ______ ;
else
s[i]+= ______ ;
}
}
main()
{
char str[N];
printf("\n Input a string:\n");
gets(str);
printf("\n*** original string ***\n");
puts(str);
fun(str);
printf("\n*** new string ***\n");
puts (str);
}
程序修改题
下列给定程序中,函数fun()的功能是:实现两个整数的交换。

例如给a和b分别输入60和65,
输出为:a=65 b=60
请改正程序中的错误,使它能得出正确的结果。

注意:源程序保存在考生文件夹下的modi1.c 文件中。

不要改动main函数,不得
增行或删行,也不得更改程序的
结构,注释语句(/**found**/)

方的第一条语句有错误。

#include<stdio.h>
#include <conio.h>
/**********************found
***********************/
void fun(int a,b)
{ int t;
/**********************found
***********************/
t=b;b=a;a=t;
}
main()
{ int a,b;
printf("Enter a, b: ");
scanf("%d%d",&a,&b);
fun(&a, &b);
printf("a=%d b=%d\n ", a,b);
}
程序设计题
编写函数int fun(int lim, int
aa[MAX]),该函数的功能是求出
小于或等于lim的所有素数并
放在aa数组中,该函数返回所
求出的素数的个数。

注意:部分源程序已给出,
并保存在考生文件夹下的
prog1.c 文件中。

请勿改动主函数main和其
他函数中的任何容,仅在函数
fun的花括号中填入所编写的若
干语
句,并将横线去掉。

#include<conio.h>
#include<stdio.h>
#define MAX 100
int fun(int lim, int aa[MAX])
{
int i,j,k=0;
for(i=2;i<=lim;i++)
{
for(j=2;j<i;j++)
if(i%j==0) break;
if(j>=i)
______
______
______
}
main()
{
int limit,i,sum;
int aa[MAX];
printf("input a integer:");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0)
printf("\n ");
printf("%5d ",aa[i]);
}
}
【参考答案】
程序填空题:第6行s[i]!='\0'
【s[i] s[i]!=0 】第9行
25 第11行 1
程序修改题:第4行*a,int
第4行*b) 第7行
t=*b;*b=*a;*a=t;
程序设计题:第12行
aa[k++]=i; 第13行} 第
14行return 第14行k;
【考试题目】
程序填空题
数组str全由大小写字母字符
组成。

请补充函数fun(),该函数
的功能是:把str中的字母转
换成紧接着的下一个字母,如果
原来的字母为‘z’或‘Z’,则
相应地转换成‘a’或‘A’,
结果仍保存在原数组中。

例如,输入“StudentZz”,则输出“TuvefouAa”。

注意:部分源程序已给出,并保存在考生文件夹下的blank1.c 文件中。

请勿改动主函数main和其他函数中的任何容,仅在函数fun的横线上填入所编写的若干表
达式或语句,并将横线去掉,同时确保答案与前后字符之间至少保留一个空格。

#include <stdio.h>
#define N 80
void fun(char s[])
{
int i;
for(i=0; ______ ; i++) {
if(s[i]=='z'||s[i]=='Z')
s[i]-= ______ ;
else
s[i]+= ______ ;
}
}
main()
{
char str[N];
printf("\n Input a string:\n");
gets(str);
printf("\n*** original string ***\n");
puts(str);
fun(str);
printf("\n*** new string ***\n");
puts (str);
}
程序修改题
下列给定程序中,函数fun()
的功能是:实现两个整数的交
换。

例如给a和b分别输入60
和65,
输出为:a=65 b=60
请改正程序中的错误,使它能得
出正确的结果。

注意:源程序保存在考生文
件夹下的modi1.c 文件中。

不要改动main函数,不得
增行或删行,也不得更改程序的
结构,注释语句(/**found**/)

方的第一条语句有错误。

#include<stdio.h>
#include <conio.h>
/**********************found
***********************/
void fun(int a,b)
{ int t;
/**********************found
***********************/
t=b;b=a;a=t;
}
main()
{ int a,b;
printf("Enter a, b: ");
scanf("%d%d",&a,&b);
fun(&a, &b);
printf("a=%d b=%d\n ", a,b);
}
程序设计题
编写函数int fun(int lim, int
aa[MAX]),该函数的功能是求出
小于或等于lim的所有素数并
放在aa数组中,该函数返回所
求出的素数的个数。

注意:部分源程序已给出,
并保存在考生文件夹下的
prog1.c 文件中。

请勿改动主函数main和其
他函数中的任何容,仅在函数
fun的花括号中填入所编写的若
干语
句,并将横线去掉。

#include<conio.h>
#include<stdio.h>
#define MAX 100
int fun(int lim, int aa[MAX])
{
int i,j,k=0;
for(i=2;i<=lim;i++)
{
for(j=2;j<i;j++)
if(i%j==0) break;
if(j>=i)
______
______
______
}
main()
{
int limit,i,sum;
int aa[MAX];
printf("input a integer:");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0)
printf("\n ");
printf("%5d ",aa[i]);
}
}
【参考答案】
程序填空题:第6行s[i]!='\0'
【s[i] s[i]!=0 】第9行
25 第11行 1
程序修改题:第4行*a,int
第4行*b) 第7行
t=*b;*b=*a;*a=t;
程序设计题:第12行
aa[k++]=i; 第13行} 第
14行return 第14行k;
【考试题目】
程序填空题
请补充main函数,该函数的功能是:打印出满足个位的数字、十位上的数字和百位上的数字都相等的所有三位数。

本题的结果为:111 222 333 444 555 666 777 888 999。

注意:部分源程序已给出,并保存在考生文件夹下的blank1.c 文件中。

请勿改动主函数main和其他函数中的任何容,仅在函数main 的横线上填入所编写的若干表达式或语句,并将横线去掉,同时确保答案与前后字符之间至少保留一个空格。

#include <stdio.h>
main()
{
int g, s, b;
for(g=1; g<10; g++)
for (s=1; s<10; s++)
for(b=1; b<10; b++)
{
if( ______ )
printf("%5d",
______ );
}
}
程序修改题
下列给定程序中,函数fun()的功能是:根据整型形参n,计算如下公式的值。

A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=1/(1+A(n-1))
例如,若n=10,则应输出0.617977。

请改正程序中的错误,使它能得出正确的结果。

注意:源程序保存在考生文件
夹下的modi1.c 文件中。

不要改动main函数,不得
增行或删行,也不得更改程序的
结构,注释语句(/**found**/)

方的第一条语句有错误。

#include <conio.h>
#include <stdio.h>
/**********************found
***********************/
int fun(int n)
{ float A=1;int i;
/**********************found
***********************/
for(i=2;i<n;i++)
A=1.0/(1+A);
return A;
}
main()
{ int n;
printf("\nPlease enter n: ");
scanf("%d",&n);
printf("A%d=%lf\n",n,fun(n));
}
程序设计题
请编写一个函数void fun(int
m, int k, int xx[]),该函数的功能
是:将大于整数m且紧靠
m的k个素数存入所指的数组
中。

例如,若输入17,5,则应输出
19,23,29,31,37。

注意:部分源程序已给出,
并保存在考生文件夹下的
prog1.c 文件中。

请勿改动主函数main和其
他函数中的任何容,仅在函数
fun的花括号中填入所编写的若
干语
句,并将横线去掉。

#include <conio.h>
#include <stdio.h>
void fun(int m, int k, int xx[])
{
int i,j,n;
for(i=m+1,n=0;n<k;i++)
{
for(j=2;j<i;j++)
if(i%j==0)
______
______
______
______
}
main()
{
int m,n,zz[1000];
printf("\nPlease enter two
integers: ");
scanf("%d%d",&m,&n);
fun(m, n, zz);
for(m=0;m<n;m++)
printf("%d ",zz[m]);
printf("\n ");
}
【参考答案】
程序填空题:第9行
g==s&&s==b【g==b&&s==b
g==s&&g==b 】第10行
g+s*10+b*100【s*10+g+b*100
g+b*100+s*10
b*100+s*10+g 】
程序修改题:第4行float
【double 】第7行
for(i=2;i<=n;i++)
程序设计题:第10行break;
第11行if(j>=i)【if(i<=j) 】
第12行xx[n++]=i; 第13
行}
【考试题目】
程序填空题
请补充main函数,该函数
的功能是:打印出满足个位的数
字、十位上的数字和百位上的数
字都相等的所有三位数。

本题的结果为:111 222 333 444 555 666 777 888 999。

注意:部分源程序已给出,并保存在考生文件夹下的blank1.c 文件中。

请勿改动主函数main和其他函数中的任何容,仅在函数main 的横线上填入所编写的若干表达式或语句,并将横线去掉,同时确保答案与前后字符之间至少保留一个空格。

#include <stdio.h>
main()
{
int g, s, b;
for(g=1; g<10; g++)
for (s=1; s<10; s++)
for(b=1; b<10; b++)
{
if( ______ )
printf("%5d",
______ );
}
}
程序修改题
下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值。

T=1-1/(2×2)-1/(3×3)-…-1/(m×m) 请改正函数fun()中的错误,使它能得出正确的结果。

注意:源程序保存在考生文件夹下的modi1.c 文件中。

不要改动main函数,不得增行或删行,也不得更改程序的结构,注释语句(/**found**/)下
方的第一条语句有错误。

#include <conio.h>
#include <stdio.h>
double fun(int m)
{ double y=1.0;
int i;
/**********************found
***********************/
for(i=2;i<m;i++)
/**********************found
***********************/
y-=1/(i*i);
return(y);
}
main()
{ int n=5;
printf("\nThe result is %1f\n",
fun(n));
}
程序设计题
假定输入的字符串中只包
含字母和*号。

请编写函数fun(),
它的功能是:将字符串尾部的*

全部删除,前面和中间的*号不
删除。

若字符串中的容为
****A*BC*DEF*G*******,删
除后,字符串中的容则应当是
****A*BC*DEF*G。

注意:部分源程序已给出,
并保存在考生文件夹下的
prog1.c 文件中。

请勿改动主函数main和其
他函数中的任何容,仅在函数
fun的花括号中填入所编写的若
干语
句,并将横线去掉。

#include <stdio.h>
#include <conio.h>
void fun (char *a)
{
while(*a!='\0')
a++;
a--;
______
______
______
}
main()
{
char s[81];
printf("Enter a string :\n");
gets(s);
fun(s);
printf("The string after
deleted:\n");
puts(s);
}
【参考答案】
程序填空题:第9行
g==s&&s==b【g==b&&s==b
g==s&&g==b 】第10行
g+s*10+b*100【s*10+g+b*100
g+b*100+s*10
b*100+s*10+g 】
程序修改题:第7行
for(i=2;i<=m;i++) 第9行
y-=1.0/(i*i);
程序设计题:第8行
while(*a=='*') 第9行a--;
【--a; a-=1; a=a-1; 】第
10行*(a+1)='\0';
【*(a+1)=0; 】。

相关文档
最新文档