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