第四章  习题答案
一、选择题
1)以下是if语句的基本形式:
if(表达式) 语句
其中"表达式"
A)必须是逻辑表达式
B)必须是关系表达式
C)必须是逻辑表达式或关系表达式
D)可以是任意合法的表达式
2)以下选项中,值为1的表达式是(  )。
A1-'0'    B1-'\0'    C'1'-0      D'\0'-'0'
3)若a是数值类型,则逻辑表达式(a==1||a!=1)的值是:
A1            B0            C2        D)不知道a的值,不能确定
4)若变量已正确定义,在if Wprintf%d\n,k;中,以下不可替代W的是
  Aa<>b+c  Bch=getchar()   Ca==b+c  Da++
5)设变量xy均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是
    A)if(x++);              B)if(x>y&&y!=0);
    C)if(x>y) x- -          D)if(y<0) {;}
      else y++;                else x++;
6) 以下选项中,当x为大于1的奇数时,值为0的表达式
      A)x%2==1       B)x%2         C)x%2!=0    D)x%2==0
7) 设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是
    A)(EXP= =0    B)(EXP!=0    C)(EXP= =1    D)(EXP!=1
8) 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是
A)(!E=0 B) (E>0||E<0) C) (E==0) D) (E!=0)
9)若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是(  )。
A)(x-y>0)    B)(x-y<0)    C(x-y<0||x-y>0)    D)(x-y==0)
10) 若有表达式(w)(--x)(++y),则其中与w等价的表达式是 (  )
Aw==1        B) w==0      C) w! =1        D) w! =0
11) 设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是
A)if(a>b) c=a,a=b,b=c;          B)if(a>b){c=a,a=b,b=c;}
C)if(a>b) c=a;a=b;b=c;          D)if(a>b){c=a;a=b;b=c;}
12) 已知字母AASC代码值为65,若变量kkchar型,以下不能正确判断出kk中的值为大写字母的表达式是
A)kk>='A'&&kk<='Z'            B)!(kk>='A'kk<='Z')
C)(kk+32)>='a'&&(kk+32)<='z'  D)isalpha(kk)&&(kk<91)
isalpha(c) 判断参数c是否为英文字母          头文件:ctype.h
isupper(c) 判断参数c是否为大写英文字母    是返回非零值,否则返回零
islower(c ) 检查参数c是否为小写英文字母
13)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是
    A)isupper(c)                    B)’A’<=c<=’Z’
C)’A’<=c&&c<=’Z’                      D)c<=(‘z’-32)&&(‘a’-32)<=c
14) 当变量c的值不为246时,值也为的表达式是
A)(c==2)(c==4)(c==6)      B)(c>=2&&c<=6)(c!=3)(c!=5)
C)(c>=2&&c<=6)&&!(c%2)        D)(c>=2&&c<=6)&&(c%2!=1)
15) 若变量已正确定义,有以下程序段
int a=3,b=5,c=7;
if(a>b) a=b; c=a;
if(c!=a) c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是
A)程序段有语法错        B)353        C)355          D)357
16)有以下程序
include
  main()
  {int  a=1,b=0;
if(!a) b++;
else  if(a==0) if(a) b+=2;
else  b+=3;
printf("%d\n",b);  }
  程序运行后的输出结果是
     A0        B1        C2        D3
17)在嵌套使用if语句时,C语言规定else总是(  )。
A)和之前与其具有相同缩进位置的ifswitch语句必须使用break吗配对
B)和之前与其最近的if配对
C)和之前与其最近的且不带elseif配对
D)和之前的第一个if配对
18)下列叙述中正确的是(  )。
Abreak语句只能用于switch语句
B)在switch语句中必须使用default
Cbreak语句必须与switch语句中的case配对使用
D)在switch语句中,不一定使用break语句
19)以下选项中与if(a==1) a=b;else a++;语句功能不同的switch语句是:
Aswitcha                    Bswitcha==1
  { case 1:  a=b;break;            {  case 0 : a=b;break;
    default : a++;                    case 1 : a++;
}                                }
Cswitcha                    Dswitcha==1
  {  default : a++;break;            {  case 1:a=b;break;
      case 1:a=b;                      case 0: a++;
}                                  }
20有以下程序段
int  a,b,c;
a=10;b=50;c=30;
if(a>b) a=b,b=c; c=a;
printf(a=%d b=%d c=%d,a,b,c);
程序的输出结果是   
Aa=10 b=50 c=10             B) a=10 b=50 c=30 
C) a=10 b=30 c=10              D) a=50 b=30 c=50
21) 有以下程序
#include <stdio.h>
main()
int  x=1,y=2, z=3;
    ifx>y
    if (y<z)  printf(%d,++z);
    else    printf(%d,++y);
    printf(%d\n,x++);
}
程序运行结果是
A331            B)41              C) 2                D1 
22) 以下程序段中,与语句: k=a>b?(b>c?1:0):0;功能相同的是
A)if((a>b)&&(b>c)) k=1;
  else k=0;
B)if((a>b)||(b>c)) k=1;
  else k=0;
C)if(a<=b)k=0;
  else if(b<=c) k=1;
D) if(a>b) k=1;
   else if(b>c) k=1;
   else k=0;
23)有以下程序
#include <stdio.h>
main()
{ int x;
  scanf("%d",&x);
  if(x<=3) ; else
  if(x!=10) printf("%d\n",x);
}
程序运行时,输入的值在哪个范围才会有输出结果
A)不等于10的整数
B)大于3且不等于10的整数
C)大于3或等于10的整数
D)小于3的整数
24)有如下嵌套的if语句
      if(a<b)
          if(a<c)  k=a;
          else  k=c
      else
          if(b<c)  k=b;
          else  k=c;
以下选项中与上述if语句等价的语句是
(A)  k=(a<b)?a:b;k=(b<c)?b:c;
(B)  k=(a<b)?((b<c)?a:b):((b<c)?b:c);
(C)  k=(a<b)?((a<c)?a:c):((b<c)?b:c);
(D)  k=(a<b)?a:b;k=(a<c)?a;c
25以下叙述中正确的是
      Abreak语句只能用于switch语句体中
      B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环
      C)break 句只能用在循环体内和switch语句体内
      D)在循环体内使用break语句和continue语句的作用相同
 26) 有以下程序
      main()
      {int k=5,n=0;
      Do
      {switch(k)
      {case 1:
case 3:n+=1; k--;break;
    default: n=0;k--;
 case 2:
case 4:n+=2;k--;break;
}
 printf(%d,n);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。