更多“有宏定义#define M(x)x*x*2;则a=M(2+3)的值()  A、2B、3C、11D、14”相关问题
  • 第1题:

    执行下面的程序后,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


    正确答案:B

  • 第2题:

    #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)


    正确答案:C
    解析:带参数宏的格式为:#define标识符(形参衰) 形参表达式。其功能是:预处理程序将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

  • 第3题:

    若x、y、z、m均为int型变量,则执行下面语句后m的值是( )。 m=1; x=2; y=3; m=(m<x) ? m : x; m=(m<y) ? m : y; m=(m<y) ? m : z;

    A.1

    B.2

    C.3

    D.4


    正确答案:A
    解析:?:运算符首先执行?之前的表达式,如果表达式的值为真,则返回?和:之间的表达式的值,否则返回:之后的表达式的值。本题中m比x和y都要小,所以,3个表达式都没有改变m的值,故应该选择A。

  • 第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))


    正确答案:D
    解析: 本题考查带参数的宏的替换。有些参数表达式必须加括号,否则,在实参表达式替换时,会出现错误。

  • 第5题:

    选出任何情况下都不引起二义性的宏定义( )。

    A.#define POWER(x)x*x

    B.#define POWER(x)((x)*(x))

    C.#define POWER(x)(x*x)

    D.#define POWER(x)(x)*(x)


    正确答案:B
    解析:引起带参数宏的二义性主要有两个方面:一是,参数之间因运算符优先级不确定而带来的二义性。例如本题的选项A),若程序中使用POWER(a+b),会展开为a+b*a+b,这样就会先计算b*a的值,然后再加一个a和一个b,产生二义性。杜绝这种二义性的方法是在宏定义的每个参数外加上圆括号以保证总是先计算每个参数的值,就好像本题的选项D)那样。另一个是,整个宏所代表的表达式因运算符优先级不确定而带来的二义性。例如本题的选项D),若程序中使用a/POWER(b),会展开为a/(b)*(b),这样就会先计算a/b的值,然后再乘以b,产生二义性。杜绝这种二义性的方法是对整个宏定义加一个圆括号,就好像本题的选项B)那样。故选项B)在任何情况下都不会引起二义性,应该选B。

  • 第6题:

    #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) f(x)


    正确答案:C
    本题考查带参数宏的格式:#define标识符(形参表)形参表达式。其功能是:把预处理程序中出现的所有带实参的宏名,展开形成由实参组成的表达式。故C正确。

  • 第7题:

    已知下面的程序段,正确的判断是______ #define A3 #define B(A) ((A+1)*a) X=3*(A+B(7)); X=3*(A+B(7);

    A.程序错误,不允许嵌套定义

    B.X=93

    C.X=81

    D.程序错误,宏定义不允许有参数


    正确答案:C
    解析:本题的宏定义是合法的,宏定义展开为3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

  • 第8题:

    以下在任何情况下计算平方数时都不会引起二义性的宏定义是()。

    • A、#define POWER(x)  x*x
    • B、#define POWER(x)  (x)*(x)
    • C、#define POWER(x)  ((x)*(x))
    • D、#define POWER(x)  (x*x)

    正确答案:C

  • 第9题:

    若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。 w=2,x=3,y=4,z=5; m=(w<x)w:x; m=(m<z)m:z; m=(m<y)m:y;

    • A、2
    • B、3
    • C、5
    • D、4

    正确答案:A

  • 第10题:

    若有语句#define f(x,y) x+y及int a=2,b=3;,则执行printf(“%d”,f(a,b)*f(a,b))后输出的值为()

    • A、36
    • B、25
    • C、11
    • D、13

    正确答案:C

  • 第11题:

    填空题
    若已有如下宏定义: #define MIN(x,y)  (x)>(y)?(x):(y) 以及定义:int a=1,b=3,c;,则执行语句c=MIN(a=b,b-a);以后,变量c的值是()

    正确答案: 3
    解析: 暂无解析

  • 第12题:

    单选题
    以下在任何情况下计算平方数时都不会引起二义性的宏定义是()。
    A

    #define POWER(x)  x*x

    B

    #define POWER(x)  (x)*(x)

    C

    #define POWER(x)  ((x)*(x))

    D

    #define POWER(x)  (x*x)


    正确答案: B
    解析: 暂无解析

  • 第13题:

    #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)


    正确答案:C
    解析: 带参数宏的格式为:#define标识符(形参表)形参表达式。其功能:预处理程序将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

  • 第14题:

    有以下程序:includedefine N 5define M N+1define f(x)(x*M)main(){int i1,i2;i1=f

    有以下程序: #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",i1,i2); } 程序的运行结果是( )。

    A.12 12

    B.11 7

    C.11 11

    D.12 7


    正确答案:B
    解析:根据define的定义,可得f(2)=2*5+1=11,f(1+1)=1+1*5+17。

  • 第15题:

    下面宏定义正确的是( )

    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);


    正确答案:C

  • 第16题:

    #define能做简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为( )。A.

    B.

    C.

    D.

    A.A

    B.B

    C.C

    D.D


    正确答案:C
    本题考查带参数宏的格式:#define标识符(形参表)形参表达武。其功能是:把预处理程序中出现的所有带实参的宏名,展开形成由实参组成的表达式。故C正确。

  • 第17题:

    若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2以下程序段的输出结果是______。 int a;a=Y; printf("%d\n",Z); printf("%d\n",--a);

    A.7 6

    B.12 6

    C.12 5

    D.7 5


    正确答案:D
    解析:根据宏定义知:X=5,Y=X+1=6,Z=Y*X/2=X+1*X/2=7,a=Y=6,--a=5。

  • 第18题:

    设有宏定义:define MY(x,y) x*y,则宏调用MY(2+3,5)的结果为25。 ()

    此题为判断题(对,错)。


    正确答案:错误

  • 第19题:

    已知关于x的方程3x一2m=4的解是x=m,则m的值是________.


    答案:
    解析:

  • 第20题:

    若已有如下宏定义: #define MIN(x,y)  (x)>(y)?(x):(y) 以及定义:int a=1,b=3,c;,则执行语句c=MIN(a=b,b-a);以后,变量c的值是()


    正确答案:3

  • 第21题:

    有宏定义#define M(x)x*x;则a=M(2+3)的值是()

    • A、2
    • B、3
    • C、11
    • D、25

    正确答案:C

  • 第22题:

    单选题
    有宏定义#define M(x)x*x;则a=M(2+3)的值是()
    A

    2

    B

    3

    C

    11

    D

    25


    正确答案: D
    解析: 暂无解析

  • 第23题:

    单选题
    有宏定义#define M(x)x*x*2;则a=M(2+3)的值()
    A

    2

    B

    3

    C

    11

    D

    14


    正确答案: B
    解析: 暂无解析