C语言期末复习试题.docx
《C语言期末复习试题.docx》由会员分享,可在线阅读,更多相关《C语言期末复习试题.docx(136页珍藏版)》请在冰点文库上搜索。
C语言期末复习试题
试卷编号:
10767
所属语言:
C语言
试卷方案:
TC_
试卷总分:
570分
共有题型:
1种
一、程序设计共57题(共计570分)
第1题(分)题号:
374难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数实现两个数据的交换,在主函数中输入任
意三个数据,调用函数对这三个数据从大到小排序。
------------------------------------------------*/
#include<>
voidwwjt();
voidswap(int*a,int*b)
{
/**********Program**********/
/**********End**********/
}
main()
{
intx,y,z;
scanf("%d%d%d",&x,&y,&z);
if(xif(xif(yprintf("%3d%3d%3d",x,y,z);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intm,n;
inti[2];
IN=fopen("","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(n=0;n<3;n++)
{
for(m=0;m<2;m++)
{
fscanf(IN,"%d",&i[m]);
}
swap(&i[0],&i[1]);
fprintf(OUT,"%d\n",i[0]);
fprintf(OUT,"%d\n",i[1]);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
intk;
k=*a;
*a=*b;
*b=k;
----------------------
第2题(分)题号:
381难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求一批数中小于平均值的数的个数。
------------------------------------------------*/
#include<>
voidwwjt();
intaverage_num(inta[],intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intn,a[100],i,num;
scanf("%d",&n);
for(i=0;iscanf("%d",&a[i]);
num=average_num(a,n);
printf("thenumis:
%d\n",num);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intn;
inti[10];
into;
IN=fopen("","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(n=0;n<5;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=average_num(i,5);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
答案:
----------------------
inti,sum=0,k=0;
doubleaverage;
for(i=0;isum=sum+a[i];
average=sum*n;
for(i=0;iif(average>a[i])k++;
return(k);
----------------------
第3题(分)题号:
406难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数fun求1000以内所有7的倍数之和。
------------------------------------------------*/
#defineN1000
#include<>
voidwwjt();
intfun(intm)
{
/**********Program**********/
/**********End**********/
}
voidmain()
{
intsum;
sum=fun(7);
printf("%d以内所有%d的倍数之和为:
%d\n",N,7,sum);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intn;
inti[10];
into;
OUT=fopen("","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
o=fun(6);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
答案:
----------------------
ints=0,i;
for(i=1;iif(i%m==0)
s+=i;
returns;
----------------------
第4题(分)题号:
324难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
能计算从1开始到n的自然数中偶数的平方的和,n由
键盘输入,并在main()函数中输出。
(n是偶数)
------------------------------------------------*/
#include<>
voidwwjt();
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%d\n",fun(m));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intt;
into;
intc;
IN=fopen("","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(c=1;c<=5;c++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
intsum,i;
sum=0;
for(i=2;i<=n;i=i+2)
{
sum=sum+i*i;}
return(sum);
----------------------
第5题(分)题号:
2难度:
中第1章
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:
写程序求1-3+5-7+…-99+101的值
要求:
使用程序中定义的变量
-------------------------------------------------------*/
#include""
voidwwjt();
ItMayBeChanged");
}
OUT=fopen("","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%i",&n);
fprintf(OUT,"%ld\n",fun(n));
}
fclose(IN);
fclose(OUT);
}
答案:
for(i=1;i<=n;i+=2)
{
s=s+i*f;
f=-f;
}
第6题(分)题号:
357难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
根据整型形参m,计算如下公式的值:
y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)
例如:
若m=9,则应输出:
------------------------------------------------*/
#include<>
voidwwjt();
doublefun(intm)
{
/**********Program**********/
/**********End**********/
}
main()
{
intn;
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresultis%1f\n",fun(n));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
inti;
intt;
doubleo;
IN=fopen("","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%f\n",o);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
doubley=0;
inti;
for(i=0;i<=m;i++)
{y+=(i+5);}
return(y);
----------------------
第7题(分)题号:
392难度:
中第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求一批数中最大值和最小值的积。
------------------------------------------------*/
#defineN30
#include""
#include<>
voidwwjt();
intmax_min(inta[],intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
inta[N],i,k;
for(i=0;ia[i]=random(51)+10;
for(i=0;i{
printf("%5d",a[i]);
if((i+1)%5==0)printf("\n");
}
k=max_min(a,N);
printf("theresultis:
%d\n",k);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intn;
inti[10];
into;
IN=fopen("","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=max_min(i,10);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
答案:
----------------------
inti,max,min;
max=min=a[0];
for(i=1;iif(a[i]>max)max=a[i];
elseif(a[i]return(max*min);
----------------------
第8题(分)题号:
342难度:
中第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出矩阵第一行与第三行元素之和,
并在fun()函数中输出。
------------------------------------------------*/
#include<>
voidwwjt();
voidfun(inta[3][3])
{
/**********Program**********/
/**********End**********/
}
main()
{
inti,j,s,a[3][3];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
s=fun(a);
printf("Sum=%d\n",s);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intm;
intn;
inti[3][3];
into;
IN=fopen("","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(m=0;m<3;m++)
{
for(n=0;n<3;n++)
fscanf(IN,"%d",&i[m][n]);
}
o=fun(i);
{
fprintf(OUT,"%d\n",o);
getch();
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
intsum;
inti,j;
sum=0;
for(i=0;i<3;i+=2)
for(j=0;j<3;j++)
sum=sum+a[i][j];
returnsum;
----------------------
第9题(分)题号:
364难度:
中第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求一个四位数的各位数字的立方和。
-----------------------------------------------*/
#include<>
voidwwjt();
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intk;
k=fun(1234);
printf("k=%d\n",k);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intiIN,iOUT,i;
IN=fopen("","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
intd,s=0;
while(n>0)
{d=n%10;
s+=d*d*d;
n/=10;
}
returns;
----------------------
第10题(分)题号:
502难度:
中第20章
#include<>
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:
用while语句求1~100的累计和。
-------------------------------------------------------*/
voidwwjt();
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
voidmain()
{
intsum=0;
sum=fun(100);
printf("sum=%d\n",sum);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
inti;
intiIN,iOUT;
IN=fopen("","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:
inti=1,sum=0;
while(i<=n)
{
sum=sum+i;
i++;
}
returnsum;
第11题(分)题号:
53难度:
中第1章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求一个四位数的各位数字的立方和
------------------------------------------------*/
#include<>
voidwwjt();
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intk;
k=fun(1234);
printf("k=%d\n",k);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intiIN,iOUT,i;
IN=f