想知道为什么会得到这个答案

以下程序段的输出结果是______。
int a=1,b=1;
if (a<1) 
if (b<2) b=0;
else b=2;
printf("%d\n",b);
A. 0
B. 1
C. 2
D. 3
B,想知道原因
若有int n;,则循环语句for(n=-1;n==1;) n++;的循
环体______。
A. 执行两次
B. 执行无限次
C. 一次也不执行
D. 只执行一次
C ,想知道原因

 

a<1不成立,不执行下面的if  else 语句输出1

第二个n==1不成立,所以不循环

哪里不明白,可以再问我

if (a<1) 
{
    if (b<2) 
        b=0;
    else 
        b=2;
}
printf("%d\n",b);

第一个可能排版迷惑了你,格式化一下你就很清楚了吧。所以格式化很重要。else和就近的if匹配

for(n=-1;n==1;)

    n++;

循环条件是n==1,由于初始n赋值为-1,所以不满足循环条件要求,for循环体不执行。