一.单选题(共19题,76分) 1.(单选题) 假定AB为一个类,则执行“AB a(2), b[3],p[4];”语句时调用该类构造函数的次数为() A.3 B.4 C.5 D.9 我的答案:B 正确答案; B 4分 答案解析:a(2)调用1次带参数的构造函数,b[3]调用3次无参数的构造函数,指针没有给它分 配空间,没有调用构造函数。所以共调用构造函数的次数为4。 2.(单选题) 下列有关重载函数的说法中正确的是 A.重载函数必须具有不同的返回值类型 B.重载函数参数个数必须相同 C.重载函数必须有不同的形参列表 D.重载函数名可以不同 我的答案:C 正确答案:C 4分 3.(单选题)在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的() A.私有成员 B.公有成员C.保护成员 D.保护成员或私有成员 我的答案:A 正确答案:A √ 4分 答案解析:在派生类中基类的保护或者基类公有都可以直接访问,基类的私有成员只能由基类的 成员函数来访问。 4.(单选题) 假定一个类的构造函数为A(int aa, int bb){a=aa–;b=abb;}, 则执行A x(4,5);语句后,x. a和x.b的值分别为() A.3和15 B.5和4 C.4和20D.20和5 我的答案:C 正确答案:C 4分 答案解析:a=4,因为后减,b的值与a、bb相关,b=4*5=20,而与aa没有任何关系。 5.(单选题) 在int a=3, int sp=&a;中,*p的值是( A. 变量a的地址值 B.无意义 C.变量p的地址值 D.3 我的答案:D 正确答案:D 4分 6.(单选题)编写C++程序一般需经过的几个步骤依次是( A 编辑、调试、编译、连接 B.编辑、编译、连接、运行 C.编译、调试、编辑、连接 D.编译、编辑、连接、运行 我的答案:A 正确答案:B x 0分 答案解析:经过编辑、编译、连接和运行四个步骤。编辑是将C++源程序输入计算机的过程,保 存文件名为cpp。编译是使用系统提供的编译器将源程序cpp生成机器语言的过程,目标文件为obj,由于没有得到系统分配的绝对地址,还不能直接运行。连接是将目标文件obj转换为可执行程序的过程,结果为exe。运行是执行exe,在屏幕上显示结果的过程。 7.(单选题) 静态成员函数没有( A. 返回值 B. this指针C. 指针参数 D.返回类型 我的答案: B 正确答案:B 4分 8.(单选题)关于this指针使用说法正确的是( A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码 B.保证基类私有成员在子类中可以被访问。 C.保证基类保护成员在子类中可以被访问。D.保证基类公有成员在子类中可以被访问。 我的答案: B 正确答案:A x 0分 答案解析:this指针是隐藏的,可以使用该指针来访问调用对象中的数据。基类的成员在派生类 中能否访问,与继承方式有关,与this没有关系。 9.(单选题)要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为) A.const char *p =“ABCD”; B.char *const p =“ABCD”;C.char const p =“ABCD”; D.const char * const p = “ABCD”; 我的答案:D 正确答案:D 4分 10.(单选题)类MyA的拷贝初始化构造函数是() A. MyA() B. MyA (MyA) C.MyA (MyA&) D. MyA(MyA) 我的答案:C 正确答案:C 4分 答案解析:解析:(P80)复制即拷贝构造函数使用对象的引用(或常引用)作形参,防止临时产 生一个对象,A无参构造函数,B是指针作为形参,D项是对象,所以选择C项。 11.(单选题)假定一个类的构造函数为“A(int i=4, int j=0) (a=i;b=j.)”,则执行“A x (1);”语句后,x.a和x. b的值分别为() A.1和0 B.1和4C.4和0D.4和1 我的答案:A 正确答案:A √ 4分 答案解析:带默认的构造函数,对应实参没有值时就采用形参值。调用构造函数时,i=1,不采用 默认值,而只有一个参数,j采用默认值0即j=0,因此a=1,b=0,选择A项。 12.(单选题) 若Sample类中的一个成员函数说明如下:void set (Sample& a); 则Sample& a的含义是(OA.指向类Sample的名为a的指针 B.a是类Sample的对象引用,用来作函数Set的形参 C.将a的地址赋给变量Set D.变量Sample与a按位与的结果作为函数Set的参数 我的答案:B正确答案: B 4分 13.(单选题)一个函数功能不太复杂,但要求被频繁调用,则应把它定义为) A. 内联函数 B.重载函数C.递归函数D.嵌套函数 我的答案:A正确答案:A 4分 答案解析:内联函数特征代码少,频繁调用,执行效率高。重载函数解决统一接口的问题;递归 是子程序调用,程序调用要耗费很多空间和时间,循环/迭代都比递归有效率得多,递归只是从形式上,逻辑比较简洁。嵌套函数即反复调用,速度较慢, 14.(单选题)下面有关类说法不正确的是() A.一个类可以有多个构造函数 B.一个类只有一个析构函数C.析构函数需要指定参数 D.在一个类中可以说明具有类类型的数据成员 我的答案:C 正确答案:C 4分 15.(单选题)在公有继承的情况下,基类的公有或保护成员在派生类中的访问权限() A.受限制 B.保持不变C.受保护D.不可访问 我的答案:B正确答案: B 4分 16.(单选题)下列选项不是类的成员函数的是( A.构造函数 B.析构函数C.友元函数D.铂贝构造函数 我的答案:C 正确答案:C 4分 17.(单选题)C++语言建立类族是通过( A.类的嵌套 B.类的继承C.虚函数D.抽象类 我的答案:B正确答案:B 4分 18.(单选题) 决定C++语言中函数的返回值类型的是( A.return语句中的表达式类型 B.调用该函数时系统随机产生的类型 C.调用该函数时的主调用函数类型 D.在定义该函数时所指定的数据类型 我的答案:D 正确答案: D 4分 答案解析:函数的返回值类型由定义函数时的指定的数据类型决定的。A项的表达式的值要转换 成函数的定义时的返回类型。 19.(单选题)在函数定义中的形参属于() A.全局变量 B.局部变量C.静态变量D.寄存器变量 我的答案:B 正确答案: B √ 4分 二.填空题(共5题,20分) 20.(填空题) 在面向对象的程序设计中,将一组对象的共同特性抽象出来形成__。 我的答案: 4分 (1)类 √ 正确答案: (1)类 答案解析:类是相似特征的对象的抽象,对象是类的一个实例。 21.(填空题) 假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调用 构造函数来完成此功 能。 我的答案: 4分 (1)拷贝 √ 正确答案: (1)复制;拷贝 答案解析:复制或铂贝构造函数就是用对象初始化新的对象。 22.(填空题) 单目运算符(不含后置自增/自减运算符)作为类成员函数重载时,形参个数为__个。 作业详情 我的答案: 4分 (1)0 v 一.单选题(76分) 正确答案: (1)0 答案解析:[解析〕单目运算符使用成员函数重载可以不用形参,双目运算符使用一个参数。 10 11 12 13 14 15 16 17 18 19 23.(填空题) 定义类动态对象数组时,元素只能靠自动调用该类的_-_构造函数来进行初始化。 二.填空题(20分) 我的答案: 4分 23 24 (1)无参 √ 正确答案: 三.判断题(4分) (1)无参 答案解析:使用new创建动态对象数组,不能有参数,所以只能调用无参的构造函数,初始化 25 对象。 24.(填空题) 下面代码中有错误的是第___行代码: 1 class A { 2 public: 3 A(int aa) ma(aa)} 4 int ma; 5 } ; 我的答案: 4分 (1)3 √ 正确答案: (1) 3 三.判断题(共1题,4分) 25.(判断题)在C++中,只能使用成员函数重载的运算符有:=、0、[]、-> A.对 B.错 我的答案:对 正确答案:对 4分
|