问题 单项选择题

下面程序的输出结果是( )。
#include<iostream>
using namespace std;
int main()

int a=2,b=-1,c=2;
if(a<b)
if(b<0)
c=0;
else
c+=1;
cout<<c<<end1;
return 0;

A.0

B.1

C.2

D.3

答案

参考答案:C

解析: 本题常见的错误答案是:由于a>b(a=2,b=-1),所以程序进入else分支执行语句“c+=1;”,最后得到答案3。其实不然,本题考的知识点是else与if的配对问题。由于else关键词总是与它前面最近的未配对的且可见的那个if关键词配对,因此本题程序中的else是与第2个if配对。由于a>b(a=2,b=-1),那么第1个if分支后的语句就不再执行,从而输出c的值为2。

多项选择题
问答题 简答题