您的当前位置:首页软件工程硕士C语言选择结构程序设计习题训练

软件工程硕士C语言选择结构程序设计习题训练

2023-11-27 来源:爱问旅游网


选择结构程序设计

一、单项选择题

1. 假定所有变量均已正确定义,下列程序段运行后y的值是( )。 int a=0, y=10;

if(a=0) y- - ;else if(a>0) y++; else y+=y ; A.20 B.11 C.9 D.0

2. 假定所有变量均已正确定义,下列程序段运行后x的值是( )。 a=b=c=0,x=35;

if(!a) x- -; else if(b) ;if(c) x=3;else x=4; A.34 B.4 C.35 D.3

3. 下面的程序片段所表示的数学函数关系是( )。 y= -1;

if(x! =0)if(x>0) y=1; else y=0; A. B. C. D.

4. 下列各语句序列中,能够且仅输出整型变量a、b中最大值的是( )。 A、if(a>b) printf(”%d\\n”,a); printf(”%d\\n”,b); B、printf(”%d\\n”,b); if(a>b) printf(”%d\\n”,a); C、if(a>b) printf(”%d\\n”,a); else printf(”%d\\n”,b); D、if(a5. 下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是( )。 A、if(u>s)t=u; t=s; B、t=s; if(u>s)t=u; C、if(u>s)t=s; else t=u; D、t=u; if(u>s)t=s; 6. 下列各语句中,能够输出整型变量a、b中最大值的是( )。 A、printf(”%d\\n”,(a>b)?a,b); B、(a>b)? printf(”%d”,a):printf(”%d”,b); C、printf(”%d”,if(a>b)a else b); D、printf(”%d\\n”,(a>b)?a:b); 7. 下列语句应将小写字母转换为大写字母,其中正确的是( )。 A、if(ch>=’a’&ch<=’z’) ch=ch-32; B、if(ch>=’a’&&ch<=’z’)ch=ch-32; C、ch=(ch>=’a’&&ch<=’z’)?ch-32:’’; D、ch=(ch>’a’&&ch<’z’)?ch-32:ch; 8. putchar函数可以向终端输出一个()。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值

9. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式( );如果字符串长度小于5,则输出按方式( )。

A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息

11. 阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为()。 main()

{ 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) 不确定值

12. 根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为()。 main()

{ char ch1,ch2,ch3; 输入语句

printf(“%c%c%c”,ch1,ch2,ch3); }

输出形式:A B C 输入形式:A B

A) scanf(“%c%c%c”,&ch1,&ch2,&ch3); B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3); C) scanf(“%c %c %c”,&ch1,&ch2,&ch3); D) scanf(“%c%c”,&ch1,&ch2,&ch3);

13. 能正确表示“当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)

14. 设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( ) A.‘x’&&‘y’ B.x<=y

C.x||y+z&&!y D.!(x15.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是( ) A.0 B.语法错误 C.1 D.“假”

16 .若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( )

A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2

17.以下程序的运行结果是( ) #include main()

{int a,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

18. 执行以下语句后a的值为( )

int a,b,c;

a=b=c=1; ++a||++b&&++c;

A.错误 B.0 C.2 D.1

19. 执行以下语句后a的值为( ),b的值( ) int a=5,b=6,w=1,x=2,y=3,z=4; (a=w>x)&&(b=y>z);

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

20. 以下不正确的if语句形式是( ) A.if(x>y&&x!=y); B.if(x==y)x+=y;

C.if(x!=y)scanf(“%d“,&x) else scanf(“%d”,&y); D.if(x21.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( if(x>y) z=x;x=y;y=z; A.x=10,y=20,z=30 B.x=20,y=30,z=30 C.x=20,y=30,z=10 D.x=20,y=30,z=20

22.以下语句语法正确的是:( ) 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=xy; printf(“%f”,x);}; else printf(“%f”,-x); D.if(x>0)

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

23.请阅读以下程序,该程序( ) main()

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

if(a+b+c) printf(“***\\n”); else printf(“$$$\\n”);} A.有语法错误不能通过编译 B.可以通过编译但不能通过连接 C.输出*** D.输出$$$

)

24.以下程序的运行结果是( ) main() {int m=5;

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

A.4 B.5 C.6 D7

25. 当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( ) if(aif(bA.1 B.2

26.有一函数关系如下: x-1(x<0) y={ x(x=0)

x+1 (x>0)

则下面程序段中能正确表示上面关系的是( 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;

27. 以下程序的输出结果是( ) main()

{int a=100,x=10,y=20,ok1=5,ok2=0; if(xif(!ok1) a=1;

else if(ok2) a=10; a=-1; printf(“%d\\n”,a);}

A.1 B.0

28. 以下程序的输出结果是( ) main()

{int x=2,y=-1,z=2; if(xif(y<0) z=0; else z+=1;

C.3 ) C.-1 D.值不确定 D.6 printf(“%d\\n”,z);}

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

29. 为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:else子句总是与( )配对。

A.缩进排位置相同的if B.其之前最近的if C.其之后最近的if

D. 以上说法都不准确

30. 以下不正确的语句为( ) 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(x31.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/x; else b=10.0; printf(“%f\\n”,b);}

若程序运行时输入为2.0,则上面程序的输出结果是( )

A.0.000000 B.0.500000 D.0.250000

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

{int k=4,a=3,b=2,c=1;

printf(“\\n%d\\n”,kA.4 B.3 C.2 D.1

33 int w,x,y,z,m;则执行以下语句后m的值为( ) w=1;x=2;y=3;z=4;

m=(wA.1 B.2 C.3

34 若w=1,x=2,y=3,z=4,则表达式w35 执行以下程序段后的输出结果是:( ) int w=3,z=7,x=10;

printf(“%d\\n”,x>10?x+100:x-10);

C.1.000000 D.4 )

D.1 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

二、读程序,写运行结果 1. 以下的输出结果是【 】。 main()

{ short i; i=-4;

printf(“\\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\\n”,i,i,i,i); }

2. 以下的输出结果是【】。 main()

{ char c=‘x’;

printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\\n”,c,c,c,c); }

3. 以下的输出结果是【】。 main()

{ int x=1,y=2;

printf(“x=%d y=%d * sum * =%d\\n”,x,y,x+y); printf(“10 Squared is : %d\\n”,10*10); }

4. 假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。

a+=【 】; b=a-【 】; a-=【 】;

5. 若x为int型变量,则执行以下语句后的x 值为【 】。 x=7; x+=x-=x+x;

6. 结构化程序设计规定的三种基本结构是 结构、 结构和 结构。

7. 若有定义语句int a=25,b=14,c=19; 以下语句的执行结果是 。 if(a++<=25 && b--<=2 && c++) printf(“***a=%d,b=%d,c=%d\\n”, a, b, c); else printf(“***a=%d,b=%d,c=%d\\n”, a, b, c); 8. 以下两条if语句可合并成一条if语句

。 if(a<=b) x=1; else y=2;

if(a>b) printf(“***y=%d\\n”,y); else prinft(“***x=%d\\n”,x);

9. 下列程序的功能是输入一个正整数,判断是否能被3或7整除,若能整除,输出“YES”,

若不能整除,输出“NO”。请为程序填空。 void main( ) { int k; scanf (“%d”, &k);

if ( ) printf(“YES\\n”); else printf (“NO\\n”); }

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

11 当a=5,b=4,c=2时,表达式a>b!=c的值是______

12 .以下程序的运行结果是__________ main() {int x=1,y,z;

x*=3+2; printf(“%d\”,x); x*=y=z=5; printf(“%d\”,x); x=y==z; printf(“%d\\n”,x);}

13 .设y为int型变量,请写出描述“y是奇数”的表达式____

14 C语言提供的三种逻辑运算符是

15 设x,y,z均为int型变量写出“x或y中有且仅有一个小于z”的表达式

16. 设int x,y,z;请描述“x,y和z中有两个为负数”的表达式

17. 已知A=7.5,B=2,c=3.6,表达式A>B&&C>A||AB的值是____

18 .若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是______

19 .若a =2,b=4,则表达式(x=a)||(y=b)&&0的值是______

20 若a=1,b=4,c=3,则表达式!(a21 若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是_______

22 若a=5,b=2,c=1,则表达式a-b23.设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是_______

24 条件“225 以下程序运行结果是_____ main()

{int a1,a2,b1,b2; int i=5,j=7,k=0; a1=!k; a2=i!=j;

printf(“a1=%d\ a2=%d\\n”,a1,a2); b1=k&&j; b2=k||j;

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

26 以下程序的运行结果是:________ main()

{int x,y,z x=1;y=1;z=0;

x=x||y&&z; printf(“%d,%d”,x,x&&!y||z);}

27 有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值是____

三、运行结果题

1. 阅读程序,写出运行结果。 void main ( )

{ int a=10, b=4, c=3; if(aprintf(“%d, %d, %d\\n”, a, b, c) ; }

2. 阅读下列程序,写出程序的输出结果。 void main ( )

{ int x=100, a=10, b=20, ok1=5, ok2=0 ; if(a3. 写出下列程序段输出结果 int k,a=1,b=2;

k=(a++==b) ? 2:3; printf(“%d”,k);

4.分别写出下列5个程序段的输出结果 .

a) int a=1,s=0; B. int a=1,s=0; C. int a=1,s=0; switch(a) { switch(a) { switch(a) {

case 1: s+=1; case 2: s+=2; default : s+=3; case 2: s+=2; case 1: s+=1; case 2: s+=2; default : s+=3; default : s+=3; case 1: s+=1; } printf(“%d”,s); } printf(“%d”,s); } printf(“%d”,s); D. int a=1,s=0; E. int a=1,s=0;

switch(a) { switch(a) {

case 1: s+=1; break; default : s+=3; break; case 2: s+=2; break; case 2: s+=2; break; default : s+=3; case 1: s+=1; } printf(“%d”,s); } printf(“%d”,s); 四、 程序设计题

1. 编一个程序,输入x的值,按下列公式计算并输出y值; x (x≤1)

y = 2x-1 (12. 编一个程序,输入三个单精度数,输出其中最小数。

第四章 选择结构程序设计参考答案 一、单项选择题

1.A 2.B 3.C 4.C 5.B 6.D 7.B 8.D 9. B、C 11.D 12.A

13.C 14.D 15.A 16.D 17.B 18.C 19 B、A 20. C 21.B 22.B

23.C 24.C 25.B 26.B 27.C 28.B 29.D 30.B 31.B 32.A

33.A 34.D 35.C 二、读程序,写运行结果

1. i:dec=-4,oct=177774,hex=fffc,unsigned=65532 2. c:dec=120,oct=170,hex=78,ASCII=x 3. x=1 y=2 * sum * =3 10 Squared is : 100 4. b b a-b 5. -14

6. 顺序 选择 循环 7. 26,13,19

8. if(a>b) {y= 2, printf(“***y=%d\\n”,y); } else{x=1; printf(“***x=%d\\n”,x); } 9. (k%3==0) || (k%7==0) 10. 0 11. 1

12. 5 25 1 13. y%2!=0

14. && || ! 15. (x16. (x<0)+(y<0)+(z<0)==2 17. 0 18. 1 19. 1 20. 0 21. 1 22. 0

23. 1

24. 225. a1=1 a2=1 b1=0 b2=1 26. 1,0 27. 1

三、运行结果题 1. 10, 4, 3 2. -1 3. 3

4. 6 , 4, 4, 1, 3 四、 程序设计题 1.

解:void main( ) { float x, y ;

printf(“输入数 x: \\n”); scanf(“%f”, &x); /* 输入 */ if (x<=1) y=x; /* 计算 */ else if (1解:#include void main( )

{ float x, y, z, t; printf(“输入三个单精度数x, y, z: \\n”); scanf(“%f,%f,%f”, &x,&y,&z); t=x; if(y

因篇幅问题不能全部显示,请点此查看更多更全内容