第四章 选择结构

一、选择题

1、下列运算符中优先级最高的运算符是

A)!         B%        C)-=        D)&&

2、下列运算符中优先级最低的运算符是

    A)||         B)!=        C) <=       D)+

3、 为表示关系x>=y>=z, 应使用的C语言表达式是

A) (x>=y)&&(y>=z)         B) (x>=y)AND (y>=z)

C) (x>=y>=z)              D) (x>=y)&(y>=z)

4、设 ab c 都是int 型变量,且a =3b=4 c=5;则以下的表达式中,值为0的表达式是

A)  a&&b B)a<=b C)a||b+c&&b-c  D)!((a<b)&&!c||1)

5、 以下程序的输出结果是:

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

main()

{ int a=2,b=-1,c=2;

  if (a<b)

      if (b<0) c=0;

  else c+=1;

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

}

6、 以下程序的输出结果是:

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

main()

{ int w=4,x=3,y=2,z=1;

  printf(“%d\n”,(w<x?w:z<y?z:x));

}

7、若执行以下程序时从键盘上输入34,则输出结果是

A)14     B)16        C)18        D)20

 main()

{ int a, b,s;

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

  s=a;

  if (a<b) s=b;

  s*=s;

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

}

8、 下面的程序片段所表示的数学函数关系是

        -1(x<0)

   A  y=   0(x=0)

              1(x>0)

       1(x<0)

By=  -1(x=0)

              0(x>0)

       0(x<0)

Cy=  -1(x=0)

              1(x>0)

       -1(x<0)

     D) y=   1(x=0)

              0(x>0)

y=-1;

     if (x!=0)

        {  if (x>0) y=1;}

     else y=0;

9、 运行以下程序后,输出

A)####          B)&&&&

C)####&&&&      D)有语法错误不能通过编译

  main() 

   { int k=-3;

if (k<=0) printf(“****\n”);

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

    }

10、若ab均是正整数型变量,以下正确的switch语句是

 A)  switch ( pow(a,2)+pow(b,2))     (注:调用求幂的数学函数)

{  case 1: case 3: y=a+b; break ;

       case 0: case 5: y=a-b;

}

Bswitch (a*a+b*b);

{  case 3:

      case 1: y=a+b; break ;

      case 0: y=b-a; break;

      }

A)      switch a

{ default : x=a+b;

    case 10 : y=a-b;break;

    case 11 : y=a*d; break;

}

B)      switch(a+b)

             { case10: x=a+b; break;

          case11: y=a-b; break;

             }

二、 填空题

[4.11] C语言中用______表示逻辑值“真”,用______表示逻辑值“假”。

[4.12] C语言中的关系运算符按优先级别是_________ __________.

[4.13] C语言中的逻辑运算符按优先级别是______ ______ ______.

[4.14] C语言中的关系运算符和逻辑运算符的优先级别是 ________________________

[4.15] C语言中逻辑运算符______的优先级高于算术运算符。

[4.16] 将下列数学式改写成C语言的关系表达式或逻辑表达式A)______________ B)__________

A) a=b a<c     B) |x|>4

[4.17] 请写出以下程序的输出结果___

 main()

   { int a=100;

     if (a>100) printf(“%d\n”,a>100);

     else      printf(“%d\n”,a<=100);

}

[4.18] 请写出与以下表达式等价的表达式A)_________B)__________.

A) !(x>0)       B) !0

[4.19] a=1b=2c=3时,以下if 语句执行后,a b c 中的值分别为___ ___ ___.

        if (a>c)

             b=a;a=c; c=b;

[4.20] 若变量巳正确定义,以下语句段的输出结果是_______

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

   switch(x)

   { case 0: switch (y=2)

             { case 1: printf(“*”); break;

               case 2: printf(“%”); break;

             }

           case 1: switch(z)

             { case 1: printf(“$”);

               case 2: printf(“*”);break;

              default: printf(“#”);

             }

     }

三、 编程题

[4.21] 请将以下语句改写成switch语句。

         if ( a<30) m=1;

          else  if (a<40) m=2;

          else  if (a<50) m=3;

else  if (a<60) m=4;

else  m=5;

[4.22] 编写程序,输入一位学生的生日(年:y0、月:m0、日:d0); 并输入当前的日期(年: y1、月:m1、日:d1); 输出该生的实足年龄。

[4.23] 编写程序,输入一个整数,打印出它是奇数还是偶数。

[4.24] 编写程序,输入 ab c 三个数,打印出最大者。

[4.25] 有一函数:

                x   (-5<x<0)

          y=    x-1 (x=0)

                x+1 (0<x<10)

编写一程序,要求输入x 的值,输出y 的值。

分别用 (1)不嵌套的if 语句(2)嵌套的if 语句 (3if-else语句 (4switch 语句

 

公告通知
教学日历
疑难留言
同学你好!对本课程有哪些建议?