C 程序设计模拟试卷 三

发布 2021-04-24 20:59:28 阅读 5279

(3)友元关系不具有传递性。所以,a项错误。

5. 假定一个类的构造函数为“a(int i=4, int j=0) ”则执行“a x (1);”语。

句后,和的值分别为()

a. 1和0

b. 1和4

c. 4和0

d. 4和1

答案:a解析:带默认的构造函数,对应实参没有值时就采用形参值。调用构造函数时,i=1,不采。

用默认值,而只有一个参数,j采用默认值0即j=0,因此a=1,b=0,选择a项。

6. 关于this指针使用说法正确的是()

a. 保证每个对象拥有自己的数据成员,但共享处理这些数据的**。

b. 保证基类私有成员在子类中可以被访问。

c. 保证基类保护成员在子类中可以被访问。

d. 保证基类公有成员在子类中可以被访问。

答案:a解析:this指针是隐藏的,可以使用该指针来访问调用对象中的数据。基类的成员在派生。

类中能否访问,与继承方式有关,与this没有关系。所以选择a项。

7. 所谓多态性是指 ()

a. 不同的对象调用不同名称的函数。

b. 不同的对象调用相同名称的函数。

c. 一个对象调用不同名称的函数。

d. 一个对象调用不同名称的对象。

答案:b解析:多态性有两种静态多态性和动态多态性,静态多态性是指调用同名函数,由于参数。

的不同调用不同的同名函数;动态多态性是指不同对象调用同名函数时,由于对象不同调用不同。

的同名函数。 多态性肯定具有相同的函数名,所以选择b项。

8. 友元关系不能()

a. 提高程序的运行效率。

b. 是类与类的关系。

c. 是一个类的成员函数与另一个类的关系。

d. 继承。

答案:d解析:友元可以是函数与类的关系即友元函数,也可以类与类的关系即友元类,但友元不。

能继承,是单向性,且不具有传递性。友元可以访问类中所有成员,提高了访问的方便性。因此。

选择d项。9. 语句ofstream f(“的功能是建立流对象f,试图打。

开文件 并与之连接,并且()

a. 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件。

b. 若文件存在,将其置为空文件;若文件不存在,打开失败。

c. 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件。

d. 若文件存在,打开失败;若文件不存在,建立一个新文件。

答案:a解析:ios::binary,采用二进制形式,ios::app定位到文件尾部。

10. 构造函数不具备的特征是()

a. 构造函数的函数名与类名相同。

b. 构造函数可以重载。

c. 构造函数可以设置默认参数。

d. 构造函数必须指定类型说明。

答案:d解析:构造函数无返回类型不能继承但可以重载,所以选择d项。

11. 在公有继承的情况下,基类的公有或保护成员在派生类中的访问权限()

a. 受限制。

b. 保持不变。

c. 受保护。

d. 不受保护。

答案:b解析:继承方式的不同派生类成员的权限也不同,采用公有继承,除了私有无法访问外。

公有、保护在派生类中保持不变,所以选择b项。

12. 假定一个类的构造函数为a(int aa,int bb) ,则执行a x(4,5);语句后。

和的值分别为()

a. 3和15

b. 5和4

c. 4和20

d. 20和5

答案:c解析:a=4,因为后减,b的值与a、bb相关,b=4*5=20,而与aa没有任何关系。

13. c++对c语言做了很多改进,即从面向过程变成为面向对象的主要原因是()

a. 增加了一些新的运算符。

b. 允许函数重载,并允许设置缺省参数。

c. 规定函数说明符必须用原型。

d. 引进了类和对象的概念。

答案:d解析:c++是一面向对象的语言,面向对象的特征,抽象、多态、继承和封装。

14. 在类中说明的成员可以使用关键字的是()

a. public

b. extern

c. cpu

d. register

答案:a解析:extern用于声明外部变量的。register声明寄存器类型变量。无cpu类型。它们都不能声。

明类成员。public声明为公有访问权限,所以选择a项。

15. c++语言中所有在函数中定义的变量,连同形式参数,都属于()

a. 全局变量。

b. 局部变量。

c. 静态变量。

d. 函数。

答案:b解析:变量存储类可分为两类:全局变量和局部变量。

1)全局变量:在函数外部定义的变量称为全局变量,其作用域为:从定义变量的位置开始到。

源程序结束。使用全局变量降低了程序的可理解性,软件工程学提倡尽量避免使用全局变量。

2)局部变量:在函数内部定义的变量称为局部变量,其作用域为:从定义变量的位置开始到。

函数结束。局部变量包含自动变量(auto)静态变量(static)以及函数参数。形参不能是静态。

的。所以选择b项。

16. 在私有继承的情况下,基类成员在派生类中的访问权限()

a. 受限制。

b. 保持不变。

c. 受保护。

d. 不受保护。

答案:a解析:私有继承下,基类中的公有或保护成员在派生类中也是私有的,所以选择a选项。

17. 使用地址作为实参传给形参,下列说法正确的是()

a. 实参是形参的备份。

b. 实参与形参无联系。

c. 形参是实参的备份。

d. 实参与形参是同一对象。

答案:d解析:地址作为实参,表示实参与形参代表同一个对象。如果实参是数值,形参也是普通。

变量,此时形参是实参的备份。所以选择d项。

18. c++的继承性允许派生类继承基类的()

a. 部分特性,并允许增加新的特性或重定义基类的特性。

b. 部分特性,但不允许增加新的特性或重定义基类的特性。

c. 所有特性,并允许增加新的特性或重定义基类的特性。

d. 所有特性,但不允许增加新的特性或重定义基类的特性。

答案:a解析:派生类有两类成员:一是基类,二是自身类。派生类中的成员不能访问基类中的私。

有成员,可以访问基类中的公有成员和保护成员。

19. 对于int *pa[5];的描述,正确的是()

a. pa是一个指向数组的指针,所指向的数组是5个int型元素。

b. pa是一个指向某个数组中第5个元素的指针,该元素是int型变量。

c. pa[5]表示某个数组的第5个元素的值。

d. pa是一个具有5个元素的指针数组,每个元素是一个int型指针。

答案:d解析:指针数组:数组元素都是相同类型的指针,相同类型的指针是说指针所指向的对象。

类型是相同的。例如,语句int *pa[5];定义了一个指针数组。在指针数组的定义中有两个运。

算符:*和[],运算符[]的优先级高于*,所以*pa[5]等价于*(pa[5]),pa[5]表示一。

个数组,而*表示后面的对象为指针变量,合在一起*pa[5]表示一个指针数组。该数组包含5个。

元素,每个元素都是指向int型的指针。所以选择d选项。

20. 以下基类中的成员函数表示纯虚函数的是()

a. virtual void tt()=0

b. void tt(int)=0

c. virtual void tt(int)

d. virtual void tt(int){}

答案:a解析:当在基类中不能为虚函数给出一个有意义的实现时,可以将其声明为纯虚函数,实。

现由派生类完成。格式:virtual《函数返回类型说明符》《函数名》(《参数表》)=0;。

二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答。

案。错填、不填均无分。

1. 单目运算符作为类成员函数重载时,形参个数为___个。

答案:0解析]单目运算符使用成员函数重载可以不用形参,双目运算符使用一个参数。

2. 抽象类中至少要有一个___函数。

答案:纯虚。

解析]至少有一个纯虚函数的类就称为抽象类,即不能实例化。

3. 设类a有成员函数void f(void);若要定义一个指向类成员函数的指针变量pf来指向f,该。

指针变量的声明语句是:__

答案:void (a::*pf)(void)=&a::f;

解析]void(a::*pf)(void)=&a::f;指向成员函数的指针,它相当于两条语句。

void(a::*pf)(void);和pf=&a::f;。

4. 执行下列程序。

double a=3.1415926,b=3.14;

cout<程序的输出结果是___

答案:3.1416,3.14

解析]题目设置精度即有效数字都是5,a四舍五入是3.1416,b是3.14。

5. vector类中用于删除向量中的所有对象的方法是___

答案:clear()

解析]向量的使用。返回向量中对象的方法有:front()back()operator[],在向量中删。

除对象的方法pop_back erase clear。

6. 重载的运算符保持其原有的___优先级和结合性不变。

答案:操作数。

解析]运算符重载时要遵循以下规则:

(1)除了类属关系运算符“.”成员指针运算符“.*作用域运算符“::sizeof运算符。

和三目运算符“?:以外,c++中的所有运算符都可以重载。

(2)重载运算符限制在c++语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的。

运算符。(3)重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及。

语法结构。7. 编译时的多态性通过___函数实现。

答案:重载。

解析]编译多态性,实现的方法主要通过函数的重载或运算符的重载。

8. 基类的公有成员在派生类中的访问权限由___决定。

答案:访问控制方式或继承方式。

9. 假设类x的对象x是类y的成员对象,则“y obj”语句执行时,先调用类___的构造函数。

答案:x解析]派生类中的构造函数的执行顺序,先基类后派生类。

10. 下列程序段的输出结果是___

cout<<509.3<答案:(p193)+509.3

解析]输入、输出格式ios::showpos用于输出数据的符号位。

11. 下列程序段的输出结果是___

C程序设计模拟试卷

第一次作业。一 单项选择题。1.编写c 程序一般需经过的几个步骤依次是 a.编辑 调试 编译 连接b.编辑 编译 连接 运行c.编译 调试 编辑 连接d.编译 编辑 连接 运行。2.决定c 语言中函数的返回值类型的是 语句中的表达式类型b.调用该函数时系统随机产生的类型c.调用该函数时的主调用函数类...

C 程序设计模拟试卷

第一次作业。一 单项选择题。1.编写c 程序一般需经过的几个步骤依次是 a.编辑 调试 编译 连接b.编辑 编译 连接 运行c.编译 调试 编辑 连接d.编译 编辑 连接 运行。2.决定c 语言中函数的返回值类型的是 语句中的表达式类型b.调用该函数时系统随机产生的类型c.调用该函数时的主调用函数类...

C程序设计模拟试卷

一 选择题。1 下列关于单目运算符 的叙述中正确的是。a 它们的运算对象可以是任何变量和常量。b 它们的运算对象可以是char型变量和int型变量,但不能是float型变量。c 它们的运算对象可以是int型变量,但不能是double型变量和float型变量。它们的运算对象可以是char型变量 int...