更多“以下程序的输出结果是______。#defineM(x,y,z)x*y+zmain(){int a=1,b=2,c=3;printf("%d\n",M(a+b, ”相关问题
  • 第1题:

    有以下程序:includemain(){int x=3,y=2,z=1; printf("%d\n",x/y&~z);程序运行后的

    有以下程序: #include <stdio.h> main() { int x=3,y=2,z=1; printf("%d\n",x/y&~z); 程序运行后的输出结果是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:D
    解析:&是按位“与”运算符,若参加运算的两个运算量的相应位都为1,则该位的结果值为1,否则为0。~是“取反”运算符,用来对一个二进制数按位取反,即将0变1,1变0。对于x/y&~z,先计算x/y的值,结果为1,用十六进制表示为0001;z用十六进制表示为0001,则~z为FFFE;最后进行&运算,整个表达式的值为0。

  • 第2题:

    以下程序的输出结果是______。 #define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf("%d\n",M(a+b,b+c,c+a)); }

    A.19

    B.17

    C.15

    D.12


    正确答案:D
    解析:C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:#define宏名(形参表)字符串本题的M(a+,b+c,c+a)被字符串a+b*b+c+c+a代替。

  • 第3题:

    3、执行以下程序段,输出结果是:()int x=1,y=2,z=3; if(x>y)  if(y<z) printf("%d",++z);   else printf("%d",++y); printf("%d\n",x++);

    A.331

    B.41

    C.2

    D.1


    A. 7,21

  • 第4题:

    以下程序的输出结果是( )。 #define M(x,y,z)x*y+z main( ) { int a=l,b=2,c=3; printf("%d\n",m(a+b.b+c,c+a)); }

    A.19

    B.1 7

    C.15

    D.12


    正确答案:D
    M(a+b,b+C,c+a)=a+b*b+c+c+a=1+2*2+3+3+1=12,注意x*y+z而不是(x)*(y)+z。

  • 第5题:

    以下程序的输出结果是( )。define M(x,y,z)x*y+zmain( ){ int a=l,b=2,c=3;printf("%d\n&qu

    以下程序的输出结果是( )。

    #define M(x,y,z)x*y+z

    main( )

    { int a=l,b=2,c=3;

    printf("%d\n",m(a+b.b+c,c+a));

    }

    A.19

    B.1 7

    C.15

    D.12


    正确答案:D
    M(a+b,b+C,c+a)=a+b*b+c+c+a=1+2*2+3+3+1=12,注意x*y+z而不是(x)*(y)+z。