第五章选择结构程序设计练习含答案v1.docx

上传人:b****6 文档编号:4359418 上传时间:2022-11-30 格式:DOCX 页数:41 大小:28KB
下载 相关 举报
第五章选择结构程序设计练习含答案v1.docx_第1页
第1页 / 共41页
第五章选择结构程序设计练习含答案v1.docx_第2页
第2页 / 共41页
第五章选择结构程序设计练习含答案v1.docx_第3页
第3页 / 共41页
第五章选择结构程序设计练习含答案v1.docx_第4页
第4页 / 共41页
第五章选择结构程序设计练习含答案v1.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

第五章选择结构程序设计练习含答案v1.docx

《第五章选择结构程序设计练习含答案v1.docx》由会员分享,可在线阅读,更多相关《第五章选择结构程序设计练习含答案v1.docx(41页珍藏版)》请在冰豆网上搜索。

第五章选择结构程序设计练习含答案v1.docx

第五章选择结构程序设计练习含答案v1

 

第五章选择结构程序设计

 

5.1选择题

 

【题5.4】能正确表示“当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)

 

【题5.5】表示图中坐标轴上阴影部分的正确表达式是。

C

////////

////////

X

abc

A)(x<=a)&&(x>=b)&&(x<=c)

B)(x<=a)||(b<=x<=c)

C)(x<=a)||(x>=b)&&(x<=c)

D)(x<=a)&&(b<=x<=c)

 

【题5.6】判断char型变量ch是否为大写字母的正确表达式是。

C

A)‘A’<=ch<=‘Z’B)(ch>=‘A’)&(ch<=‘Z’)

C)(ch>=‘A’)&&(ch<=‘Z’)D)(‘A’<=ch)AND(‘Z’>=ch)

 

【题5.10】设有:

inta=1,b=2,c=3,d=4,m=2,n=2;

执行(m=a>b)&&(n=c>d)后n的值为。

B

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

 

【题5.11】判断char型变量c1是否为小写字母的正确表达式是。

D

A)‘a’<=c1<=‘z’B)(c1>=a)&&(c1<=z)

C)(‘a’>=c1)||(‘z’<=c1)D)(c1>=‘a’)&&(c1<=‘z’)

 

【题5.12】以下程序的运行结果是。

B

#include“stdio.h”

main()

{

 

1

 

inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf(“%d,%d”,a,b);

}

A)6,1

B)2,1

C)6,0

D)2,0

【题5.13】执行以下语句后

a的值为【1】,b的值为【2】。

CA

inta,b,c;

a=b=c=1;

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

【1】A)错误

B)0

C)2

D)1

【2】A)1

B)2

C)错误

D)0

 

【题5.15】以下不正确的if语句形式是。

C

A)if(x>y&&x!

=y);

B)if(x==y)x+=y;

C)if(x!

=y)scanf(“%d”,&x)elsescanf(“%d”,&y);

D)if(x

【题5.17】已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是。

B

if(x>y)

z=x;x=y;y=z;

 

A)x=10,y=20,z=30B)x=20,y=30,z=30

C)x=20,y=30,z=10D)x=20,y=30,z=20

 

【题5.18】以下if语句语法正确的是。

B

A)if(x>0)

printf(“%f”,x)

elseprintf(“%f”,-x);

B)if(x>0)

{x=x+y;printf(“%f”,x);}

elseprintf(“%f”,-x);

C)if(x>0)

{x=x+y;printf(“%f”,x);};

elseprintf(“%f”,-x);

D)if(x>0)

{x=x+y;printf(“%f”,x)}

 

2

 

elseprintf(“%f”,-x);

 

【题5.19】请阅读以下程序:

main()

{

inta=5,b=0,c=0;

if(a=b+c)printf(“***n”);

elseprintf(“$$$n”);

}

以下程序。

D

A)有语法错不能通过编译B)可以通过编译但不能通过连接

C)输出***D)输出$$$

 

【题5.20】以下程序的运行结果是。

C

main()

{

intm=5;

if(m++>5)printf(“%dn”,m);

elseprintf(“%dn”,m--);

}

A)4B)5C)6D)7

 

【题5.21】当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是。

B

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=6;

elsex=7;

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

 

【题5.22】有一函数关系见下表:

xy=

x<0x-1

x=0x

x>0x+1

 

3

 

下面程序段中能正确表示上面关系的是。

C

A)y=x+1;B)y=x-1;

if(x>=0)if(x!

=0)

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

elsey=x-1;elsey=x;

C)if(x<=0)D)y=x;

if(x<0)y=x-1;if(x<=0)

elsey=x;if(x<0)y=x-1;

elsey=x+1;elsey=x+1;

 

【题5.23】以下程序的输出结果是。

C

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(“%dn”,a);

}

A)1B)0C)-1D)值不确定

 

【题5.24】以下程序的输出结果是。

B

main()

{

intx=2,y=-1,z=2;

if(x

if(y<0)z=0;

elsez+=1;

printf(“%dn”,z);

}

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

 

【题5.25】为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:

else子句总

是与配对。

B

A)缩排位置相同的ifB)其之前最近的if

 

4

 

C)其之后最近的ifD)同一行上的if

 

【题5.26】以下不正确的语句为。

B

A)if(x>y);

B)if(x=y)&&(x!

=0)x+=y;

C)if(x!

=y)scanf(“%d”,&x);elsescanf(“%d”,&y);

D)if(x

 

【题5.27】请阅读以下程序:

#include

main()

{

floata,b;

scanf(“%f”,&a);

if(a<0.0)b=0.0;

elseif((a<0.5)&&(a!

=2.0))b=1.0/(a+2.0);

elseif(a<10.0)b=1.0/x;

elseb=10.0;

printf(“%fn”,y);

}

若运行时输入2.0<回车>,则上面程序的输出结果是。

B

A)0.000000B)0.500000C)1.000000D)0.250000

 

【题5.28】若有条件表达式(exp)?

a++:

b--,则以下表达式中能完全等价于表达式(exp)

的是。

B

A)(exp==0)B)(exp!

=0)C)(exp==1)D)(exp<>0)

 

【题5.29】若运行时给变量x输入12,则以下程序的运行结果是。

A

main()

{

intx,y;

scanf(“%d”,&x);

y=x>12?

x+10:

x-12;

printf(“%dn”,y);

}

A)0B)22C)12D)10

 

【题5.30】以下程序的运行结果是。

D

main()

 

5

 

{

intk=4,a=3,b=2,c=1;

printf(“n”,k

k:

c

c:

a);

}

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

 

【题5.31】执行以下程序段后,变量a,b,c的值分别是。

B

intx=10,y=9;

inta,b,c;

a=(--x==y++)?

--x:

++y;

b=x++;

c=y;

A)a=9,b=9,c=9B)a=8,b=8,c=10

C)a=9,b=10,c=9D)a=1,b=11,c=10

 

【题5.32】若w、x、y、z、m均为int型变量,则执行下面语句后的m值是。

A

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

m=(w

w:

x;

m=(m

m:

y;

m=(m

m:

z;

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

 

【题5.33】若w=1、x=2、y=3、z=4,则条件表达式w

w:

y

y:

z的值是。

D

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

 

【题5.34】执行以下程序段后的输出结果是。

C

intw=3,z=7,x=10;

printf(“%dn”,x>10?

x+100:

x-10);

printf(“%dn”,w++||z++);

printf(“%dn”,!

w>z);

printf(“%dn”,w&&z);

A)0

B)1

C)0

D)0

1

1

1

1

0

1

0

1

1

1

1

0

 

5.2填空题

 

6

 

【题5.35

】当a=3,b=2,c=1

时,表达式

f=a>b>c的值是【

】。

0

【题5.36

】当a=5,b=4,c=2

时,表达式

a>b!

=c的值是【

】。

1

【题5.37

】以下程序的运行结果是

5251

#include

voidmain(void)

{

intx=1,y,z;

x*=3+2;

printf(“%dt”,x);

x*=y=z=5;

printf(“%dt”,x);

x=y==z;

printf(“%dn”,x);

}

 

【题5.38】在C语言中,表示逻辑“真”值用【】。

1

 

【题5.39】设y为int型变量,请写出描述“y是奇数”的表达式【】。

y%2==1或y%2!

=0

 

【题5.40】C语言提供的三种逻辑运算符是【1】、【2】、【3】。

&&||!

 

【题5.41】设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式【】。

 

【题5.42】设x,y,z均为int型变量,请写出描述“x,y和z中有两个为负数”的表

达式【】。

 

【题5.50】条件“2

 

【题5.51】当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!

=b)&&(n=b>c)后;n的值是【0】,

m的值是【1】。

 

【题5.52】以下程序的运行结果是。

1,1

main()

{

intx,y,z;

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

 

7

 

x=y--<=x||x+y!

=z;

printf(“%d,%d”,x,y);

}

 

【题5.53】以下程序的运行结果是。

a1=1a2=1

b1=0b2=1

main()

{

inta1,a2,b1,b2;

inti=5,j=7,k=0;

a1=!

k;

a2=i!

=j;

printf(“a1=%dn”,a1,a2);

b1=k&&j;

b2=k||j;

printf(“b1=%dn”,b1,b2);

}

 

【题5.54】以下程序的运行结果是

1,0

main()

{

intx,y,z;

x=1;y=1;z=0;

x=x||y&&z;;

printf(“%d,%d”,x,x&&!

y||z);

}

 

【题5.61】若运行时输入:

16<回车>,则以下程序的运行结果是。

#include

voidmain(void)

{

intyear;

printf(“Inputyouyear:

”);

scanf(“%d”,&year);

if(year>=18)

printf(“you$4.5yuan/xiaoshi”);

else

printf(“you$3.0yuan/xiaoshi”);

}

 

8

 

【题5.62】若运行时输入:

2<回车>,则以下程序的运行结果是。

#include

voidmain(void)

{

charClass;

printf(“Enter1for1stclasspostor2for2ndpost”);

scanf(“%c”,&Class);

if(Class==‘1’)

printf(“1stclasspostageis19p”);

else

printf(“2ndclasspostageis14p”);

}

 

【题5.63】若运行时输入:

4.4<回车>,则以下程序的运行结果是。

#include

voidmain(void)

{

floatCostPrice,SellingPrice;

printf(“EnterCostPrice$:

”);

scanf(“%f”,&CostPrice);

if(CostPrice>=5)

{

SellingPrice=CostPrice+CostPrice*0.25;

printf(“SellingPrice(0.25)$%6.2f”,SellingPrice);

}

else

{

SellingPrice=CostPrice+CostPrice*0.30;

printf(“SellingPrice(0.30)$%6.2f”,SellingPrice);

}

}

 

【题5.64】以下程序的运行结果是。

main()

{

if(2*2==5<2*2==4)

print(“T”);

else

 

9

 

printf(“F”);

}

 

【题5.65】请阅读以下程序:

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<回车>时,程序的运行结果是。

 

【题5.66】以下程序实现:

输入圆的半径r和运算标志m,按照运算标志进行指定计算。

请在【】内填入正确内容。

 

标志运算

a面积

c周长

b二者均计算

 

#definepi3.14159

main()

{

charm;

floatr,c,a;

printf(“inputmarkn”);

scanf(“%c%f”,&m,&r);

if(【1】)m==’a’

{a=pi*r*r;printf(“areais%f”,a);}

if(【2】)m==’c’

{c=2*pi*r;printf(“circleis%f”,c);}

 

10

 

if(【3】)m==’b’

{a=pi*r*r;c=2*pi*r;printf(“area&&circleare%f%f”,a,c);}

}

 

【题5.67】若运行时输入:

5999<回车>,则以下程序的运行结果(保留小数点后一位)

3635.4

main()

{

intx;

floaty;

scanf(“%d”,&x);

if(x>=0&&x<=2999)y=18+0.12*x;

if(x>=3000&&x<=5999)y=36+0.6*x;

if(x>=6000&&x<=10000)y=54+0.3*x;

printf(“%6.1f”,y);

}

 

【题5.68】以下程序实现输出x,y,z三个数中的最大者,请在【】内填入正确内容。

main()

{

intx=4,y=6,z=7;

int【1】;

u,v;

if(

【2】)u=x;

x>y

elseu=y;

if(

【3】)v=u;

u>z

elsev=z;

printf(“v=%d”,v);

}

 

【题5.69】以下程序实现:

输入三个整数,按从大到小的顺序进行输出。

请在【】内填入正确内容。

main()

{

intx,y,z,c;

scanf(“%d%d%d”,&x,&y,&z);

if(【1】)y

{c=y;y=z;z=c;}

if(【2】)x

{c=x;x=z;z=c;}

 

11

 

if(【3】)x

{c=x;x=y;y=c;}

printf(“%d,%d,%d”,x,y,z);

}

 

【题5.70】以下程序对输入的两个整数,按从大到小的顺序输出。

请在【】内填入正确内容。

main()

{

intx,y,z;

scanf(“%d,%d”,&x,&y);

if(【1】)x

{z=x;【2】}x=y,y=z;

printf(“%d,%d”,x,y);

}

 

【题5.71】以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。

如‘a’

变成‘f’,‘w’变成‘b’。

请在【】内填入正确内容。

#include“stdio.h”

main()

{

charc;

c=getchar();

if(c>=‘a’&&c<=‘u’)【1】;c=c+5;

elseif(c>=‘v’&&c<=‘z’)【2】;c=c-21;

putchar(c);

}

 

【题5.71】输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。

请在【】内填入正确内容。

main()

{

charch;

scanf(“%c”,&ch);

if(【1】)ch=ch+32;ch>=’A’&&ch<=’Z’elseif(ch>=‘a’&&ch<=‘z’)【2】;ch=ch-32;printf(“%c”,ch);

}

 

12

 

【题5.73】以下程序的运行结果是

200

main()

{

inta,b,c;

ints,w,t;

s=w=t=0;

a=-1;b=3;c=3;

if(c>0)s=a+b;

if(a<=0)

{

if(b>0)

if(c<=0)w=a-b;

}

elseif(c>0)w=a-b;

elset=c;

printf(“%d%d%d”,s,w,t);

}

 

【题5.74】以下程序的运行结果是

20

main()

{

inta,b,c,d,x;

a=c=0;

b=1;

d=20;

if(a)d=d-10;

elseif(!

b)

if(!

c)x=15;

elsex=25;

printf(“%dn”,d);

}

 

【题5.75】以下程序的运行结果是

5

5

1

#include

voidmain(void)

{

intx,y=1,z;

 

13

 

if(y!

=0)x=5;

printf(“n”,x);

if(y==0)x=4;

elsex=5;

printf(“n”,x);

x=1;

if(y<0)

if(y>0)x=4;

elsex=5;

printf(“n”,x);

}

 

【题5.76】以下程序的运行结果是。

#include

voidmain(void)

{

intx,y=-2,z;

if((z=y)<0)x=4;

elseif(y==0)x=5;

elsex=6;

if(z=(y==0))

x=5;

x=4;

printf(“n”,x,z);

if(x=z=y)x=4;

printf(“n”,x,z);

}

运行结果:

40

4-2

【题5.77】请阅读以下程序:

main()

{

ints,t,a,b;

scanf(“%d,%d”,&a,&b);

s=1;

t=1;

if(a>0)s=s+1;

if(a>b)t=s+t;

 

14

 

elseif(a==b)t=5;

elset=2*s;

printf(“s=%d,t=%d”,s,t);

}

为了使输出结果t=4,输入量a和b应满足的条件是【】。

a0

 

【题5.78】请阅读以下程序:

main()

{

ints,t,a,b;

scanf(“%d,%d”,&a,&b);

s=1;

t=1;

if(a>0)s=s+1;

if(a>b)t=s+t;

elseif(a==b)t=5;

elset=2*s;

printf(“s=%d,t=%d”,s,t);

}

为了使输出结果s=1,t=5,输入量a和b应满足的条件是【】。

a<0&&(a==b)

 

【题5.79】下面程序根据以下函数关系,对输入的每个x值,计算出y值。

请在【】内填

入正确内容。

xy

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

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1