新浪博客

北理工《面向对象程序设计》在线作业满分

2018-04-02 16:17阅读:
北理工《面向对象程序设计》在线作业
试卷总分:100 得分100
一、 单选题 (共 38 道试题,共 76 分)
1.对虚函数的调用()
A.一定使用动态联编
B.必须使用动态联编
C.一定使用静态联编
D.不一定使用动态联编
正确答案 :D
更 多 Q Q 2959415429 微 信 open4511
2.下列关于派生类的描述中,错误的是()。
A.派生类继承了基类的所有成员
B.派生类能够作为基类继续派生新类
C.派生类可以有多个直接基类
D.派生类的默认继承方式是public
正确答案 :D
3.将一些函数体代码不是很大,但被频繁调用的函数定义为(),可以解决程序中函数调用的效率问题。
A.重载函数
B.内联函数
C.递归函数
D.友元函数
正确答案 :B
4.下列描述中,()不是面向对象系统包含的要素。
A.对象
B.类
C.继承
D.函数
正确答案 :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<<e
ndl;
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.下列程序的输出结果是()。#includeclassMyClass{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)
27.多继承时对象的构造顺序中包含如下4步:所有非虚基类的构造函数按照它们被继承的顺序构造;所有虚基类的构造函数按照它们被继承的顺序构造;所有子对象的构造函数按照它们声明的顺序构造;派生类自己的构造函数体;这4个步骤的正确顺序是()。
A.
B.
C.
D.
28.下列语句中,会产生编译错误的是()。
A.int x=5; int &ref=x;
B.const int size;
C.int x=5; int &ref=x; x++;
D.const int size=100;
29.执行下列程序后的输出结果是()。#includeintfun1(intx){return++x;}intfun2(int&x){return++x;}intmain(){inta=0,b=0,c=0;c=fun1(a)+fun2(b);cout<<a<<b<<c<<endl;return0;}
A.002
B.012
C.102
D.112
30.友元运算符obj1>obj2被C++编译器解释为()。
A.operator >(obj1,obj2)
B.>(obj1,obj2)
C.obj2.operator >(obj1)
D.obj1.operator >(obj2)
31.在下面的类定义中,横线处应填入的内容是()。classMyClass{private:staticintcount;};count=0;
A.int
B.static int
C.int MyClass
D.static int MyClass:
32.整型变量中,八进制数的数字前面需要加数字()
A.8
B.0X
C.不需要
D.0
33.ios提供的格式控制标志位中,()是转换为八进制形式的标志位。
A.hex
B.oct
C.dec
D.left
34.下列函数参数默认值定义错误的是()。
A.Fun(int x=0,int y=0)
B.Fun(int x,int y)
C.Fun(int x,int y=0)
D.Fun(int x=0,int y)
35.下列说法不正确的是_______。
A.在类中,成员的默认访问特性是私有的
B.类封装了数据和操作。
C.类实质上是一种数据类型。
D.在类的定义中,必须包含private、public、protected三种存取方式对应得部分。
36.下列选项中,表示纯虚函数的是()。
A.virtual void fun()=0;
B.2. void fun(int)=0;
C.virtual int fun(int);
D.virtual void fun(int) {}
37.关于封装,下列说法中不正确的是()。
A.通过封装,对象的全部属性和操作结合在一起,形成一个整体
B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C.通过封装,每个对象都成为相对独立的实体
D.通过封装,对象的属性都是不可见的
38.若有如下函数声明:voidFun(int);,则下列()不能与该函数进行重载。
A.void Fun(int,int);
B.void Fun(double);
C.int Fun(int);
D.void Fun(int) const
二、 多选题 (共 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.可以在类的构造函数中对静态数据成员进行初始化。
A.错误
B.正确
5.构造函数可以被继承
A.错误
B.正确
6.某类中的友元类的所有成员函数都可以存取或修改该类中的私有成员。
A.错误
B.正确
7.单继承时,派生类中对基类成员的访问也会出现二义性。
A.错误
B.正确
8.派生类从基类派生而来,不能再生成新的派生类。
A.错误
B.正确
北理工《面向对象程序设计》在线作业 -0001
试卷总分:100 得分:100
一、 单选题 (共 38 道试题,共 76 分)
1.整型变量中,八进制数的数字前面需要加数字()
A.8
B.0X
C.不需要
D.0
2.下列关于静态数据成员特性的描述中,错误的是()。
A.说明静态数据成员时前边要加修饰符static
B.静态数据成员要在类体外进行初始化
C.静态数据成员不是所有对象所共有的
D.引用静态数据成员时,要在其名称前加<类名>和作用域运算符
正确 答案:C
3.一个类的构造函数为“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
正确答 案:A
4.下列运算符中,在C++中不能重载的是()。
A._
B.()
C.::
D.||
5.下列关于C++函数的描述中,正确的是()。
A.每个函数至少要有一个参数
B.每个函数都必须返回一个值
C.函数在被调用之前必须先进行声明或定义
D.函数不能自己调用自己
6.下列关于成员访问权限的描述中,错误的是()。
A.公有数据成员和公有成员函数都可以被类对象直接处理
B.类的私有数据成员只能被公有成员函数以及该类的友元访问
C.只有类或派生类的成员函数和友元可以访问保护成员
D.保护成员可以在派生类中被访问,而私有成员不可以
7.下列函数中,不是类的成员函数的是()。
A.构造函数
B.友元函数
C.析构函数
D.复制构造函数
8.下列关于this指针的描述中,正确的是()。
A.任何与类相关的函数都有this指针
B.类的成员函数都有this指针
C.类的友元函数都有this指针
D.类的非静态成员函数都有this指针
9.下列关于继承的描述中,错误的是()。
A.派生类对象不能访问基类的保护成员
B.派生类对基类成员的访问权限随着继承方式而改变
C.派生类成员可以访问基类的私有成员
D.派生类继承了基类的所有成员
10.有如下头文件:intf1();staticintf2();classMy{public:intf3();staticintf4();};在上述4个函数中,具有隐含的this指针的是()。
A.f1
B.f2
C.f3
D.f4
11.下列输出字符'A'的方法中,()是错误的。
A.cout<<put('A');
B.cout<<'A';
C.cout.put('A');
D.char A='A';cout<<A;
12.下列关键字中不能用来声明类成员访问权限的是()。
A.public
B.static
C.protected
D.private
13.假定p是具有int**类型的指针变量,则给p赋值的正确语句为()。
A.p=newint
B.p=newint*
C.p=newint**
D.p=newint[10]
14.变量s的定义为“char*s=”Helloworld!”;”,要使变量p指向s所指向的同一个字符串,则应选取()。
A.char*p=s
B.char*p=&s
C.char*p;p=*s
D.char*p;p=&s
15.C++中用于实现运行时多态性的是()。
A.内联函数
B.重载函数
C.静态函数
D.虚函数
16.若有如下函数声明:voidFun(int);,则下列()不能与该函数进行重载。
A.void Fun(int,int);
B.void Fun(double);
C.int Fun(int);
D.void Fun(int) const
17.对虚函数的调用()
A.一定使用动态联编
B.必须使用动态联编
C.一定使用静态联编
D.不一定使用动态联编
18.下列关于类型转换的描述中,正确的是()。
A.由不同类型操作数组成的表达式的类型一定是最高类型double类型
B.强制类型转换都是非保值映射
C.赋值表达式的类型是左值的类型
D.类型转换是永久性的
19.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加()。
A.1
B.4
C.sizeof(double)
D.sizeof(p)
20.下列说法不正确的是_______。
A.在类中,成员的默认访问特性是私有的
B.类封装了数据和操作。
C.类实质上是一种数据类型。
D.在类的定义中,必须包含private、public、protected三种存取方式对应得部分。
21.下列情况中,不会调用复制构造函数的是()。
A.用一个对象去初始化同一类的另一个新对象时
B.将类的一个对象赋值给该类的另一个对象时
C.函数的形参是类的对象,调用函数用形参初始化实参时
D.函数的返回值是类的对象,函数执行返回调用时
22.下列关于构造函数和析构函数的描述中,错误的是()。
A.构造函数可以重载
B.析构函数名与类名相同
C.构造函数中可以设置参数的默认值
D.类中只有一个析构函数
23.列符号中能够作为C++标识符的是()。
A.const
B.2a
C._shape
D._count
24.友元运算符obj1>obj2被C++编译器解释为()。
A.operator >(obj1,obj2)
B.>(obj1,obj2)
C.obj2.operator >(obj1)
D.obj1.operator >(obj2)
25.如果派生类以protected方式继承基类,则基类的protected成员和public成员在派生中的访问权限分别为()。
A.public和public
B.public和protected
C.protected和public
D.protected和public
E.protected和protected
26.在派生类中重新定义虚函数时,除了()方面,其他方面都必须与基类中相应的虚函数保持一致。
A.参数个数
B.参数类型
C.函数名称
D.函数体
27.下列程序的输出结果是()。#includeclassMyClass{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
28.下列关于堆运算符的描述中,错误的是()。
A.使用堆运算符可以动态建立或删除对象
B.可以在使用new[]创建数组时,为每个数组元素指定初始值
C.new运算符创建对象时要调用构造函数
D.delete运算符可以作用于空指针
29.在下列的各类函数中,______不是类的成员函数。
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
30.下列关于运算符重载的描述中,______是正确的。
A.运算符重载可以改变运算数的个数;
B.运算符重载可以改变优先级;
C.运算符重载可以改变结合性;
D.运算符重载不可以改变语法结构。
31.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。
A.int*p=newint[30]
B.int*p=newint(30)
C.int*p=new[30]int*p=new[30]
D.*p=newint[30]
32.派生类对象对它的基类成员中()是可以访问的。
A.公有继承的私有成员
B.公有继承的保护成员
C.公有继承的公有成员
D.私有继承的公有成员
33.下列函数参数默认值定义错误的是()。
A.Fun(int x=0,int y=0)
B.Fun(int x,int y)
C.Fun(int x,int y=0)
D.Fun(int x=0,int y)
34.下列对引用的陈述中不正确的是()。
A.每一个引用都是其所引用对象的别名,因此必须初始化
B.形式上针对引用的操作实际上作用于它所引用的对象
C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
D.不需要单独为引用分配存储空间
35.有如下类声明:classMyClass{public:MyClass(){cout<<1;}};执行语句MyClassa,b[2],*p[2];后,程序的输出结果是()。
A.11
B.111
C.1111
D.11111
36.有如下类定义: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
37.下列关于派生类的描述中,错误的是()。
A.派生类继承了基类的所有成员
B.派生类能够作为基类继续派生新类
C.派生类可以有多个直接基类
D.派生类的默认继承方式是public
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.某类中的友元类的所有成员函数都可以存取或修改该类中的私有成员。
A.错误
B.正确
5.单继承时,派生类中对基类成员的访问也会出现二义性。
A.错误
B.正确
6.动态联编在运行时选定调用的成员函数。
A.错误
B.正确
7.只要是类M继承了类N,那么类M就是类N的子类型。
A.错误
B.正确
8.构造函数可以被继承
A.错误
B.正确
北理工《面向对象程序设计》在线作业 -0005
试卷总分:100 得分:100
一、 单选题 (共 38 道试题,共 76 分)
1.下列情况中,不会调用复制构造函数的是()。
A.用一个对象去初始化同一类的另一个新对象时
B.将类的一个对象赋值给该类的另一个对象时
C.函数的形参是类的对象,调用函数用形参初始化实参时
D.函数的返回值是类的对象,函数执行返回调用时
正确答 案:B
2.对语句(1)constint*x;和语句(2)int*constx;,描述正确的是()。
A.语句(1)的含义是指针变量x不能更改
B.语句(2)的含义是指针变量x所指向的值不能更改
C.语句(2)的含义是指针变量x不能更改
D.语句(1)和(2)是相同含义的不同定义方式
正确答案 :C
3.下列关于类型转换的描述中,正确的是()。
A.由不同类型操作数组成的表达式的类型一定是最高类型double类型
B.强制类型转换都是非保值映射
C.赋值表达式的类型是左值的类型
D.类型转换是永久性的
正确答案 :C
4.整型变量中,八进制数的数字前面需要加数字()
A.8
B.0X
C.不需要
D.0
正确答案 :D
5.将一些函数体代码不是很大,但被频繁调用的函数定义为(),可以解决程序中函数调用的效率问题。
A.重载函数
B.内联函数
C.递归函数
D.友元函数
6.对虚函数的调用()
A.一定使用动态联编
B.必须使用动态联编
C.一定使用静态联编
D.不一定使用动态联编
7.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。
A.int*p=newint[30]
B.int*p=newint(30)
C.int*p=new[30]int*p=new[30]
D.*p=newint[30]
8.下列函数参数默认值定义错误的是()。
A.Fun(int x=0,int y=0)
B.Fun(int x,int y)
C.Fun(int x,int y=0)
D.Fun(int x=0,int y)
9.在派生类中重新定义虚函数时,除了()方面,其他方面都必须与基类中相应的虚函数保持一致。
A.参数个数
B.参数类型
C.函数名称
D.函数体
10.下列不是C++基本数据类型的是______。
A.int
B.string
C.char
D.void
11.关于运行时多态的下列描述中,______是错误的。
A.运行时多态是以虚函数为基础的;
B.运行时多态是在运行时确定所调用的函数代码的;
C.用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态;
D.运行时多态是在编译时确定操作函数的
12.在下列的各类函数中,______不是类的成员函数。
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
13.友元运算符obj1>obj2被C++编译器解释为()。
A.operator >(obj1,obj2)
B.>(obj1,obj2)
C.obj2.operator >(obj1)
D.obj1.operator >(obj2)
14.下列关于C++函数的描述中,正确的是()。
A.每个函数至少要有一个参数
B.每个函数都必须返回一个值
C.函数在被调用之前必须先进行声明或定义
D.函数不能自己调用自己
15.下列关于静态数据成员特性的描述中,错误的是()。
A.说明静态数据成员时前边要加修饰符static
B.静态数据成员要在类体外进行初始化
C.静态数据成员不是所有对象所共有的
D.引用静态数据成员时,要在其名称前加<类名>和作用域运算符
16.下列类说明中,错误的是()。classSample{public:Sample(intval);//A~Sample();//Bprivate:inta=2.5;//CSample();//D};
A.//A
B.//B
C.//C
D.//D
17.多继承时对象的构造顺序中包含如下4步:所有非虚基类的构造函数按照它们被继承的顺序构造;所有虚基类的构造函数按照它们被继承的顺序构造;所有子对象的构造函数按照它们声明的顺序构造;派生类自己的构造函数体;这4个步骤的正确顺序是()。
A.
B.
C.
D.
18.复制构造函数的参数通常为()
A.某个对象名
B.某个对象的成员名
C.某个对象的引用名
D.某个对象的指针名
19.设置虚基类的目的是()。
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码
20.列符号中能够作为C++标识符的是()。
A.const
B.2a
C._shape
D._count
21.变量s的定义为“char*s=”Helloworld!”;”,要使变量p指向s所指向的同一个字符串,则应选取()。
A.char*p=s
B.char*p=&s
C.char*p;p=*s
D.char*p;p=&s
22.有如下头文件:intf1();staticintf2();classMy{public:intf3();staticintf4();};在上述4个函数中,具有隐含的this指针的是()。
A.f1
B.f2
C.f3
D.f4
23.下列关键字中不能用来声明类成员访问权限的是()。
A.public
B.static
C.protected
D.private
24.如果派生类以protected方式继承基类,则基类的protected成员和public成员在派生中的访问权限分别为()。
A.public和public
B.public和protected
C.protected和public
D.protected和public
E.protected和protected
25.不可以成为类的数据成员的是______
A.自身类的对象
B.另一个类的对象
C.自身类的指针或引用
D.其他基本数据类型
26.print()函数是某类中无返回值的常成员函数,下列表示中,正确的是()。
A.void print() const
B.const void print()
C.void const print()
D.void print(const)
27.C++中用于实现运行时多态性的是()。
A.内联函数
B.重载函数
C.静态函数
D.虚函数
28.下列关于this指针的描述中,正确的是()。
A.任何与类相关的函数都有this指针
B.类的成员函数都有this指针
C.类的友元函数都有this指针
D.类的非静态成员函数都有this指针
29.下列关于友元的描述中,错误的是()。
A.友元破坏了类的封装性
B.友元提高了程序的运行效率
C.友元可以在类外声明和定义
D.友元能够访问类中的私有成员
30.下列输出字符'A'的方法中,()是错误的。
A.cout<<put('A');
B.cout<<'A';
C.cout.put('A');
D.char A='A';cout<<A;
31.下列关于运算符重载的描述中,______是正确的。
A.运算符重载可以改变运算数的个数;
B.运算符重载可以改变优先级;
C.运算符重载可以改变结合性;
D.运算符重载不可以改变语法结构。
32.假定p是具有int**类型的指针变量,则给p赋值的正确语句为()。
A.p=newint
B.p=newint*
C.p=newint**
D.p=newint[10]
33.下列描述中,错误的是()。
A.内联函数主要解决程序的运行效率问题
B.内联函数的定义必须出现在内联函数第一次被调用之前
C.内联函数中可以包括各种语句
D.对内联函数不可以进行异常接口声明
34.在横线处填入语句()后,下列语句序列能够正确执行。。int*ptr;delete[]ptr;
A.ptr=new int(5);
B.ptr=new int[5];
C.ptr=new int;
D.ptr=malloc(5);
35.假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用()。
A.cout<<*p
B.cout<<p
C.cout<<p
D.cout<<p
36.下列关于成员访问权限的描述中,错误的是()。
A.公有数据成员和公有成员函数都可以被类对象直接处理
B.类的私有数据成员只能被公有成员函数以及该类的友元访问
C.只有类或派生类的成员函数和友元可以访问保护成员
D.保护成员可以在派生类中被访问,而私有成员不可以
37.下面是派生类声明的开始部分,正确的是()。
A.class virtual B : public A
B.virtual class B : public A
C.class B : public A virtual
D.class B : virtual public A
38.下列语句中,会产生编译错误的是()。
A.int x=5; int &ref=x;
B.const int size;
C.int x=5; int &ref=x; x++;
D.const int size=100;
二、 多选题 (共 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.派生类从基类派生而来,不能再生成新的派生类。
A.错误
B.正确
5.只要是类M继承了类N,那么类M就是类N的子类型。
A.错误
B.正确
6.动态联编在运行时选定调用的成员函数。
A.错误
B.正确
7.重载运算符保持原运算符的优先级和结合性不变。
A.错误
B.正确
8.可以在类的构造函数中对静态数据成员进行初始化。
A.错误
B.正确
北理工《面向对象程序设计》在线作业 -0004
试卷总分:100 得分:100
一、 单选题 (共 38 道试题,共 76 分)
1.关于运行时多态的下列描述中,______是错误的。
A.运行时多态是以虚函数为基础的;
B.运行时多态是在运行时确定所调用的函数代码的;
C.用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态;
D.运行时多态是在编译时确定操作函数的
正确答案 :C
2.在下列函数原型中,可以作为类A构造函数的是()。
A.void A(int);
B.int A();
C.A(int) const;
D.A(int);
正确答案 :D
3.复制构造函数的参数通常为()
A.某个对象名
B.某个对象的成员名
C.某个对象的引用名
D.某个对象的指针名
正确答案 :C
4.释放一个类的对象时,系统自动调用()。
A.构造函数
B.析构函数
C.成员函数
D.友元函数
正确答案 :B
5.下列函数中,不是类的成员函数的是()。
A.构造函数
B.友元函数
C.析构函数
D.复制构造函数
6.设置虚基类的目的是()。
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码
7.对语句(1)constint*x;和语句(2)int*constx;,描述正确的是()。
A.语句(1)的含义是指针变量x不能更改
B.语句(2)的含义是指针变量x所指向的值不能更改
C.语句(2)的含义是指针变量x不能更改
D.语句(1)和(2)是相同含义的不同定义方式
8.下列对引用的陈述中不正确的是()。
A.每一个引用都是其所引用对象的别名,因此必须初始化
B.形式上针对引用的操作实际上作用于它所引用的对象
C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
D.不需要单独为引用分配存储空间
9.下列关于类成员的描述中,正确的是()。
A.友元函数是类的成员函数
B.类成员的默认访问权限是私有的
C.类成员函数必须声明为公有的
D.类的静态数据成员不能是常成员
10.若函数原型为voidFun(intx,inty=6,intchar='a'),则下列调用错误的是()。
A.Fun(5)
B.Fun(5, 'b')
C.Fun(5,8)
D.Fun(2,4, 'b')
11.下列关于静态数据成员特性的描述中,错误的是()。
A.说明静态数据成员时前边要加修饰符static
B.静态数据成员要在类体外进行初始化
C.静态数据成员不是所有对象所共有的
D.引用静态数据成员时,要在其名称前加<类名>和作用域运算符
12.下列描述中,错误的是()。
A.内联函数主要解决程序的运行效率问题
B.内联函数的定义必须出现在内联函数第一次被调用之前
C.内联函数中可以包括各种语句
D.对内联函数不可以进行异常接口声明
13.执行下列程序后的输出结果是()。#includeintfun1(intx){return++x;}intfun2(int&x){return++x;}intmain(){inta=0,b=0,c=0;c=fun1(a)+fun2(b);cout<<a<<b<<c<<endl;return0;}
A.002
B.012
C.102
D.112
14.下列关于类型转换的描述中,正确的是()。
A.由不同类型操作数组成的表达式的类型一定是最高类型double类型
B.强制类型转换都是非保值映射
C.赋值表达式的类型是左值的类型
D.类型转换是永久性的
15.下列关于运算符重载的描述中,______是正确的。
A.运算符重载可以改变运算数的个数;
B.运算符重载可以改变优先级;
C.运算符重载可以改变结合性;
D.运算符重载不可以改变语法结构。
16.表达式18/4*sqrt(4.0)/5的数据类型是()。
A.int
B.float
C.double
D.不确定
17.不可以成为类的数据成员的是______
A.自身类的对象
B.另一个类的对象
C.自身类的指针或引用
D.其他基本数据类型
18.下列语句中,会产生编译错误的是()。
A.int x=5; int &ref=x;
B.const int size;
C.int x=5; int &ref=x; x++;
D.const int size=100;
19.下列关于成员访问权限的描述中,错误的是()。
A.公有数据成员和公有成员函数都可以被类对象直接处理
B.类的私有数据成员只能被公有成员函数以及该类的友元访问
C.只有类或派生类的成员函数和友元可以访问保护成员
D.保护成员可以在派生类中被访问,而私有成员不可以
20.下列关于虚基类的描述中,错误的是()
A.设置虚基类的目的是消除二义性
B.虚基类子对象的初始化由最派生类完成
C.虚基类的构造函数可能调用多次
D.虚基类的构造函数先于非虚基类的构造函数执行
21.将一些函数体代码不是很大,但被频繁调用的函数定义为(),可以解决程序中函数调用的效率问题。
A.重载函数
B.内联函数
C.递归函数
D.友元函数
22.派生类对象对它的基类成员中()是可以访问的。
A.公有继承的私有成员
B.公有继承的保护成员
C.公有继承的公有成员
D.私有继承的公有成员
23.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。
A.int*p=newint[30]
B.int*p=newint(30)
C.int*p=new[30]int*p=new[30]
D.*p=newint[30]
24.下列关键字中不能用来声明类成员访问权限的是()。
A.public
B.static
C.protected
D.private
25.下列不是C++基本数据类型的是______。
A.int
B.string
C.char
D.void
26.关于封装,下列说法中不正确的是()。
A.通过封装,对象的全部属性和操作结合在一起,形成一个整体
B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C.通过封装,每个对象都成为相对独立的实体
D.通过封装,对象的属性都是不可见的
27.多继承时对象的构造顺序中包含如下4步:所有非虚基类的构造函数按照它们被继承的顺序构造;所有虚基类的构造函数按照它们被继承的顺序构造;所有子对象的构造函数按照它们声明的顺序构造;派生类自己的构造函数体;这4个步骤的正确顺序是()。
A.
B.
C.
D.
28.在派生类中重新定义虚函数时,除了()方面,其他方面都必须与基类中相应的虚函数保持一致。
A.参数个数
B.参数类型
C.函数名称
D.函数体
29.下面是派生类声明的开始部分,正确的是()。
A.class virtual B : public A
B.virtual class B : public A
C.class B : public A virtual
D.class B : virtual public A
30.下列输出字符'A'的方法中,()是错误的。
A.cout<<put('A');
B.cout<<'A';
C.cout.put('A');
D.char A='A';cout<<A;
31.设Address表示整型变量x的地址,则下列语句执行后的输出结果为()。intx=100,&r=x;cout<<x<<'-'<<&r<<endl;
A.Address-100
B.100-100
C.Address-Address
D.100-Address
32.列符号中能够作为C++标识符的是()。
A.const
B.2a
C._shape
D._count
33.C++中用于实现运行时多态性的是()。
A.内联函数
B.重载函数
C.静态函数
D.虚函数
34.在横线处填入语句()后,下列语句序列能够正确执行。。int*ptr;delete[]ptr;
A.ptr=new int(5);
B.ptr=new int[5];
C.ptr=new int;
D.ptr=malloc(5);
35.有如下类声明:classMyClass{public:MyClass(){cout<<1;}};执行语句MyClassa,b[2],*p[2];后,程序的输出结果是()。
A.11
B.111
C.1111
D.11111
36.下列情况中,不会调用复制构造函数的是()。
A.用一个对象去初始化同一类的另一个新对象时
B.将类的一个对象赋值给该类的另一个对象时
C.函数的形参是类的对象,调用函数用形参初始化实参时
D.函数的返回值是类的对象,函数执行返回调用时
37.下列关于this指针的描述中,正确的是()。
A.任何与类相关的函数都有this指针
B.类的成员函数都有this指针
C.类的友元函数都有this指针
D.类的非静态成员函数都有this指针
38.整型变量中,八进制数的数字前面需要加数字()
A.8
B.0X
C.不需要
D.0
二、 多选题 (共 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.正确
北理工《面向对象程序设计》在线作业
试卷总分:100 得分100
一、 单选题 (共 38 道试题,共 76 分)
1.下列类说明中,错误的是()。classSample{public:Sample(intval);//A~Sample();//Bprivate:inta=2.5;//CSample();//D};
A.//A
B.//B
C.//C
D.//D
正确答案 :C
2.下列关于类成员的描述中,正确的是()。
A.友元函数是类的成员函数
B.类成员的默认访问权限是私有的
C.类成员函数必须声明为公有的
D.类的静态数据成员不能是常成员
正确答案 :B
3.下列描述中,正确的是()
A.虚函数是一个static 类型的成员函数
B.虚函数是一个非成员函数
C.抽象类是指具有纯虚函数的类
D.抽象类可以说明其对象
正确答案 :C
4.假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用()。
A.cout<<*p
B.cout<<p
C.cout<<p
D.cout<<p
正确答案 :D
5.C++中用于实现运行时多态性的是()。
A.内联函数
B.重载函数
C.静态函数
D.虚函数
6.若函数原型为voidFun(intx,inty=6,intchar='a'),则下列调用错误的是()。
A.Fun(5)
B.Fun(5, 'b')
C.Fun(5,8)
D.Fun(2,4, 'b')
7.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加()。
A.1
B.4
C.sizeof(double)
D.sizeof(p)
8.若有语句int*p=newint[5];int*pi;则以下语句中,执行时会造成delete[]p语句的执行出错的是______。
A.(*p)++;
B.p++;
C.pi = p;;
D.pi=p+3;
9.ios提供的格式控制标志位中,()是转换为八进制形式的标志位。
A.hex
B.oct
C.dec
D.left
10.有如下类定义: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
11.将一些函数体代码不是很大,但被频繁调用的函数定义为(),可以解决程序中函数调用的效率问题。
A.重载函数
B.内联函数
C.递归函数
D.友元函数
12.下列描述中,错误的是()。
A.内联函数主要解决程序的运行效率问题
B.内联函数的定义必须出现在内联函数第一次被调用之前
C.内联函数中可以包括各种语句
D.对内联函数不可以进行异常接口声明
13.在一个派生类对象结束其生命周期时,下列描述中正确的是()。
A.先调用派生类的析构函数后调用基类的析构函数
B.先调用基类的析构函数后调用派生类的析构函数
C.如果基类没有定义析构函数,则只调用派生类的析构函数
D.如果派生类没有定义析构函数,则只调用基类的析构函数
14.下列运算符中,在C++中不能重载的是()。
A._
B.()
C.::
D.||
15.下列关于函数重载的描述中,错误的是()。
A.函数重载就是用相同的函数名定义多个函数
B.重载函数的参数列表必须不同
C.重载函数的返回值类型必须不同
D.重载函数的参数可以带有默认值
16.在下面的类定义中,横线处应填入的内容是()。classMyClass{private:staticintcount;};count=0;
A.int
B.static int
C.int MyClass
D.static int MyClass:
17.假定p是具有int**类型的指针变量,则给p赋值的正确语句为()。
A.p=newint
B.p=newint*
C.p=newint**
D.p=newint[10]
18.下列描述中,()不是面向对象系统包含的要素。
A.对象
B.类
C.继承
D.函数
19.不可以成为类的数据成员的是______
A.自身类的对象
B.另一个类的对象
C.自身类的指针或引用
D.其他基本数据类型
20.下列情况中,不会调用复制构造函数的是()。
A.用一个对象去初始化同一类的另一个新对象时
B.将类的一个对象赋值给该类的另一个对象时
C.函数的形参是类的对象,调用函数用形参初始化实参时
D.函数的返回值是类的对象,函数执行返回调用时
21.在C++中,扩充类定义需要借助于()。
A.对象
B.继承
C.重载
D.函数
22.整型变量中,八进制数的数字前面需要加数字()
A.8
B.0X
C.不需要
D.0
23.下列关于堆运算符的描述中,错误的是()。
A.使用堆运算符可以动态建立或删除对象
B.可以在使用new[]创建数组时,为每个数组元素指定初始值
C.new运算符创建对象时要调用构造函数
D.delete运算符可以作用于空指针
24.下列函数参数默认值定义错误的是()。
A.Fun(int x=0,int y=0)
B.Fun(int x,int y)
C.Fun(int x,int y=0)
D.Fun(int x=0,int y)
25.已知函数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);
26.下列选项中,表示纯虚函数的是()。
A.virtual void fun()=0;
B.2. void fun(int)=0;
C.virtual int fun(int);
D.virtual void fun(int) {}
27.友元运算符obj1>obj2被C++编译器解释为()。
A.operator >(obj1,obj2)
B.>(obj1,obj2)
C.obj2.operator >(obj1)
D.obj1.operator >(obj2)
28.设置虚基类的目的是_____。
A.简化程序;
B.消除二义性;
C.提高运行效率;
D.减少目标代码;
29.在横线处填入语句()后,下列语句序列能够正确执行。。int*ptr;delete[]ptr;
A.ptr=new int(5);
B.ptr=new int[5];
C.ptr=new int;
D.ptr=malloc(5);
30.假定k是一个double类型的变量,则关于变量p的正确定义语句为()。
A.doublep=&k
B.int*p=&k
C.double&p=*k
D.char*p=”Thankyou!”
31.表达式18/4*sqrt(4.0)/5的数据类型是()。
A.int
B.float
C.double
D.不确定
32.若有如下函数声明:voidFun(int);,则下列()不能与该函数进行重载。
A.void Fun(int,int);
B.void Fun(double);
C.int Fun(int);
D.void Fun(int) const
33.下列语句中,正确的是()。
A.const int buffer=256;
B.const int temp;
C.int &ref;
D.const int size=100 ;......size=10 ;
34.有如下头文件:intf1();staticintf2();classMy{public:intf3();staticintf4();};在上述4个函数中,具有隐含的this指针的是()。
A.f1
B.f2
C.f3
D.f4
35.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。
A.int*p=newint[30]
B.int*p=newint(30)
C.int*p=new[30]int*p=new[30]
D.*p=newint[30]
36.下列关于成员访问权限的描述中,错误的是()。
A.公有数据成员和公有成员函数都可以被类对象直接处理
B.类的私有数据成员只能被公有成员函数以及该类的友元访问
C.只有类或派生类的成员函数和友元可以访问保护成员
D.保护成员可以在派生类中被访问,而私有成员不可以
37.变量s的定义为“char*s=”Helloworld!”;”,要使变量p指向s所指向的同一个字符串,则应选取()。
A.char*p=s
B.char*p=&s
C.char*p;p=*s
D.char*p;p=&s
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.某类中的友元类的所有成员函数都可以存取或修改该类中的私有成员。
A.错误
B.正确
5.只要是类M继承了类N,那么类M就是类N的子类型。
A.错误
B.正确
6.可以在类的构造函数中对静态数据成员进行初始化。
A.错误
B.正确
7.一个类的构造函数中可以不包含对其子对象的初始化
A.错误
B.正确
8.重载运算符保持原运算符的优先级和结合性不变。
A.错误
B.正确

我的更多文章

下载客户端阅读体验更佳

APP专享