有宏定义#define M(x)x*x;则a=M(2+3)的值是()
第1题:
已知下面的程序段,正确的判断是 ______。#define A 3#define B(A) ((A+1)*A) ……int a=3;X=3*(A+B(7));
A.程序错误,不允许嵌套定义
B.X=93
C.X=81
D.程序错误,宏定义不允许有参数
第2题:
执行下面的程序后,a的值是 ( ) # define SQR (X) X * X main( ) { int a=10,k=2,m=l; a/=SQR (k+m)/SQR (k+m); printf("%d\n",a); }
A.10
B.1
C.9
D.0
第3题:
有以下程序
# include <stdio.h>
# define N 5
# define M N+1
# define f(x) (x*M)
main()
{ int i1, i2;
i1 = f(2) ;
i2 = f(1+1) ;
printf("%d %d\n", i1, i2);
}
程序的运行结果是
A)12 12
B)11 7
C)11 11
D)12 7
答案 B
解析:根据宏替换的替换规则,我们可知,f(2)=2*N+1=2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7 。因此本题的选项为 B 。
第4题:
下列选项中不会引起二义性的宏定义是( )。
A.#define S(x)x*x
B.#define S(x)(x)*(x)
C.#define S(x)(x*x)
D.#define S(x)((x)*(x))
第5题:
#define 能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为( )。
A.#define f(x)5*x*x+5*x+5
B.#define f5*x*x+5*x+5
C.#define f(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)fx)
第6题:
已知下面的程序段,正确的判断是______。 #define A 3 #define B(A) ((A+1)*a) int a=3; ...... X=3*(A+B(7));
A.程序错误,不允许嵌套定义
B.X=93
C.X=81
D.程序错误,宏定义不允许有参数
第7题:
#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为( )。
A.#definef(x)5*x*x+5*x+5
B.#definef5*x*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
第8题:
#define能作简单的替代,用宏来替代计算多项式5*x*x+5*+5的值的函数f,正确的宏定义语句为( )。
A.#definef(x)5*x*x+5*+5
B.#definef5*x*x+5*x+5
C.#definef(a) (5*a*a+5*a+5)
D.#define5*x*x+5*+5f(x)
第9题:
下面宏定义正确的是( )
A.#define S a*b
B.#define PI 3.14;
C.#define max(a,b) ((a) >(b) ?(a) ;(b) )
D.#define s(x) (x)*(x);
第10题:
#define能做简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为( )。A.
B.
C.
D.
A.A
B.B
C.C
D.D