函数和编译预处理.doc

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数和编译预处理

函数和编译预处理(第五章)

一、单项选择题

1.关于函数,以下正确的描述是(B)

A,函数的定义可以嵌套,但函数的调用不可以嵌套

B,函数的定义不可以嵌套,但函数的调用可以嵌套

C,函数的定义可以嵌套,函数的调用也可以嵌套

D,函数的定义和函数的调用都不M以嵌套

2.关键字inline用于定义内联函数,定义时,是将该关键字(D )

A.取代定义函数的类型标识符

B.取代被定义的函数名

C.加在类型标识符之后

D.加在类型标识符之前

3.以下不正确的描述为(B )

A.在函数之外定义的变量称为外部变量,外部变量是全局变量。

B.在函数之内说明的外部变量是局部变量,仅在本函数中有效。

C.在函数之外说明的静态变量也是全局变量,其作用域是文件作用域。

D.文件作用的域范围是一个程序文件,但必须符合“定义在前,使用在后”的规则。

4.以下正确的描述为(C )

A,每个C++程序必须在开头用预处理命令^include

B,预处理命令必须位于C++源程序的首部

C.在C++中,预处理命令都以#开头

D.C++语言的预处理命令只能实现宏定义和条件编译的功能

5.在下面的函数原型说明中,存在着语法错误的是(D )

A.void BC(int a, int) ;

B. void BD(int , int);

C. void BE(int , int=5) ;

D. int BF(int x ; int y);

6.下列哪个不是重载函数在调用时选择的依据(C )

A.形参类型

B.形参个数

C.函数返回值类型

D.函数名

7.在一个源程序文件中有以下函数定义,其中(D )是重载函数。

A.ABC

B. BCD

C. ACD

D.全部

A) int sum (float x, int y) B) float sum (float x, int y, char z) (. . . )

C) float sum (float x, float y) D) int sum(int x, int y, char z) (. . . )

8.有一个函数原型abc(float x, float y);该函数的返回值类型为(C )

A.void

B. double

C. int

D. float

9.在程序中,函数声明语句正确位置是(D )

A.随便任何位置

B.不包含在另一函数中的任何位置。

C.该函数使用前的任何位置

D.该函数使用前的任何位置,但不包含在另-一函数中

10.C++构造内联函数的思想是(A )

A.用空间换时间

B.用时间换空间

C.用形参换实参

D.用实参换形参

11.在以下存储类型中,(D)是用于定义动态类型的变量。

A. static 和auto

B. register 和extern

C. register 和static

D. auto 和register

12.下列各类变量,哪个不是局部变量(B )

A. register型变量

B.外部static变量

C. auto型变量

D.函数形参

13.以下关于调用函数时,形、实参结合的通用规则不正确的描述为(B )

A.实参可以是变量,也可以是常数或者表达式。

B.实参的个数可以多于形参,也可以少于形参。

C.系统将为形参分配内存单元。

D.实参必须与对应的形参类型相兼容。

M.假设有宏定义:

^define NUM 15

^define DNUM NUM+NUM

则表达式DNUM/2+NUM*2的值为(C )

A. 45

B. 67

C. 52

D. 90

15.对于一个功能不太复杂,并且要求加快执行速度,选用(A )合适。

A.内联函数

B.重载函数

C.递归调用

D.嵌套调用

16.若有以下函数调用语句:

fun ((a+b, (x, y)), fun (n+k, d), (a, b));

其中实参的个数是(A )

A. 3

B. 4

C. 5

D. 6

17.以下叙述下不正确的是(D )

A.在函数中,通过return返[^函数值。

B.函数中可以有多条return语句。

C.主函数main ()也可以带有形参。

D.调用函数,必须在一条独立的语句中完成。

18.设有函数定义:int fl (void) (return 100,200;},调用函数fl ()时,(C )

A.函数返回值为100

B.函数返回二个值100和200

C.函数返回值为200

D.语句"return 100,200;”语法错,不能调用函数

19.调用宏定义和语句:

ftdefine M(a, b) a*b; //E

int x=M(3+4, 5+6), y; //F

y=M(3, 4); //G

则(B )

A.编译时,E行有语法错

B.编译时,F行有语法错

C.编译时,G行有语法错

D.编译时,F行和G行有语法错

20.在一个源文件中定义的全局变量的作用域为(D )

A.本文件的全部范围

B.本程序的全部范围

C.本函数的全部范围D,从定义该变量的位置开始至本文件的结束

21.对于下面几个函数,(C )是重载函数。

void f(int x) ( ... ) //I

int f(int y) {.・. ) //2

int f (int i , int j ) ( ... } //3

float k(int x ) ( ... } //4A. 4 个全部 B. 1 和 4 C. 2 和 3 D. 3和4

22.编译系统根据同一个程序中(A )识别重载函数。

A.形、实参的个数和类型的差别

相关文档
最新文档