C语言考试复习专用三套题附答案_第1页
C语言考试复习专用三套题附答案_第2页
C语言考试复习专用三套题附答案_第3页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计习题集习题一A)xB)x-'0'C)*xD)&x(二)说明语句chars='t',使s包含了几个字符?。A)1B)2C)3D)说明有错(三)设a=6,b=4,则表达式b*=a+3的值为。A)3B)18C)27D)36(四)若给定表达式(而?a+:a-,则其中表达式m和等价。A)m=0B)m=0C)m=0D)m=1(五)设有说明语句inta10,则数组a包括了个数组元素A)1B)9C)10D)20(六)以下函数test返回值类型为。Atest(intx)printf("%fn",(float)x);)intB)floatC

2、)voidD)不确定或错误(七)C语言规定,main函数的参数。A)只能有0个B)只能有0个或一个C)只能有0个或2个D)可有任意个-、语言基础(共20分,每题2分)(一)设x为一数字字符,则其所对应的十进制数值为(八)设x为整型变量,p基类型为整型的指针变量,则正确的赋值表达式是A)p=&xB)p=xC)*p=&xD)*p=*x(九)TurboC中,int型数据在存储器中占二个字节,则以下类型数据在存储器中占的字节数为:。structtestintxfloatycharz;A)2B)3C)6D)7(十)rewind()函数的作用是A)重新打开文件B)使文件位置指针重新回到文件

3、的开始C)使文件位置指针重新回到文件的末D)返回文件长度值二、阅读下列程序,写出运行结果(共程序1#include<stdio.h>18分,每题3分)voidmain()inta=1,b=4,c=2;a=(a+b)/c;printf(程序2运行结果:1%dn”,-a);voidmain()charc1=67;/*'A'if('A'<=c1&&c1<=的ASCII码值为65*/'Z')运行结果:67,Dprintf(elseprintf(程序3viodmain()(inta=0,n=5;for(;)(a+;n

4、-;printf(1,2,4,8,16,32,64,128,256,512%d,%C,c1,c1+1);“C,c1);运行结果:1,5,4,3,2,0“d,”,a);a=n;if(n=0)break;printf("d,a);程序4main()(inti,j;运行结果:staticinta10=1,1,1,1,1,1,1,1,1,1;for(i=0;i<10;i+)for(j=0;j<i;j+)ai=ai+aj;for(i=0;i<10;i+)printf(程序5intk=2;f(intm)m+=k;k+=m;printf(main()inti=4;for(i+);

5、printf(程序6voidmain()staticinta10,i;for(i=0;i<10;i+)%d,”,ai);运行结果:6,85,9%d,%dn”,m,k+);%d,%dn",i,k);运行结果:13579ai=i+1;for(i=0;i<10;i=i+2)printf("%d,*(a+i);21分,每空3三、阅读分析下列程序,在处填上适当的内容使程序(或函数)完整(共分)(一)以下程序输出所有大写字母和其对应的ASCII码值。voidmain()intch;for(ch=,A'ch<=,Z,;ch+)printf(“字母%c的ASCII

6、码值是:dn”,ch,1);答案:ch(二)以下函数的功能是将一个字符串S的内容颠倒过来。voidreserve(2)答案:chars(inti,j,k;for(i=0,j=strlen(s)-1;3(k=si;si=sj;sj=k;(三) )由键盘输入三个数a,b,#include<math.h>voidmain()(floata,b,c,s,si;scanf("f%f%f',答案:i<jc,计算以这三个数为边长的三角形面积。4);答案:&a,&b,&cif(a+b)>c&&(a+c)>b&&am

7、p;(b+c)>a)(s=(a+b+c)/2;s1=s*(s-a)*(s-b)*(s-c);s=5printf(elseprintf(四) 从键盘输入一个字符串,把它输出到文件中,文件名由键盘输入。#include<stdio.h>voidmain()(FILE*fp;charch,*fn;scanf("%s,fn);if(fp=fopen(fn,6)=NUL答案:(printf(“打开文件出错n”);exit(1);while(ch=getchar()!=EOF)(fputc(7);putchar(ch);fclose(fp);答案:sqrt(si)“n三角形面积

8、为:fn”,s);“n不是三角!n");一一"w答案:ch,fp1. 四、编程题(共21分)从键盘输入3个整数,输出其中最大数。(5分)main()(inti=0,x,mx=-32768;while(i+<3)(scanf("%d,&x);if(x>mx)mx=x;printf("n%dn",mx);编写一函数uf(s),将字符串s中的第一个和最后一个字母改写成大写字母(如原来不是字母或已是大写字母,则不变)。(5分)#include<stdio.h>uf(char*s)(inti;i=strlen(s);if(

9、i=0)return;if(s0>='a'&&s0<='z')s0+='A'-'a'if(si-1>='a'&&si-1<='z')si-1+='A''a')main()(chars="asdfgh”;uf(s);printf("n%sn",s);)从键盘输入10个浮点数,输出其平均值及所有低于平均值的数。(5分)#include<stdio.h>main()(float

10、a10,ave=0;inti;for(i=0;i<10;i+)(scanf("%f",&ai);ave+=ai;)ave/=10;for(i=0;i<10;i+)if(ai<ave)printf("ft”,ai);)习题二一、语言基础(共20分,每题2分)(一) 若a为float类型变量,且a=4.6785,则表达式(int)(a*100+0.5)/100.0的值为4.68。(二) 设有intx=11,y=10;则以下表达式的值为10。x->y?10:11>y+?'a':'z'(三) 若所有变量

11、都已正确定义为int型则执行下列程序段后x的值为卖x=80;a=10b=16;y=9;z=0;if(a<b)if(b!=15)if(!y)x=81;elseif(!z)x=79;(四) i,j为int型的变量,则下面程序中的循环体的执行次数为5。i=1;j=0;while(i+j<=10)(if(i>jj=j+2);elsei=i+2;)(五) 若有数组a10,类型为int型,元素及值如下所示:数组元素:a0a1a2a3a4a5a6a7a8a9元素中的值:则*(a+a9)的值为6。(六) 以下函数调用语句中实参的个数为3.Sub(x1,x2),(x3,x4,x5),x6)(七

12、) 若有以下函数定义:int(*hs)()(/*函数体*/则函数hs返回的值是整形。某C编译程序规定,int型数据存储占2个字节,float型数据存储占4个字节,char型数据存储占1个字节,现有记录描述如下:structstu(union(charbj5;intbh2;class;charxm8;floatcj;xs;贝Usizseof(xs)的值为17。设有以下定义:苹definea6#defineba+4则执行语句c=b*10(c为int型数据)后,c的值为46。(十)在C中,文件指针变量的类型只能是FILE。二、阅读下列程序,写出运行结果(共20分,每题4分)程序1#include&l

13、t;stdio.h>main()(inti;运行结果:i=18,J=29.44floatj;i=18;j=29.4361;printf("i=%4d,j=%2.2f”,i,j);程序2main()(intk=10;charc='b;doswith(c+)运行结果:12(case'a':k+;case'b':k-;case'c':k+=3;break;case'd':k=k%4;)while(c!='c');printf("dn”,k);)程序3main()chara="c

14、omputer”;chart;inti,j=0;for(i=0;I<8;I+)for(j=i+1;j<8;j+)if(ai<aj)t=ai;ai=aj;aj=t;)printf("s,a);程序4main()char*p,s="abcdefg”;for(p=s;*p!=,0,);printf("sn",p);p+;if(*p!='0')p+;elsebreak;)5、以下程序的输出结果为hellowellcommain()chars140="hello”,s220="wellcom”;inti=0,j

15、=0;while(s1i!='0')i+;while(s2j!='0')s1i+=s2j+;s1i=0;printf("%sn",s1);运行结果:utrpomec运行结果:abcdefg)6、#include<stdio.h>main()(inti,j,x=0;for(i=0;i<2;i+)(x+;for(j=0;j<3;j+)(if(j%2)break;x+;)x+;)printf("x=%dn",x);)程序运行结果是:x=6三、阅读下列程序,在_线处填上合适的内容使程序(或函数)完整(共18

16、分,每空2分)1. 以下程序的功能是求三个数的最小公倍数。max(intx,inty,intz)(if(x>y&&x>z)return(x);elseif(y>=x&&y>z)return(y);elsereturn(z);)main()(inta,b,c,I=1,j,s;scanf("%d%d%d,&a,&b,&c);s=max(a,b,c);while(1)(j=s*i;if(j%a=0)&&(j%b=0)&&(j%c=0)break;i+;)prinf("d

17、,j);)下面程序是判断输入的字符是否中心对称,(如"xyzzyx”和"xyzyx”都中心对称#include<string.h>main()(chars100,*p1,p2;intn;gets(s);n=strlen(s);p1=s;p2=s+n-1;while(p1<p2)if(*p1!=*p2)break;elsep1+;p2-;if(p1<p2)printf("NOn");2. elseprintf("YESN');结构数组中有4人的姓名和年龄,以下程序输入四人中年龄最大的人的姓名和年龄。#defineN

18、ULL0staticstructnodecharname20;intage;person=Tihong”,18,“wangjun”,19,“zhangwei”,20,“zhaofeng”,19;main()structnode*p,*q;intold=0;q=NULL;p=person;for(;p!=NULL;p+)if(old<p->age)q=p;old=p->age;printf("s,%dn”,q->name,q->age);四、编程题(共22分)1.有36块砖,共36人搬,成年男子一次搬4块砖,成年女子一次搬3块砖,儿童两人抬1块砖,恰好一次

19、全部搬完,编程求出成年男子成年女子和儿童各有多少人。(6分)main()(intmen,women,child;for(men=0;men<9;men+)for(womem=0;women<12;women+)(child=36-men-women;if(men*4+women*3+child/2.0)=36)printf("%d,%d,%dn”,men,women,child);)2.非波那契数的递归如下:n,求它的非除X)和Xi外,序列中某个元素的值是其前两个元素的和,编写程序输入序号波那契数Xnolongfib(inty)(if(y=0)return(0);else

20、if(y=1)return(1);elsereturn(fib(y-1)+fib(y-2);)main()(intn;longk;scanf("%d,&n);k=fib(n);printf("k=%dn”,k);)3.用循环语句编程将二维数组a34的第一行和第三行对调(如下图),并输出数组。(8分)main()(inti,j,t;inta34=2,3,4,5,3,8,10,2,7,9,3,1;for(i=0;i<4;i+)t=a0i;a0i=a2i;a2i=t;for(i=0;i<3;i+)for(j=0;j<4;j+)printf("3

21、d,aij);printf("n”);习题二20分,每题2分)A。-.语言基础(共(一)正确的C语言自定义标志符是A)file_bakC)continue(二)设intx=8,y,z;A)0(三)字符串“A)7B)abc(10)D)class+3执行y=z=x+;x=y=zD)9的长度是AD)16后,变量x的值是BB)1C)8wx53np103qB)9C)15(四) 设inta=9,b=8,c=7,x=1;则执行语句if(a>7)if(b>8)if(c>9)x=2;elsex=3;后x的值是C。(五) A)0B)2C)1D)3有如下程序main()intx=23;d

22、oprintf("d',x-);while(!x);该程序的执行结果是B。(六) A)321B)23C)不输出任何内容D)陷入死循环定义一个具有8个元素的整型数组,应当使用语句Ao(七) A)inta8;B)inta2,4;C)inta;D)int*a8;设intx=4,2,3,1,q,*p=&x1;则执行语句q=(*p)+后,变量q的值为A。(八) A)4B)3C)2D)1函数调用时,下列说法中不正确的是Bo(九) A)实际参数和形式参数可以同名若用值传递方式,则形式参数不予分配存储单元主调函数和被调函数可以不在同一个文件中函数间传递数据可以使用全局变量下列数据类型

23、中不属于构造类型的是DoA)数组型B)结构型C)公用型D)枚举型(十)存储整型数据-7856时,在二进制文件和文本文件中占用的字节数分别是3. A)3,2B)2,5C)5,5D)5,2、阅读下列程序,写出运行结果(共20分,每题4分)【程序1】#include<stdio.h>main()intx=1,a=0,b=0;运行结果:a=1,b=1switch(x)case0;b+;case1;a+;case2;a+;b+;printf("a=%d,b=%dn”,a,b);“C,32);运行结果:*运行结果:6【程序2space(intm)(while(m-)printf()m

24、ain()*(inti,j;printf("n”);for(i=5;i>=1;i-)*(*space(i);printf("*");for(j=3;j>=2*(i/5)+2;j-)(space(4-i);printf("*");)printf("n”);)【程序3】longff(intn)(if(n>3)return(ff(n-1)+ff(n-2);elsereturn(3);)main()(printf("dn",ff(4);)【程序4】main()运行结果400-4-3(inti,a5;for

25、(i=0;i<5;i+)ai=9*(i-2+4*(i>2)%5;for(i=4;i>=0;i-)printf("3d,ai);)【程序5】#include<stdio.h>运行结果:13unionpw(inti;charch2;a;main()(a.ch0=13;a.ch1=0;printf("%dn",a.i);6、以下程序的输出结果为x=37o#defineA3#defineB(a)(A+1)*amain()(intx;x=3*A+B(7);printf("x=%dn”,x);7. #include<stdio.h>voidFun(int*y)(printf("*y=%dn",*y);*y+=20;printf("*y=%dn",*y);main()(intx=10;printf("x=%dn",x);Fun(&x);printf("x=%dn",x);程序运行结果是:x=10*y=10*y=30X=30三、阅读下列程序,在处填上适当的内容使其完整。(共20分,每空2分)(一)下面程序用于计算n!

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论