第04章 逻辑运算和判断选取控制.docx

上传人:b****7 文档编号:25588014 上传时间:2023-06-10 格式:DOCX 页数:42 大小:35.75KB
下载 相关 举报
第04章 逻辑运算和判断选取控制.docx_第1页
第1页 / 共42页
第04章 逻辑运算和判断选取控制.docx_第2页
第2页 / 共42页
第04章 逻辑运算和判断选取控制.docx_第3页
第3页 / 共42页
第04章 逻辑运算和判断选取控制.docx_第4页
第4页 / 共42页
第04章 逻辑运算和判断选取控制.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

第04章 逻辑运算和判断选取控制.docx

《第04章 逻辑运算和判断选取控制.docx》由会员分享,可在线阅读,更多相关《第04章 逻辑运算和判断选取控制.docx(42页珍藏版)》请在冰豆网上搜索。

第04章 逻辑运算和判断选取控制.docx

第04章逻辑运算和判断选取控制

第四章逻辑运算和判断选取控制

4.1选择题

4.1逻辑运算符两侧运算对象的数据类型______。

A)只能是0或1

B)只能是0或非0

C)只能是整型或字符型数据

D)可以是任何类型的数据

4.2以下运算符优先顺序的描述中正确的是______。

A)关系运算符<算术运算符<赋值运算符<逻辑运算符

B)逻辑运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑运算符

4.3下列运算符中优先级别最高的是______。

A)

+

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

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)

4.5表示图中坐标轴上阴影部分的正确表达式是______。

a

b

c

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)

4.6判断char型变量ch是否为大写字母的正确表达式是______。

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

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

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

A)‘x’&&’y’

B)x<=y

C)x||y+z&&y-z

D)!

((x<=y)&&!

z||1

4.8已知x=43,ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!

y)的值是______。

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

4.9若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。

则以下不能满足要求的表达式是______。

A)A%2==1B)!

(A%2==0)C)!

(A%2)D)A%2

4.10设有:

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

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

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

4.11判断char型变量c1是否为小写字母的正确表达式为______。

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

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

4.12以下程序的运行结果是______。

#include“stdio.h”

main()

{

inta,b,d=241;

a=d/100%9;

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

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

}

A)6,1B)2,1C)6,0D)2,0

4.13执行以下语句后a的值为___1__,b的值为__2___。

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

4.14执行以下语句后a的值为___1__,b的值为__2___。

inta=5,b=6,w=1,x=2,y=3,z=4;

(a=w>x)&&(b=y>z);

1

A)

5

B)

0

C)

2

D)

1

2

A)

6

B)

0

C)

1

D)

4

4.15以下不正确的if语句形式是______。

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

4.16下列运算符中优先级最低的是___1__,优先级最高的是__2__。

A)?

B)&&C)+D)!

4.17已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是______。

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

4.18以下if语句语法正确的是______。

A)if(x>0)

printf(“%f”,x);

elseprintf(“%f”,-x);

B)if(x>0)

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

C)if(x>0)

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

elesprintf(“%f”,-x);

D)if(x>0)

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

elseprintf(“%f”,-x);

4.19请阅读以下程序:

main()

{

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

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

elseprintf(“$$$\n”);

}

以上程序______。

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

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

4.20以下程序的运行结果是______。

main()

{

intm=5;

if(m++>5)printf(“%d\n”,m);

elseprintf(“%d\n”,m--);

}

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

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

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=6;

elsex=7;

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

4.22有一个函数关系见下表:

x

y=

x<0

x-1

x=0

x

x>0

x+1

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

A)y=x+1

if(x>=0)

if(x==0)y=x;

elsey=x-1;

B)y=x-1;

if(x!

=0)

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

elsey=x;

C)if(x<=0)

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

elsey=x;

elsey=x+1;

D)y=x;

if(x<=0)

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

elsey=x+1;

4.23以下程序的输出结果是______。

main()

{

inta=100,x=10,y=10,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)1B)0C)–1D)值不确定

4.24以下程序的输出结果是______。

main()

{

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

if(x

if(y<0)z=0;

elsez+=1;

printf(“%d\n”,z);

}

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

else子句总量与______配对。

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

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

4.26以下不正确的语句为______。

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

4.27请阅读以下程序:

#include“stdio.h”

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;

prinf(“%f\n”,y);

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

A)0.B)0.C)1.D)0.

4.28若有条件表达式(exp)?

a++:

b++,则以下表达式中能完全等价表达式(exp)的是______。

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

=0)

C)(exp==1)D)(exp!

=1)

4.29若运行时给变量x输入12,则以下程序的运行结果是______。

main()

{

intx,y;

scanf(“%d”,&x);

y=x>12?

x+10:

x-12;

printf(‘%d\n”,y);

}

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

4.30则以下程序的运行结果是______。

main()

{

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

printf(“\n%d\n”,k

k:

c

c:

a);

}

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

4.31执行以下程序段后,变量a,b,c的值分别是______。

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

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

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

4.33若w=1,x=2,y=3,z=4,则条件表达式w

w:

y

y:

z的值是______。

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

4.34执行以下程序段后的输出结果是______。

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

printf(“%d\n”,x>10?

x+100:

x-10);

printf(“%d\n”,w++||z++);

printf(“%d\n”,!

w>z);

printf(“%d\n”,w&&z);

A)

0

B)

1

C)

0

D)

0

1

1

1

1

1

1

0

0

1

1

1

0

4.2填空题

4.35当a=3,b=2,c=1时,表达式f=a>b>c的值是______。

4.36当a=5,b=4,c=2时,表达式a>b!

=c的值是______。

4.37以下程序运行的结果是______。

main()

{

intx=1,y,z;

x*=3+2;

printf(“%d\t”,x);

x*=y=z=5;

printf(“%d\t”,x);

x=y==z;

printf(“%d\t”,x);

}

4.38在C中,表示逻辑真值用______。

4.39设y为int型变量,请写出描述“y是奇数”的表达式______。

4.40C语言提供的三种逻辑运算符是______。

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

4.42设x,y,z均为int型变量,请写出描述“x,y和z中有两个为负数”的表达式______。

4.43已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A

C>B的值是______。

4.44若有a=6,b=4,c=2,则表达式!

(a-b)-c-1&&b+c/2的值是______。

4.45若a=2,b=4,则表达式!

(x=a)||(y=b)&&0的值是______。

4.46若a=1,b=4,c=3,则表达式!

(a

c&&1的值是______。

4.47若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是______。

4.48若a=5,b=2,c=1,则表达式a-b

4.49设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是______。

4.50条件“2

4.51当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!

=b)&&(n=b>c)后,n的值为__1_,m的值为___2___。

4.52以下程序的运行结果是______。

main()

{

intx,y,z;

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

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

=z;

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

}

4.53以下程序的运行结果是______。

main()

{

inta1,a2,b1,b2;

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

a1=!

k;

a2=i!

=j;

printf(“a1=%d\ta2=%d\n”,a1,a2);

b1=k&&j;

b2=k||j;

printf(“b1=%d\tb2=%d\n”,b1,b2);

}

4.54以下程序的运行结果是______。

main()

{

intx,y,z;

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

x=x||y&&z;

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

y||z);

}

4.55有intx,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为______。

4.56有intx,y,z;且x=3,y=-4,z=5,则以下表达式的值为______。

!

(x>y)+(y!

=z)||(x+y)&&(y-z)

4.57有intx,y,z;且x=3,y=-4,z=5,则表达式x++-y+(++z)的值为______。

4.58设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是______。

4.59设a=3,b=4,c=5,x,y;则以下表达式的值是______。

!

(x=a)&&(y=b)&&0

4.60有inta=3,b=4,c=5;则以下表达式的值为______。

!

(a+b)+c-1&&b+c/2

4.61若运行时输入:

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

#include“stdio.h”

voidmain(void)

{

intyear;

printf(“Inputyouryear:

”);

scanf(“%d”,&year);

if(year>=18)

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

else

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

}

4.62略

4.63略

4.64略

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

4.66以下程序实现:

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

请在______内填入正确内容。

标志

运算

a

面积

c

周长

b

二者均计算

#definepi3.14159

main()

{

charm;

floatr,c,a;

printf(“inputmarkacorb&&r\n”);

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

if(___1___)

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

if(___2___)

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

if(___3___)

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

}

4.67若运行是输入:

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

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

}

4.68以下程序实现输出x,y,z三个数中的最大者。

请在_____内填入正确内容。

main()

{

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

int__1__;

if(__2__)u=x;

elseu=y;

if(__3___)v=u;

elsev=z;

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

}

4.69以下程序实现:

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

请在_____内填入正确的内容。

main()

{

intx,y,z,c;

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

if(__1__)

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

if(__2__)

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

if(__3__)

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

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

}

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

请在_____填入正确内容。

main()

intx,y,z;

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

if(__1__)

{z=x;__2__}

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

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

如’a’变成’f’,’w’变成’b’。

请在_____内填入正确内容。

#include“stdio.h”

main()

{

charc;

c=getchar();

if(c>=’a’&&c<=’u’)__1__;

elseif(c>=’v’&&c<=’z’)__2__;

putchar(c);

}

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

请在_____内填入正确内容。

main()

{

charch;

scanf(“%c”,&ch);

if(_____)ch=ch+32;

elseif(ch>=’a’&&ch<=’z’)_____;

printf(“%c”,ch);

}

4.73以下程序的运行结果是_____。

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

}

4.74以下程序的运行结果是_____。

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(“%d\n”,d);

4.75以下程序的运行结果是_____。

#include“stdio.h”

voidmain(void)

{

intx,y=1,z;

if(y!

=0)x=5;

printf(“\t%d\n”,x);

if(y==0)x=4;

elsex=5;

printf(“\t%d\n”,x);

x=1;

if(y<0)

if(y>0)x=4;

elsex=5;

printf(“\t%d\n”,x);

}

4.76以下程序的运行结果是_____。

#include“stdio.h”

voidmain(void)

{

intx,y=-2,z=0;

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

elseif(y==0)x=5;

elsex=6;

printf(“\t%d\t%d\n”,x,z);

if(z=(y==0))

x=5;

x=4;

printf(“\t%d\t%d\n”,x,z);

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

printf(“\t%d\t%d\n”,x,z);

}

4.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;

elseif(a==b)t=5;

elset=2*s;

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

}

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

4.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==

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

当前位置:首页 > 经管营销 > 经济市场

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

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