西安石油大学大二(上)C++面向对象程序设计课件各章习题

发布时间 : 星期五 文章西安石油大学大二(上)C++面向对象程序设计课件各章习题更新完毕开始阅读

习题1

基本概念题: 9.1 填空题:

(1) 一个完整的可运行程序中必须有一个名为________的函数。 (2) 一条表达式语句必须以________作为结束符。 (3)一个函数定义由________和________两部分组成。

(4)若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的________语句。

(5)C++头文件和源程序文件的扩展名分别为________和________。 (6)程序文件的编译错误分为________和_________两类。

(7)当使用________保留字作为函数类型时,该函数不返回任何值。 (8)当函数参数表用_________保留字表示时,则表示该参数表为空。

(9)从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为________,该函数带有________个参数。

(10)在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义的头文件。

(11)重载一个函数的条件是:该函数必须在参数的个数或参数的__________上与其它同名函数有所不同。

(12)如果一个函数中有多个默认参数,则默认参数必须全部处在形参表的________部分。

(13)函数形参的作用域是该函数的____________。

(14)当定义一个结构体变量时,系统分配给该变量的内存大小等于各成员所需内存大小的_______。

9.2 选择题:

(1)以下说法中正确的是( )。

A. C++程序总是从第一个定义的函数开始执行 B. C++程序总是从main函数开始执行

C. C++函数必须有返回值,否则不能使用函数

D. C++程序中有调用关系的所有函数必须放在同一个程序文件中 (2)以下叙述中不正确的是( )。

A. 在一个函数中,可以有多条return语句

B. 函数的定义不能嵌套,但函数的调用可以嵌套 C. 函数必须有返回值

D. 不同的函数中可以使用相同名字的变量 (3)函数重载是指( )。

A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C. 两个以上的函数名字不同,但形参的个数或类型相同

D. 两个以上的函数取相同的函数名,并且函数的返回类型相同 (4)下列( )的调用方式是引用调用。

A. 形参和实参都是变量 B.形参是指针,实参是地址值 C. 形参是引用,实参是变量 D.形参是变量,实参是地址值

(5)为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( )。

A. 内联函数 B.重载函数 C.递归函数 D.函数模板 (6)C++中函数返回值的类型是由( )决定的。

A. return语句中表达式的类型 B.该函数定义时的类型 C.调用函数时的调用语句 D.系统根据结果 (7)以下函数的返回结果是( )。

int function(char *x) {

char *p=x; while(*p++); return(p-x-1); }

A. 求字符串的长度 B.将字符串x连接到字符串p后面 C. 将字符串x复制到字符串p中 D.将字符串x反向存放 (8)以下正确的函数原型语句是( )。

A. double fun(int x,int y) B. double fun(int x;int y) C. double fun(int,int); D. double fun(int x,y);

(9)以下正确的描述是( )。

A. 函数的定义可以嵌套,函数的调用不可以嵌套 B. 函数的定义不可以嵌套,函数的调用可以嵌套 C. 函数的定义和函数的调用均可以嵌套 D. 函数的定义和函数的调用均不可以嵌套

(10)若用数组名作为函数调用的实参,传递给形参的是( )。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组全部元素的值 D. 数组元素的个数 (11)以下正确的描述是( )。 A. 不允许设置参数的默认值

B. 设置参数的默认值只能在定义函数时设置 C. 设置参数的默认值时,应该设置右边的参数 D. 设置参数的默认值时,应该全部参数都设置 (12)采用重载函数的目的是( )。

A. 实现共享 B. 减少空间

C. 提高速度 D. 使用方便,提高可读性

(13)当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是( )。

A. 直接按系统设定的标准方式搜索目录

B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录 C. 仅仅搜索源程序所在目录

D. 搜索当前逻辑盘上的所有目录

(14)当#include后面的文件名用尖括号括起来时,寻找被包含文件的方式是( )。

A. 直接按系统设定的标准方式搜索目录

B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录 C. 仅仅搜索源程序所在目录

D. 搜索当前逻辑盘上的所有目录

(15) 文件包含命令中被包含的文件的扩展名( )。

A. 必须是.h B. 不能是.h C. 可以是.h或.cpp D. 必须是.cpp (16)下列对引用的陈述中不正确的是( )。

A. 每一个引用都是其所引用对象的别名,因此必须初始化 B. 形式上针对引用的操作实际上作用于它所引用的对象

C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行 D. 不需要单独为引用分配存储空间 (17)若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。

A. in B. inline C. inLine D. InLiner (18)在多文件结构的程序中,通常把类的定义单独存放于( )中。 A. 主文件 B. 实现文件 C. 库文件 D. 头文件 (19)在多文件结构的程序中,通常把含有main()函数的文件称为( )。 A. 主文件 B. 实现文件 C. 程序文件 D. 头文件 (20)一个C++程序文件的扩展名为( )。 A. .h B. .c C. .cpp D. .cp 9.3 C++/C语言的基本数据类型有哪些?写出它们各自的关键字。 9.4 C++/C语言的基本语句有哪些?写出它们各自的语法格式。 9.5 C++语言的枚举类型和C语言的枚举类型有什么不同? 9.6 C++语言的结构体类型和C语言的结构体类型有什么不同?

9.7 和C语言变量的定义方法相比,C++语言变量的定义方法有什么改进? 9.8 在一个变量的定义前加const关键字有什么作用? 9.9 函数怎样体现了程序的模块化设计?

9.10 什么叫函数的形参?什么叫函数的实参?

9.11 什么叫输入型参数?怎样设计函数的输入型参数? 9.12 什么叫输出型参数?怎样设计函数的输出型参数?

9.13 怎样把系统库函数和用户自定义函数包含到一个程序中? 9.14 什么叫函数原型?函数原型机制有什么优点?

9.15 什么叫内联函数?怎样定义内联函数?什么样的函数可以定义成内联函数?

9.16 怎样设计带缺省参数的函数?试举一例说明。 9.17 什么叫函数重载?重载的函数要满足什么条件? 9.18 怎样定义引用变量?引用变量有什么功能?

9.19 说明在设计函数时,怎样利用引用变量设计输出型参数?在调用函数时,怎样设计相应的实际参数? 9.20 自定义语句有什么用途?

9.21 程序预处理主要完成哪些工作?

9.22 如果一个程序中包含有#include语句行,则该程序的编译和运行过程是怎样的?

9.23 与用malloc()函数和free ()函数进行存储单元的动态申请和释放相比,用new运算符和delete运算符进行存储单元的动态申请和释放有什么优点?

程序阅读和设计题:

9.24 阅读程序,给出运行结果:

(1)

#include \int m=10; void a(int n) { }

void main() {

int n=3; }

a(n);

cout<<\

n=15/n; m=m/2;

(2)

#include \int count(double *a) {

联系合同范文客服:xxxxx#qq.com(#替换为@)