更多“下列程序的运行结果为()。#define MAX(x,y)(x)>(y)?(x):(y)main(){ int a=2,b=3,c=1,d=3,t;printf ”相关问题
  • 第1题:

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

    void fun(int*X,int y)

    { printf("%d%d",*x,*y);*x=3;*y=1;}

    main

    { int x=1,y=2;

    fun(&y,&x);

    printf("%d%d",x,y);

    }

    A.2 1 4 3

    B.1 2 1 2

    C.1 2 3 4

    D.2 1 1 2


    正确答案:C
    当执行fun函数时,因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行fun函数时先输出12,接着把*X赋3,*y赋4,此时带回主函数中,输出的值为34。

  • 第2题:

    下列程序段的输出结果是______。 void fun(int *x,int *y) {printf("%d%d",*x,*y);*x=3;*y=4;} main() { int x=1,y=2; fun(&y,&x); printf("%d%d",x,y); }

    A.2 1 4 3

    B.1 2 1 2

    C.1 2 3 4

    D.2 1 1 2


    正确答案:A
    解析:本题中函数传递的是变量的地址,如果形参在函数中发生改变,相对应的实参也就有了改变。

  • 第3题:

    下列程序的输出结果是( )。 void fun(int*X,int y) { printf("%d%d",*x,*y);*x=3;*y=1;} main { int x=1,y=2; fun(&y,&x); printf("%d%d",x,y); }

    A.2 1 4 3

    B.1 2 1 2

    C.1 2 3 4

    D.2 1 1 2


    正确答案:C
    当执行fun函数时,因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行fun函数时先输出12,接着把*X赋3,*y赋4,此时带回主函数中,输出的值为34。

  • 第4题:

    下列程序的运行结果为( )。 #define MAX(x,y)(x)>(y)?(x):(y) main() { int a=2,b=3,c=1,d=3,t; printf("%d\n",(MAX(a+b,c+d))*100); }

    A.500

    B.5

    C.4

    D.400


    正确答案:A
    解析:本题考查带参数的宏的定义及相关运算:(x)>(y)?(x):(y)是x>y时输出x,否则输出y,调用(MAX(a+b,c+d))*100时, (a+b=5)>(c+d=4),所以输出a+b=5,所以x=5*100。

  • 第5题:

    以下程序的输出结果是#define MAX(x,y) (x)>(y)?(x):(y)main() { int a = 5, b = 2,c = 3, d = 3, t; t = MAX(a + b, c + d)*10; printf("%d\n", t);}


    正确答案:7
    宏替换后,表达式t = MAX(a + b, c + d)*10即变为t = (a+b)>(c+d) ? (a+b) : (c + d)*10;,由于(a+b)>(c+d)为真,所以t = (a+b),即为7。