以下程序的输出结果是_______。#include<stdio.h>#define SQR(x)x*xmain(){int a;k=3; a=++SQR(k+

题目
以下程序的输出结果是_______。includedefine SQR(x)x*xmain(){int a;k=3; a=++SQR(k+

以下程序的输出结果是_______。 #include<stdio.h> #define SQR(x)x*x main() { int a;k=3; a=++SQR(k+1); printf("%d\n",a) ; }

A.8

B.9

C.17

D.20

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

第1题:

执行下面的程序后,变量a的值是()。 #include<stdio.h> #define SQR(X) X*X void main() { int a=10,k=2,m=3; a/=SQR(m)/SQR(k); printf("%d n",a); }

A.10

B.1

C.5

D.0


C

第2题:

下列程序的输出结果是______。 #define SQR(X) X*X main ( ) { int a=16, k=2, m=1; a/=SQR (k+m)/SQR (k+m); printf ("d\n", a); }

A.16

B.2

C.9

D.1


正确答案:B

第3题:

以下程序的输出结果是______。includedefine SQR(x)x*xmain(){int a,k=3; a=++SQR(k+1

以下程序的输出结果是______。 #include<stdio.h> #define SQR(x)x*x main() { int a,k=3; a=++SQR(k+1); printf("%d\n",a); }

A.8

B.9

C.17

D.20


正确答案:B
解析:本题宏替换中遇到形参x以实参k+1代替,其他字符不变。SQR(k+1)展开后应为字符串k+1*k+1。

第4题:

以下程序的输出结果是______。includedefme SQR(x)x*xmain(){int a,k=3; a=++SQR(k+1)

以下程序的输出结果是______。 #include<sulio.h> #defme SQR(x)x*x main() { int a,k=3; a=++SQR(k+1); printf("%d\n",a) ; }

A.8

B.9

C.17

D.20


正确答案:B
解析:本题宏替换中遇到形参x以实参k+l代替,其他字符不变。SQR(k+1)展开后应为字符串k+l*k+l。

第5题:

以下程序的输出结果是 ______。includedefine SQR(x)x*xmain((){ int a,k=3;a=++SQR(K

以下程序的输出结果是 ______。#include<stdio.h>#define SQR(x)x*xmain((){ int a,k=3; a=++SQR(K+1); printf("%d\n",A) ;}

A.8

B.9

C.17

D.20


正确答案:B
解析:本题宏替换中遇到形参x以实参k+1代替,其他字符不变。SQR(k+1)展开后应为字符串k+1*k+1。

第6题:

以下程序的输出结果是 ______。 #define SQR(X) X * X main() { int a=16,k=2,m=1; a/=SQR(k/m)/SQR(k+m); printf("%d\n",A) ; }

A.16

B.2

C.9

D.1


正确答案:B
解析:C语言在预编译时遇到带实参的宏名,则按命令行中指定的字符串从左到右进行置换。在做这题时,也不妨运用置换法。得到a/=k+m*k+m/k+m*k+m=16/7=2。注:a为整型,所以在做除法,自动取整。

第7题:

以下程序的输出结果是 ______。 # defineSQR(X) X*X main() { int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("d\n",a); }

A.16

B.2

C.9

D.1


正确答案:D
解析:本题考查带参数的宏调用。a/=SQR(k+m)/SQR(k+m)进行宏替换后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。

第8题:

以下程序的输出结果是______。 #define SQR(X) X*X main() { int a=16,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("%d\n",a) ; }

A.16

B.2

C.9

D.1


正确答案:B
解析:C语言在预编译时遇到带实参的宏名,则按命令行中指定的字符串从左到右进行置换。在做这题时,也不妨运用置换法。得到a/=k+m*k+m/k+m*k+m=16/7=2。注:a为整型,所以在做除法时,自动取整。

第9题:

以下程序的输出结果是 ( ) # define SQR (X) X*X main( ) { int a=16,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("%d\n",a); }

A.16

B.2

C.9

D.1


正确答案:B