答案第四章 选择结构程序设计

  • 格式:doc
  • 大小:131.00 KB
  • 文档页数:11

第四章 选择结构程序设计

一、选择题

1.下列运算符中优先级最高的是 B 。(0级)

A)> B) + C) && D)!=

2.以下关于运算符优先级的描述中,正确的是 A 。(0级)

A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算

B)&&(逻辑与)>算术运算>关系运算>赋值运算

C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算

D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)

3.逻辑运算符的运算对象的数据类型 D 。(0级)

A)只能是0或1 B)只能是.T.或.F.

C)只能是整型或字符型 D)任何类型的数据

4.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是 B 。(1级)

A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)

B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)

C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)

D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)

5.以下程序的运行结果是 B 。(1级)

main( )

{

int c,x,y;

x=1;

y=1;

c=0;

c=x++||y++;

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

}

A)110 B)211 C)011 D)001

6.以下程序的运行结果是 A 。(1级)

main( )

{

int c,x,y;

x=0;

y=0;

c=0;

c=x++&&y++;

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

}

A)100 B)211 C)011 D)001

7.判断字符型变量ch为大写字母的表达式是 C 。(1级)

A)‟A‟<=ch<=‟Z‟ B)(ch>=‟A‟)&(ch<=‟Z‟) C)(ch>=‟A‟)&&(ch<=‟Z‟) D)(ch>=‟A‟)AND(ch<=‟Z‟)

8.判断字符型变量ch为小写字母的表达式是 D 。(1级)

A)‟a‟<=ch<=‟z‟ B)(ch>=a)&&(ch<=z)

C)(ch>=‟a‟)||(ch<=‟z‟) D)(ch>=‟a‟)&&(ch<=‟z‟)

9.以下if语句书写正确的是 B 。(1级)

A)if(x=0;) B)if(x>0)

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

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

C)if(x>0); D)if(x>0)

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

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

10.分析以下程序:

main( )

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

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

else printf(“## ##\n”);

以上程序 D 。(1级)

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

C)输出** ** D)输出## ##

11.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 A 。(1级)

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

12.写出下面程序的执行结果 D 。(1级)

main( )

{int x,y=1;

if(y!=0) x=5;

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

if(y= =0) x=3;

else x=5;

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

}

A)1 3 B)1 5 C)5 3 D)5 5

13.写出下面程序的执行结果 A 。(2级)

main()

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

if(z<0)

if(y>0) x=3;

else x=5; printf("%d\t",x);

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

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

else x=7;

printf("%d\t",x);

printf("%d\t",z);

}

A)1 7 0 B)3 7 0 C)5 5 0 D)1 5 1

14.假定所有变量均已正确说明,下列程序段运行后x的值是 B 。(1级)

a=b=c=0;x=35;

if(!a) x= -1;

else if(b);

if(c) x=3;

else x=4;

A)34 B)4 C)35 D)3

15.写出下面程序的运行结果是 。(2级)

main()

{int x,y=1,z;

if(y!=0) x=5;

printf("x=%d\t",x);

if(y= =0) x=3;

else x=5;

printf("x=%d\t\n",x);

x=1;

if(z<0)

if(y>0)x=3;

else x=5;

printf("x=%d\t\n",x);

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

else x=7;

printf("x=%d\t",x);

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

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

printf("x=%d\t",x);

printf("z=%d\t\n",z);

}

A)x=5 x=5 B)x=5 x=5

x=1 x=1

x=7 z=0 x=5 z=0

x=3 z=1 x=3 z=0

C)x=5 x=5 D)x=5 x=5

x=5 x=1

x=7 z=0 x=7 z=0

x=3 z=1 x=3 z=0 16.若有以下函数关系

x<0 → y=2x

x>0 → y=x

x=0 → y=x+1

下面程序段能正确表示以上关系的是 改正后C 。(2级)

A)y=2*x; B)y=2*x;

if(x!=0) if(x<=0)

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

else y=x+1; else y=x;

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

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

else y=x+1; if(x<0) y=2*x;

else y=2*x; else y=x;

17.若有以下变量定义:

float x; int a,b;

则正确的switch语句是 D 。(1级)

A)switch(x)

{ case 1.0:printf("*\n");

case 2.0:printf("* *\n");

}

B)switch(x)

{ case 1,2:printf("*\n");

case 3:printf("* *\n");

}

C)switch(a+b)

{ case 1:printf("*\n");

case 2*a:printf("* *\n");

}

D)switch(a+b)

{ case 1:printf("*\n");

case 1+2:printf("* *\n");

}

18. 以下关于运算符优先顺序的描述正确的是 C 。(02~03第一学期试题)

A)关系运算符

B)逻辑运算符

C)赋值运算符

D)算术运算符

19. 能正确表示a>=10或a<=0的关系表达式是 D 。(02~03第一学期试题)

A)a>=10 or a<=0 B)a>=10 | a<=0

C)a>=10 && a<=0 D)a>=10 | | a<=0

20. 以下不正确的if 语句形式是 C 。(02~03第一学期试题)

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 ( x < y ) { x++; y++;}

21. 当 a = 1, b = 3 , c = 5, d = 4 时, 执行完下面程序段后 x 的值为 B 。(02~03第一学期试题)

if ( a < b )

if ( c < d ) x = 1 ;

else

if ( a < c )

if ( b < d ) x =2 ;

else x = 3 ;

else x = 6 ;