若有如下程序: main() { int a,b,C,m,n,k; m=n=k=0; a=-1;b=2; C=3; if(c>0)m=a+b; if(a<=0) { if(b>0)

admin2010-01-10  21

问题 若有如下程序:    main()    {  int  a,b,C,m,n,k;       m=n=k=0;    a=-1;b=2;  C=3;       if(c>0)m=a+b;       if(a<=0)    {  if(b>0)    if(c<=0)n=a=b;    }    else if(c>0)n=a-b;    else k/=c;    printf("%d,%d,  %d,",m,n,k);    }    则程序运行后的输出结果是(  )。

选项 A、1,0,0
B、2,-3,3
C、1,-3,3
D、1,0,3

答案1

解析 本题首先声明了6个int型变量,然后分别让m、n、k为0,a为-1,b为2,c为3。接下来因为c>O为真,故执行子句“m=a=b;”,结果使m的值变为1;然后判断a是否<=0,结果也为真,进入大括号里面;由于b>O为真,再判断c<=0,为假。所以子句“n=a=b;”没有执行,跳出大括号。而后面的else if语句和else语句因为大括号的原因,使其对应第二个if语句,而第二个if语句的条件已满足(进入大括号之前),所以这两条else语句的子句不被执行,故最后输出结果为1,0,0,所以应该选择A。
转载请注明原文地址:https://kaotiyun.com/show/3GWp777K
0

最新回复(0)