首页 > 试题广场 >

假定头文件及上下文均正常,且所有变量均已正确定义,则下列程序

[单选题]
假定头文件及上下文均正常,且所有变量均已正确定义,则下列程序段运行后x的值是()
a = b = c = 0;
x = 35;
if (!a)
    x--;
else if (b)
    ;
if (c)
    x = 3;
else
    x = 4;
  • 3
  • 4
  • 35
  • 34
推荐
a=b=c=0;x=35;
if(!a) x--;
elseif(b);
if(c) x=3;//x的值只和c有关,c在之前没有进行其他的运算,所以还是0,当c不为0,x取值为3,否则为4,所以答案是4
elsex=4;
编辑于 2015-12-02 19:30:21 回复(0)
这个题考查眼力,鉴定完毕
发表于 2017-01-02 11:43:52 回复(1)
重点在else if(b);这个if语句后面有分号说明已经结束。所以还会执行接下来的if...else
发表于 2015-09-14 21:19:18 回复(0)
考查看题仔细。题中有两个if循环。第一if ..else结束后,x为35.然后继续执行下一个if..else循环,此时x为4
发表于 2017-07-31 10:11:04 回复(0)
执行第一次循环,a=0,!a=1,0假1真,所以执行x--,此时x值为34,继续执行程序 if (c)=3,c原来的值为0,为假,执行else x=4,所以 x =4
发表于 2022-05-27 17:55:04 回复(0)
烂排版,建议屏蔽,
发表于 2021-07-15 12:27:30 回复(0)
a=b=c=0;x=35;
if(!a)  x--;
else  if(b) ;//  j结束
if(c)  x=3;
else    x=4;
发表于 2021-02-08 14:39:17 回复(0)
本题考察的是else和if的匹配原则,其中,else总是与其前面最近的尚未配对的if结合。所以本题代码的组合关系,如下图所示:

其中,第一组if-else不走,直接跳到第二组if-else,因为c=0,所以x=4,答案选B。
发表于 2021-03-14 23:02:27 回复(0)
if,else的匹配采用就近原则!
发表于 2016-11-17 20:32:24 回复(0)
if(!a)不是为真么,为啥不是34
发表于 2016-02-21 23:31:37 回复(2)
这题是if(c)判断c是真,则x=3,否则x=4;c=0,为假,取x=4.
发表于 2015-12-02 09:17:04 回复(0)
zit头像 zit
这题,睁大眼了做
发表于 2015-09-14 00:34:26 回复(0)
a=0,所以!a=1 If中,0为假,1为真,所以执行第一个语句 else if b不执行 到后面,c=0,为假,所以执行else 所以x=4
编辑于 2021-11-10 23:44:29 回复(0)
我试着打了下代码,if(!a) x--;会运行一次,只是后面又执行了次  if(c),  else  赋值为4了
发表于 2022-10-14 09:06:19 回复(0)
醉了。。。
发表于 2021-04-20 18:10:50 回复(0)
记住一条规则,else和最近的if配对的~
发表于 2021-03-24 19:37:14 回复(0)
第三行的if(b);后面的分号表示语句结束了,跟上面的没关系了,只跟下面的c有关系。c == 0;所以执行else x = 4;
发表于 2019-09-07 20:08:09 回复(0)

主要是有个分号啊


发表于 2019-08-26 18:18:37 回复(0)
注意分号的位置
发表于 2018-06-18 21:49:53 回复(0)
就近原则
发表于 2018-04-24 20:51:15 回复(0)
考察if...else的匹配问题,c++中匹配需要大括号。这里第一个else后边没有大括号,所以下面的一对if...else是独立的。
发表于 2018-04-10 21:46:25 回复(0)