C语言第四章习题带答案.docx

上传人:b****1 文档编号:3161337 上传时间:2023-05-05 格式:DOCX 页数:14 大小:23.21KB
下载 相关 举报
C语言第四章习题带答案.docx_第1页
第1页 / 共14页
C语言第四章习题带答案.docx_第2页
第2页 / 共14页
C语言第四章习题带答案.docx_第3页
第3页 / 共14页
C语言第四章习题带答案.docx_第4页
第4页 / 共14页
C语言第四章习题带答案.docx_第5页
第5页 / 共14页
C语言第四章习题带答案.docx_第6页
第6页 / 共14页
C语言第四章习题带答案.docx_第7页
第7页 / 共14页
C语言第四章习题带答案.docx_第8页
第8页 / 共14页
C语言第四章习题带答案.docx_第9页
第9页 / 共14页
C语言第四章习题带答案.docx_第10页
第10页 / 共14页
C语言第四章习题带答案.docx_第11页
第11页 / 共14页
C语言第四章习题带答案.docx_第12页
第12页 / 共14页
C语言第四章习题带答案.docx_第13页
第13页 / 共14页
C语言第四章习题带答案.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言第四章习题带答案.docx

《C语言第四章习题带答案.docx》由会员分享,可在线阅读,更多相关《C语言第四章习题带答案.docx(14页珍藏版)》请在冰点文库上搜索。

C语言第四章习题带答案.docx

C语言第四章习题带答案

练习4-1答案

一、选择题

1.已知:

charc='A';inti=1,j;,执行语句j=!

c&&i++;,则i和j的值是(B)。

A.1,1B.1,0C.2,1D.2,0

2.已知:

intx=1,y=2,z;,则执行z=x>y?

++x:

++y;,则z的值为(C)。

A.1B.2C.3D.4

3.已知:

inta=4,b=5,c;,则执行表达式c=a=a>b后变量a的值为(A)。

A.0B.1C.4D.5

4.已知:

charch='A';,则表达式ch=(ch>='A'&&ch<='Z')?

(ch+32):

ch;的值是(B)。

A.'A'B.'a'C.'Z'D.'z'

5.若w=1,x=2,y=3,z=4;,则条件表达式w>x?

w:

y

y:

z的结果为(B)。

A.4B.3C.2D.1

6.已知:

intw=3,x=10,z=7;,则执行下面语句后的结果为(C)。

printf("%d",x>10?

x+100:

x-10);

printf("%d",w++||z++);

printf("%d",!

w>z);

printf("%d",w&&z);

A.0111B.1111C.0101D.0100

7.已知:

a=b=c=1且a、b、c均为int型变量,执行以下语句:

++a||++b&&++c;

则变量a值为(①C),b值为(②A)。

①A.不正确B.0C.2D.1

②A.1B.2C.不正确D.0

8.执行下面语句后x的值为(D)。

inta=14,b=15,x;

charc='A';

x=((a&b)&&(c<'a'));

A.TRUEB.FALSEC.0D.1

9.要判断char型变量m是否是数字,可以使用下列表达式(B)。

A.0<=m&&m<=9B.'0'<=m&&m<='9'

C."0"<=m&&m<="9"D.前面三个答案均是错误的

10.能正确表示“当x取值在[1..10]和[200..210]范围内为真,否则为假”的表达式是(C)。

A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

B.(x>=1)||(x<=10)||(x>=200)||(x<=210)

C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)

11.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)。

A.'x'&&'y'B.x<=yC.x||y+z&&y-zD.!

((x

z||1)

12.已知x=43,ch='A',y=0;,则表达式x>=y&&ch<'B'&&!

y的值是(C)。

A.0B.语法错C.1D.“假”

13.判断char型变量c1是否为小写字母的正确表达式为(D)。

A.'a'<=c1<='z'B.(c1>=a)&&(c1<=z)

C.('a'>=c1)||('z'<=c1)D.(c1>='a')&&(c1<='z')

二、读程序、写结果

14.下面程序的运行结果:

①(17)、②(102)、③(9)、④(127)、⑤(00-1)。

#include

main()

{inti=16,j,x=6,y,z;

j=i+++1;printf("%d\n",j);/*输出①*/

x*=i=j;printf("%d\n",x);/*输出②*/

x=1;y=2;z=3;

x+=y+=z;

printf("%d\n",z+=x>y?

x++:

y++);/*输出③*/

x=0x02ff;y=0xff00;

printf("%d\n",(x&y)>>4|0x005f);/*输出④*/

x=y=z=-1;

++x||++y&&++z;

printf("%d%d%d\n",x,y,z);/*⑤*/

}

练习4-2答案

一、选择题

1.下面程序的输出是(A)。

#include

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

}

printf("a=%d,b=%d\n",a,b);

}

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

2.若有说明:

intx,y;,不能实现以下函数关系的程序段是(B)。

A.if(x<0)y=-1;B.y=-1;C.y=0;D.if(x>=0)

elseif(x==0)y=0;if(x!

=0)if(x>=0)if(x>0)y=1;

elsey=1;if(x>0)y=1;{if(x>0)y=1;}elsey=0;

elsey=0;elsey=-1;elsey=-1;

3.已知:

intx,a,b;,下列选项中错误的if语句是(B)。

A.if(a=b)x++;B.if(a=

4.若inti=10;,执行下列程序后,变量i的正确结果是(D)。

switch(i)

{case9:

i+=1;

case10:

i+=1;

case11:

i+=1;

default:

i+=1;

}

A.10B.11C.12D.13

5.设有说明语句:

inta=1,b=0;,则执行以下语句后输出为(B)。

switch(a)

{case1:

switch(b)

{case0:

printf("**0**");break;

case1:

printf("**1**");break;

}

case2:

printf("**2**");break;

}

A.**0**B.**0****2**C.**0****1****2**D.有语法错误

6.阅读下列程序,其运行结果是(A)。

#include

main()

{charc='A';

if('0'<=c<='39')printf("YES");

elseprintf("NO");

}

A.YESB.NOC.YESNOD.语句错误

7.下列程序的运行结果为(C)。

#include

main()

{inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec+=1;

printf("%d\n",c);

}

A.0B.1C.2D.3

8.阅读程序,其运行结果是(C)。

#include

main()

{inta=-1,b=1,k;

if((++a<0)&&(b--<=0))printf("%d%d\n",a,b);

elseprintf("%d%d\n",b,a);

}

A.-11B.01C.10D.00

9.选择运行结果。

#include

main()

{charch;

ch=getch();

switch(ch)

{case65:

printf("%c",'A');

case66:

printf("%c",'B');

default:

printf("%s\n","other");

}

}

如程序可以正常运行,当从键盘输入字母A时,输出结果为(B)。

A.AB.ABotherC.AotherD.编译错误,无法运行

10.当a=1,b=3,c=5,d=4时,执行完成下面一段程序后x的值是(B)。

if(a

if(c

elseif(a

if(b

elsex=3;

elsex=6;

elsex=7;

A.1B.2C.3D.6

二、填空题

11.以下程序的输出结果是(-1)。

main()

{inta=100,x=10,y=20,ok1=5,ok2=0;

if(x

if(y!

=10)

if(!

ok1)a=1;

elseif(ok2)a=10;

a=-1;

printf("%d\n",a);

}

12.阅读以下程序:

main()

{intt,h,m;

scanf("%d",&t);

h=(t/100)%12;

if(h==0)h=12;

printf("%d:

",h);

m=t%100;

if(m<10)printf("0");

printf("%d",m);

if(t<1200||t==2400)printf("AM");

elseprintf("PM");

}

若运行时输入:

1605,程序的运行结果是(4:

05PM)。

13.若运行时输入:

35/,则以下程序的运行结果是(0.600000)。

main()

{floatx,y;charo;doubler;

scanf("%f%f%c",&x,&y,&o);

switch(o)

{case'+':

r=x+y;break;

case'-':

r=x-y;break;

case'*':

r=x*y;break;

case'/':

r=x/y;break;

}

printf("%f",r);

}

练习4-3答案

一、选择题

1.以下不是死循环的语句为(D)。

A.for(;;x+=i)B.while

(1){x++;}

C.for(i=10;;i--)sum+=i;D.for(;(c=getchar())!

='\n';)printf("%c",c);

2.执行语句for(i=0;i++<3;);后,变量i的值为(C)。

A.2B.3C.4D.5

3.下面的for语句(C)。

for(x=0,y=0;(y!

=123)&&(x<4);x++);

A.是无限循环B.循环次数不定C.循环执行4次D.循环执行3次

4.与语句while(!

x)等价的语句是(A)。

A.while(x==0)B.while(x!

=0)C.while(x!

=1)D.while(~x)

5.定义inti=1;,执行语句while(i++<5);后,i的值为(D)。

A.3B.4C.5D.6

6.若a=1,b=10为int型变量,则执行以下语句后b的值为(①D),a的值为(②B)。

do

{b-=a;

a++;

}while(b--<0);

①A.9B.-2C.-1D.8

②A.4B.2C.1D.3

7.若inta=5;,则执行以下语句后打印的结果为(A)。

do

{printf("%2d\n",a--);

}while(!

a);

A.5B.不打印任何内容C.4D.陷入死循环

8.若intx;,且有下面的程序片段,则输出结果为(D)。

for(x=3;x<6;x++)printf((x%2)?

"**%d":

"##%d\n",x);

A.**3B.##3C.##3D.**3##4

##4**3**4##5**5

**5##5

9.等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请选择填空。

(①B),(②D)。

#include

main()

{inta,q,n,sum;

a=1;q=2;n=sum=0;

do

{①;

++n;

a*=q;

}while(sum<100);

②;

printf("%d\n",n);

}

①A.sum++B.sum+=aC.sum*=aD.a+=sum

②A.n=n-2B.n=nC.n++D.n-=1

二、读程序,写结果

10.下列程序的运行结果为:

i=(①5),j=(②4),k=(③6)。

#include

main()

{inta=10,b=5,c=5,d=5;

inti=0,j=0,k=0;

for(;a>b;++b)i++;

while(a>++c)j++;

dok++;

while(a>d++);

printf("%d,%d,%d\n",i,j,k);

}

11.下面过程的运行结果:

①是(8),②是(6)。

#include

main()

{inti,j;

for(i=0,j=10;i

printf("%d\n",i);/*输出①*/

printf("%d\n",j);/*输出②*/

}

12.下面程序的运行结果是(15)。

#include

main()

{intk,j,m;

for(k=5;k>=1;k--)

{m=0;

for(j=k;j<=5;j++)m=m+k*j;

}

printf("%d\n",m);

}

练习4-4答案

读程序,写结果

1.下面程序的运行结果是(0,1,2,5)。

#include

main()

{inti=0,j=0,k=0,m;

for(m=0;m<4;m++)

switch(m)

{case0:

i=m++;

case1:

j=m++;

case2:

k=m++;

case3:

m++;

}

printf("\n%d,%d,%d,%d",i,j,k,m);

}

2.下面程序的运行结果是(2581114)。

#include

main()

{inti=1;

while(i<=15)

if(++i%3!

=2)continue;

elseprintf("%d",i);

printf("\n");

}

3.若运行以下程序时,从键盘输入Adescriptor表示回车),则下面程序的运行结果是(v0=12,v1=4,v2=12)。

#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);

}

4.下面程序段的输出结果是(死循环)。

x=3;

do

{y=x--;

if(!

y)

{printf("*");

continue;

}

printf("#");

}while(1<=x<=2);

5.下面程序的运行结果是(x=8)。

#include

main()

{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);

}

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2