更多“以下程序:main(){inta=4,b=5,c=0,d;d=!aprintf(“%d\n“,d);}的输出结果是() ”相关问题
  • 第1题:

    有以下程序

    main( )

    { int a=1,b=2,m=0,n=0,k;

    k=(n=b>a)||(m=a

    printf("%d,%d\n",k,m);

    }

    程序运行后的输出结果是

    A.0,0

    B.0,1

    C.1,0

    D.1,1


    正确答案:C
    解析:由于整个表达式中出现了“‖”运算符,则先计算“‖”前的表达式的值。若非0,则不再计算其后表达式的值,由于b>a为逻辑真1,1赋给n,n为1再赋给k,k值为1,则“‖”左边式子的值为1,故不再计算其后的式子,m值不发生变化。

  • 第2题:

    以下程序的输出结果是main(){ int a=0; a+=(a=8); printf("%d\n",a);}


    正确答案:16
    a+=(a=8)可以写成a=a+(a=8)的形式,括号的优先级高于“+”,而“+”的优先级又高于“=”,所以先执行括号内的运算,将a赋值为8,然后执行+运算。

  • 第3题:

    以下程序的输出结果是______。 include main() { int a=5,b=4,c=6,d; printf("%d\n",d=

    以下程序的输出结果是______。 #include<stdio.h> main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); }

    A.5

    B.4

    C.6

    D.不确定


    正确答案:C

  • 第4题:

    以下程序的输出结果是( )。 main { int a=3: printf("%d\n",(a+a-=a*a)); }A.-6B.12S

    以下程序的输出结果是( )。 main { int a=3: printf("%d\n",(a+a-=a*a)); }

    A.-6

    B.12

    C.0

    D.-12


    正确答案:D
    本题可以写成:a+a+(a-(a*a)),所以*的优先级最高,其次是-=的,+的优先级最低,因此先求a-=a*a=9,表达式变为a+a+-=9,a即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。

  • 第5题:

    以下程序的输出结果是 main() { int a=4,b=5,c=0,d; d=!a&&! b||! c; printf(“%d\n”,d; }

    A.1

    B.0

    C.非0的数

    D.-1


    正确答案:A
    解析:由于单目运算符优先级高于“&&”和“||”运算,所以先计算!a、!b和!c分别为“假”、“假”、“真”,然后是&&运算和“||”运算,原表达式就等价于“假”&&“假”||“真”又由于“&&”的优先级高于“||”运算符,所以先计算“假”&&“假”,还是为假,最后是“假”||“真”为真。因此最后d被赋值为1,故最后输出为1。