更多“已知下面的程序段,正确的判断是______。#define A3#define B(A) ((A+1)*a)int a=3;……X=3*(A+B(7)) ”相关问题
  • 第1题:

    阅读下面的程序段: publiC class Sun { public static void main (String args[ ]) { int a=0; for(int i=1;i<=3;i++) { for(int j=1;j<=i;j++) { for(int k=j;k<=3;k++) { a=a+1; } } } System.out.println(A) ; } } 执行上面的3重循环后,a的值为( )。

    A.3

    B.9

    C.14

    D.21


    正确答案:C
    解析:本题考查对for循环嵌套的理解。本题应用3重嵌套循环,循环嵌套的执行,当外层循环执行1次,内层循环就要执行所有循环。i=1时,j=1,k执行3次循环得到a的值3;i=2,j=1时,k执行3次循环得到a的值加3并覆盖原值,j=2时,k执行两次循环,a的值加2;依次,i=3时,j执行3次。其中,分别执行3、2、1次,a的值分别加3、2、1,最后得到a的值14。故本题答案是C。

  • 第2题:

    以下程序运行后,输出结果是 #define PT 5.5 #define S(x)PT* x * x main() {int a=1,b=2; printf("%4.lf\n",S(a+b); }

    A.49.5

    B.9.5

    C.22

    D.45


    正确答案:B
    解析:本题考察宏定义的使用,宏在使用是如同函数一样,但却是在编译时展开,而函数却是在运行时进行计算的。

  • 第3题:

    已知下面的程序段,正确的判断是 ______。#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.程序错误,宏定义不允许有参数


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

  • 第4题:

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

  • 第5题:

    以下程序的输出结果是______。 #define M(x,y,z) x*y+z main() { int a=1,b=2,c=3 printf("%d%d\n",M(a+b,b+c,c+a)); }

    A.19

    B.17

    C.15

    D.12


    正确答案:D
    解析:C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:#define宏名(形参表)字符串本题的M(a+b,b+c,c+a)被字符串a+b*b+c+c+a代替。

  • 第6题:

    以下程序运行后,输出结果是______。 define P4.5 define S(x)P*x*x include main() {

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

    A.49.5

    B.112.5

    C.18

    D.24


    正确答案:C

  • 第7题:

    执行下列程序的结果是( )。 #define N 5 #define H(x) ((N+2)*x) main() { int a=2,b=3,C; c=H(a+b); printf("%d",c); }

    A.15

    B.17

    C.23

    D.35


    正确答案:B
    解析:用a+b替代宏H(x)中的参数x,用5替代N,则((N+2)*x)=((5+2)*a=b)=((5+2)*2+3)=17。

  • 第8题:

    以下程序运行后,输出结果是() include define PT5.5 define S (x)PT* x * x

    以下程序运行后,输出结果是 ( ) # include<stdio.h> # define PT5.5 # define 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

  • 第9题:

    有以下程序: #includedstdi0.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
    本题考查带参数的宏定义。第一次函数调用求S的值,x=a+1,所以X*X*X应写成a+1*a+1*a+1,没有括号优先级,结果为l0,第二次函数调用x*X*X可写成(a+1)*(a+1)*(a+1),所以结果为43=64。

  • 第10题:

    有以下程序:include define P 3void F(int x) {return(P* x* x); tmain( ){printf("

    有以下程序:#include <stdio.h>#define P 3void F(int x) { return(P* x* x); tmain( ){ printf(" % d \n" ,F(3 + 5) ); }程序运行后的输出结果是( )。

    A.192

    B.29

    C.25

    D.编译出错


    正确答案:D
    解析:return语句用于从被调函数带回一个函数值。void关键字表示“无类型”,即不需要从被调函数中带回函数值,所以不需要return语句,故编译时出错。

  • 第11题:

    已知下面的程序段,正确的判断是______ #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。

  • 第12题:

    单选题
    下面程序的运行结果是()。 #define DOUBLE(r)   r*r  main( )  {   int a=1,b=2,temp;      temp=DOUBLE(a+b);      printf(“%d/n”,temp);  }
    A

    3

    B

    5

    C

    7

    D

    9


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

  • 第13题:

    以下程序运行后,输出结果是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

  • 第14题:

    以下程序的输出结果是【18】 。

    #define MAX(x,y)(x)>(y)?(x):(y)

    main()

    { int a=5,b=2,c=3,d=3,t;

    t=MAX(a+b,c+d)*10;

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

    }


    正确答案:
    7

  • 第15题:

    下列程序的运行结果为( )。 #define MAX(x,y)(x)>(y)?(x):(y) main() { int a=2,b=3,c=1,d=3,t; printf("%d\n",(MAX(a+b,c+d))*100); }

    A.500

    B.5

    C.4

    D.400


    正确答案:A
    解析:本题考查带参数的宏的定义及相关运算;(x)>(y)?(x):(y)是x>y时输出x,否则输出y,调用(MAX(a+b,c+d))*100时,(a+1)=5)>(c+d=4),所以输出a+b=5,所以x=5*100。

  • 第16题:

    已知下面的程序段,正确的判断是______。 #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.程序错误,宏定义不允许有参数


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

  • 第17题:

    若有如下程序: sub(int a,int b,int c) { c=a+b; return(c);} main() {int x=3,y=4,z=6; sub(x,y,z); printf('%d”,z); } 则程序运行后的输出结果是( )。

    A.3

    B.6

    C.7

    D.4


    正确答案:B
    解析:本题定义了——个子函数sub(),因为sub()的形参为int型变量,而不是指针,即为传值调用,所以sub()函数不会改变实参x、y、z的值,故最后输出结果为6,应该选择B。

  • 第18题:

    有如下程序 int func(int a,int b) { return(a+b); } main() { int x=3,y=6,z=7,r; r=func(func(x,y),z); printf("%\d\n",r); }该程序的输出的结果是______。

    A.14

    B.15

    C.16

    D.17


    正确答案:C

  • 第19题:

    有以下程序

    #include<stdio.h>

    #define f(X)X*X*X

    main( )

    {int a=3,s,t;

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

    printf(“%d,%d\n”,s,t);

    }

    程序运行后的输出结果是

    A.10,64

    B.10,10

    C.64,10

    D.64,64


    正确答案:A
    解析:s=f(a+1)=a+1*a+1*a+1=10;s=f((a+1))=(a+1)*(a+1)*(a+1)=64。

  • 第20题:

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

    A.49.5

    B.9.5

    C.22

    D.45


    正确答案:B

  • 第21题:

    若有宏定义如下: #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。

  • 第22题:

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

    以下程序运行后,输出结果是 #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


    正确答案:A
    解析:宏替换用“#define宏名宏体”的形式来定义。在进行编译预处理时,将把程序中宏定义之后的所有宏名用宏体替换。宏虽然可以带参数,但宏替换过程中不像函数那样要进行参数值的计算、传递及结果返回等操作;宏替换只是简单的字符替换,不进行计算。因而本题中的S(a+b)进行宏替换后为PT*1+2*1+2=5.5*1+2*1+2=9.5。注意:带参数的宏定义。

  • 第23题:

    下面程序的运行结果是()。 #define DOUBLE(r)   r*r  main( )  {   int a=1,b=2,temp;      temp=DOUBLE(a+b);      printf(“%d/n”,temp);  } 

    • A、3
    • B、5
    • C、7
    • D、9

    正确答案:B

  • 第24题:

    单选题
    有以下程序:#include#define f(x) x*x*xmain(){ int a=3,s,t; s=f(a+1);  t=f((a+1)); printf(%d,%d,s,t);}程序运行后的输出结果是(  )。
    A

    10,64

    B

    10,10

    C

    64,10

    D

    64,64


    正确答案: D
    解析:
    C语言中带参数的宏可以理解为用参数直接替换定义式中的变量,而不经过任何修改。所以s=f(a+1)=a+1*a+1*a+1=3+3+3+1=10,t=f((a+1))=(a+1)*(a+1)*(a+1)=4×4×4=64,所以有无括号的运算结果是不同的。答案选择A选项。