函数和编译预处理

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

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

一、单项选择题

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

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

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

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

D. 函数的定义和函数的调用都不可以嵌套

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. 实参必须与对应的形参类型相兼容。

14.假设有宏定义:

#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 f1(void){return 100,200;},调用函数f1()时,(C )

A. 函数返回值为100

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

C. 函数返回值为200

D. 语句“return 100,200;”语法错,不能调用函数19.调用宏定义和语句:

#define 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) { ... } //1

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

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

float k(int x ) { ... } //4

相关文档
最新文档