参考答案和解析
正确答案:
9
更多“以下程序的运行结果是【6】。 #defineMAX(a,b)(a>b?a:b)+1 main() {inti=6,j=8,k; prin ”相关问题
  • 第1题:

    有以下程序: main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d%d%d\n",i,j,k); } 程序运行后的输出结果是 ______。

    A.1 2 3

    B.2 3 4

    C.2 2 3

    D.2 3 3


    正确答案:D
    解析:执行“i++=1&&(++j=||k++=3)”时,表达式“i++=1”的值为真,其值为1,表达式“++j=3”的值为真,根据短路原理,右边的表达式“k++=3”不再进行运算,括号中表达的值为1,作与运算后整个表达式的值也为1,输出i,j,k时,由于未执行过k,所以它们的值分别为为2,3,3。

  • 第2题:

    有以下程序:include main( ) { int i,j,k,a=5,b=6; i=(a==b)?++a:--b; j=a++;k=b;printf("%d,%d,%d\n",i,j,k); } 程序的运行结果是( )。

    A.7,6,5

    B.5,5,5

    C.7,5,5

    D.5,6,5


    答案:B
    解析:条件表达式i=(a==b)?++a:--b;中先执行a==b,值为假,根据三元运算符语法规则,执行--b,此时b为5,赋给i,i=5;j=a++,将a=5先赋给j,再进行a++,j=5,a=6,k=b=5,故最后输出的是5,5,5。

  • 第3题:

    以下程序的输出结果是()。 main() { int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2; for(i=0;i<3;i++){ printf("%d ",m[k][i]);} }

    A.4 5 6

    B.2 5 8

    C.3 6 9

    D.7 8 9


    A for循环语句嵌套一个switch语句;i=1,i%5=1,执行case 1,遇到break退出switch语句,i=2,i%5=2,执行case 2,i=3,i%5=3,执行default语句,然后执行case 2……

  • 第4题:

    以下程序的运行结果是【】。

    define MAX(a,b)(a>b?a:b)+1

    main()

    { int i=6,j=8,k;

    printf("%d\n",MAX(i,j));

    }


    正确答案:

    本题考查宏定义与三目运算符的综合用法,宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则为b+1的值为整个表达式的值,(应注意后面的加1)。

  • 第5题:

    以下程序运行后的输出结果是(). main() {int i=1,j=2,k=3; if(i++==1&&++j==3||k++==3) printf("%d%d%dn",i,j,k); }

    A.2 2 3

    B.1 2 3

    C.2 3 4

    D.2 3 3


    666