17春北理工《面向对象程序设计》在线作业.docx
- 文档编号:5919173
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:53
- 大小:34.01KB
17春北理工《面向对象程序设计》在线作业.docx
《17春北理工《面向对象程序设计》在线作业.docx》由会员分享,可在线阅读,更多相关《17春北理工《面向对象程序设计》在线作业.docx(53页珍藏版)》请在冰豆网上搜索。
17春北理工《面向对象程序设计》在线作业
2017秋17春北理工《面向对象程序设计》在线作业
一、单选题(共38道试题,共76分。
)
1.已知函数f的原型是voidf(int*x,doubley);,变量i1、d2的定义为:
inti1;doubled2;,则下列函数调用语句中,正确的是()。
A.f(i1,d2);
B.f(&i1,d2);
C.f(i1,&d2);
D.f(&i1,&d2);
正确答案:
2.设Address表示整型变量x的地址,则下列语句执行后的输出结果为()。
intx=100,&r=x;cout< A.Address-100 B.100-100 C.Address-Address D.100-Address 正确答案: 3.下列关于运算符重载的描述中,______是正确的。 A.运算符重载可以改变运算数的个数; B.运算符重载可以改变优先级; C.运算符重载可以改变结合性; D.运算符重载不可以改变语法结构。 正确答案: 4.print()函数是某类中无返回值的常成员函数,下列表示中,正确的是()。 A.voidprint()const B.constvoidprint() C.voidconstprint() D.voidprint(const) 正确答案: 5.下列关于静态数据成员特性的描述中,错误的是()。 A.说明静态数据成员时前边要加修饰符static B.静态数据成员要在类体外进行初始化 C.静态数据成员不是所有对象所共有的 D.引用静态数据成员时,要在其名称前加<类名>和作用域运算符 正确答案: 6.下列描述中,错误的是()。 A.内联函数主要解决程序的运行效率问题 B.内联函数的定义必须出现在内联函数第一次被调用之前 C.内联函数中可以包括各种语句 D.对内联函数不可以进行异常接口声明 正确答案: 7.对虚函数的调用() A.一定使用动态联编 B.必须使用动态联编 C.一定使用静态联编 D.不一定使用动态联编 正确答案: 8.在一个派生类对象结束其生命周期时,下列描述中正确的是()。 A.先调用派生类的析构函数后调用基类的析构函数 B.先调用基类的析构函数后调用派生类的析构函数 C.如果基类没有定义析构函数,则只调用派生类的析构函数 D.如果派生类没有定义析构函数,则只调用基类的析构函数 正确答案: 9.如果派生类以protected方式继承基类,则基类的protected成员和public成员在派生中的访问权限分别为()。 A.public和public B.public和protected C.protected和public D.protected和public E.protected和protected 正确答案: 10.下列程序的输出结果是()。 #include intf()const{return3;}intf(){return5;}};intmain(){VACv1;constVACv2;cout< A.53 B.35 C.55 D.33 正确答案: 11.C++中用于实现运行时多态性的是()。 A.内联函数 B.重载函数 C.静态函数 D.虚函数 正确答案: 12.多继承时对象的构造顺序中包含如下4步: ①所有非虚基类的构造函数按照它们被继承的顺序构造;②所有虚基类的构造函数按照它们被继承的顺序构造;③所有子对象的构造函数按照它们声明的顺序构造;④派生类自己的构造函数体;这4个步骤的正确顺序是()。 A.④③①② B.②④③① C.②①③④ D.③④①② 正确答案: 13.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加()。 A.1 B.4 C.sizeof(double) D.sizeof(p) 正确答案: 14.下列程序的输出结果是()。 #include MyClass(){cout<<'A';}MyClass(charc){cout< A.ABX B.ABXB C.AXB D.AXBB 正确答案: 15.下列函数参数默认值定义错误的是()。 A.Fun(intx=0,inty=0) B.Fun(intx,inty) C.Fun(intx,inty=0) D.Fun(intx=0,inty) 正确答案: 16.将一些函数体代码不是很大,但被频繁调用的函数定义为(),可以解决程序中函数调用的效率问题。 A.重载函数 B.内联函数 C.递归函数 D.友元函数 正确答案: 17.下列关键字中不能用来声明类成员访问权限的是()。 A.public B.static C.protected D.private 正确答案: 18.下列关于友元的描述中,错误的是()。 A.友元破坏了类的封装性 B.友元提高了程序的运行效率 C.友元可以在类外声明和定义 D.友元能够访问类中的私有成员 正确答案: 19.下列运算符中,在C++中不能重载的是()。 A._ B.() C.: : D.|| 正确答案: 20.下列关于成员访问权限的描述中,错误的是()。 A.公有数据成员和公有成员函数都可以被类对象直接处理 B.类的私有数据成员只能被公有成员函数以及该类的友元访问 C.只有类或派生类的成员函数和友元可以访问保护成员 D.保护成员可以在派生类中被访问,而私有成员不可以 正确答案: 21.下列不是C++基本数据类型的是______。 A.int B.string C.char D.void 正确答案: 22.下面是派生类声明的开始部分,正确的是()。 A.classvirtualB: publicA B.virtualclassB: publicA C.classB: publicAvirtual D.classB: virtualpublicA 正确答案: 23.下列关于类成员的描述中,正确的是()。 A.友元函数是类的成员函数 B.类成员的默认访问权限是私有的 C.类成员函数必须声明为公有的 D.类的静态数据成员不能是常成员 正确答案: 24.在横线处填入语句()后,下列语句序列能够正确执行。 。 int*ptr;delete[]ptr; A.ptr=newint(5); B.ptr=newint[5]; C.ptr=newint; D.ptr=malloc(5); 正确答案: 25.设置虚基类的目的是()。 A.简化程序 B.消除二义性 C.提高运行效率 D.减少目标代码 正确答案: 26.下列描述中,()不是面向对象系统包含的要素。 A.对象 B.类 C.继承 D.函数 正确答案: 27.下列关于类型转换的描述中,正确的是()。 A.由不同类型操作数组成的表达式的类型一定是最高类型double类型 B.强制类型转换都是非保值映射 C.赋值表达式的类型是左值的类型 D.类型转换是永久性的 正确答案: 28.下列函数参数默认值定义错误的是()。 A.Fun(intx=0,inty=0) B.Fun(intx,inty) C.Fun(intx,inty=0) D.Fun(intx=0,inty) 正确答案: 29.下列语句中,正确的是()。 A.constintbuffer=256; B.constinttemp; C.int&ref; D.constintsize=100;......size=10; 正确答案: 30.下列类说明中,错误的是()。 classSample{public: Sample(intval);//A~Sample();//Bprivate: inta=2.5;//CSample();//D}; A.//A B.//B C.//C D.//D 正确答案: 31.在C++中,扩充类定义需要借助于()。 A.对象 B.继承 C.重载 D.函数 正确答案: 32.在下面的类定义中,横线处应填入的内容是()。 classMyClass{private: staticintcount;};count=0; A.int B.staticint C.intMyClass D.staticintMyClass: 正确答案: 33.列符号中能够作为C++标识符的是()。 A.const B.2a C._shape D._count 正确答案: 34.释放一个类的对象时,系统自动调用()。 A.构造函数 B.析构函数 C.成员函数 D.友元函数 正确答案: 35.下列描述中,错误的是()。 A.析构函数中调用虚函数采用静态联编 B.对虚析构函数的调用可以采用动态联编 C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数 D.构造函数可以声明为虚函数 正确答案: 36.下列输出字符'A'的方法中,()是错误的。 A.cout< B.cout<<'A'; C.cout.put('A'); D.charA='A';cout< 正确答案: 37.下列关于继承的描述中,错误的是()。 A.派生类对象不能访问基类的保护成员 B.派生类对基类成员的访问权限随着继承方式而改变 C.派生类成员可以访问基类的私有成员 D.派生类继承了基类的所有成员 正确答案: 38.关于运行时多态的下列描述中,______是错误的。 A.运行时多态是以虚函数为基础的; B.运行时多态是在运行时确定所调用的函数代码的; C.用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态; D.运行时多态是在编译时确定操作函数的 正确答案: 北理工《面向对象程序设计》在线作业 二、多选题(共4道试题,共8分。 ) 1.配置图中通常包含两种元素,分别是() A.节点 B.依赖关系 C.关联关系 D.接口 正确答案: 2.时序图包含的元素分别是() A.对象 B.生命线 C.消息 D.激活 正确答案: 3.实际的建模过程中,可以把节点分() A.处理器 B.设备 C.应用软件 D.系统软件 正确答案: 4.类中属性的可见性主要包括() A.公有 B.私有 C.其它 D.受保护 正确答案: 北理工《面向对象程序设计》在线作业 三、判断题(共8道试题,共16分。 ) 1.一个类的构造函数中可以不包含对其子对象的初始化 A.错误 B.正确 正确答案: 2.可以在类的构造函数中对静态数据成员进行初始化。 A.错误 B.正确 正确答案: 3.某类中的友元类的所有成员函数都可以存取或修改该类中的私有成员。 A.错误 B.正确 正确答案: 4.只要是类M继承了类N,那么类M就是类N的子类型。 A.错误 B.正确 正确答案: 5.单继承时,派生类中对基类成员的访问也会出现二义性。 A.错误 B.正确 正确答案: 6.访问对象成员时要使用运算符.或->。 A.错误 B.正确 正确答案: 7.派生类从基类派生而来,不能再生成新的派生类。 A.错误 B.正确 正确答案: 8.动态联编在运行时选定调用的成员函数。 A.错误 B.正确 正确答案: 北理工《面向对象程序设计》在线作业 一、单选题(共38道试题,共76分。 ) 1.下列关于虚基类的描述中,错误的是() A.设置虚基类的目的是消除二义性 B.虚基类子对象的初始化由最派生类完成 C.虚基类的构造函数可能调用多次 D.虚基类的构造函数先于非虚基类的构造函数执行 正确答案: 2.下列关于静态数据成员特性的描述中,错误的是()。 A.说明静态数据成员时前边要加修饰符static B.静态数据成员要在类体外进行初始化 C.静态数据成员不是所有对象所共有的 D.引用静态数据成员时,要在其名称前加<类名>和作用域运算符 正确答案: 3.下列程序的输出结果是()。 #include MyClass(){cout<<'A';}MyClass(charc){cout< A.ABX B.ABXB C.AXB D.AXBB 正确答案: 4.设置虚基类的目的是()。 A.简化程序 B.消除二义性 C.提高运行效率 D.减少目标代码 正确答案: 5.在下列函数原型中,可以作为类A构造函数的是()。 A.voidA(int); B.intA(); C.A(int)const; D.A(int); 正确答案: 6.下列关于派生类的描述中,错误的是()。 A.派生类继承了基类的所有成员 B.派生类能够作为基类继续派生新类 C.派生类可以有多个直接基类 D.派生类的默认继承方式是public 正确答案: 7.设Address表示整型变量x的地址,则下列语句执行后的输出结果为()。 intx=100,&r=x;cout< A.Address-100 B.100-100 C.Address-Address D.100-Address 正确答案: 8.在下面的类定义中,横线处应填入的内容是()。 classMyClass{private: staticintcount;};count=0; A.int B.staticint C.intMyClass D.staticintMyClass: 正确答案: 9.有如下类声明: classFoo{voidfun();};,则Foo类的成员fun是()。 A.公有数据成员 B.公有成员函数 C.私有数据成员 D.私有成员函数 正确答案: 10.下列程序的输出结果是()。 #include intf()const{return3;}intf(){return5;}};intmain(){VACv1;constVACv2;cout< A.53 B.35 C.55 D.33 正确答案: 11.友元运算符obj1>obj2被C++编译器解释为()。 A.operator>(obj1,obj2) B.>(obj1,obj2) C.obj2.operator>(obj1) D.obj1.operator>(obj2) 正确答案: 12.下列描述中,()不是面向对象系统包含的要素。 A.对象 B.类 C.继承 D.函数 正确答案: 13.下列关于友元的描述中,错误的是()。 A.友元破坏了类的封装性 B.友元提高了程序的运行效率 C.友元可以在类外声明和定义 D.友元能够访问类中的私有成员 正确答案: 14.假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用()。 A.cout<<*p B.cout< C.cout< D.cout< 正确答案: 15.下列关于类型转换的描述中,正确的是()。 A.由不同类型操作数组成的表达式的类型一定是最高类型double类型 B.强制类型转换都是非保值映射 C.赋值表达式的类型是左值的类型 D.类型转换是永久性的 正确答案: 16.在派生类中重新定义虚函数时,除了()方面,其他方面都必须与基类中相应的虚函数保持一致。 A.参数个数 B.参数类型 C.函数名称 D.函数体 正确答案: 17.下列语句中,会产生编译错误的是()。 A.intx=5;int&ref=x; B.constintsize; C.intx=5;int&ref=x;x++; D.constintsize=100; 正确答案: 18.下列关于堆运算符的描述中,错误的是()。 A.使用堆运算符可以动态建立或删除对象 B.可以在使用new[]创建数组时,为每个数组元素指定初始值 C.new运算符创建对象时要调用构造函数 D.delete运算符可以作用于空指针 正确答案: 19.在横线处填入语句()后,下列语句序列能够正确执行。 。 int*ptr;delete[]ptr; A.ptr=newint(5); B.ptr=newint[5]; C.ptr=newint; D.ptr=malloc(5); 正确答案: 20.在一个派生类对象结束其生命周期时,下列描述中正确的是()。 A.先调用派生类的析构函数后调用基类的析构函数 B.先调用基类的析构函数后调用派生类的析构函数 C.如果基类没有定义析构函数,则只调用派生类的析构函数 D.如果派生类没有定义析构函数,则只调用基类的析构函数 正确答案: 21.将一些函数体代码不是很大,但被频繁调用的函数定义为(),可以解决程序中函数调用的效率问题。 A.重载函数 B.内联函数 C.递归函数 D.友元函数 正确答案: 22.设置虚基类的目的是_____。 A.简化程序; B.消除二义性; C.提高运行效率; D.减少目标代码; 正确答案: 23.下列关于运算符重载的描述中,______是正确的。 A.运算符重载可以改变运算数的个数; B.运算符重载可以改变优先级; C.运算符重载可以改变结合性; D.运算符重载不可以改变语法结构。 正确答案: 24.假定p是具有int**类型的指针变量,则给p赋值的正确语句为()。 A.p=newint B.p=newint* C.p=newint** D.p=newint[10] 正确答案: 25.多继承时对象的构造顺序中包含如下4步: ①所有非虚基类的构造函数按照它们被继承的顺序构造;②所有虚基类的构造函数按照它们被继承的顺序构造;③所有子对象的构造函数按照它们声明的顺序构造;④派生类自己的构造函数体;这4个步骤的正确顺序是()。 A.④③①② B.②④③① C.②①③④ D.③④①② 正确答案: 26.关于运行时多态的下列描述中,______是错误的。 A.运行时多态是以虚函数为基础的; B.运行时多态是在运行时确定所调用的函数代码的; C.用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态; D.运行时多态是在编译时确定操作函数的 正确答案: 27.有如下头文件: intf1();staticintf2();classMy{public: intf3();staticintf4();};在上述4个函数中,具有隐含的this指针的是()。 A.f1 B.f2 C.f3 D.f4 正确答案: 28.下列关于对象概念的描述中,错误的是()。 A.对象就是C语言中的结构变量 B.对象代表着正在创建的系统中的一个实体 C.对象是状态和操作(或方法)的封装体 D.对象之间的信息传递是通过消息进行的 正确答案: 29.释放一个类的对象时,系统自动调用()。 A.构造函数 B.析构函数 C.成员函数 D.友元函数 正确答案: 30.print()函数是某类中无返回值的常成员函数,下列表示中,正确的是()。 A.voidprint()const B.constvoidprint() C.voidconstprint() D.voidprint(const) 正确答案: 31.下列关于构造函数和析构函数的描述中,错误的是()。 A.构造函数可以重载 B.析构函数名与类名相同 C.构造函数中可以设置参数的默认值 D.类中只有一个析构函数 正确答案: 32.已知函数f的原型是voidf(int*x,doubley);,变量i1、d2的定义为: inti1;doubled2;,则下列函数调用语句中,正确的是()。 A.f(i1,d2); B.f(&i1,d2); C.f(i1,&d2); D.f(&i1,&d2); 正确答案: 33.在下列的各类函数中,______不是类的成员函数。 A.构造函数 B.析构函数 C.友元函数 D.拷贝构造函数 正确答案: 34.下列类说明中,错误的是()。 classSample{public: Sample(intval);//A~Sample();//Bprivate: inta=2.5;//CSample();//D}; A.//A B.//B C.//C D.//D 正确答案: 35.下列关于继承的描述中,错误的是()。 A.派生类对象不能访问基类的保护成员 B.派生类对基类成员的访问权限随着继承方式而改变 C.派生类成员可以访问基类的私有成员 D.派生类继承了基类的所有成员 正确答案: 36.下列函数中,不是类的成员函数的是()。 A.构造函数 B.友元函数 C.析构函数 D.复制构造函数 正确答案: 37.执行下列程序后的输出结果是()。 #include A.002 B.012 C.102 D.112 正确答案: 38.假定k是一个double类型的变量,则关于变量p的正确定义语句为()。 A.doublep=&k B.int*p=&k C.double&p=*k D.char*p=”Thankyou! ” 正确答案: 北理工《面向对象程序设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 17 北理工 面向 对象 程序设计 在线 作业