请选出以下程序段的输出结果______。includedefine MIN(x,y)(x)请选出以下程序段的输出结果______。 #include<stdio.h> #define MIN(x,y) (x)<(y)?(x):(y) main() { int i,j,k;i=10;j=15; k=10*MIN(i,j); printf("%d\n",k); }A.15B.100C.10D.150

题目
请选出以下程序段的输出结果______。includedefine MIN(x,y)(x)<(y)?(x):(y)main(){in

请选出以下程序段的输出结果______。 #include<stdio.h> #define MIN(x,y) (x)<(y)?(x):(y) main() { int i,j,k;i=10;j=15; k=10*MIN(i,j); printf("%d\n",k); }

A.15

B.100

C.10

D.150


相似考题
更多“请选出以下程序段的输出结果______。#include<stdio.h>#define MIN(x,y)(x)<(y)?(x):(y)main(){in ”相关问题
  • 第1题:

    请选出以下程序的输出结果______。includesub(x,y,z)int x,y,*z;{*z=y-x;}main(){int a

    请选出以下程序的输出结果______。 #include<stdio.h> sub(x,y,z) int x,y,*z; {*z=y-x;} main(){ int a,b,c; sub(10,5,&A) ;sub(7,a,&b);sub(a,b,&c); printf("%d,%d,%d\n",a,b,c); }

    A.5,2,3

    B.-5,-12,-7

    C.-5,-12,-17

    D.5,-2,-7


    正确答案:B
    解析:sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,&a),10和5属于值传递,a是属于地址传递,也就是a与z指向了同—个存储单元,在执行函数后,s的值随*z变化,所以此次函数披调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=12,在sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。

  • 第2题:

    请选出以下程序的输出结果()。includedefineMIN(x,y)(x

    请选出以下程序的输出结果( )。 #include <stdio.h> #define MIN(x,y) (x<y)? x:y main() { int i,j,k; i=10;j=15; k=10*MIN(i,j); printf("%d\n",k); }

    A.15

    B.100

    C.10

    D.150


    正确答案:C
    解析:本题考查宏定义。在C语言中,宏是直接替换的,所以表达式k=10*MIN(i,j)被直接替换为k=10*(ij)?i:j,在这个表达式中,10*(ij)的值为非零,所以整个表达式的值应为i的值,即为10。

  • 第3题:

    请选出以下程序段的输出结果 ( )。include using namespace std;define MIN(x,y)(x)<

    请选出以下程序段的输出结果 ( )。 #include <iostream> using namespace std; #define MIN(x,y) (x)<(y) ?(x) : (y) int main () { int i,j,k; i=10; j=15; k=10*MIN(i,j); cout<<k<<end1; return 0; }

    A.15

    B.100

    C.10

    D.150


    正确答案:A
    解析:本题考查对宏定义的掌握程度。本题最常见的错误就是想当然地先把i、j代入MIN(i,j),得到值10,然后在计算表达式k=10*10=100,得到答案100。其实不然,在使用宏替换时,应该充分理解宏替换仅是简单地用所说明的字符串来替代对应的标识符。所以,应当先把宏定义代入到表达式k=10*MIN(i,j)中,得到:k=10*1015?10:15,再按照运算符的优先级和结合性计算,最后得到k=15。

  • 第4题:

    请选出以下程序的输出结果 ______。include sub(x, y, z)int x, y,*z;{*z=y-x:}main()

    请选出以下程序的输出结果 ______。#include <stdio. h>sub(x, y, z)int x, y,*z;{*z=y-x:}main(){ int a, b, c; sub 10,5,&a);sub(7,a,&b);sub(a, b, &c); printf("%d,% d,/%d\n", a, b, c);}

    A.5,2,3

    B.-5,-12,-7

    C.-5,-12,-17

    D.5,-2,-7


    正确答案:B
    解析:sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(0.,5,&a),10和5属于值传递,a是属于地址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随*z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12,在sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。

  • 第5题:

    请选出以下程序的输出结果______。includesub(x,y,z)int x,y,*z;{ *z=y-x;}main(){int

    请选出以下程序的输出结果______。 #include<stdio.h> sub(x,y,z) int x,y,*z; { *z=y-x;} main(){ int a,b,c; sub(10,5,&a);sub(7,a,&b);sub(a,b,&c); printf("%d,%d,%d\n",a,b,c); }

    A.5,2,3

    B.-5,-12,-7

    C.-5,-12,-17

    D.5,-2,-7


    正确答案:B
    解析:sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,&a),10和5属于值传递,a是属于地址传递,也就是a与z指向了同—个存储单元,在执行函数后,a的值随*z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12,在sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。