C语言期末复习试题.docx

上传人:b****3 文档编号:27322235 上传时间:2023-06-29 格式:DOCX 页数:136 大小:32.70KB
下载 相关 举报
C语言期末复习试题.docx_第1页
第1页 / 共136页
C语言期末复习试题.docx_第2页
第2页 / 共136页
C语言期末复习试题.docx_第3页
第3页 / 共136页
C语言期末复习试题.docx_第4页
第4页 / 共136页
C语言期末复习试题.docx_第5页
第5页 / 共136页
点击查看更多>>
下载资源
资源描述

C语言期末复习试题.docx

《C语言期末复习试题.docx》由会员分享,可在线阅读,更多相关《C语言期末复习试题.docx(136页珍藏版)》请在冰豆网上搜索。

C语言期末复习试题.docx

C语言期末复习试题

试卷编号:

10767

所属语言:

C语言

试卷方案:

TC_150********4

试卷总分:

570分

共有题型:

1种

 

一、程序设计共57题(共计570分)

第1题(10.0分)题号:

374难度:

易第2章

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

编写函数实现两个数据的交换,在主函数中输入任

意三个数据,调用函数对这三个数据从大到小排序。

------------------------------------------------*/

#include

voidwwjt();

voidswap(int*a,int*b)

{

/**********Program**********/

/**********End**********/

}

main()

{

intx,y,z;

scanf("%d%d%d",&x,&y,&z);

if(x

if(x

if(y

printf("%3d%3d%3d",x,y,z);

wwjt();

}

voidwwjt()

{

FILE*IN,*OUT;

intm,n;

inti[2];

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","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题(10.0分)题号:

381难度:

易第2章

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

求一批数中小于平均值的数的个数。

------------------------------------------------*/

#include

voidwwjt();

intaverage_num(inta[],intn)

{

/**********Program**********/

/**********End**********/

}

main()

{

intn,a[100],i,num;

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

num=average_num(a,n);

printf("thenumis:

%d\n",num);

wwjt();

}

voidwwjt()

{

FILE*IN,*OUT;

intn;

inti[10];

into;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","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;i

sum=sum+a[i];

average=sum*1.0/n;

for(i=0;i

if(average>a[i])k++;

return(k);

----------------------

第3题(10.0分)题号:

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("out.dat","w");

if(OUT==NULL)

{

printf("WriteFILEError");

}

o=fun(6);

fprintf(OUT,"%d\n",o);

fclose(IN);

fclose(OUT);

}

答案:

----------------------

ints=0,i;

for(i=1;i

if(i%m==0)

s+=i;

returns;

----------------------

第4题(10.0分)题号:

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("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","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题(10.0分)题号:

2难度:

中第1章

/*-------------------------------------------------------

【程序设计】

---------------------------------------------------------

题目:

写程序求1-3+5-7+…-99+101的值

要求:

使用程序中定义的变量

-------------------------------------------------------*/

#include"stdio.h"

voidwwjt();

//函数功能:

求1-3+5-7+…-+n的值

intfun(intn)

{

inti,s=0,f=1;//i定义为循环变量,s为1-3+5-7+…-n的值

/**********Program**********/

 

/**********End**********/

returns;

}

main()

{

printf("%d",fun(101));

wwjt();

}

 

voidwwjt()

{

FILE*IN,*OUT;

inti,n;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

}

OUT=fopen("out.dat","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题(10.0分)题号:

357难度:

易第2章

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

根据整型形参m,计算如下公式的值:

y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)

例如:

若m=9,则应输出:

1.168229

------------------------------------------------*/

#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("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","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+=1.0/(i+5);}

return(y);

----------------------

第7题(10.0分)题号:

392难度:

中第2章

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

求一批数中最大值和最小值的积。

------------------------------------------------*/

#defineN30

#include"stdlib.h"

#include

voidwwjt();

intmax_min(inta[],intn)

{

/**********Program**********/

/**********End**********/

}

main()

{

inta[N],i,k;

for(i=0;i

a[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("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","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;i

if(a[i]>max)max=a[i];

elseif(a[i]

return(max*min);

----------------------

第8题(10.0分)题号:

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("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","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题(10.0分)题号:

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("in.dat","r");

if(IN==NULL)

{

printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");

}

OUT=fopen("out.dat","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题(10.0分)题号:

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("in.dat","r");

if(IN==NULL)

{

printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("PleaseVerifyTheCurrentDir..itMayBeChanged");

}

for(i=0;i<5;i++)

{

fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1