函数和编译预处理.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.形、实参的个数和类型的差别