niusouti.com
更多“下面程序的输出是 main() {int x=100, a=10, b=20, ok1=5, ok2=0; if(a<b ”相关问题
  • 第1题:

    以下程序的输出结果是main(){ int x=100,a=10,b=20,ok1=5,ok2=0; if(a<b)if(b!=15)if(!ok1)x=1; else if(ok2)x=10; else x=-1; printf("%d\n",x);}


    正确答案:-1
    本题主要考查if语句的嵌套调用。程序首先定义了五个整型变量,并分别赋初值,然后开始指向if语句,第一条if语句if(a<b)的结果为真,那么执行第二条if语句if(b!=15),结果也为真,接着执行第三条if语句if(!ok1),由于变量ok1的值为5,那么!ok1的结果为0,条件语句结果为假,执行else结构的程序if(ok2),结果仍然为假,执行x=-1;语句,将变量x的值变为-1,到这里,if嵌套调用结束。然后程序输出变量x的值,因此,程序输出的结果为-1。

  • 第2题:

    下面程序输出的结果是( )。 main() { int x=100,a=10,b=20,ok1=5,ok2=0; if(a<b) if(b!=15) if(!ok1) x=-i; else if(ok2) x=10; x=1; printf("%d\n",x); }

    A.-1

    B.0

    C.1

    D.不确定的值


    正确答案:C
    解析:如果没有大括号,else总是与它上面的最近的if配对。所以本题中的elseif(ok2)是与if(!ok1)配对的,首先因为ab成立所以进一步判断b!=15也成立,再进一步判断!ok1,为假,不执行子句X=-1;继续判断ok2是否为真,ok2亦为假,故子句x=10;也不执行,最后让x=1;输出x,所以结果应该选择C。

  • 第3题:

    以下程序的输出结果是() main() { int x=100, a=10, b=20, ok1=5, ok2=0; if(a<b)if(b!=15)if(!ok1)x=1; else if(ok2)x=10; else x=-1; printf("%d\n", x); }

    A.1

    B.-1

    C.10

    D.100


    -1

  • 第4题:

    下面程序 main() { int x=100,a=10,b=20,ok1=5,ok2=0; if(a<b) if(b!=15) if(!ok1) x=1: else if(ok2)x=10; x=-1; printf("%d\n",x); } 的输出是______。

    A.-1

    B.0

    C.1

    D.不确定的值


    正确答案:A
    解析:第一个判断值为真,过渡到下一个判断,第二个判断为真,过渡到第三个判断…如此循环,在打印输出语句的前一行,程序给变量x赋了值,为-1,所以,无论前期如伺变化,最后的x值依然为-1。

  • 第5题:

    下面程序 main() { int x=100,a=10,b=20,ok1=5,ok2=O; if(a<B) if(b!=15) if(!ok1) x=1; else if(ok2)x=10; x=1; printf("%d\n",x); } 的输出是______。

    A.-1

    B.0

    C.1

    D.不确定的值


    正确答案:A
    解析:第一个判断值为真,过渡到下一个判断,第二个判断为真,过渡到第三个判断……如此循环,在打印输出语句的前一行,程序给变量x赋了值,办-1,所以,无论前期如何变化,最后的x值依然为-1。