




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2011-2012年度第一学期“C语言程序设计”期末考试复习提纲、考试题型序号题型每题得分题量总分一选择题21530一填空2510二程序阅读4520四编程题1011015230二、题例:(一)项目二数据类型、运算符和表达式选择题:1 .不合法的C语言整型常量是A。A.-012B.0x35C.123LD.8E22 .不合法的C语言实型常量是A。A.E3B.123C.-6.2E4D.5.03 .不合法的C字符常量是C。A.'2'B.''101'C.'APD.'n'4 .下列四组选项中,均是不合法的用户标识符的选项是B。A.WP_0do
2、B.b-agotointC.floatla0_AD.-123abcTEMP5.下列四组选项中,均是合法转义字符的选项是A。A.''n'B.017''"'C.'018''f''xab'D.'0''101''xlf'6.定义三个变量a、b、c,并分别赋初值为5。能实现该功能的语句是_C_A.inta=b=c=5;B.inta,b,c=5;C.inta=5,b=5,c=5;D.inta=5;b=5;c=5;7 .若x,y,t均为int类型,则执行语
3、句x=y=3;t=+x|+y;后,y的值是D。A.不定值B.4C.1D.38 .若x、i、j、k都是int型变量,则计算下面表达式后,x的值为C。x=(i=4,j=16,k=32)A.4B.16C.32D.529 .设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为A.floatB.charC.intD.double10 .设以下变量均为int类型,则值不等于7的表达式是C。A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)填空题:D.(y=6,y+1,x=y,x+1)1 .若有定义intm
4、=5,y=2;,则计算表达式y+=y-=m*=y后的y值是-16。2 .若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为。3 .若a是int型变量,则表达式(a=4*5,a*2),a+6的值为26。4 .若x和a均是int型变量,则计算表达式x=(a=4,6*2)后的x值为12,计算表达式x=a=4,6*2后的x值为4。5 .若a是int型变量,则计算表达式a=25/3%3后a的值为2。6 .若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n+后x的值为10,n的值为6。7 .若有定义:charc='010'则变量c中包含的字符个数为J。8
5、.若有定义:intx=3,y=2;floata=2.5,b=3.5;则下面表达式的值为J。(x+y)%2+(int)a/(int)b9 .已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为102。阅读题:(写出程序运行结果)1. #include<stdio.h>main()intx=97;chary='b';printf("%c,%d”,x,y);答:a,982. #include<stdio.h>main()intx=6;x+=x-=x*x
6、;printf("x=%dn",x)答:x=-603. #include<stdio.h>main()intx;(x=4*5,x*5),x+25;printf("x=%dn",x)答:x=204. #include<stdio.h>main()inti=1,j;j=-i+;printf("dn",j)答:-1编程题:(顺序结构编程)1 .输入华氏温度,输出摄氏温度。C=5/9*(F-32)#include<stdio.h>main()floatC,F;printf("请输入华氏温度F:&q
7、uot;);scanf("%f",&F);C=5.0/9*(F-32);printf("%.2fF=%.2fCn",F,C);v计算结果保留到小数2 .输入底面半径r和高度h,计算并输出圆柱体的体积v。v=Ttr2h(兀取3.14,点后两位)#include<stdio.h>#definePI3.14main()floatr,h,V;printf("请输入底面半径r和高度h:");scanf("%f%f",&r,&h);V=PI*r*r*h;printf("圆柱体的体积
8、V=%.2fn",V);3 .从键盘输入一扇形的半径和角度,求扇形的面积和周长。#include<stdio.h>#definePI3.14main()floatr,n,S,C;printf("请输入扇形的半径r和角度n:");scanf("%f%f",&r,&n);S=(n*PI*r*r)/360;C=(n*PI*r)/180+2*r;printf("扇形的面积S=%.2f,周长C=%.2fn",S,C);4 .从键盘输入学生的三门考试成绩,计算并输出平均成绩。#include<stdio
9、.h>main()floata,b,c,avg;printf("请输入学生三门考试的成绩:");scanf("%f%f%f",&a,&b,&c);avg=(a+b+c)/3;/*求平均成绩*/printf("平均成绩为:.2fn",avg);(二)项目三C语言程序控制结构选择题:1 .下列for循环的循环次数是)。inti=0,j;for(j=10;i=j=10;i+,j-)printf("ok");A.0次B.1次C.10次D.无限次2 .下列for循环的循环次数是B。inti=0,
10、j=0;for(;!j&&i<=5;i+)j+;A.5次B.1次C.无限D.6次3 .语句for(i=0,j=0;i<=100;i+)j=j+i;运行后j的值为DA.500B.100C.5000D.50504 、有以下程序:#include<stdio.h>main()charc;while(c=getchar()!='?')putchar(-c);程序运行时,如果从键盘输入:Y?N?3车,则输出结果为D。A.YB.XYC.YXD.X5 .下面的程序段执行时,若从键盘输入5,则输出为D。inta;scanf("%d,&a
11、);if(a->5)printf("%dn”,a+);elseprintf("%dn",a);A.7B.6C.5D.46 .若inta=5;则执行下列语句后打印的结果为A。doprintf("%2dn",a-);while(!a);A.5B.不打印任何结果C.4D.陷入死循环;运行后j的值为 D7 .语句for(i=0,j=0;i<=100;i+)j=j+iA. 500 B. 100 C. 5000D. 50508 .下面程序段的运行结果是Ccintn=0;while(n+<=2);printf("%d,n);D.有
12、语法错误A.2B.3C.49 .若i为整型变量,则以下循环执行次数是for(i=2;i=0;)printf("%d,i-);A.无限次B.0次C.1次D.2次10 .执行语句for(i=1;i+<4;);后变量i的值是C。和第八题相似A.3B.4C.5D.不定填空题:1、若输入字符串:abcdef回车,则以下while循环体将执行0次。While(ch=getchar()=,d')printf("*”);2、下面程序段的运行结果是a=-5。i=1;a=0;s=1;doa=a+s*i;s=-s;i+;while(i<=10);printf("a=
13、%d,,a);3 .下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。intn=0,c;c=getchar();while(c!=,n,)if(c>='0'&&c<='9')n+;c=getchar();4 .以下程序中,while语句的循环次数是无限次。#include<stdio.h>main()inti=0;while(i<10)if(i<1)continue;if(i=5)break;i+;printf("%d,i);5 .下面程序的功能是用“辗转相除法”求两个正整数
14、的最大公约数。请填空。#include<stdio.h>main()intr,m,n;scanf("%d%d,&m,&n);if(m<n)r=m;m=n;n=r;r=m%n;while(r)m=n;n=r;r=_m%n;printf("%dn",n);6 .执行以下程序后,输出“#"的个数是6#include<stdio.h>main()inti,j;for(i=1;i<5;i+)for(j=2产i;j+)putchar('#');阅读题:(写出程序运行结果)1. #include<
15、;stdio.h>main()inty=10;doy-;while(-y);printf("%dn”,y-);答:02. #include<stdio.h>main()intx=15;while(x>10&&x<50)x+;if(x/3)x+;break;elsecontinue;printf("%dn",x);答:173. #include<stdio.h>main()inta=1,b=0;for(;a<3;a+)switch(a+)case1:b-;break;case2:b+;case3:b+=
16、3;printf("%dn",b);答:14. #include<stdio.h>main()ints,i;for(s=0,i=1;i<3;i+,s+=i)printf(“%dn”,s);答:5编程题:1. 计算s=1+1/2+1/3+1/n#include<stdio.h>main()inti,n;floats;scanf("%d",&n);for(s=0.0,i=1;i<=n;i+)s=s+1.0/(i);printf("s=%fn",s);2. 求和:从1加到100#include&l
17、t;stdio.h>main()intn,s;for(s=0,n=1;n<=100;n+)s=s+n;printf("s=%dn",s);n!3. 如果0<n<17,使之能正确地计算#include<stdio.h>main()intn,i;longs;printf("请输入整数n:");scanf("%d",&n);if(n>0&&n<17)for(i=2,s=1;i<=n;i+)s=s*i;printf("%d!=%dn",n,s);
18、elseprintf("输入错误!请输入1-16中的整数!n");*n)4 .如果0n<8,请计算s=1!+2!+3!+n!,并打印输出计算结果s。(注:n!=1*2*3*#include<stdio.h>main()intn,i,s,fact;printf("请输入整数n:");scanf("%d",&n);if(n>0&&n<8)for(i=1,s=0,fact=1;i<=n;i+)fact=fact*i;/*求n!*/s=s+fact;/*求s=1!+2!+3!+n!*
19、/printf("s=%dn",s);elseprintf("输入错误,请输入1-7中的整数!n");5 .从键盘输入一个大于1的整数,输入是否为素数,是,则输出“YES',否则输出“N(J#include<stdio.h>main()intn,i;printf("请输入整数n:");scanf("%d",&n);if(n>1)for(i=2;i<n;i+)if(n%i=0)break;if(i=n)printf("YES'n");elseprin
20、tf("NO'n");elseprintf("输入错误,请输入大于1的整数!n");(三)项目四数组选择题:1 .若二维数组a有m列,则在aij前的元素个数为B.(注意列)A.j*m+IB.i*m+jC.i*m+j-1D.i*m+j+12 .以下对二维数组a的正确说明是CA.inta3町B.floata(3,4);C.doublea14;D.floata(3)(4);intx口3=1,3,5,7,9,11;,则x数组的彳亍数为A3 .若有说明:A.2B.34 .若有以下定义inta=1,2,3,4,5,6,7;charc1='b'
21、,c2='2'则数值不为2的表达式是A。A.c2-0B.a1C.5 .以下程序的输出结果是Bmain()inta33=1,2,3,4,5,6,i,j,s=0for(i=0;i<3;i+)for(j=0;j<=i;j+)C.4D.无确定值d'-c1D.a'3'-c2s+=aij;printf("%dn",s);A.18B.19C.20D.216 .有两个字符数组a、b,则以下正确的输入语句是B.“a"),gets(“b");A.gets(a,b);B.scanf("%s%S,a,b);C.sca
22、nf("%s%s,&a,&b);D.gets(7 .当执行下面的程序时,如果输入ABC则输出结果为A#include<stdio.h>#include<string.h>main()charss10="1,2,3,4,5”;gets(ss);strcat(ss,"6789");printf("%sn",ss);A.ABC6789B.BC67C.12345ABC6D.ABC4567898 .判断字符串s1是否大于字符串s2,应当使用D.A.if(s1>s2)B.if(strcmp(s1,s2
23、)C.if(strcmp(s2,s1)>0)D.if(strcmp(s1,s2)>0)填空题:1.下面程序以每行4个数据的形式输出a数组,请填空。#defineN20main()intaN,i;for(i=0;i<N;i+)scanf("%d',_&ai);for(i=0;i<N;i+)if(i%4=0)printf("n");printf("%3d,ai);printf("n");2 .若有定义:inta34=1,2,0,4,6,8,10;则初始化后,a12的初值是0,a21的初值是一6.3
24、.下面程序的运行结果是7,3。main()inta10=10,2,-13,21,11,67,-78,8,90,-53;inti,x=0,y=0;for(i=0;i<10;i+)if(ai>0)x+;elsey+;printf("%d,%dn”,x,y);4 .下面程序的功能是:输入50个数,按逆序输出,请填空。main()inta50,i;for(i=0;i<50;i+)scanf("%d,&ai);for(_i=49;i>=0;.i-)printf("%4d,ai);5 .下面程序可求出矩阵a的主对角线上的元素之和,请填空。mai
25、n()inta33=1,3,5,7,9,11,13,15,17,sum=0,i,j;for(i=0;i<3;i+)for(j=0;j<3;j+)if(_i=j)sum=sum+_aij;printf("sum=%dn',sum);6 .下面程序的功能是在三个字符串中找出最小的,请填空。#include<stdio.h>#include<string.h>main()chars20,str320;inti;for(i=0;i<3;i+)gets(stri);strcpy(s,_str0);if(strcmp(str1,s)<0)s
26、trcpy(s,str1);if(strcmp(str2,s)<0)strcpy(s,str2);printf("%sn",_s_);阅读题:1. #include<stdio.h>main()inta10,i;for(i=9;i>=0;i-)ai=10-i;printf(“%d%d%d”n,a2,a5,a8);答:8522. #include<stdio.h>main()inta33=1,2,3,4,5,6,7,8,9,i,s=0;for(i=0;i<=2;i+)s=s+aii;printf(“s=%dn”,s);答:s=153.
27、 #include<stdio.h>main()inta44=1,3,5,2,4,6,3,5,7;printf(“%d%d%d%d”n,a03,a12,a21,a30);答:06504. #include<stdio.h>#include<string.h>main()chars10=“a”,”good”,”world”;strcat(s0,s1);printf(“%s”,s0);答:agood5. #include<stdio.h>main()chars=“abcdef”;s3=0;printf(“%sn”,s);答:abc编程题:1 .从键盘
28、输入10个整数,存入数组a,从数组a的第二个元素起,分别将后项减前项之差存入数组b,按每行3个元素输出数组b。main()inta10,b10,i,j;for(i=0;i<10;i+)scanf("%d",&ai);for(i=0,j=0;i<9;i+,j+)bj=ai+1-ai;printf("%5d",bj);if(i%3=2)printf("n");2. 输入一个字符串,将其中的大写字符转换成小写,其它的不做转换,然后输出得到的字符串。#include<stdio.h>main()inti;cha
29、rs100;scanf("%s",s);for(i=0;si!='0'i+)if(si>='A'&&si<='Z')si=si+32;for(i=0;si!='0'i+)printf("%c",si);printf("n");3. 读入20个整数,统计非负数个数,并计算非负数之和#include<stdio.h>main()inta20,i,n,s=0;for(i=0;i<20;i+)scanf("%d",
30、&ai);for(i=0;i<20;i+)if(ai>=0)n+;s=s+ai;printf(printf(非负数个数:n=%dn",n);非负数之和:s=%dn",s);4. 某班有30名学生,考试共5门课程,输入各门成绩,计算每人的总分,输出全班学生的各科成绩及总分。#include<stdio.h>main()inti,j;floatscore305,sumr30=0.0,0.0,sum=0;printf("请输入30个同学各5门课程的成绩:n");for(i=0;i<30;i+)for(j=0;j<5;
31、j+)scanf("%f",&scoreij);for(i=0;i<30;i+)for(j=0;j<5;j+)sumri=sumri+scoreij;sum=sum+sumri;printf("t课程一课程二课程三课程四课程五n");for(i=0;i<30;i+)printf("第2d个同学:”,i);for(j=0;j<5;j+)printf("%8.2f",scoreij);printf("n");printf("%.2fn",sum);5. 从键
32、盘输入10个数,从小到大排列(或从大到小排列),将其输出(冒泡法或选择法任选)冒泡法排序:main()inta10,i,j,t;for(i=0;i<10;i+)scanf("%d",&ai);for(i=0;i<9;i+)for(j=0;j<10-i-1;j+)if(aj>aj+1)t=aj;aj=aj+1;aj+1=t;printf("从小到大排列:n");for(i=0;i<10;i+)printf("%d",ai);printf("n");选择法排序:#include&l
33、t;stdio.h>main()inta10,i,j,k,t;for(i=0;i<10;i+)scanf("%d",&ai);for(i=0;i<9;i+)k=i;for(j=i+1;j<10;j+)if(aj>ak)k=j;D. 6以下正确的程序段的是DB. p=&n;scanf("%d ,*p);D. p=&n;*p=m;A+B=9.C. char str20;D. char str20,*p=str;if(i!=k)t=ai;ai=ak;ak=t;for(i=0;i<10;i+)printf(&qu
34、ot;%5d",ai);printf("n");(四)项目五和项目六函数、指针选择题1 .以下正确的函数定义形式是AA.doublefun(intx,inty)B.doublefun(intx;inty)C.doublefun(intx,inty);D.doublefun(intx,y);2 .以下函数调用语句中实参的个数是A。fun(v1,v2),(v3,v4,v5),v6);A.3B.4C.52.若有说明;int*p,m=5,n;A.p=&n;scanf("%d,&p);C.scanf("%d,&n);*p=n;2
35、.以下程序的运行结果是inta=5;intb=7;main()inta=4,b=5,c;c=plus(a,b);printf("A+B=%dn',c);plus(intx,inty)intz;z=x+y;return(x);3 .以下正确的程序段是B.A.charstr20;B.char*p;"%S',p);scanf("%s,&str);scanf(scanf("%s,&str2);填空题:scanf("S',p2);1.若有定义:inta尸2,4,6,8,10,12,*p=a;则*(p+1)的值是匕.
36、*(a+5)的值是22 .下面程序段的运行结果是hELLO!.chars80,*sp="HELLO!;sp=strcpy(s,sp);s0='h'puts(sp);3 .理解下面的程序,填空使程序完整。#include<stdio.h>intmax(_intx,inty)intz;if(x>y)z=x;elsez=y;_return(z);main()inta,b,c;scanf("%d%d,_&a&b);c=max(a,b);printf("a=%d,b=%d,max=%drT,a,b,c);阅读题:1. #include<stdio.h>voidfunc(intx)x=20;main()intx=10;func(x);printf("%d,x);答:102. #include<stdio.h>voidfun(float*a,float*b)floatw;*a=*a+*a;w=*a;*a=*b;*b=w;main()floatx=2.0,y=3.0;float*px=&x,*py=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论