有以下程序#define F(X,Y)(X)*(Y)main(){ int a=3, b=4; printf("%d\n", F(a++, ++b));}程序运行后的输出结果是A.12 B.15C.16 D.20
- A12
- B15
- C16
- D20
有以下程序#define F(X,Y)(X)*(Y)main(){ int a=3, b=4; printf("%d\n", F(a++, ++b));}程序运行后的输出结果是A.12 B.15C.16 D.20
本题主要考查宏的定义与替换。在C语言中,源程序允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”都用宏定义中的字符串去代换。本题中,程序定义了一个带参数的宏,宏被定义为两个参数的乘积。在主函数中,程序首先定义变量a和b,并分别赋初值为3和4,然后执行输出语句,要求输出的是宏计算的结果,分别用变量a和b作为宏的参数,F(a++, ++b)进行宏替换后为(a++)*(++b),根据自加运算符的特点,结果为3*5=15。因此,程序最后的输出结果是15,本题的正确答案选B。
1、有如下程序void f(int *x,int *y){ int t; t=*
有如下程序void f(int *x,int *y){ int t; t=*x;*x=*y;*y=t;}main(){ int a[6]={1,2,4,6,8,10},i,*p,*q; p=a;q=&a[5]; while(p<q) { f(p,q); p++; q--; } for(i...
2、有以下程序 void f(int x,int y) { int t; if
有以下程序void f(int x,int y){int t;if(x < y){t=x;x=y;y=t;}}main(){int a=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%dn",a,b...
3、下面程序的输出结果是main{ int x=3 ,y=6,a=0; whil
下面程序的输出结果是main{ int x=3 ,y=6,a=0; while(x++!=(y-=1) ) { a+=1; if (y<x) break; } printf("x=%d,y=%d,a=%dn",x,y,a);}A.x=4,y=4,a=1 B.x=5,y=5,a=1 C.x=5,y=4,a=1 D.x=5,y=4,a=3Ax=4,y=4,a=1 Bx=5,y=5,a=1 Cx=5,y=4,a=1 Dx=5,y=4,a=3
4、有以下程序void f(int x,int y){ int t, if(x<
有以下程序void f(int x,int y){ int t, if(x<y){t=x;x=y;t;}}main(){ int a=4,b=3,c=5; f(a,B) ;f(a,C) ;f(b,C) ; cout<<a<<","<<b<<",...
5、有以下程序#define P(a) a+avoid F(int x) { r
有以下程序#define P(a) a+avoid F(int x) { return(P(2)*x*x);}main(){ printf("%dn",F(1+3)); }程序的运行结果是A.10 B.34 C.64 D.编译出错A10 B34 C64 D编译出错
6、有以下程序 main() { int x=3,y=2,z=1; printf
有以下程序 main() { int x=3,y=2,z=1; printf("%d ",x/y&~z); } 程序运行后的输出结果是A3B2C1D0