更多“.#define DOUBLE(x) x+x ,i = 5*D”相关问题
  • 第1题:

    以下函数定义的类型符是( )。 fff(double x) { printf("%f",x+x); }

    A.与x类型相同

    B.void类型

    C.int类型

    D.无法确定


    正确答案:C
    解析:在函数定义时,由于函数没有说明其类型,所以系统默认一律自动按整型处理。

  • 第2题:

    下面程序的输出结果是( )。 #define WW(X) X*X main() { int a,i; i=3; a=++WW(i+1); printf("%d\n",a); }

    A.5

    B.6

    C.9

    D.程序有错误


    正确答案:C
    解析:表达式“a++WW(i+1);”,宏展开之后为a=++i+1*i+1,先计算++i,结果为4,i的值也变为4,所以a=4+1*4+1=9。所以正确答案是选项C。

  • 第3题:

    下列程序的运行结果是______。

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

    main ()

    { int i=1;

    printf("%d,%d",POWER(i++),i);

    }


    正确答案:11
    1,1 解析:POWER(i++)中先引用i的值1,再将i的值加1,POWER(i++)=1*1=1。

  • 第4题:

    有以下程序: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。

  • 第5题:

    有以下程序#include <stdio.h>#define P 24;#define S(x) P*x+x;main(){ int a=2, b=2; printf("%d\n",S(a+b));}程序的运行结果是A.程序编译运行时报错,无法输出 B.54 C.96 D.100


    正确答案:A
    本题主要考查宏的定义。宏定义用一个标识符来表示一个字符串,这个字符串可以是常量、变量或表达式。在宏调用中将用该字符串代换宏名。宏定义中,我们主要需要注意以下几点:
    (1)同一宏名不能重复定义,除非这两个宏定义命令行完全一致。
    (2)定义宏时,记得其结尾处不要用分号隔开。
    (3)替换带参数的宏名时,一对圆括号必不可少,圆括号中实参个数应该与形参个数相同,若有多个参数,它们之间用逗号隔开。
    (4)宏定义中的字符串应加括号,字符串中出现的形式参数两边也应加括号。
    在本题中,定义宏时,出现了一个明显的错误,即在宏的定义后面用分号表示结束,这显然是不对的。程序编译时,系统会报错,无法完成输出。因此,本题的正确答案是A。

  • 第6题:

    有以下程序:include define f(x) x*xmain(){int i; i=f(4+4)/f(2+2); priatf("%d\n",

    有以下程序: #include <stdio.h> #define f(x) x*x main() { int i; i=f(4+4)/f(2+2); priatf("%d\n",i); } 执行后的输出结果是( )。

    A.28

    B.22

    C.16

    D.4


    正确答案:A
    解析:程序中的带参宏定义,替换展开后为i=4+4*4+4/2+2*2+2=4+16+2+4+2=28。

  • 第7题:

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

    下列程序的运行结果是( )。

    #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+1+2*3=10。

  • 第8题:

    #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正确。

  • 第9题:

    下列程序中的for 循环执行的次当次数是______。 #define N 2 #define M N+i #define NUM 2*M+l #main ( ) { int i; for (i=1;i<=NUM;i++) printf ("%d\n", i); }

    A.5

    B.6

    C.7

    D.8


    正确答案:B

  • 第10题:

    设i,j为类X定义的double型变量名,下列X类的构造方法中不正确的是

    A.X(double k){ i=k; }

    B.X( ){ i=6;}

    C.X(double m,double n){ i=m;j=n;}

    D.double X(double k){ i=k;return i;}


    正确答案:D
    解析:构造方法是给对象赋初值,所以没有返回值。

  • 第11题:

    试题24

    有以下程序

    #include <stdio.h>

    double f(double x);

    main()

    { double a=0; int i;

    for(i=0;i<30;i+=10) a+=f((double)i);

    printf(“%5.0f\n”, a);

    }

    double f(double x)

    { return x*x+1;}

    程序运行后的输出结果是()

    A.503

    B.401

    C.500

    D.1404


    正确答案:A
    试题24分析
    a=0,i=0,调用函数f,x*x+1=1;a=1,i=10,x*x+1=101,a=102;i=20,x*x+1=401,a=102+401=503,a=30,不满足条件,退出循环。
    试题24答案
    A

  • 第12题:

    问答题
    .#define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i是多少?

    正确答案: i为30。
    解析: 暂无解析

  • 第13题:

    下列程序中的for循环执行的次数是______。 #define N 2 #define M N+1 #define NUM 2*M+1 #main ( ) { int i; for (i=1;i<=NUM;i++) printf ("%d\n", i); }

    A.5

    B.6

    C.7

    D.8


    正确答案:B

  • 第14题:

    下面程序和运行运行结果是【 】。

    define N 10

    define s (x) x * x

    define f(x) (x * x)

    main( )

    { iht i1,i2;

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

    printf("%d %d\n",i1,i2);

    }


    正确答案:1000 10
    1000 10 解析:1000/s(N)<==>1000/10*10=1000,1000/f(N)<==>1000/(10*10)=10。

  • 第15题:

    #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标识符(形参衰) 形参表达式。其功能是:预处理程序将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

  • 第16题:

    下列程序的执行结果为【 】。include class Point{public:Point(double i, double j)

    下列程序的执行结果为【 】。

    include <iostream. h>

    class Point

    {

    public:

    Point(double i, double j) { x=i; y=j;}

    double Area() const { return 0.0;}

    private:

    double x, y;

    };

    class Rectangle: public Point

    {

    public:

    Rectangle(double i, double j, double k, double 1)

    double Area() const {return w * h;}

    private:

    double w, h;

    };

    Rectangle: :Rectangle(double i, double j, double k. double 1): Point(i,j).

    {

    w=k, h=1

    }

    void fun(Point &s)

    {

    cout<<s. Area()<<end1;

    }

    void main( )

    {

    Rectangle rec(3.0, 5.2, 15.0. 25.0);

    fun(rec)

    }


    正确答案:×
    0 解析:注意本题不同于基类的指针指向派生类对象。Fun函数的形参是Point基类的引用。在可以用基类对象的地方,均可以用派生类替代,完成基类的行为。反之,在使用派生类对象的地方却不能用基类对象代替,这是因为派生类中的某些行为在基类对象中是不存在的。本题调用的是Point类对象的面积函数,其值永远为0。

  • 第17题:

    以下函数的功能是:求x的y次方,请填空。double fun(double x,int y){ int i; double z; for(i=1,z=x;i<y;i++) z=z*; return z;}


    正确答案:x
    本题中函数的功能是累积变量以求得变量的y次方,所以本题答案为x。

  • 第18题:

    有以下程序: #include<stdio.h> double f(double x); main( ) {double a=0; int i; for(i=0;i<30;i+=10)a+=f((double)i); printf("%5.of\n",a); } double f(double x) { return x*x+1; } 程序运行后的输出结果是( )。

    A.503

    B.401

    C.500

    D.1404


    正确答案:A
    此题是一个简单的函数调用,当i=0并且i<30,执行i+=10,并且调用函数f,所以当i=0时,结果为1,当i=10时,结果为101,当i=20时,结果为401,所以a=1+101+401=503。

  • 第19题:

    有以下程序

    #include<stdio.h>

    double f(double x);

    main()

    { double a=0;int i;

    for(i=0;i<30;i+=10) a+=f((double)i);

    printf("%5.0f\n",a);

    }

    double f(double x)

    {return x*x*i;}

    程序运行后的输出结果是

    A.503

    B.401

    C.500

    D.1404


    正确答案:A
    解析:考察函数的基础知识,当i分别为0、10、20时a分别为1,102,503,所以结果为503,选项A正确。

  • 第20题:

    下列程序的运行结果是( )。 #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
    本题考查带参数的宏的定义:“#defineADD(x)x+x”中X代表m+n,故s写成s=m+n+m+n*k=1+2+1+2*3=10。

  • 第21题:

    有以下程序

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

  • 第22题:

    下面程序的运行结果是_____和_____。 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

  • 第23题:

    阅读下面的C语言程序,请给出正确的输出结果( )。#include#define N 10#define s(x)x*x#define f(x)(x*x)#define g(x)((x)*(x))main( ){int i1,i2,i3,i4;i1=1000/s(N);i2=1000/f(N);i3=f(N+1);i4=g(N+1);printf(“i1=%d,i2=%d,i3=%d,i4=%d\n”,i1,i2,i3,i4);}

    A.i1=1000,i2=10,i3=21,i4=121
    B.i1=10,i2=10,i3=121,i4=121
    C.i1=1000,i2=1000,i3=21,i4=21
    D.i1=10,i2二1000,i3=121,i4=21

    答案:A
    解析:
    本题考查宏概念,以及宏替换相关的基础知识。表达式1000/s(N)宏替换后为:1000/10*10,因此结果为1000,而不是期待的10。表达式1000/f(N)宏替换后为:1000/(10*10),因此结果为10,是期待的结果。表达式f(N+1)宏替换后为:(10+1*10+1),因此结果为21,而不是期待的121。表达式g(N+1)宏替换后为:((10+1)*(10+1)),结果为121,是期待的结果。因此,题中程序运行结果为“i1=1000,i2=10,i3=21,i4=121”。