1、17秋学期北理工面向对象程序设计在线作业4北理工面向对象程序设计在线作业试卷总分:100 得分:100一、 单选题 (共 38 道试题,共 76 分)19. 下列关于C+函数的描述中,正确的是()。A. 每个函数至少要有一个参数B. 每个函数都必须返回一个值C. 函数在被调用之前必须先进行声明或定义D. 函数不能自己调用自己 满分:2 分正确答案:C38. 下列关键字中不能用来声明类成员访问权限的是()。A. publicB. staticC. protectedD. private 满分:2 分正确答案:B1. 在下列的各类函数中,_不是类的成员函数。A. 构造函数B. 析构函数C. 友元函
2、数D. 拷贝构造函数 满分:2 分正确答案:D3. 派生类对象对它的基类成员中()是可以访问的。A. 公有继承的私有成员B. 公有继承的保护成员C. 公有继承的公有成员D. 私有继承的公有成员 满分:2 分正确答案:C8. 定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。A. int*p=newint30B. int*p=newint(30)C. int*p=new30int*p=new30D. *p=newint30 满分:2 分正确答案:A35. 多继承时对象的构造顺序中包含如下4步:所有非虚基类的构造函数按照它们被继承的顺序构造;所有虚基类的构造函数按照它们被继承
3、的顺序构造;所有子对象的构造函数按照它们声明的顺序构造;派生类自己的构造函数体;这4个步骤的正确顺序是()。A. B. C. D. 满分:2 分正确答案:C30. 若函数原型为voidFun(intx,inty=6,intchar=a),则下列调用错误的是()。A. Fun(5)B. Fun(5, b)C. Fun(5,8)D. Fun(2,4, b) 满分:2 分正确答案:B18. 在横线处填入语句()后,下列语句序列能够正确执行。int*ptr;deleteptr;A. ptr=new int(5);B. ptr=new int5;C. ptr=new int;D. ptr=malloc(
4、5); 满分:2 分正确答案:B14. 下列程序的输出结果是()。#includeclassPartpublic:Part(intx=0):val(x)coutval;Part()coutval;private:intval;classWholepublic:Whole(intx,inty,intz=0):p2(x),p1(y),val(z)coutval;Whole()coutval;private:Partp1,pA. 123321B. 213312C. 213D. 123123 满分:2 分正确答案:B31. print()函数是某类中无返回值的常成员函数,下列表示中,正确的是()。A.
5、 void print() constB. const void print()C. void const print()D. void print(const) 满分:2 分正确答案:A23. 在下面的类定义中,横线处应填入的内容是()。classMyClassprivate:staticintcount;count=0;A. intB. static intC. int MyClassD. static int MyClass: 满分:2 分正确答案:C12. 复制构造函数的参数通常为()A. 某个对象名B. 某个对象的成员名C. 某个对象的引用名D. 某个对象的指针名 满分:2 分正确答
6、案:C7. 下列描述中,错误的是()。A. 析构函数中调用虚函数采用静态联编B. 对虚析构函数的调用可以采用动态联编C. 当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数D. 构造函数可以声明为虚函数 满分:2 分正确答案:D2. 有如下类声明:classMyClasspublic:MyClass()cout1;执行语句MyClassa,b2,*p2;后,程序的输出结果是()。A. 11B. 111C. 1111D. 11111 满分:2 分正确答案:B15. 关于封装,下列说法中不正确的是()。A. 通过封装,对象的全部属性和操作结合在一起,形成一个整体B. 通过封装,一个对象的
7、实现细节被尽可能地隐藏起来(不可见)C. 通过封装,每个对象都成为相对独立的实体D. 通过封装,对象的属性都是不可见的 满分:2 分正确答案:D25. 下列关于构造函数和析构函数的描述中,错误的是()。A. 构造函数可以重载B. 析构函数名与类名相同C. 构造函数中可以设置参数的默认值D. 类中只有一个析构函数 满分:2 分正确答案:B33. C+中用于实现运行时多态性的是()。A. 内联函数B. 重载函数C. 静态函数D. 虚函数 满分:2 分正确答案:D35. 下列关于继承的描述中,错误的是()。A. 派生类对象不能访问基类的保护成员B. 派生类对基类成员的访问权限随着继承方式而改变C.
8、派生类成员可以访问基类的私有成员D. 派生类继承了基类的所有成员 满分:2 分正确答案:C19. 下列函数中,不是类的成员函数的是()。A. 构造函数B. 友元函数C. 析构函数D. 复制构造函数 满分:2 分正确答案:B34. 下列语句中,会产生编译错误的是()。A. int x=5; int &ref=x;B. const int size;C. int x=5; int &ref=x; x+;D. const int size=100; 满分:2 分正确答案:B38. 下列描述中,错误的是()。A. 公有继承时基类中的public成员在派生类中仍是public的B. 公有继承时基类中的p
9、rivate成员在派生类中仍是private的C. 私有继承时基类中的public成员在派生类中是private的D. 保护继承时基类中的public成员在派生类中是protected的 满分:2 分正确答案:B11. 下列程序的输出结果是()。#includeclassMyClasspublic:MyClass()coutA;MyClass(charc)coutc;MyClass()coutB;intmain()MyClassp1,*p2;p2=newMyClass(X);deletep2;return0;A. ABXB. ABXBC. AXBD. AXBB 满分:2 分正确答案:D18.
10、不可以成为类的数据成员的是_A. 自身类的对象B. 另一个类的对象C. 自身类的指针或引用D. 其他基本数据类型 满分:2 分正确答案:A29. 下列描述中,()不是面向对象系统包含的要素。A. 对象B. 类C. 继承D. 函数 满分:2 分正确答案:D6. 执行下列程序后的输出结果是()。#includeintfun1(intx)return+x;intfun2(int&x)return+x;intmain()inta=0,b=0,c=0;c=fun1(a)+fun2(b);coutabcendl;return0;A. 002B. 012C. 102D. 112 满分:2 分正确答案:B3.
11、 在派生类中重新定义虚函数时,除了()方面,其他方面都必须与基类中相应的虚函数保持一致。A. 参数个数B. 参数类型C. 函数名称D. 函数体 满分:2 分正确答案:D27. 有如下类定义:classMyClasspublic:intgetRef()constreturn&a;intgetValue()constreturna;voidset(intn)consta=n;friendvoidshow(MyClassobj)constcouta;下列函数中,定义正确的是()。A. getRefB. getValueC. setD. show 满分:2 分正确答案:B38. 下列关于this指针的
12、描述中,正确的是()。A. 任何与类相关的函数都有this指针B. 类的成员函数都有this指针C. 类的友元函数都有this指针D. 类的非静态成员函数都有this指针 满分:2 分正确答案:D33. 设置虚基类的目的是()。A. 简化程序B. 消除二义性C. 提高运行效率D. 减少目标代码 满分:2 分正确答案:B28. 设置虚基类的目的是_。A. 简化程序;B. 消除二义性;C. 提高运行效率;D. 减少目标代码; 满分:2 分正确答案:B31. 下列对引用的陈述中不正确的是()。A. 每一个引用都是其所引用对象的别名,因此必须初始化B. 形式上针对引用的操作实际上作用于它所引用的对象C
13、. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D. 不需要单独为引用分配存储空间 满分:2 分正确答案:C32. 在下列函数原型中,可以作为类A构造函数的是()。A. void A(int);B. int A();C. A(int) const;D. A(int); 满分:2 分正确答案:D5. 下列关于运算符重载的描述中,_是正确的。A. 运算符重载可以改变运算数的个数;B. 运算符重载可以改变优先级;C. 运算符重载可以改变结合性;D. 运算符重载不可以改变语法结构。 满分:2 分正确答案:D7. 下列关于成员访问权限的描述中,错误的是()。A. 公有数据成员和公有成
14、员函数都可以被类对象直接处理B. 类的私有数据成员只能被公有成员函数以及该类的友元访问C. 只有类或派生类的成员函数和友元可以访问保护成员D. 保护成员可以在派生类中被访问,而私有成员不可以 满分:2 分正确答案:B23. 下列关于类型转换的描述中,正确的是()。A. 由不同类型操作数组成的表达式的类型一定是最高类型double类型B. 强制类型转换都是非保值映射C. 赋值表达式的类型是左值的类型D. 类型转换是永久性的 满分:2 分正确答案:C5. 变量s的定义为“char*s=”Helloworld!”;”,要使变量p指向s所指向的同一个字符串,则应选取()。A. char*p=sB. char
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1