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

    下列程序的运行结果为( )。

    #deflne 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。

  • 第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题:

    有以下程序:include void f(int * x,int * y) int t;t= *x; *x= *y; *y=t;main ( ){in

    有以下程序:#include <stdio.h>void f(int * x,int * y) int t; t= *x; *x= *y; *y=t;main ( ){ int a[8] = { 1,2,3,4,5,6,7,8} ,i, * p, * q; p=a;q =&a[7]; while(p<q) { f(p,q) ;p ++ ;q --; } for(i =0;i<8;i ++ ) printf(" % d," ,a[i]); }程序运行后的输出结果是( )。

    A.8,2,3,4.,5,6,7,1,

    B.5,6,7,8,1,2,3,4,

    C.1,2,3,4,5,6,7,8,

    D.8,7,6,5,4,3,2,1,


    正确答案:D
    解析:程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。在main函数中,通过P=a;q=&a[7];指针变量p指向数组的第一个元素,指针变量q指向数组的最后一个元素。通过调用函数f(p,q)进行前后对称位置上的数组元素的交换。当while循环4次(即p=q)后,a数组中各元素的值分别为8,7,6,5,4,3,2,1,所以程序输出的结果为:8,7,6,5,4,3,2,1,

  • 第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。