选择结构习题一

选择结构习题一
选择结构习题一

第五章if语句练习题

1..已知int x=10,y=20,z=30;以下语句执行

后x,y,z的值是____ ____ _

if(x>y)

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

2.以下if语句语法正确的是________

A.if(x>0)

printf(“%f”,x)

else printf(“%f”,-x);

B.if(x>0)

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

else printf(“%f”,-x);

C.if(x>0)

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

else printf(“%f”,-x);

D.if(x>0)

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

else printf(“%f”,-x);

3.请阅读以下程序:

main( )

{int a=5,b=0,c=0;

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

else

printf(“$ $ $\n”);}以上程序______

A.有语法错不能通过编译

B.可以通过编译但不能通过连接

C.输出* * *

D.输出$ $ $

4.以下程序的运行结果是______

main( )

{int m=5;

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

else printf(“%d\n”,m--);}

A. 4

B. 5

C. 6

D. 7

5.当a=1,b=3,c=5,d=4时,执行完下面一段程

序后x的值是______

if(a

if(c

else

if(a

if(b

else x=3;

else x=6;

else x=7;

A. 1

B. 2

C. 3

D. 6

6.有一个函数关系见下表:

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

A. y=x+1;

if(x>=0)

if(x==0)y=x;

else y=x-1;

B. y=x-1;

if(x!=0)

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

else y=x;

C. if(x<=0)

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

else y=x;

else y=x+1;

D.y=x;

if(x<=0)

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

else y=x+1;

7.以下程序的输出结果是______

main( )

{int a=100,x=10,y=20,okl=5,ok2=0;

if(x

if(!ok1)

a=1;

else

if(ok2)

a=10;

a=-1;

printf(“%d\n”,a);}

A.1

B.0

C.-1

D.值不确定

8.以下程序输出结果是_______

main( )

{int x=2,y=-1,z=2;

if(x

if(y<0) z=0;

else z+=1;

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

A.3

B.2

C.1

D.0

9.以下不正确的语句为______

A.if(x>y);

B.if(x=y)&&(x! =0) x+=y;

C,if(x! =y)scanf(“%d”,&x);

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

D.if(x

10.阅读以下程序

#include

main( )

{float a, b;

scanf(“%f”,&a);

if(a<0.0)b=0.0;

else if((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);

else if(a<10.0)b=1.0/a;

else b=10.0;

printf(“%f\n”,b);}

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

果是_____

A.0.000000

B.0.500000

C.1.000000

D.0.250000

11.若运行时输入:16<回车>,则以下程序的运

行结果是( )

#include

main( )

{int year;

printf(“Input you year:”);

scanf(“%d”,&year);

if(year>=18)

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

else printf(“your$3.0yuan/xiaoshi”);} 12.若运行时输入:2<回车>,则以下程序的运行

结果是( )

#include

main( )

{char class;

scanf(“%c”,&class);

if(class==’1’)printf(“1st class postage is 19p”);

else

printf(“2nd class postage is 14p”);} 13.若运行时输入:4.4<回车>,则以下程序的运

行结果是( )

#include

main( ) {float costprice,sellingprice;

printf(“enter cost price $:”);

scanf(“%f”,&costprice);

if(costprice>=5)

{sellingprice=costprice+costprice*0.25;

printf(“selling

price(0.25)$%6.2f”,sellingprice);}

else

{sellingprice=costprice+costprice*0.30;

printf(“selling

price(0.30)$%6.2f”,sellingprice);}}

14.以下程序的运行结果是( )

main( )

{ if(2*2= =5<2*2= =4) printf(“T”);

else printf(“F”);}

15.请阅读以下程序:

main( )

{int t,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”);

else printf(“PM”);}

若运行时输入:1605<回车>时,程序的运行结果

是( )

16.以下程序实现:输入圆的半径r和运行标志

m,按照运行标志进行指定计算.请在( )内

填入正确的内容.

标志运算

a 面积

c 周长

b 二者均计算

#define pi 3.14159

main( )

{char m;

float r,c,a;

printf(“input mark a c or b&&r\n”);

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

if( )

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

if( )

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

if( )

{a=pi*r*r;c=2*pi*r;printf(“area&&circle

are%f%f”,a,c);}}

17.若运行时输入:5999<回车>,则以下程序的

运行结果(保留小数后一位)是( )

main( )

{int x;

float y;

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

18.以下程序实现输出x,y,z三个数中的最大

者.请在( )添入正确内容.

main( )

{int x=4,y=6,z=7;

int ( )

if( )u=x;

else u=y;

if( )v=u;

else v=z;

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

19.以下程序实现:输入三个整数,按从大到小

的顺序进行输出.请在( )内填入正确内容

main( )

{int x,y,z,c;

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

if( )

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

if( )

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

if( )

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

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

20.以下程序对输入的两个整数,按从大到小顺

序输出.请在( )内填正确内容.

main ( )

{int x,y,z;

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

if( )

{z=x; }

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

21.以下程序对输入的一个小写字母,将字母循

环后移5个位置后输出.如’a’变

成’f’,’w’变成’b’.请在( )填入正

确内容

#include “stdio.h”

main( )

{char c;

c= ;

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

else if(c>=’v’&&c<=’z’) putchar(c);}

22.输入一个字符,如果它是一个大写字母,则

把它变成小写,如果是小写,则变成大写,其

他字符不变,请在( )填正确内容main ( )

{char ch;

scanf(“%c”,&ch);

if( )ch=ch+32;

else if(ch>=’a’&&ch<=’z’)

printf(“%c”,ch);}

23.以下程序的运行结果是( )

main( )

{int a,b,c;

int s,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;}

else if(c>0)w=a-b;

else t=c;

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

24.以下程序的运行结果是( )

main( )

{int a,b,c,d,x;

a=c=0;

b=1;

d=20;

if(a)d=d-10;

else if(! b)

if(! c)x=15;

else x=25;

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

25.以下程序的运行结果是( )

#include

main( )

{int x,y=1,z;

if(y!=0)x=5;

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

if(y= =0)x=4;

else x=5;

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

x=1;

if(y<0)

if(y>0)x=4;

else x=5;

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

26.以下程序的运行结果是( )

#include

main( )

{int x,y=-2,z=0;

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

else if(y= =0)x=5;

else x=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);}

27.阅读下面程序:

main ( )

{int s,t,a,b;

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

s=1;

t=1;

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

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

else if(a= =b)t=5;

else t=2*s;

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

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

是( )

28.请阅读下面程序:

main( )

{int s ,t,a,b;

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

s=1;

t=1;

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

if(a>b)t=s+t; else if(a= =b)t=5; else t=2*s;

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

为使输出结果s=1,t=5,输入量a 和b 应满足条件是( )

29. 下面程序根据以下函数关系,对输入的每个

x 值,计算出y 值,在( )填正确内容

main( ) {int x,y; scanf(“%d,&x); if(1)y=x*(x+2); else if(2)y=2*x; else if(x<=-1)y=x-1; else ; if(y!=-1)printf(“%d ”,y); else printf(“

error ”);}

30. 下面程序根据以下函数关系,对输入的每个

x 值,计算出相应的y 值.在( ) 填正确内容

#include “math.h ” main( ) {int x,a; float y;

scanf(“%d%d ”,&x,&a); if( )y=0; else

if( )y=sqrt(a*a-x*x); else y=x; printf(“%f ”,y);}

31. 以下程序的功能是计算一元二次方程

ax 2

+bx+c=0的根,在( )填正确内容 #include “math.h ” main( )

{float a,b,c,t,disc,twoa,term1,term2; printf(“enter a,b,c:”); scanf(“%f%f%f ”,&a,&b,&c); if( ) if( )

printf(“no answer due to input error\n ”); else

printf(“the

single

root

is%f\n ”,-c/b); else{disc=b*b-4*a*c; twoa=2*a;

terml=-b/twoa; t=abs(disc); term2=sqrt(t)/twoa; if(3)

printf(“complex root\n real part=%fimag part=%f\n ”, terml,term2); else

printf(“real

roots\n

rootl=%froot2=%f\n ”,terml+term2,term1-te rm2);}}

32. 以下程序根据输入的三角形的三边判断是

否能组成三角形,若可以则输出它的面积和三角形的类型.在( )填正确内容. #include “math.h ” main( ) {float a,b,c; float s,area;

scanf(“%f %f %f ”,&a,&b,&c); if( ) {s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“%f ”,area); if( ) printf(“等边三角形”); else if( ) printf(“等腰三角形”);

else if((a*a+b*b= =c*c)| |(a*a+c*c= =b*b)|

|(b*b+c*c= =a*a) ) printf(“直角三角形”); else printf(“一般三角形”);} else printf(“不能组成三角形”);} 33. 某邮局对邮寄包裹有如下规定:若包裹的长

宽高任一尺寸超过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收手续费0.2元,再加上根据下表按重量wei 计算的资料:

重量(千克) 收费标准(元/公斤) wei<=10 0.80 10

{float len,wei,hei,wid,mon,r;

scanf(“%f %f %f %f ”,&len,&wid,&hei,&wei );

if(len>1| |wid>1| |hei>1| |wei>30)

; else if(wei<10) r=0.8; else if(wei<=20) r=0.75; else if(wei<=30)

;

if(r= =-1)printf(“error\n ”):

else

{ ;printf(“%f”,mon);} }

34.以下程序的功能是判断输入的年份是否是

闰年.请在[ ]内填入正确的内容.

main( )

{int y,f;

scanf(“%d”,&y);

if(y%400= =0) f=1;

else if( ) f=1;

else ;

if(f)printf(“%d is”,y);

else printf(“%d is not”,y);

printf(“a leap year\n”);} 35.有四个数a, b, c, d,要求按从大到小的顺

序输出.请在[ ]内填入正确内容

main( )

{int a,b,c,d,t;

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

if(a

if ( ){t=c;c=d;d=t;}

if(a

if( ){t=b;b=c;c=t;}

if(b

if(c

printf(“%d %d %d %d\n”,a,b,c,d);} 36.以下程序的运行结果是__

main( )

{int a=2,b=3,c;

c=a;

if(a>b)c=1;

else if(a= =b)c=0;

else c=-1;

printf(“%d\n”,c);}

37.在if后一对圆括号中表示a不

等于0的关系,则能正确表示这

一关系的表达式为_______。

A.a<>0

B.!a

C.a=0

D.a

38.有以下程序

main()

{ int a=15,b=21,m=0;

switch(a%3)

{ case 0:m++;break;

case 1:m++;

switch(b%2)

{ default:m++;

case 0:m++;break; } }

printf(“%d\n”,m);}

程序运行后的输出结果是______。

A.1

B. 2

C. 3

D.4

39.以下程序的输出结果是_____。

main()

{ int a=4,b=5,c=0,d;

d=!a&&!b||!c;

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

A.1

B. 0

C. 非0的数

D.-1

40.表达式“0?(0?3:2):(10?

1:0)”的值为。

A.3

B.2

C.1

D.0

41.若变量已正确定义,那么以下

语句段的输出结果是_______。

x=0;y=2;z=3;

switch(x)

{ case 0: switch(y==2)

{ casa 1:printf(“*”);

break;

case 2:printf(“%”);

break;

}

case 1: switch(z)

{ case 1:printf(“$”);

case 2:printf(“*”);

break;

default:

printf(“#”); } }

A.%$

B.#*

C.*#

D.**$

42.编制程序要求输入整数a和b,若a2+b2大于

100,则输出a2+b2百位以上数字,否则输出

两数之和.

43.试编程判断输入的正整数是否既是5又是7

的整倍数.若是,则输出yes,否则输出no

44.编程序:根据以下函数关系,对输入的每个x

值,计算出相应的y值

45.编程实现:输入一个整数,判断它能否被

3,5,7整除,并输出以下信息之一

(1)能同时被3,5,7整除

(2)能被其中两个数整除(要指出那两个数)

(3)能被其中一个数整除(指出那一个)

(4)不能被3,5,7任一个整除

顺序结构程序设计练习题

1.putchar函数可以向终端输出一个( )

A.整型变量表达式值

B.实型变量值

C.字符串

D.字符或字符变量值

2.以下程序的输出结果是( ) (注:□代表空

格)

main( )

{printf(“\n*s1=%15s*',“chinabeijing");printf(

“\n*s2=%-5s*",“chi");}

3.x和y均定义为int型,z定义为double型,以

下不合法的scanf函数调用语句是( )

A.scanf(“%d%s,%le",&x,&y,&z);

B.scanf(“%2d*%d%f",&x,&y,&z);

C.scanf(“%x%*d%o",&x,&y);

D.scanf(“%x%o%6.2f",&x,&y,&z);

4.已有如下定义和输入语句,若要求

a1,a2,c1,c2的值分别为10,20,A和B,当从第

一列开始输入数据时,正确的数据输入方式

是( )(注:□表示空格,表示回车)

int a1,a2;char c1;c2;

scanf(“%d%c%d%c",&a,&c1,&a2,&c2);

A.10A□20B

B.10□A□20□B

C.10A20B

D.10A20□B

5.已有定义int x;float y;且执行

scanf(“%3d%f",&x,&y);语句时,从第一列开

始输入数据12345□678<回车>,则x的值为

()y的值为( )

(1)A.12345 B.123 C.45 D.345

(2)A.无定

值 B.45.000000 C.678.000000

D.123.000000

6.阅读以下程序段,当输入数据形式

为:25,13,10,正确的输入结果为

( )

{int x,y,z; scanf(“%d%d%d",&x,&y,&z);

printf(“x+y+z=%d\n",x+y+z);}

A.x+y+z=48

B.x+y+z=35

C.x+z=35

D.不确定值

7.根据题目中已给出的数据的输入和输出形

式,程序中输入输出的语句的正确内容是

( )

main( )

{int x;float y;printf(“enter x,y:");输入语句

输出语句}输入为:2□3.4 输出为:x+y=5.40

A.scanf(“%d,%f",&x,&y);

printf(“\nx+y=4.21",x+y);

B.scanf(“%d%f",&x,&y);

printf(“\nx+y=4.2f",x+y);

C.scanf(“%d%f",&x,&y);

printf(“\nx+y=6.1f",x+y);

Dscanf(“%d%3.1f",&x,&y);

printf(“\nx+y=%4.2f",x+y);

8.以下说法正确的是( )

A.输入项可以为一个实型常量,如

scanf(“%f”,3.5);

B.只有格式控制,没有输入项,也能进行正确

输入,如scanf(“a=%d,b=%d”);

C.当输入一个实型数据时,格式控制部分应

规定小数点后的位数,如scanf(“%4.2f",&f);

D.当输入数据时,必须指明变量的地址,如

scanf(“%f",&f);

9.有输入语

句:scanf(“a=%d,b=%d,c=%d",&a,&b,&c);为

使变量a的值为1,b为3,c为2,从键盘输入

数据的正确形式应是( )

A.132

B.1,3,2

C.a=1□b=3

□c=2 D.a=1,b=2,c=3

10.以下程序的输出结果为( )

main( )

{short a;

a=-4;

printf("\na:dec=%d,oct=%x,unsigned=%u\n",

a,a,a,a);}

11.以下程序的输出结果为( )

main( )

{printf("*%f,%4.3f*\n",3.14,3.15);}

12.以下程序的输出结果为( )

main( )

{char c='x';

printf("c:dec=%d,oct=%o,hex=%x,ASCII=%c

\n",c,c,c,c);}

13.已有定义int d=-2;执行以下语句后的输出结

果是( )

printf("*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n",

d,d,d);

printf("*d(4)=%o*d(5)=%6o*d(6)=%-7o*\n",

d,d,d);

14.以有定义float d1=3.5,d2=-3.5;执行以下语句

后的输出结果是( )

printf("*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\

n,d,d,d);

printf("*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\

n",d,d,d);

15.在scanf函数调用语句中当输入以下数据:

10_ _20_ _30_ _40,下面语句的执行结

果是( )

int

a1,a2,a3; scanf("%d%d*%d%d",&a1,

&a2,&3);

16.若有以下定义和语句,为使变量c1的到字符

'A',变量c2得到字符'B'正确的格式输入形式

是( )

char

c1,c2; scanf("%4c%4c",&c1,&c2);

17.计算机能直接执行的程序是________。

A.源程序

B.目标程序

C.汇编程

序 D.可执行程序

18.以下叙述中错误的是()

A.计算机不能直接执行用C语言编写的源

程序

B.C程序经C编译程序编译后,生成后缀

为.obj的文件是一个二进制文件

C.后缀为.obj的文件,经连接程序生成后缀

为.exe的文件是一个二进制文件

D.后缀为.obj和.exe的二进制文件都可以直

接运行

19.下列叙述中错误的是()。

A.一个 C 语言程序只能实现一种算法

B.C 程序可以由多个程序文件组成

C.C 程序可以由一个或多个函数组成

D.一

个C 函数可以单独作为一个C 程序文件存

20.以下叙述中错误的是()

A.C语言是一种结构化程序设计语言

B.结构化程序由顺序、分支、循环三种基本

结构组成

C.使用三种基本结构构成的程序只能解决

简单问题

D.结构化程序设计提倡模块化的设计方法

21.以下程序运行时,若从键盘输入:10 20 30 ,

则输出的结果是:()

main()

{int i=0,j=0,k=0;

scanf(“%d%*d%d”,&I,&j,&k);

printf(“%d,%d,%d\n”,I,j,k):}

22.以下程序输出为

main()

{float k=-234.8765;

printf(“#%4.2f#\n”,k);}

23.执行下列程序,输出结果为:

main()

{int m,n;

m=027;n=123;

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

printf(“%d,”,++m);

printf(“%x\n”,n++);}

以下程序输出结果:

main()

{int k=-4;

printf(“%d,%u,%x,%o\n”,k,k,k,k);}

1、C

2、(1)A (2)C

3、B

4、C

5、D

6、C

7、B

8、C

9、C 10、B 11、A 12、

B 12、B

13、your$3.0yuan/xiaoshi

14、2nd class postage is 14p

15、selling price(0.30)$ 5.72 (注意:5.72

前有2个空格)

16、F

17、4:05PM

18、(1) m=='a' (2) m=='c' (3) m=='b'

19、3635.4

选择结构程序设计习题

选择结构程序设计练习 1.从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。[提示]根据字符型数据的ASCII码值是否在‘0’字符与‘9’字符之间进行判断。使用if…else…语句。 精选文档,供参考!

2.编写一个程序,其功能为:从键盘输入三个数x、y、z,判断x+y=z是否成立,若成立输出“x+y=z”的信息,否则输出“x+y!=z”的信息。[提示] 条件判断表达式x+y==z 3.编写一个程序,其功能为:输入三个整数,输出最大数和最小数。 [提示] 设置最大值变量max和最小值变量min;首先比较a,b的大小,并把大数存入max,小数存入min;然后最大值变量max和最小值变量min 再与c比较,若c大于max,则max取值c,否则保持不变;如果c小于min,则min取值c,否则保持不变。最后输出max和min的值。使用if…else…语句、if语句以及复合语句。 精选文档,供参考!

精选文档,供参考!

4.某产品生产成本c=c1+mc2,其中c1为固定成本,c2为单位产品可变成本。当生产数量m<10000时,c1=20000元,c2=10元;当生产数量m≥10000时,c1=40000元,c2=5元;编写一个程序,其功能为:分别计算出生产数量为6000以及25000时,总生产成本及单位生产成本。 精选文档,供参考!

5.分段函数的计算。编写一个程序,计算下列函数: y= x x<1 2x-1 1≤x<10 3x-11 x≥10 [提示]根据输入的x值的取值,计算y的值并输出。使用if…else if语句以及复合语句。 精选文档,供参考!

c语言第五章 选择结构程序设计(习题册答案)

第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、!。其中优先级最高的为!,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x2&&x<3。 8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。 9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。 10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。 11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。 二、选择题 1、逻辑运算符两侧运算对象的数据类型(D)。 A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2、以下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑与运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑与运算符 3、下列运算符中优先级最高的是(B)。 A)< B)+ C)&& D)!= 4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。 A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122) 5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表 达式是(C)。 A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)

顺序结构选择结构和循环结构的程序设计典型例题分析与解答

顺序结构、选择结构和循环结构的程序设计典型例题分析与解答 1 在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构 【分析】能用1个条件,控制某个操作做或不做的选择结构是单分支结构;能用1个条件,控制从2个操作中选择一个操作执行的选择结构是双分支结构;能用n(n>l)个条件,控制从n+ l个操作中选择一个操作执行的选择结构是多分支结构。【答案】多分支 2 在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。 【分析】当型循环结构是先判断控制循环的条件,条件成立,执行循环体;条件不成立,则退出循环体。次数型循环结构也是先判断是否达到循环次数,没有达到循环次数,执行循环体;达到循环次数的,退出循环。只有直到型循环结构才是先执行循环体,然后再判断控制循环的条件,如果条件成立,进行循环;条件不成立,退出循环。 【答案】直到型 3 使用“getchar( )”函数时,程序的开头必须写一条包含命令为____________。 【分析】凡是使用系统函数的程序,都要在程序的开头写一条包含命令,包含命令中的“头函数.h”是一个文件,其中有关于该系统函数的定义。系统函数“getchar( )”是在名为“stdio.h(标准输入输出函数)”的头函数文件中定义的。【答案】#include"stdio.h"或#include<stdio.h> 4 执行输入语句“scanf("x=%c,y=%d",&x,&y);”,要使字符型变量X的值为'A'、整型变量y的值为12,则从键盘上正确的输入是( ) ①'A'/②A/③x=A/ ④x=A,y=12/ 12/ 12/ y=12/ 说明:备选答案中的"/"表示回车换行键 【分析】输入语句的格式控制符串中的“x=”、“,”、“y=”都是非格式控制符, 在输入时必须原样位置输人,所以只有备选答案④才符合这个要求。【答案】④ 5 设有下列程序段,则执行该程序段后的输出是( ) int i=012; float f=1.234E-2; printf("i=%-5df=%5.3f",i,f); ... ①i=__012f=1.234 ②i=10___f=0.012 ③10___O.012 ④___100.012 注:答案中的_代表一个空格。 【分析】输出语句的格式控制符串中的“i=”、“f=”都是非格式控制符,在输出时必须原样,原位置输出,所以只有备选答案①和②才符合这个要求;格式控制符“%-5d”的格式控制是数据左对齐、宽度为5的整型数据,备选答案①中的数据是右对齐的;此外,该答案中的实数“1.234E-2”应该代表“0.01234”,而不是“1.234”。只有备选答案②符合题意。【答案】② 6 在Turbo C的主屏幕中,将当前编辑的源程序以原名存盘,可以选用___________菜单项,也可以直热键________。 【分析】如果选用“File/Save”菜单项,或者使用热键(f12),当前编辑的源程序将以原来的文件名存盘;如果选用“File /Write to”,当前编辑的源程序将以新的文件名存盘。 【答案】File/Save F2 7 下列各种选择结构的问题中,最适合用if-else语句来解决的是( ) ①控制单个操作做或不做的问题 ②控制两个操作中选取一个操作执行的问题 ③控制三个操作中选取一个操作执行的问题 ④控制10个操作中选取一个操作执行的问题 【分析】if-else语句是专门解决“双分支结构”的,而“双分支结构”的问题就是用单个条件控制从两个操作中选取一个操作来执行的问题。 【答案】② 8 下列程序是输入一个小写字母,转换成对应大写字母的后一个字母输出。例如:'a'将转换成’B’、…、‘y’将转换成’Z’,其中的’Z’将转换成’A’。请填写程序中所缺少的语句。 main() {char ch ; scanf(”%c”,&ch〕; ch=ch- 32+1; ___________________; printf("%c\n",ch); } 【分析】分析程序库中的“ch=ch- 32+ 1;”语句,可知是将字符型变量 ch中的小写字母转换成对应的大写字母(- 32)的后一个字母(+ l)。如果ch中的字母是' a'、' b'、··,'y',转换结果都不会出错,但是,如果 ch中的字母是'Z',则-32后是大写字母'Z',再+l后将不是大写字母了。为了使其转换成'A',需要用一个单分支结构来实现:如果ch的值等于'Z'+ l,则硬性将 ch的值改成'A'。完成这个任务的语句是一条单分支语句,正是所缺少的语句。 【答案】 if (ch=='Z'+l) h='A'; 9不能正确计算下列分段函数的程序段是_________ |-1 x<0 y=|0 x=0 x>0 ① switch(x< 0)② if(x> 0) {case1:y=-1;break; y=1; case 0:switch(x==0)else {casel:y=0;break;if(x==0) case 0: y= l;y=0 } else } &ny=-l ③ y= l;④ y= l; if(x==0)if(x<0) y=0; y =-l; else else y=- l; if(x== 0) y=0; 【分析】先来分析备选答案①:表达式“x<0”的值只有两种可能性,成立值为1、不成立值为on如果“x<0”的值为 1(即 x< 0),则执行“easel:”后的语句“y=-l”后,退出 switch语句,符合分段函数要求。如果“x<0”的值为0(即x>=0),则执行“case 0:”后的switch语句。该switch语句的表达式是“x==0”,结果也有两种:成立为1、不成立为0.如果“x==0”的值为1(即x=0),则执行“case l:”后的语句“y=0”后,退出 switch语句,符合分段函数要求。如果“x==0”的值为0(即x>0),则执行“case 0:”后的语句“y=1”,也符合分段函数要求。再分析备选答案②:这是标准的用嵌套双分支结构来实现三分支的分段函数,结果显然是能求解分段函数的。分析备选答案③:双分支语句的条件是“x==0”,条件成立时,y值为0,符合分段函数的要求,条件不成立时(包含x>0和x<0两种情况),结果y值为-l,显然不符合分段函数的要求,所以本题要选该答案。至于备选答案④,是能正确计算分段函数的,首先置y为1;接着用双分支结构处理“x<0”和“x>=0”的两种情况:前者使得y值为一l;后者再执行一个单分支结构,如果“x==0”则使y值为0,否则不改变y值,保持y的原值1,符合分段函数的要求。 【答案】③ 10 三种循环语句都能解决循环次数已经确定的次数型循环,其中__________循环语句最适合。 【分析】当“for(表达式 1;表达式 2;表达式 3)语句;”中的表达式1为:整型变量 k=l;表达式 2为:整型变量 k<= n;表达式 3为:整型变量 k++;则这个 for循环就是次数为n次的标准次数型循环结构。 【答案】for 11执行下列程序段后的输出是() x=l; while(x<=3) x++,y=x+++x; printf("%d,%d",x,y); ① 6,10 ②5,8 ③4,6 ④3,4 【分析】我们可以使用逐步记录运行结果的方法来获得输出结果,记录如下: x=1; 进入循环,条件满足执行循环体:计算x+十得x为2,计算y=x+++x,得y为4、x为3; 继续循环,条件满足执行循环体:计算x+十得x为4,计算y=x+++x,得y为8、x为5; 继续循环,条件不满足退出循环; 输出x和y的值为5,8。 【答案】② 12 执行下列程序段,其中的do-while循环一共执行_次。 static int x; do x+=x*x; while (x); 【分析】对静态型变量,不赋初值也有值,对整型变量,其值为 0。执行循环语句 do-while 的循环体,x+=x* x是x=x+(x*

C语言 选择结构程序设计练习题

第四章选择结构程序设计 一、填空 1.在C语言中,表示逻辑“真”值用_________。 2.得到整型变量a的十位数字的表达式为_________。 3.表达式:(6>5>4)+(float)(3/2)的值是_________。 4.表达式:a=3,a-1‖--a,2*a的值是_________。(a是整型变量) 5.表达式:(a=2.5-2.0)+(int)2.0/3的值是_________。(a是整型变量)6.C语言编译系统在给出逻辑运算结果时,以数值_________代表“真”,以 _________代表“假”;但在判断一个量是否为“真”时,以_________代表“假”,以_________代表真。 7.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为_________,m的值为_________。 8.若有int x,y,z;且x=3,y=-4,z=5,则表达式:!(x>y)+(y!=z)||(x+y)&&(y-z)的值为_________。 二、编程: 1.企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数? 2.输入三个整数x,y,z,请把这三个数由小到大输出。 3.输入某年某月某日,判断这一天是这一年的第几天? 4.本程序演示从键盘输入x的值,计算并打印下列分段函数的值。 y=0(x<60) y=1(60<=x<70) y=2(70<=x<80) y=3(80<=x<90)

c语言选择结构试题带答案

1. 以下非法的赋值语句是 A: n=(i=2,++i); B: j++; C: ++(i+1); D: x=j>0; 2. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是A: 6 B: 0 C: 2 D: 1 3. 阅读以下程序: main() { int x; scanf(“%d”,&x); if(x--<5) printf(“%d”,x); else printf(“%d”,x++); } 程序运行后,如果从键盘上输人5,则输出结果是()。 A: 3 B: 4 C: 5 D: 6 4. 有如下程序 main0 { int a=2,b=-1,c=2; if(a main()

a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } 输出结果是( )。 A: 2,1 B: 3,2 C: 4,3 D: 2,-1 6.两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是main( ) { int x; scanf("%d",&x); if(x + + >5) printf("%d",x); else printf("%d\n",x - -); } A: 7 和5 B: 6 和3 C: 7 和4 D: 6 和4 7. 能表示x 为偶数的表达式是 A: x%2==0 B: x%2==1 C: x%2 D: x%2!=0 8. 下面的程序段中共出现了几处语法错误? int a,b; scanf("%d",a); b=2a; if(b>0) printf("%b",b); A: 1 B: 2 C: 3 D: 4 9. C 语言中,逻辑“真”等价于 A: 大于零的数 B: 大于零的整数 C: 非零的数 D: 非零的整数

循环结构程序设计课后习题及答案

循环结构程序设计习题及答案1、循环语句的三要素分别 是、、。 2、for语句括号内的3个表达式的作用分别 是、、。 3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地,只有当时,才结束整个循环。 4、在循环结构中,break语句的作用是;continue语句的作用是。 5、当循环条件一开始就为假时,对于while语句、do…while语句、for 语句,分别执行循环体次、次、 次。 6、下面程序段的执行次数: int a=0; while(a=0) { printf("good\n"); a--; } 7、下面程序段的执行次数: int a=0; while(a==0)

{ printf("good\n"); a--; } 8、下面程序段的执行次数: int a=1; while(a=1) { printf("good\n"); a++; } 9、下面程序段的执行次数: int a=1; while(a==1) { printf("good\n"); a++; } 10、下列程序段的运行结果是。 for(i=5;i>=0;i--) printf(“%d “,i); 11、下列程序段的运行结果是。 for(n=1;n<20;n=n+3) printf(“%d “,n); 12、下列程序段的运行结果是。

for( ch='a' ;ch<='e' ;ch++) printf(“%d“,ch-97); 13、下列程序段的运行结果是。 for(i=1,j=5 ; i

选择结构程序设计

第四章择路而行---选择结构程序设计 第一节路口诀择----条件语句 一、教学目标 1、掌握选择结构程序中常用的Qbasic语句。 2、掌握选择结构程序设计方法。 3、能利用选择结构程序设计解决简单的实际问题。 二、教学重点: 1.选择结构的语句及功能 2.选择结构中程序设计方法。 三、教学方法:讲授法,对比法,分组讨论法。 四、教学时间:2课时 五、教学教程: (一)引入新课:前面我们学习了顺序结构程序设计,利用顺序结构只能设计一些较简单的程序,如果要处理复杂的问题,就需要采用另外两种基本结构:选择结构和循环结构。选择结构,是一种常用的主要基本结构,是计算机科学用来描述自然界和社会生活中分支现象的重要手段。其特性是:无论分支多寡,必择其一;纵然分支众多,仅选其一。 (二)讲述新课 l 单行条件选择语句IF 1、单行结构条件语句IF…THEN…ELSE 格式:IF <条件> THEN <语句1> [ELSE <语句2>] 功能:最简单的条件选择语句,用来进行条件判断,使语句有条件的执行。 说明: 1)当<条件>为真(非零数)时,则执行<语句1>。 2)ELSE语句可以省略。 3)当<条件>为假(零)时,而且语句中有ELSE语句则执行<语句2>。 4)IF、THEN、ELSE必须在同一行上。 2、示例A、输入x的值,计算y的值。 REM 程序名为:eg1.bas INPUT “请输入x的值:”,x IF x>=0 THEN Y=1+X ELSE Y=1-2*X PRINT "Y=";Y END 例:求一元二次方程Ax2+Bx+C=0(A<>0)的实数根。 分析:写写出程序的流程图,参考流程图来写程序。 程序清单如下: INPUT A,B,C D=B*B-4*A*C IF D<0 THEN then X1=(-B+SQR(D))/(2*A) X2=(-B-SQR(D))/(2*A) PRINT “X1=”;X1, “X2=”;X2 ELSE PRINT “此方程无实根” END

(完整版)Matlab实验5选择结构程序结构

实验五、选择与循环结构 一、实验目的: 1、 掌握建立和执行M 文件的方法。 2、 掌握利用if 语句实现选择结构的方法。 3、 掌握利用switch 语句实现多分支选择结构的方法。 4、 掌握try 语句的使用。 5、 掌握利用for 语句实现循环结构的方法。 6、 掌握利用while 语句实现循环结构的方法。 7、 熟悉利用向量运算来代替循环的操作方法。 二、实验内容: 1、 列分段函数的值。 ?? ???--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y 要求: (1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 提示:x 的值从键盘输入,可以是向量。 %homework_5_1_1.m x=input('请输入x 的值:x='); if (x<0 & x~=-3) y= x.*x + x - 6 elseif (x>=0 & x<10 & x~=2 & x~=3) y=x.*x-5.*x+6 else y=x.*x-x-6 end >> homework_5_1 请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0] y = -5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000 (2) 用逻辑表达式实现上述函数。 %homework_5_1_2.m x=input('请输入x 的值:x=') y=(x<0 & x~=-3).*(x.*x+x-6)... +(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)... +(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6) >> homework_5_1_2 请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0] x = -0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y = -6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.0000

实验四-答案--选择结构程序设计讲课讲稿

实验四-答案--选择结构程序设计

实验四选择结构程序设计答案 实验时间:年月日【实验步骤】 一、程序调试练习 1、写出下列程序的运行结果: (1)ex4_1.c #include void main() { char ch; printf("input a character:"); ch=getchar(); if(ch>='A' && ch<='Z') ch=ch+32; printf("%c\n",ch); } 具体要求: ①从键盘上输入a,分析程序运行的结果。 ②从键盘上输入A,分析程序运行的结果。 ③从键盘上输入5,分析程序运行的结果。 程序运行结果: ①a ②a ③5 (2)ex4_2.c #include void main() { int x,y,z; printf("input x,y,z"); scanf("%d,%d,%d",&x,&y,&z); if(x

①从键盘上给x、y、z分别输入2,-1,2,分析程序运行的结果。 ②从键盘上给x、y、z分别输入3,5,2,分析程序运行的结果。 ③从键盘上给x、y、z分别输入-5,-3,2,分析程序运行的结果。 程序运行结果: ①z=2 ②z=3 ③z=0 (3)ex4_3.c #include main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); } 程序运行结果: a=2,b=1 (4)ex4_4.c #include void main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; case 3: a++; b++;

选择结构程序设计练习题

选择结构程序设计练习题 1.逻辑运算符两侧运算对象的数据类型( ) A.只能是0和1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据 2.下列运算符中优先级最高的是( ) A.< B.+ C.&& D.!= 3.能正确表示“当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.表示图中坐标轴上阴影部分的正确表达式是( ) 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.判断char型量ch是否为大写字母的正确表达式是() A.‘A’<=ch<=‘Z’ B.(ch>=‘A’)&(ch<=‘Z’) C.(ch>=‘A’)&&(ch<=‘Z’) D.(‘A’<=ch)AND(‘Z’>=ch) 6.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 () A.‘x’&&‘y’ B.x<=y C.x||y+z&&!y D.!(x

7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是() A.0 B.语法错误 C.1 D.“假” 8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是() A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2 9.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为() A.1 B.2 C.3 D.4 10.下列运算符中优先级最低的是( )优先级最高的是( ) A.? B.&& C.+ D.!=

C语言期中测试题(含答案)

一、填空 1.C语言源程序文件的后缀是 .c 。 2.结构化程序由顺序结构、选择结构、循环结构三种基本结构组成。 3.在C语言中,用关键字 int 定义基本整型变量,一个基本整型变量系统分配 2 字节,用关键字 float定义单精度实型变量,一个单精度实型变量系统分配 4 字节,用关键字 double 定义双精度实型变量,一个双精度实型变量系统分配 8 字节。二、选择 1.以下选项中正确的实型常量是( A ) A.12. B.-20 C. 1,000 D. 4 5 6 2.以下选项中不正确的实型常量是(无正确答案) A. B. C. D. 456e-2 3.以下选项中不合法的用户标示符是( C ) A. _123 B.A12_1 C. A $ D.Dim 4.C语言中运算对象必须是整型的运算符是( A ) A .% B./ C.! D.* 5. 若变量已正确定义并赋值,符合C语言语法的表达式是( B ) A.a=a+7 ; B.a=7+b+c,a++ C. int%4) D.a=a+7=c+b 6.下面合法的赋值语句是( C ) A.a=b=58 B.k=int(a+b) C. a=58,b=58 D.--i 7.若变量已正确定义为int ,要给a,b,c输入数据,正确的输入语句是( D ) A.read(a,b,c) B.scanf(“%d%d%d”,a,b,c) C.scanf(“%D%D%D”,&a,&b,&c) D.scanf(“%d%d%d”,&a,&b,&c) 8.若变量a,b,t已正确定义,要将a和b中的数进行交换,以下选项中不正确的语句组是( C ) A.a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t; C.a=t;t=b;b=a D.t=b;b=a;a=t; 9.若有正确定义语句:

C语言选择结构程序设计编程题.doc

实验2 选择结构程序设计 一.实验目的: 1.掌握选择控制语句的使用方法; 2.了解C程序语句的执行过程。 二.实验内容: 1.编写程序:输入一个整数,判断该数的奇偶性。(输出相应的标志even-偶数odd-奇数,请记住这两个单词)。 2.从键盘输入的正整数,判断是否能被5和7同时整除,若是,则输出Yes;否则输出No。 3.输入一个字符,如果是大写字母改变为小写字母;如果是小写字母,则把它变为大写字母;若是其它字符则不变。 4.编写程序,对于给定的一个百分比制成绩,输出相应的五分制成绩。设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为’E’(用if…else…与switch 语句两种方法实现)。 5. 企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提成10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万元到40万元之间时,高于20万元的部分,可提5%;40万元到60万元之间时,高于40万元的部分,可提成3%;60万元到100万元之间时,高于60万元的部分,可提成1.5%;高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求发放奖金总数。 6. 输入某年某月某日,判断这一天是这一年的第几天。 7. 输入一个字符,请判断是字母、数字还是特殊字符。 8. 身高预测: 男性成人身高=(父亲身高+母亲身高)*0.54cm 女性成人身高=(父亲身高*0.923+母亲身高)/2cm 如果喜爱体育锻炼,那么身高可增加2%;如果有良好的饮食习惯,可增加身高1.5%。键盘输入性别、父母身高、是否爱好体育锻炼、是否有良好的饮食习惯,利用给定身高预测方法对你的身高进行预测。 9. 要求用switch语句编程设计一个简单的计算器程序。要求根据用户从键盘输入的表达式。 操作数1 运算符op 操作数2 计算表达式的值。指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。 在此基础上,增加如下要求: (1)如果要求程序能进行浮点数运算,程序应该如何修改?如何比较实型变量和常数0是否相等? (2)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符,那么程序如何修改? (3)如果要求连续多次算术运算,每次运算结束后,程序都给出提示: Do you want to continue(Y/N y/n)? 如果用户输入Y或y时,程序继续进行其它算术运算,否则程序才退出运行状态。那么程序如何进行修改?

c语言第4章 选择结构程序设计习题答案

第4章选择结构程序设计 习题(P111) 4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。 4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1 (4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2 解:该题在求解过程中注意: 一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低; 二、逻辑表达式的求值规则。(P94) 所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1 4.4有3个整数a、b、c,由键盘输入,输出其中最大的数。 分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。 参考程序如下: main() { int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf("\ninput the value of a,b,c:"); /*提示输入*/ scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/ if(a>b) max=a; else max=b; if(max

第4章选择结构习题答案

第四章选择结构习题参考答案: 一、选择题 1-10:A CABD CADD A 11-20:C CBDC ACACB 21-30:D CB B D AC A BA 31-40:DCDCB BAACB 41-50:CDDDA A A D DB 二、填空题 (1) 2 (2) 4,5,99 (3) 10 20 0 (4) 2 1 (5) -4 (6) 3 (7) yes (8) 1 (10) 20,0 (11) 585858 (12) 0 三、编程题 1, .#include void main() { int x,y; scanf(“%d”,&x); if(x>-1) {if(x>5) y=2*x+5; else if(x>2) y=x*(x+2); else y=2*x; printf(“y=%d\n”,y); } else printf(“输入值范围错误!”) ; } 2, . #include void main() {float a,b; scanf(“%f”,&a); if(a<2000) b=0; else if(a<4000) b=a*0.03; else if(a<5000) b=a*0.04; else b=a*0.05; printf(“收入所得税为:”,b); } 3,题目:输入某年某月某日,判断这一天是这一年的第几天? 方法一: #include void main() { int year,month,daily,sum;

printf("请输入年月日:/n"); scanf("%d%d%d",&year,&month,&daily); switch(month) { case 1:{sum=daily;break;} case 2:{sum=31+daily;break;} case 3:{sum=31+28+daily;break;} case 4:{sum=31+28+31+daily;break;} case 5:{sum=31+28+31+30+daily;break;} case 6:{sum=31+28+31+30+31+daily;break;} case 7:{sum=31+28+31+30+31+30+daily;break;} case 8:{sum=31+28+31+30+31+30+31+daily;break;} case 9:{sum=31+28+31+30+31+30+31+31+daily;break;} case 10:{sum=31+28+31+30+31+30+31+31+30+daily;break;} case 11:{sum=31+28+31+30+31+30+31+31+30+31+daily;break;} case 12:{sum=31+28+31+30+31+30+31+31+30+31+30+daily;break;} default:{printf("你输入的月份不对,请重新输入。/n");}; } if((year%400==0||(year%4==0 && year%100!=0) ) &&month>=2) printf("你输入的日子是%d年的第%d天。/n",year,sum+1); else printf("你输入的日子是%d年的第%d天。/n",year,sum); } 方法二: #include void main() {int day,month,year,sum,leap; printf("/nplease input year,month,day/n"); scanf("%d,%d,%d",&year,&month,&day); switch(month)/*先计算某月以前月份的总天数*/ {case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf("data error");break; } sum=sum+day; /*再加上某天的天数*/ if(year%400==0||(year%4==0&&year%100!= 0))/*判断是不是闰年*/ leap=1; else leap=0; if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum=sum+1; printf("这一天是这一年的第%d 天.",sum); }

第4章 4.1选择结构习题

选择结构习题 一、单项选择题 1.假设Text1文本框中输入了学生的成绩,以A,B,C,D,E字符表示不同的等级,下 列语句中_________可用于判断输入数据是否正确。 A.If “A”<=Text1<=”E” Then MsgBox “输入正确” Else MsgBox “输入错误” B.I f “A”<=Text1 Or Text1<=”E” Then MsgBox “输入正确” Else MsgBox “输入错误” C.I f A<=Text1 And Text1<=E Then MsgBox “输入正确” Else MsgBox “输入错误” D.If “A”<=Text1 And Text1<=”E” Then MsgBox “输入正确” Else MsgBox “输入错误” 2.下面程序段的功能是求两个数中的大数,________是不正确的。 A.Max=IIf(x>y,x,y) B.If x>y Then Max =x Else Max=y C.Max=x; If y>=x then Max =y D.If y>=x Then Max=y;Max=x; 3.对于选择结构语句If x=10 Then y=100,下列说法正确的是_________。 A.x=10 和y=100均为赋值语句 B.x=10 和y=100均为关系表达式 C.x=10 为关系表达式,y=100为赋值语句 D.x=10 为赋值语句,y=100为关系表达式 4.关于结构化程序设计的描述,下述说法中正确的是____________。 A.面向对象、顺序执行 B.面向过程、事件驱动 C.面向过程、顺序驱动 D.面向对象、事件驱动 5.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_click() x=val(InputBox(“Input ”)) Select Case x Case 1,3 Print “分支1” Case Is>4 Print “分支2” Case Else Print “Else分支” End Select End Sub 程序运行后,如果在输入对话框中输入2,则窗体上显示的是__________。 A.分支1 B. 分支2 C. Else 分支 D.程序出错 6. 以下Case语句中错误的是________。 A.Case 0 To 10 B. Case Is>10 C. Case Is>10 and Is<50 D. Case 3,5,Is>10

相关文档
最新文档