20年春北理工《面向对象程序设计》在线作业[答案]满分答案
北理工《面向对象程序设计》在线作业-0003
试卷总分:100 得分:100
一、单选题 (共 38 道试题,共 76 分)
1.对虚函数的调用()
A.必须使用动态联编
B.不一定使用动态联编
C.一定使用静态联编
D.一定使用动态联编
专业答案:----
2.下列关于派生类的描述中,错误的是()。
A.派生类能够作为基类继续派生新类
B.派生类继承了基类的所有成员
C.派生类的默认继承方式是public
D.派生类可以有多个直接基类
专业答案:----
3.将一些函数体代码不是很大,但被频繁调用的函数定义为(),可以解决程序中函数调用的效率问题。
A.重载函数
B.递归函数
C.友元函数
D.内联函数
正确答案:----
4.下列描述中,()不是面向对象系统包含的要素。
A.继承
B.类
C.对象
D.函数
专业答案:----
5.若有语句int*p=newint[5];int*pi;则以下语句中,执行时会造成delete[]p语句的执行出错的是______。
正确答案:----
A.pi=p+3;
B.pi = p;;
C.p++;
D.(*p)++;
专业答案:----
6.有如下类定义:classMyClass{public:intgetRef()const{return&a;}intgetValue()const{returna;}voidset(intn)const{a=n;}friendvoidshow(MyClassobj)const{cout<<a;}};下列函数中,定义正确的是()。
专业答案:----
A.show
B.set
C.getValue
D.getRef
专业答案:----
7.设Address表示整型变量x的地址,则下列语句执行后的输出结果为()。intx=100,&r=x;cout<<x<<'-'<<&r<<endl;
专业答案:----
A.Address-Address
正确答案:----
正确答案:----
B.Address-100
正确选项:----
C.100-Address
D.100-100
正确选项:----
8.下列关于堆运算符的描述中,错误的是()。
A.可以在使用new[]创建数组时,为每个数组元素指定初始值
B.使用堆运算符可以动态建立或删除对象
C.new运算符创建对象时要调用构造函数
D.delete运算符可以作用于空指针
正确选项:----
9.下列关于函数重载的描述中,错误的是()。
A.重载函数的返回值类型必须不同
B.重载函数的参数可以带有默认值
C.重载函数的参数列表必须不同
D.函数重载就是用相同的函数名定义多个函数
正确选项:----
10.设置虚基类的目的是()。
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码
正确选项:----
11.假定k是一个double类型的变量,则关于变量p的正确定义语句为()。
正确选项:----
A.int*p=&k
B.doublep=&k
专业答案:----
C.double&p=*k
正确答案:----
D.char*p=”Thankyou!”
专业答案:----
12.下列关于友元的描述中,错误的是()。
A.友元能够访问类中的私有成员
B.友元破坏了类的封装性
C.友元提高了程序的运行效率
D.友元可以在类外声明和定义
专业答案:----
13.在下列的各类函数中,______不是类的成员函数。
A.析构函数
B.构造函数
C.拷贝构造函数
D.友元函数
正确答案:----
14.一个类的构造函数为“B(intax,intbx):a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为______。
专业答案:----
A.4
B.3
C.2
D.1
正确选项:----
15.在下列函数原型中,可以作为类A构造函数的是()。
A.void A(int);
正确答案:----
B.int A();
C.A(int) const;
D.A(int);
正确选项:----
16.下列对引用的陈述中不正确的是()。
A.每一个引用都是其所引用对象的别名,因此必须初始化
B.形式上针对引用的操作实际上作用于它所引用的对象
C.不需要单独为引用分配存储空间
D.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
专业答案:----
17.下列语句中,正确的是()。
A.int &ref;
B.const int temp;
C.const int size=100 ;......size=10 ;
D.const int buffer=256;
正确答案:----
18.下列程序的输出结果是()。#include<iostream.h>classMyClass{public:MyClass(){cout<<'A';}MyClass(charc){cout<<c;}~MyClass(){cout<<'B';}};intmain(){MyClassp1,*p2;p2=newMyClass('X');deletep2;return0;
专业答案:----
A.AXBB
B.AXB
C.ABXB
D.ABX
专业答案:----
19.下列关于虚基类的描述中,错误的是()
A.设置虚基类的目的是消除二义性
B.虚基类的构造函数可能调用多次
C.虚基类的构造函数先于非虚基类的构造函数执行
D.虚基类子对象的初始化由最派生类完成
正确选项:----
20.派生类对象对它的基类成员中()是可以访问的。
A.私有继承的公有成员
B.公有继承的私有成员
C.公有继承的公有成员
D.公有继承的保护成员
正确选项:----
21.若函数原型为voidFun(intx,inty=6,intchar='a'),则下列调用错误的是()。
正确答案:----
A.Fun(5, 'b')
B.Fun(5,8)
C.Fun(5)
D.Fun(2,4, 'b')
专业答案:----
22.有如下类声明:classFoo{voidfun();};,则Foo类的成员fun是()。
正确选项:----
A.私有数据成员
B.私有成员函数
C.公有数据成员
D.公有成员函数
专业答案:----
23.在一个派生类对象结束其生命周期时,下列描述中正确的是()。
A.如果派生类没有定义析构函数,则只调用基类的析构函数
B.如果基类没有定义析构函数,则只调用派生类的析构函数
C.先调用派生类的析构函数后调用基类的析构函数
D.先调用基类的析构函数后调用派生类的析构函数
正确选项:----
24.下列关于对象概念的描述中,错误的是()。
A.对象是状态和操作(或方法)的封装体
B.对象就是C语言中的结构变量
C.对象代表着正在创建的系统中的一个实体
D.对象之间的信息传递是通过消息进行的
正确选项:----
25.在派生类中重新定义虚函数时,除了()方面,其他方面都必须与基类中相应的虚函数保持一致。
A.参数类型
B.参数个数
C.函数名称
D.函数体
正确答案:----
26.print()函数是某类中无返回值的常成员函数,下列表示中,正确的是()。
A.void print(const)
专业答案:----
B.void print() const
正确选项:----
C.void const print()
正确答案:----
D.const void print()
正确选项:----