全部问题 > 当前问题

!a 和a==0不是一个意思吗,为什么这里还设计一个这样的选择结构呢?


问题补充(选填)

柴锡翠 2017-7-22 17:55:51

共 1 个回答

…… 2017-7-23 13:05:32

!a和a==0是一个意思哎,这个题怕是想考查if。。else语句,醉翁之意不在酒。

有以下程序
#include <stdio.h>
main()
{
  int a=1,b=0;
  if(!a) b++;
  else if(a==0) if(a) b+=2;
  else b+=3;
  printf("%d\n",b);
}
程序运行后的输出结果是 ______ 。
A. 0
B. 1
C. 2
D. 3
答案:A
解析:将程序中的if语句重新排版如下: if(!a) b++; else { if(a==0) { if(a) b+=2; else b+=3; } } a=1,所以!a为假,执行else。a==0为假,跳出选择结构。b自始至终并没有被赋值。因此选A。