更多“下面程序的运行结果是【17】。 #defineN10 #defines(x)x*x #definef(x)(x*x) main() {inti ”相关问题
  • 第1题:

    有以下程序includedefine PT3.5;define S(x)PT*x*x;main(){inta=1,b2;printf("%4.1f

    有以下程序 #include<stdio.h> #define PT3.5; #define S(x)PT*x*x; main() { inta=1,b2; printf("%4.1f\n",S(a+b); } 程序运行后的输出结果是______。

    A.14.0

    B.31.5

    C.7.5

    D.程序有错无输出结果


    正确答案:D
    解析:本题考查的是宏定义。带参数的宏定义是按#define命令行中指定的字符串从左到右进行转换,其定义的—般形式为:#define宏名(参数表)字符串,因此在程序中宏定义后面不能有分号“;”,所以程序运行出错,没有输出结果, 因此,选项D是正确的。

  • 第2题:

    下面程序的输出结果是 ( ) main( ) { int i,x=023; printf("%d\n",- -x); }

    A.17

    B.18

    C.23

    D.24


    正确答案:B

  • 第3题:

    下面程序的运行结果是_____和_____。 include define N 10 define s(x) x * x define

    下面程序的运行结果是_____和_____。

    include<iostream.h>

    define N 10

    define s(x) x * x

    define f(x) (x * x)

    void main( )

    { int i1,i2;

    i1=1000/s(N) ;i2=1000/f(N) ;

    cout < < i1 < < " " < < i2;

    }


    正确答案:1000;10
    1000;10 解析:对于define宏定义语句,系统会在编译前进行替换。本题替换过程如下:
    i1=1000/s(N)
    i1=1000/s(10)
    i1=1000/10 * 10
    i1=1000
    i2=1000/f(N)
    i2=1000/f(10)
    i2=1000/(10 * 10)
    i2=10

  • 第4题:

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

  • 第5题:

    以下程序运行后,输出结果是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。注意:带参数的宏定义。