计算机二级

有以下程序:include defineF(X, Y)(X)*(Y)main ( ){int a=3,b=4;printf("%d\n",F(有以下程序:#include <studio. h >#define F(X, Y) (X)*(Y)main ( ){ int a=3, b=4; printf("%d\n", F(a++, b++));}A.12B.15C.16D.20

题目
有以下程序:include defineF(X, Y)(X)*(Y)main ( ){int a=3,b=4;printf("%d\n",F(

有以下程序:#include <studio. h >#define F(X, Y) (X)*(Y)main ( ){ int a=3, b=4; printf("%d\n", F(a++, b++));}

A.12

B.15

C.16

D.20

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

【单选题】以下程序的输出结果为()。 #include <stdio.h> #define F(y) 3.84+y #define PR(a) printf(“%d”,(int)(a)) #define PRINT(a) PR(a); putchar(‘n’) main() { int x=2; PRINT(F(3)*x); }

A.8

B.9

C.10

D.11


B 解析:执行“p=f(i,++i):”后i的值为2,所以a和b的值都为2,则c=0,选项B正确。

第2题:

有以下程序:include define F(X,Y)(X)*(Y)main(){int a=3,b=4;printf("%d\n",F(a++,b

有以下程序: #include <stdio.h> #define F(X,Y)(X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是( )。

A.12

B.15

C.16

D.20


正确答案:A
解析:在程序中先将表达式中的宏替换掉,则输出语句中的表达式为(a++)*(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。所以,4个选项中选项A符合题意。

第3题:

以下程序的输出结果是()。includedefine F(x)2.84+xdefine w(y)printf("%d",(int)(y)

以下程序的输出结果是( )。 #include<stdio.h> #define F(x)2.84+x #define w(y)printf("%d",(int)(y)) #define P(y)w(y) main() {int x=2; P(F(5)*x); }

A.12

B.13

C.14

D.16


正确答案:A

第4题:

有以下程序:includedefine F(x,y) (x)*(y)main(){int a=3,b=4; printf("%d\n",F(a++,

有以下程序: #include <stdio.h> #define F(x,y) (x)*(y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是( )。

A.12

B.15

C.16

D.20


正确答案:A
解析:本题考查带参数的宏定义。对F(a++,b++)展开后,宏的返回值为3×4=12,这里a++,b++都是先使用变量值,再自增。

第5题:

有以下程序includedefine F(X,Y)(X)*(Y)main(){int a=3,b=4;printf("%d\n",F(a++,b++

有以下程序 #include<stdio.h> #define F(X,Y)(X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); 程序运行后的输出结果是

A.12

B.15

C.16

D.20


正确答案:A
解析:在程序中先用表达式将宏替换掉,则输出语句中的表达式为(a++) *(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。

第6题:

有以下程序:includedefmeF(X,Y)(X)*(Y)main(){int a=3,b=4;printf("%d\n",F(a++,b++

有以下程序: #include<studio.h> #defme F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是( )。

A.12

B.15

C.16

D.20


正确答案:A
解析:在程序中先用表达式将宏替换掉,则输出语句中的表达式为(a++)*(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。所以,4个选项中选项A符合题意。

第7题:

有以下程序 include define F(X,Y) (X)*(Y) main( ) { int a=3, b=4; prin

有以下程序

#include <stdio.h>

#define F(X,Y) (X)*(Y)

main( )

{ int a=3, b=4;

printf("%d\n", F(a++, b++));

}

程序运行后的输出结果是

A.12

B.15

C.16

D.20


正确答案:A
解析:本题考查了带参数的宏定义。参数只是进行简单的替换而不是把其值求出后替换形式参数。本题中用a++替换X,用b++替换Y,再求(a++)*(b++)的值。

第8题:

下列程序的输出结果是()。includedefineF(x)2.84+xdefinew(y)printf("%d",(int(y))d

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

#include<stdio.h>

#defineF(x)2.84+x

#definew(y)printf("%d",(int(y))

#defineP(y)w(y)pmchar('\n'》

main()

{int x=2;

P(F(5)*x);

}

A.12

B.13

C.14

D.16


正确答案:A
解析: 本题考查带参数的宏的定义及相关运算。P(F(5)*x)=P(2.84+5*2)=P(12.84),调用w(12.84),输出(int)(12.84)=12。

第9题:

下列程序的输出结果是()。 include define F(x)2.84+x define w(y)printf("%d",(int)

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

#include<stdio.h>

#define F(x)2.84+x

#define w(y)printf("%d",(int)(y))

#define P(y)w(y)putchar('\n')

main()

{ int x=2;

P(F(5) *x);

}

A.12

B.13

C.14

D.16


正确答案:A
解析:本题考查带参数的宏的定义及相关运算。P(P(5)*x)=P(2.84+5*2)=P(12.84),调用w(12.84),输出 (int)(12.84)=12。