C语言复习题2.docx
- 文档编号:10655819
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:29
- 大小:25.37KB
C语言复习题2.docx
《C语言复习题2.docx》由会员分享,可在线阅读,更多相关《C语言复习题2.docx(29页珍藏版)》请在冰豆网上搜索。
C语言复习题2
1、下面的程序是______
main()
{intx=3,y=0,z=0;
if(x==y+z)printf("****");
elseprintf("####");
}
A.有语法错误不能过通过编译
B.输出****
C.可能通过编译,但是不能通过连接,因而不能运行
D.输出####
学生答案:
B
参考答案:
D
2、以下程序输出结果是
main()
{intm=5;
if(m++>5)printf("%d\n",m);
elseprintf("%d\n",m--);
}
A.7
B.6
C.5
D.4
学生答案:
B
参考答案:
B
3、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是
main()
{intx;
scanf("%d",&x);
if(x++〉5)printf("%d",x);
elseprintf("%d\n",x--);
}
A.7和5
B.6和3
C.7和4
D.6和4
学生答案:
C
参考答案:
A
4、下列语句正确的是()
A.if(a>b>c)temp=a
B.if((a=b)>0)temp=a
C.inta=b=c=4
D.inta;scanf(%d,a)
学生答案:
B
参考答案:
B
5、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是
if(x>y)
z=x;x=y;y=z;
A.x=10,y=20,z=30
B.x=20,y=30,z=30
C.x=20,y=30,z=10
D.x=20,y=30,z=20
学生答案:
A
参考答案:
B
6、以下程序的输出结果是
main()
{inta=100,x=10,y=20,ok1=5,ok2=0;
if(x if(y! =10) if(! ok1) a=1; else if(ok2)a=10; a=-1; printf("%d\n",a); } A.1 B.0 C.-1 D.值不确定 学生答案: B 参考答案: C 7、若运行以下程序时,从键盘输入ADescriptor #include main() {charc; intv0=0,v1=0,v2=0; do{ switch(c=getchar()) {case'a': case'A': case'e': case'E': case'i': case'I': case'o': case'O': case'u': case'U': v1+=1; default: v0+=1;v2+=1; } }while(c! ='\n'); printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2); } A.v0=7,v1=4,v2=7 B.v0=8,v1=4,v2=8 C.v0=11,v1=4,v2=11 D.v0=12,v1=4,v2=12 学生答案: C 参考答案: D 8、阅读以下程序: main() {intx; scanf("%d",&x); if(x--<5)printf("%d"'x); elseprintf("%d"'x++); } 程序运行后,如果从键盘上输人5,则输出结果是 A.3 B.4 C.5 D.6 学生答案: D 参考答案: B 9、与y=(x>0? 1: x<0? -1: 0);的功能相同的if语句是 A.if(x>0)y=1;elseif(x<0)y=-1;elsey=0; B.if(x)if(x>0)y=1;elseif(x<0)y=-1;elsey=0; C.y=-1if(x)y=1;elseif(x==0)y=0;elsey=-1; D.y=0if(x>-0)if(x>0)y=1;elsey=-1; 学生答案: B 参考答案: A 10、若有定义: floatw;inta,b;则合法的switch语句是 A.switch(w){case1.0: printf("*\n");case2.0: printf("**\n");} B.switch(a);{case1printf("*\n");case2printf("**\n");} C.switch(b){casea: printf("*\n");default: printf("\n");caseb: printf("**\n");} D.switch(a+b){case1: printf("*\n");case2: printf("**\n");default: printf("\n");} 学生答案: B 参考答案: D 11、以下程序段的输出结果是()。 inti,j,m=0; for(i-l;i<=15;i+=4) for(j=3;j<=19;j+=4) m++: pfintf(”%d\n”,m).; A.12 B.15 C.20 D.25 学生答案: C 参考答案: C 12、以下程序的输出结果是()。 #include main() { inty=10; for(;y>0;y一一) if(y%3==0) { printf(”%d”,一一y); continue; } } A.741 B.852 C.963 D.8754321 学生答案: C 参考答案: B 13、以下叙述正确的是()。 A.do…while语句构成的循环不能用其他语句构成的循环代替 B.只有do…while语句构成的循环能用break语句退出 C.用do…while语句构成循环时,在while后的表达式为零时不一定结束循环 D.用do…while语句构成循环时,在while后的表达式为零时结束循环 学生答案: B 参考答案: D 14、有以下程序段: intk=0: while(k=1)k++0 while循环执行的次数是()。 A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行一次 学生答案: D 参考答案: A 15、有以下程序: #include inta=3; mmn() { intS=0; { inta=5: S+=a++: } S+=a++;printf(”%d\n”,S); } A.8 B.10 C.7 D.11 学生答案: A 参考答案: A 16、以下的for循环()。 for(X=0,Y=0;(Y! =123)&&(X<4);X++); A.是无限循环 B.循环次数不定 C.循环执行4次 D.循环执行3次 学生答案: C 参考答案: C 17、执行下面程序片段的结果是()。 intX=23; d0 { printf(”%d”,X--); }while(! X); A.打印出321 B.打印出23 C.不打印任何内容 D.陷人死循环 学生答案: B 参考答案: C 18、请阅读以下程序: . #include main() {floatx,y; scanf("%f",&x); if(x<0.0)y=0.0; elseif((x<5.0)&&(x! =2.0)) Y=1.O/(x+2.0); elseif(x<10.0)Y=1.O/x; elsey=10.0; printf(”%f\n”,y); } 若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是()。 A.0.000000 B.O.250000 C.O.500000 D.1.000000 学生答案: B 参考答案: C 19、在while(x)语句中的x与下面条件表达式等价的是()。 A.x==0 B.x==1 C.x! =0 D.x! =1 学生答案: B 参考答案: C 20、下面程序段的输出结果是()。 a=1;b=2;c=2; while(a printf(”%d,%d,%d”,a,b,c); A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1 学生答案: A 参考答案: A 多选题: 判断题: 填空题: 1、#include main() {inti=0,j=0,a=6; if((++i>0)||(j++>0))a++; printf("i=%d,j=%d,a=%d\n",i,j,a);} 结果: _____ 学生答案: 参考答案: I=1,j=0,a=7 2、若从键盘输入58,则以下程序输出的结果是________。 main() {inta; scanf("%d",&a); if(a>50)printf("%d",a); if(a>40)printf("%d",a); if(a>30)printf("%d",a); } 学生答案: 参考答案: 585858 3、下列程序段的输出结果是_____________。 intn='c'; switch(n++) {default: printf("error");break; case'a': case'A': case'b': case'B': printf("good");break; case'c': case'C': printf("pass"); case'd': case'D': printf("warm"); } 学生答案: 参考答案: passwarm 4、以下程序段的输出结果是______ intk,n,m; h=10;m=l;k=l; while(k<=n) m*=2; printf("%d\n",m); 学生答案: 参考答案: 程序段无限循环,没有输出结果 5、以下程序的功能是: 从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩 #include main() { floatx,amax,amin; scanf(”%r.,&x); amax=x;amin=X; while( (1)_______) { if(X>amax)amax=x; if( (2)________)amin=x; scanf("%f",&x); } printf(”\namax=%f\namin=%f\n”,amax,amin); } 学生答案: 参考答案: (1)x>=0 (2)x<> 6、下述程序的运行结果是——。 #include main() { ints=0,k; for(k=7;k>4;k--) { switch(k) { case1: case4: case7: S++;break; case2: case3: case6: break; case0: case5: s+=2;break; } } printf(”s=%d”,s); } 学生答案: 参考答案: s=3 7、下面程序的功能是: 计算l—10之间的奇数之和与偶数之和,请填空。 #include main() {inta,b,c,i; a=c: 0: for(i=0;i<=10;i+: 2) ________; c+=b: } printf(”偶数之和=%d\n”,a); printf(”奇数之和=%d\n”,c-11); 学生答案: 参考答案: b=i+1 8、有以下程序: #include main() {charc; while((c=getchar())! =’? ’)putchar(--c); } 程序运行时,如果从键盘输入: Y? N? <回车>,则输出结果为_________。 学生答案: 参考答案: X 9、下面程序的运行结果是 #include main() {inty,a; y=2;a=1; while(y--! =-1) {do{a*=y;a++;}while(y--); printf(”%d,%d”,a,y); } 学生答案: 参考答案: 1,-2 10、下面程序段的运行结果是 i=1;s=3; do{s+=i++; if(s%7==0)continue; else++i: }while(s<15); printf(”%d”,i); 学生答案: 参考答案: 8 1、编写程序,从键盘输入年号和月号,计算这一年的这一月共有几天. 学生答案: 参考答案: main() { intyear,month,day=0,leap; printf("\npleaseinputyearandmonth: "); scanf("%d,%d",&year,&month); if(year%4! =0) leap=0; elseif(year%100==0) if(year%400==0) leap=1; else leap=0; else leap=1; switch(month) { case1: case3: case5: case7: case8: case10: case12: day=31;break; case4: case6: case9: case11: day=30;break; case2: {if(leap==1)day=29;elseday=28;break;} default: printf("the13thmonth! ? "); } printf("Ithas%ddaysin%d/%d",day,year,month); } 2、编写程序,输入三个整数x,y,z,请把这三个数由小到大输出。 [程序分析] 我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 学生答案: 参考答案: main() { intx,y,z,t; scanf("%d%d%d",&x,&y,&z); if(x>y) {t=x;x=y;y=t;}/*交换x,y的值*/ if(x>z) {t=z;z=x;x=t;}/*交换x,z的值*/ if(y>z) {t=y;y=z;z=t;}/*交换z,y的值*/ printf("smalltobig: %d%d%d",x,y,z); } 3、编写程序,输入一个5位数,判断它是不是回文数。 即12321是回文数,个位与万位相同,十位与千位相同。 学生答案: 参考答案: main() { longge,shi,qian,wan,x; scanf("%ld",&x); wan=x/10000; qian=x%10000/1000; shi=x%100/10; ge=x%10; if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf("%disahuiwennumber.",x); else printf("%disnotahuiwennumber.",x); } 4、编写程序,将一个不大于256的十进制正整数转化为8位的二进制数,若不足8位,则在前面补0,例如十进制数2转化位8位二进制数后是00000010,37转化后是00100101。 试求出十进制数5、23、189转化位8位二进制分别是多少? (要求必须使用循环语句实现) 学生答案: 参考答案: main() { inta,i,b[8]; printf("PleaseInputaNumber<=256: \n"); scanf("%d",&a); for(i=1;i<=8;i++) b[i]=0; i=8; while(i>=1) {b[i]=a%2; a=a/2; if(a==0) break; i--; } for(i=1;i<=8;i++) printf("%d",b[i]); printf("\n"); } 本题参考答案: 00000101、00010111、10111101 第6章循环控制 单选题: 1、假定a和b为int型变量,则执行以下语句后b的值为 a=1;b=10; do {b=b-a;a++;} while(b-->0); A.-3 B.-2 C.-1 D.-4 学生答案: B 参考答案: D 2、以下程序运行后,输出结果是 main() {inty=18,i=0,j,a[8]; do {a[i]=y%2;i++; y=y/2; }while(y>=1); for(j=i;j>0;j--)printf("%d\n",a[j]); printf("\n"); } A.1000 B.11010 C.01001 D.10100 学生答案: B 参考答案: C 3、以下程序的输出结果是 main() {inti; for(i=1;i<6;i++) {if(i%2){printf("#");continue;} printf("*"); } printf("\n"); A.#*#*# B.##### C.***** D.*#*#* 学生答案: B 参考答案: A 4、以下程序段的输出结果是 intx=3; do {printf("%3d",x-=2);} while(! (--x)); A.1 B.3,0 C.1,-2 D.死循环 学生答案: A 参考答案: C 5、阅读下列程序: main() {intn[3],i,j,k; for(i=0;i〈3;i++) n[i]=0; k=2; for(i=0;i for(j=0;j〈2;j++) n[j]=n[i]+1; printf("%d\n",n[1]);} 下述程序运行后输出结果是 A.2 B.1 C.0 D.3 学生答案: B 参考答案: D 6、定义如下变量: intn=10 则下列循环的输出结果是______ while(n>7) { n--; printf("%d\n",n); } A.1098 B.987 C.10987 D.9876 学生答案: B 参考答案: B 7、以下程序段的输出结果是_____ intx=3; do {printf("%3d",x-=2);} while(! (--x)); A.1 B.30 C.1-2 D.死循环 学生答案: C 参考答案: C 8、运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为 main() { intm,n; printf("Enterm,n: "); scanf("%d%d",&m,&n); while(m! =n) { while(m>n)m-=n; while(n>m)n-=m; } printf("m=%d\n",m); } A.m=3 B.m=2 C.m=1 D.m=0 学生答案: A 参考答案: C 9、以下程序的输出结果是 main() {inti,k,a[10],p[3]; k=5; for(i=0;i<10;i++)a[i]=i; for(i=0;i<3;i++)p[i]=a[i*(i+1)]; for(i=0;i<3;i++)k=k+p[i]*2; printf("%d\n",k); } A.20 B.21 C.22 D.23 学生答案: B 参考答案: B 10、执行语句: for(i=1;i++<4;)后;变量i的值是() A.3 B.4 C.5 D.不定 学生答案: C 参考答案: C 11、执行语句: for(i=1;i++<4;)后;变量i的值是 A.3 B.4 C.5 D.不定 学生答案: B 参考答案: C 12、以下程序的输出结果是 {inti,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<3;j++) {if(j%2)continue; x++; } x++ } printf("x=%d\n",x); } A.x=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题