3.1 填空题
3.1.1 被定义为形参的是在函数中起_(1)_作用的变量,形参只能用 (2) 表示。实参的作用是 (3) ,实参可以用 (4) 、 (5) 、 (6) 表示。
答案:
(1)自变量
(2)变量名
(3)将实际参数的值传递给形参
(4)具有值的变量
(5)常量
(6)表达式
3.1.2 局部域包括 (1) 、 (2) 和 (3) 。使用局部变量的意义在于 (4) 。
答案:
(1)块域
(2)函数域
(3)函数原型域
(4)局部变量具有局部作用域使得程序在不同块中可以使用同名变量
3.1.3 静态局部变量存储在 (1) 区,在 (2) 时候建立,生存期为(3) ,如定义时未显式初始化,则其初值为 (4) 。
答案:
(1)全局数据区
(2)编译
(3)全局生存期
(4)全0
3.1.4局部变量存储在 (1) 区,在 (2) 时候建立,生存期为(3) ,如定义时未显式初始化,则其初值为 (4) 。
答案:
(1)栈
(2)在函数或块开始执行时
(3)函数或块的执行期
(4)随机值
3.1.5 编译预处理的作用是 (1) ,预处理指令的标志是 (2) 。多文件系统中,程序由 (3) 来管理,用户自定义头文件中通常定义一些 (4) 。
答案:
(1)将源程序文件进行处理,生成一个中间文件,编译系统对此中间文件进行编译并生成目标代码
(2)#
(3)工程文件
(4)用户构造的数据类型(如枚举类型),外部变量,外部函数、常量和内联函数等具有一定通用性或常用的量
4.1 填空题
5.1.1 引入类定义的关键字是 (1) 。类的成员函数通常指定为 (2) ,类的数据成员通常指定为 (3) 。指定为 (4) 的类成员可以在类对象所在域中的任何位置访问它们。通常用类的 (5) 成员表示类的属性,用类的 (6) 成员表示类的操作。
答案:
(1)class
(2)公有的public
(3)私有的private
(4)公有的public
(5)数据
(6)函数
4.1.2 类的访问限定符包括 (1) 、 (2) 和 (3) 。私有数据通常由(4) 数组定义时初始化函数来访问(读和写)。这些函数统称为 (5) 。
答案:
(1)public(公有的)
(2)private(私有的)
(3)protected(保护的)
(4)公有的成员函数
(5)类的接口
4.1.3 通常在逻辑上,同一类的每个对象都有 (1) 代码区,用以存储成员函数。而在物理上通常只有 (2) 代码区。只有在 (3) 定义,并 (4) 的函数和加了关键字 (5) 的函数例外。
答案:
(1)独立的
(2)共用的
(3)在类说明中
(4)不包括循环等复杂结构
(5)inline
4.1.4 C++中支持三种域: (1) 、 (2) 、 (3) 。函数域被包括在 (4) 中,全局域被包括在 (5) 中。using指示符以关键字using开头,后面是关键字 (6) ,最后是 (7) 。这样表示以后在该名字空间中所有成员都 (8) 。如不使用using指示符则在使用时要加::,称为 (9) 运算符。
答案:
(1)局部域(local scope)
(2)名字空间域(namespace scope)
(3)类域(class scope)
(4)局部域
(5)名字空间域
(6)namespace
(7)名字空间名
(8)可以直接被使用
(9)域
4.1.5 引用通常用作函数的 (1) 和 (2) 。对数组只能引用 (3)不能引用 (4) 。
答案:
(1)参数
(2)返回值
(3)数组元素
(4)数组名本身
4.1.6 构造函数的任务是 (1) 。构造函数无 (2) 。类中可以有 (3) 个构造函数,它们由 (4) 区分。如果类说明中没有给出构造函数,则C++编译器会 (5) 。拷贝构造函数的参数是 (6) ,当程序没有给出复制构造函数时,系统会自动提供 (7) 支持,这样的复制构造函数中每个类成员 (8) 。
答案:
(1)初始化数据成员
(2)函数返回类型说明
(3)多
(4)不同的参数表
(5)自动给出一个默认的构造函数
(6)同一类对象的引用
(7)默认的的复制构造函,称为默认的按成员语义支持。
(8)被依次复制
4.1.7 一个类有 (1) 个析构函数。 (2) 时,系统会自动调用析构函数。
答案:
(1)一
(2)对象注销时
4.1.8 运算符重载时,其函数名由 (1) 构成。成员函数重载双目运算符时,左操作数是 (2) ,右操作数是 (3) 。
答案:
(1)关键字operator和该运算符
(2)对象
(3)该函数的参数
4.1.9 面向过程的程序设计中程序模型描述为 (1) ,面向对象程序设计的程序模型可描述为 (2) 。
答案:
(1)“程序=算法+数据结构”。其数据与数据处理是分离的。
(2)程序=(对象+对象+……+对象)+消息;对象=(算法+数据结构)。面向对象设计将数据和对数据的操作方法放在一起,形成一个相对独立的整体——对象(Object),并通过简单的接口与外部联系。对象之间通过消息(Message)进行通讯。
5.1 填充题
5.1.1 数组定义时有三个要素:数组名,数组元素的 (1) 和数组元素的 (2) 。按元素在数组中的位置进行访问,是通过 (3) 进行的,称为 (4) 或 (5) 访问。为了使数组声明中数组的大小修改更为方便,总是将 (6) 用于声明数组长度。
答案:(1)类型
(2)数量
(3)下标运算符
(4)下标
(5)索引
(6)常变量
5.1.2 C/C++中的多维数组用的是一个 (1) 的定义,即多维数组的基本定义是 (2) 构成的数组,三维数组的元素是 (3) 。
答案:(1)嵌套
(2)以数组作为元素
(3)二维数组
5.1.3 计算机内存是一维编址的,多维数组在内存中的存储 (1) ,C/C++多维在内存中的排列是 (2) 方式,即越 (3) 的下标变化 (4) 。设数组a有m行n列,每个元素占内存u个字节,则a[i][j]的首地址为 (5) + (6) 。
答案:(1)必须要转化为一维方式,
(2)按行方式
(3)右
(4)越快
(5)a数组的首地址
(6)(i*n+j)*u
5.1.4 对于多维数组, (1) 的大小是确定的,所谓“不检查数组边界”只是不检查 (2) 的边界,而 (3) 的边界是在控制之中的,所以多维数组名作为函数的参数只可以 (4) 缺省。
答案:(1)较低各维的
(2)最高维(第一维)
(3)较低各维
(4)最高维
5.1.5 指针变量保存了另一变量的 (1)值,不可以任意给指针变量赋一个地址值,只能赋给它 (2) 和 (3) 的地址。使用变量名来访问变量,是按 (4) 来直接存取变量称为 (5) 方式;而借助指针变量取得另一变量的地址,访问该变量称为 (6) 方式。
答案:(1)地址
(2)NULL
(3)已经分配了内存的变量的地址
(4)按变量的地址
(5)直接访问
(6)间接访问
5.1.6 固定指向一个对象的指针,称为 (1) ,即 (2) ,定义时const放在 (3) 。而指向“常量”的指针称为 (4) ,指针本身可以指向别的对象,但 (5) ,定义时const放在 (6) 。
答案:(1)指针常量
(2)指针本身是常量
(3)const放在类型说明之后,变量名之前
(4)常量指针
(5)不能通过该指针修改对象
(6)const放在类型说明之前
5.1.7 数组名在表达式中被自动转换为指向 (1) 的指针常量,数组名是地址,但数组名中放的地址是 (2) ,所以数组名 (3) 。这样数组名可以由 (4) 来代替,C++这样做使用时十分方便,但丢失了数组的另一要素 (5) ,数组名是指向数组 (6) 的指针,而不是指向数组 (7)的。编译器按数组定义的大小分配内存,但运行时对 (8) 不加检测,这会带来无法预知的严重错误。
答案:(1)数组第一个元素
(2)不可改变的
(3)称指针常量
(4)指针
(5)数组元素的数量
(6)元素
(7)整体
(8)对数组的边界不加检测
5.1.8 有一个三维数组:
int z3d[2][3][4];
给出指向三维数组第i行第j列第k页元素的指针的三种表达方式 (1) , (2) , (3) 。再给出这些元素的三种表达方式 (4) , (5) , (6) 。
答案:(1)z3d[i][j]+k或&z3d[i][j][k]
(2)*(z3d[i]+j)+k
(3)*(*(z3d+i)+j)+k
(4)z3d[i][j][k]或*(z3d[i][j]+k)
(5)*(*(z3d[i]+j)+k)
(6)*(*(*(z3d+i)+j)+k)
6.1 填充题
6.1.1 模板是为了实现代码的 (1) ,它把数据类型改为一个 (2) ,称为 (3) 程序设计。模板包括 (4) 和 (5) 。
答案:(1)重用
(2)设计参数
(3)参数化(parameterize)
(4)函数模板(function template)
(5)类模板(class template)
6.1.2 调用函数模板时,可以显式指定模板参数类型,也可以隐式进行,称为 (1) ,这是根据 (2) 来决定的。
答案:(1)模板实参推演(template argument deduction)
(2)一组实际类型或(和)值
6.1.5 给出以下指针的说明方式:指向一个4元素整型数组的指针为 (1) ;指向一个返回整型数,参数为两个整型数的函数的指针 (2) ;指向一个数组的指针,而该数组元素都是指向一个返回整型指针的无参函数的指针 (3) 。
答案:(1)int(*p)[4];
(2)int(*p)(int,int);
(3)以指向6元素数组为例:int*(*(*p)[6])();
7.1 填空题
7.1.1 C/C++定义了4个内存区间: (1) 、 (2) 、 (3) 和 (4) 。
答案:(1)代码区,存放程序代码;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论