c语言习题讲解.docx
- 文档编号:3812214
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:17
- 大小:21.47KB
c语言习题讲解.docx
《c语言习题讲解.docx》由会员分享,可在线阅读,更多相关《c语言习题讲解.docx(17页珍藏版)》请在冰豆网上搜索。
c语言习题讲解
1.下列选项中,合法的C语言整型常量是()
A.087B.5LC.(long)123456D.1.23e+2
2.以下不合法的常量是()
A.'\6'B.""C.'\286'D"\286"
3.表达式strlen("\\\"AAA\123\xAA\t")的值为()
A.8B.17C.14D.10
4.已知'a'的ASCII码值为97,以下程序输出的结果是()
#include
main()
{
chara='A';
intb=20;
printf("%d,%o",(a=a+1,a+b,b),a+'a'-'A',b);
}
A.66,141B.20,141C.20,141,20D.66,97
5.
#include
main()
{
intx=34;
floaty=45.98;
printf("%6D,%6.2F",x,y);
}
6.下列程序输出结果是()
main()
{
inta=1,b=2,c=3,k;
k=a+++b+++c++;
printf("\n%d,%d,%d,%d",a,b,c,k);
A.1,2,3,6
B.2,3,4,6
C.1,3,3,7
D.1,3,3,6
7.以下()有语法错误的if语句。
A.if(3.54)
B.if(a!
=b)printf("%d",a)elseprintf("%d",b);
C.if('s'&&s)s++;
D.if(!
a)printf("%d",a);
8.输入数据:
-1(回车),以下程序的输出是()
A.x=0,y=-1;
B.x=-1,y=0;
C.x=0,y=1;
D.x=1,y=0;
9假设inta,b,c,w;且a和b均已被赋值,同时满足条件:
a
Scanf(“%d”,&c);
W=a;
If(w<=b)w=b;
If(w<=c)printf(“%d”,w);
Elsew=c;
A.b>cB.b<=cC.c>a且c 答案: B 3.18运行一下程序时,输入数据: abcdabc再回车,输出为() #include“stdio.h” Main() { Inta1=0,a2=0,a3=0; Charc; While((c=getchar())! =’\n’) Switch(c) { Case‘a’: a1++; Case‘b’: a2++; Default: a3++;’ } Printf(“%d,%d,%d”,a1,a2,a3); } A.2,4,7B.2,2,1C.2,4,1D.2,2,7 答案: A 3.19对循环语句: for(表达式1;表达式2;表达式3)语句,一下叙述正确的是() A.for语句中的三个表达式一个都不能少 B.for语句中的循环体至少要被执行一次 C.for语句中的循环体可以是一个复合语句 D.for语句只能用于循环次数已经确定的情况 答案: C 3.20执行完循环语句for(i=1;i++<10);后,变量i的值是多少? 循环体被执行了几次? A.i的值是8,循环体执行了9次。 B..i的值是9,循环体执行了10次。 C..i的值是10,循环体执行了10次。 D..i的值是11,循环体执行了9次。 答案: D 3.21一下程序段执行后,叙述正确的是() IntI; For(i=1;;i++); Printf(“%d”,i++); A.输出1,B.输出2C.输出3D.死循环 答案: D 3.22一下程序的输出结果是() main() { Inty=9; For(;y>0;y--) If(y%3==0) Printf(“%d”,--y); } A.741B.852C.963D.87521 答案: B 3.23若x,y是int型变量,则执行以下语句后x的值是() For(y=1,x=1;y<=50;y++) { If(x>=10)break; If(x%2==1) { X+=5;continue; } x-=3; } A.1B.6C.7D.10 答案: D 3.24对一下程序段,描述正确的是() Intk=10; While(k=0)k=k-1; A.循环体执行了10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行了一次 答案: C 3.25对以下程序段,描述正确的是() Intk=10; While(k>0) Printf(“%d”,k); K=k-1; A.循环体被执行了10次 B.循环是无限循环 C.循环体一次也不执行 D.循环体语句执行了一次 答案: B 3.26下面程序的运行结果是() Main() { IntI,j,k,x=0; For(i=0;i<2;i++) { X++; For(j=0;j<3;j++) { If(j%2)continue; X++; } X++; } K=i+j; Printf(“k=%d,x=%d\n”,k,x); } A.K=8,X=4 B.K=5,X=8 C.K=3,X=6 D.K=8,X=12 答案: B. 3.27假设chargrade=’A’;则以下程序段的执行结果是() Switch(grade) { Case‘A’; Case‘B’: Case‘C’: printf(“>=60pass! \n”); Case‘D’: printf(“<60\n”); Default: printf(“error! \n”); } 答案: >=60pass! <60 Error! 3.28以下程序段的运行结果是() Main() { Inta=2,b=7,c=5; Switch(a>0) { Case1: switch(b<0) { Case1: printf(“@”);break; Case2: printf(“! ”);break; } Case0: switch(c==5) { Case0: printf(“*”);break; Case1: printf(“#”);break; Default: printf(“#”);break; } Default: printf(“&”); } Printf(“\n”); } 答案: #& 3.29以下程序实现: 输入三个整数,按从大到小的顺序输出,请填空。 Main() { Intx,y,z,T; Scanf(“%d%d%d”,&x,&y,&z); If(x { T=x;x=y;y=T; } If( ) { T=x;x=z;z=t; } If(y { } Printf(“%d,%d,%d”,x,y,z); } 答案: x t=y;y=z;z=t; 3.30为了输出如下图形,请在程序处填入合适的内容。 ***** ***** ***** ***** ***** Main() { IntI,j; For(i=1;i<6;i++) { For(j=1;j<6;j++) __ __; __ __; } } 答案: printf(”*”) printf(“\n”) 为了输出如下图形,请在程序处填入合适的内容。 * *** ***** ******* ********* Main() { IntI,j; For(i=1;i<6;i++) { For(j=1;j<10-1;j++); Printf(“”); For(j=1;j<=___;j++) Printf(“*”); Printf(“\n”); } } 答案: 2*i-1 3.32若变量a,i已正确定义,且i已正确赋值,下列合法的语句是() A.a==1B++I;C.a=a++=5;D.a=int(i); 答案: B 3.36已知: Intt=0; While(t=1) {…….} 则以下叙述正确的是________ A.循环控制表达式的值为0 B.循环控制表达式的值为1 C.循环控制表达式不合法 D.以上说法都不对 答案: B 3.38下面程序的输出结果是___ Main() { Intx=1,a=0,b=0; Switch(x) { Case0: b++; Case1: a++; Case2: a++;b++; } Printf(“a=%d,b=%d\n”,a,b); } A.a=2,b=1B.a=1,b=1C.a=1,b=0Da=2,b=2 答案: A 3.39下面程序的输出结果是_____ Main() { Inti=1,j=1,k=2; If((j++||k++)&&i++) Printf(“%d,%d,%d\n”,I,j,k); } A.1,1,2B.2,2,1C.2,2,2D.2,2,3 答案C 3.40下面程序的输出结果是: ___ Main() { Intn=9; While(n>6) { n--; printf(“%d”,n); } } A.987B.876C.8765D.9876 答案: B 3.41在下面选项中,没有构成死循环的是__ A.inti=100; Whiel (1) { I=i%100+1; If(i>100)break; } B.for(;;); C.intk=10000 do { K++; }while(k>10000); D,ints=36; While(s) --s; 答案: D 3.42若运行一下程序,输入ADescriptor在回车,则下面的程序运行结果是______ #include Main() { Charc; Intv0=1,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=13v1=4v2=12 答案: D 3.44以下程序段的描述正确的是___ X=-1; Do { X=x*x; } While(! x) A.是死循环 B.循环执行两次 C.循环执行一次 D.有语法错误 答案: c 3.45在下述程序中,判断i>j共执行的次数是____ Main() { Inti=0,j=10,k=2,s=0; For(;;) { I+=k; If(i>j) { Prntf(“%d”,s); Break; } S+=I; } } A.4 B.7 C.5 D.6 答案: D 3.46下面程序的功能是把316表示为两个数的和,是两个加数分别能被13和11整除,请…选择填空 #include Main() { Inti=0,j,k; Do { I++; K=316-13*I; } While(_____); Printf(“316=13*%d+11*%d”,I,j); } A.k/11B.k%11C.k/11==0D.k%11==0 答案: B 3.47下面程序的运行结果是___ #include Main() { Inta=1,b=10; Do { b-=a;a++; } While(b--<0); Printf(“a=%d,b=%d\n”,a,b); } A.a=3,b=11 B.a=2,b=8 C.a=1,b=-1 D.a=4,b=9 答案: B 3.48下面程序的运行结果是____ Main() { Intx=23; Do { Printf(“%d”,x--); } While(! x); } A.321 B.23 C.不输出任何内容 D.陷入死循环 答案: B 3.49下面程序的运行结果是____ Main() { Inta=2,b=-1,c=2; If(a If(b<0)c=0 Elsec++; Printf(“%d\n”,c); } A.0B.1C.2D.3 答案: C 3.50执行完语句for(i=1;i++,4;);以后,变量i的值是___ A.3B.4C.5D.不定 答案: c 3.46有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个,若分成7个零件一组,则多3个,若分成9个零件一组,则多5个。 填写程序 #include Main() { IntI; For(i=100;i<200;i++) If((i-2)%4==0) If(! ((i-3)%7)) If(_____) Printf(“%d”,i); } A.i%9=5 B.i%9! =5 C.(i-5)%9! =0 D.(i-5)%9==0 答案: D 3.50以下程序的功能是从键盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束,请填空。 Main() { Floatx,amax,amin; Scanf(“%f”,&x); Amax=x; Amin=x; While(__ __) { If(x>amax) Amax=x; Else If(__ ___) Amin=x; Else Scanf(“%f”,&x); } Printf(“\namax=%f\namin=%f\n”,amax,amin); } 答案: x>0 x 3.56下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0 Main(0 { IntI,x,y=1; Scanf(“%d”,&x); For(i=2;i<=x/2;i++) If______ { Y=0; Break; } Printf(“%d\n,”y); } 答案: (x%i==0) 3.57下面程序的运行结果是____ Main() { Inty=9; For(;y>0;y--) If(y%3==0) { Printf(“%d”,--y);continue; } } 答案: 852
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 讲解