若有以下程序 #include <stdio.h> #define S(x)(x)*(x) #define T(x)S(

题目
单选题
若有以下程序 #include  #define S(x)(x)*(x) #define T(x)S(x)/S(x)+1 main() {  int k=3,j=2;  printf(%d,%d,S(k+j),T(k+j)); } 则程序的输出结果是(  )。
A

11,2

B

25,2

C

11,12

D

25,26

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

第1题:

下列程序的运行结果是()。includedefine ADD(x)x+xmain(){int m=1,n=2,k=3; int s=ADD

下列程序的运行结果是( )。 #include<stdio.h> #define ADD(x)x+x main() { int m=1,n=2,k=3; int s=ADD(m+n)*k; printf("s=%d",s); }

A.sum=18

B.sum=10

C.sum=9

D.sum=25


正确答案:B
解析: 本题考查带参数的宏的定义及相关运算:s=m+n+m+n*k=1+2+2*3=10。

第2题:

以下程序运行后,输出结果是define PT5.5define S(x)PT*x*xincludemain(){int a=1,b=

以下程序运行后,输出结果是 #define PT 5.5 #define S(x) PT*x*x #include<stdio.h> main() { int a=1,b=2; printf("%4.1f\n",s(a+b));}

A.49.5

B.9.5

C.22

D.45.0


正确答案:A

第3题:

有以下程序

#include <stdio.h>

#define PT 3.5 ;

#define S(x) PT*x*x ;

main()

{ int a=1, b=2; printf("%4.1f\n",S(a+b));}

程序运行后的输出结果是

A)14.0

B)31.5

C)7.5

D) 程序有错无输出结果


正确答案:D

第4题:

以下程序的输出结果是______。 include define FUDGE(y)2.84+y define PR(a) printf(

以下程序的输出结果是______。 #include<stdio.h> #define FUDGE(y) 2.84+y #define PR(a) printf("%d",(int)(a)) #define PRINT1(a) PR(a);putchar('\n') main() { int x=2; PRINT1(FUDGE(5)*x); }

A.11

B.12

C.13

D.15


正确答案:B
解析:在程序中如果有带实参的宏,则按#define命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。

第5题:

执行下列程序后,输出的结果是()。includedefine S(X)X*Xvoid main(){int a=9,k=3,m=2;

执行下列程序后,输出的结果是( )。 #include<stdio.h> #define S(X)X*X void main() { int a=9,k=3,m=2; a/=S(k+m)/S(k+m); printf("%d",a); }

A.(*p) .data.a

B.(*p) .a;

C.p->data.a

D.p.data.a


正确答案:B
解析: 本题主要考查结构指针:p=&data,访问结构体的成员,可以通过结构变量访问,即data.a,也可以用等价的指针形式:(*p).a和p->a来访问结构体变量中的成员。

第6题:

(36)有以下程序

#include <stdio.h>

#define PT 3.5;

#define S(x) PT*x*x;

main()

{ int a=1, b=2; printf(“%4.1f\n”,S(a+b));}

程序运行后输出的结果是

A)14.0 B)31.5 C)7.5 D)程序有错无输出结果


正确答案:C

第7题:

下列程序的输出结果是()。 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。

第8题:

有以下程序

#include <stdio.h>

#define f(x) x*x*x

main()

{ int a=3,s,t;

s=f(a+1);t=f((a+1));

printf("%d,%d\n",s,t);

}

程序运行后的输出结果是

A)10,64

B)10,10

C)64,10

D)64,64


正确答案:A

第9题:

以下程序运行后,输出结果是______。includedefine PT 5.5difine S(x) PT*x*xmain(){i

以下程序运行后,输出结果是______。 #include<stdio.h> #define PT 5.5 #difine S(x) PT*x*x main() { int a=1,b=2; printf("%4.1f/n",S(a+b)); }

A.49.5

B.9.5

C.22

D.45


正确答案:B
解析:C语言中宏替换只是字符替换,因此:S(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5。

第10题:

有以下程序 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++)的值。

更多相关问题