更多“单选题以下选项中的编译预处理命令行,正确的是(  )。A #define PI 3.14B ##define eps 0.001C #DEFINE TRUED #define int INT”相关问题
  • 第1题:

    下列程序的输出结果是()。 include define F(x)2.84+x define w(y)printf("%d",(int)

    下列程序的输出结果是( )。

    #include<stdio.h>

    #define F(x)2.84+x

    #define w(y)printf("%d",(int)(y))

    #define P(y)w(y)putchar('\n')

    main()

    { int x=2;

    P(F(5) *x);

    }

    A.12

    B.13

    C.14

    D.16


    正确答案:A
    解析:本题考查带参数的宏的定义及相关运算。P(P(5)*x)=P(2.84+5*2)=P(12.84),调用w(12.84),输出 (int)(12.84)=12。

  • 第2题:

    程序中头文件type1.h的内容是( )。 #define N 5 #define M1 N*3 程序如下: #define "type1.h" #define M2 N*2 main() { int i; i=M1+M2; printf("%d\n",i); } 程序编译后运行的输出结果是( )。

    A.10

    B.20

    C.25

    D.30


    正确答案:C
    解析:i=M1+M2=N*3+N*2=5*3+5*2=25。

  • 第3题:

    执行以下程序的输出结果是( )。 includedefine M 5define N M+M main(){int k; k=N*N*5;

    执行以下程序的输出结果是( )。

    include<stdio.h>

    define M 5

    define N M+M

    main()

    { int k;

    k=N*N*5;printf(”%d\n" ,k);

    }


    正确答案:55
    55 解析:本题考查的重点是对宏定义的理解。#define指令定义一个标识符和一个串,编译程序在对C源程序处理时.发现该标识符都用该串替换,因此,在语句k=N*N*5将替换成k=M+M*M+M*5后,M被替换成5,从而k=5+5*5+5*5=55。

  • 第4题:

    下面程序的输出是()。define N 3define M(n) ((N+1)*n)include void main(){int

    下面程序的输出是( )。#define N 3#define M(n) ((N+1)*n)#include <iostrearn.h>void main(){ int z=2*(N+M(5+1)); cout<<z<<end1;}

    A.42

    B.48

    C.54

    D.编译报错


    正确答案:B

  • 第5题:

    下面程序的输出结果是( )。 #define PI 3.1415 #define ARE(X) PI*x*x main() { int r=2; printf("%.2f",ARE(r+1)); }

    A.28.26

    B.28.26

    C.9.28

    D.9.28


    正确答案:C
    解析:带参数的宏展开是在编译时进行的,是一种纯粹文字性的替换过程。本题定义了一个带参数宏#defineARE(x)PI*x*x,在printf()函数中使用了这个宏,展开过程为:ARE(r+1)=>PI*r+1*r+1=>3.1415*r+1*r+1,其结果为3.1415*2+1*2+1=6.283+2+1=9.283,由于输出格式限定为两位小数,故输出结果为9.28,应该选择C。

  • 第6题:

    下面宏定义正确的是( )

    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

  • 第7题:

    下列定义中,不正确的有______。

    A.#define PI 3.141592

    B.#define S 345;

    C.int max(x,y);

    D.static char c; int x,y; { ...... }


    正确答案:C

  • 第8题:

    以下选项中的编译预处理命令行,正确的是( )。

    A.deftne E 2.38

    B.define PI_21.56

    C.define int INT

    D.DEFINE TRUE


    正确答案:A
    无参宏定义格式:#define标识符字符串,标识符与C语言规定相同,因此,可知选项8,多了}},选项C使用C语言的关键字,选项D格式不对。因此答案为A选项。

  • 第9题:

    程序中头文件typel.h的内容是 #define N 5 #define M1 N*3 #define "typel .h" #define M2 N*2 main ( ) { int i; i=M1+M2; printf ("%d\n", i ); } 程序编译后运行的输出结果是

    A.10

    B.20

    C.25

    D.30


    正确答案:C
    解析:本题考查的知识点是“文件包含”。编译预处理时,用“typel.h”中的内容替代命令ginclude”typel.h"。表达式“i=M1+M2”经过宏替换为“i=5*3+5*2”即i=25,所以最后输出的i的值为25。所以4个选项中C正确。

  • 第10题:

    ( 25 )下列选项中,能正确定义数组的语句是

    A ) int num[0..2008] ;

    B ) int num[] ;

    C ) int N=2008 ;

    int num[N] ;

    D ) #define N 2008

    int num[N] ;


    正确答案:D

  • 第11题:

    若要求定义具有10个int形元素的一维数组a,则以下的定义语句中错误的是()

    • A、#define N 10
    • B、#define n 5
    • C、int a[5+5];
    • D、int n=10,a[n];

    正确答案:D

  • 第12题:

    单选题
    下面关于编译预处理的命令行,正确的是(  )。
    A

    #define PAI 3.14

    B

    #Define Eps 0.00001

    C

    ##DEFINE FALSE 0

    D

    #define int INT


    正确答案: B
    解析:
    宏定义用法一般表达式为:
    #define 宏名 替换文本
    A项满足宏定义用法;C语言中是区分大小写的,define属于C语言的关键字,不可以大写,B、C项错误;D项中,int是代表整数类型,不满足define用法,D项错误。答案选择A选项。

  • 第13题:

    以下能正确定义一维数组的选项是 ______。

    A.int num[];

    B.#define N 100 int num[N];

    C.int num[0..100];

    D.int N=100; int num[N];


    正确答案:B
    解析:C语言不允许对数组进行动态定义,选项D错误;选项A没有指定数组元素的个数;选项C中定义格式错误;正确答案为选项B,其中N是符号常量。

  • 第14题:

    以下程序的输出结果是______。 include define FUDGE(y)2.84+y define PR(a) printf(

    以下程序的输出结果是______。 #include<stdio.h> #define FUDGE(y) 2.84+y #define PR(a) printf("%d",(int)(a)) #define PRINT1(a) PR(a);putchar('\n') main() { int x=2; PRINT1(FUDGE(5)*x); }

    A.11

    B.12

    C.13

    D.15


    正确答案:B
    解析:在程序中如果有带实参的宏,则按#define命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。

  • 第15题:

    有如下程序includedefine N2define M N+1define NUM 2*M+1void main( ){int i;f

    有如下程序 #include<iostream.h> #define N2 #define M N+1 #define NUM 2*M+1 void main( ) { int i; for(i=1,i<= NUM;i++) cout<<i;} 该程序中的for循环执行的次数是

    A.5

    B.6

    C.7

    D.8


    正确答案:B
    解析:这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原样替换,得到NUM的形式为2*N+1+1(千万不要随意把给N+1加上小括号,使NUM变为2* (N+1)+1,这就是宏名和变量名之间的区别)。

  • 第16题:

    以下程序的输出结果是______。 include define FUDGE(y)2.84+y define PR(a)printf("

    以下程序的输出结果是______。 #include<stdio.h> #define FUDGE(y) 2.84+y #define PR(a) printf("%d",(int)(a)) #define PRINT() PR(s) ;putchar('\n') main() { intx=2; PRINT1 (FUDGE(5)*x); }

    A.11

    B.12

    C.13

    D.15


    正确答案:B
    解析:在程序中如果有带实参的宏,则按#define命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。

  • 第17题:

    以下程序的输出结果是______。include define FUDGE(y)2.84+ydefine PR(a) printf (

    以下程序的输出结果是______。#include <stdio. h>#define FUDGE(y) 2.84+y#define PR(a) printf ("%d",(int)(a))#define PRINT1(a) PR(a); putchar('\n')main(){ int x=2; PRINT1(FUDGE(5)*x);}

    A.11

    B.12

    C.13

    D.15


    正确答案:B
    解析:在程序中如果有带实参的宏,则按#define命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。

  • 第18题:

    下列中 a的值是_________

    #define AAA 200

    #define BBB AAA+100

    int a= BBB*2


    正确答案:
     

  • 第19题:

    下面程序的输出结果是( ) #define PI 3.1415 #define ARE(x) PI*x*x main () {int r=2; printf("%f",ARE(r+1)); }

    A.28.26

    B.28.26

    C.9.28

    D.9.28


    正确答案:D

  • 第20题:

    下列定义不正确的有______。

    A.#define PI 3.141592

    B.#define S 345;

    C.int max(x, y); int x,y; {}

    D.int max(int,int);


    正确答案:C
    解析:定义函数时,函数头后不能加分号。

  • 第21题:

    有以下程序:include using namespace std;define PI 3.14class Point{ private:int

    有以下程序: #include <iostream> using namespace std; #define PI 3.14 class Point { private: int x,y; public: Point(int a,int b) { x=a; y=b; } int getx() { return x; }

    A.314

    B.157

    C.78.5

    D.153.86


    正确答案:A
    解析:本题考核派生类的定义和应用。本程序设计了一个点类Point,包含了横、纵两个坐标数据x和y,由它派生出了圆类Circle,并加入了新的数据成员,即一个半径r和一个求圆面积的函数成员area。在主函数main中,首先定义了一个圆Circle类的对象c1,并通过它的构造函数初始化其数据成员。由此可知,其半径r的值为10,所以其面积为PI*10'10=314,即对象c1的函数成员area的返回值为314。

  • 第22题:

    下列定义不正确的是().

    • A、#define PI 3.141592
    • B、#define S345
    • C、int max(x,y);  int x,y; {  }
    • D、static char c;

    正确答案:C

  • 第23题:

    单选题
    有以下程序:#include #define F(x) 2.84+x#define PR(a) printf(%d,(int)(a))#define PRINT(a) PR(a);putchar('')main(){ PRINT(F(5)*2);}程序运行后的输出结果是(  )。
    A

    12

    B

    13

    C

    15

    D

    11


    正确答案: A
    解析:
    直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。将PRINT(F(5)*2)用PR(F(5)*2); putchar('')替换,将PR(F(5)*2)用printf(“%d”, (int)(F(5)*2))替换,再将F(5)用2.84+5替换,最后替换结果为printf(“%d”, (int)(2.84+5*2)); putchar(''),运行结果为:12<回车>。答案选择A选项。

  • 第24题:

    单选题
    以下选项中的编译预处理命令行,正确的是(  )。
    A

    #define PI 3.14

    B

    ##define eps 0.001

    C

    #DEFINE TRUE

    D

    #define int INT


    正确答案: C
    解析:
    A项正确。不带参数的宏定义是用一个指定的标识符来代表一个字符串,其一般形式如下:#define宏名替换文本。需要注意:①在#define、宏名和替换文本之间用空格隔开;②在C程序中,宏定义的定义位置一般写在程序的开头;③宏名一般用大写字母表示,便于与变量名区别;④宏定义是用宏名来表示一个字符串,在宏展开时以该字符串取代宏名,这只是一种简单的代换,预处理程序对它不做任何检查;⑤宏定义不是语句,在行末不加分号,如加上分号则连分号也一起替换。B项define前多了一个#。C项缺少“替换文本”。D项不能将一个自定义标识符宏定义为关键字。答案选择A选项。