面向对象程序设计天津大学网考复习题库及答案Word格式文档下载.docx
《面向对象程序设计天津大学网考复习题库及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计天津大学网考复习题库及答案Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。
![面向对象程序设计天津大学网考复习题库及答案Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/28/e1ed0e40-042b-43f3-8a6b-ab335eb226c6/e1ed0e40-042b-43f3-8a6b-ab335eb226c61.gif)
B.chars2[3.5]
C.chars3[3]={‘a’,’x’,’d’,’\0’}
D.chars4[20]={“123”}
9、已知:
inta[3][5];
则a[2]表示的是(A)。
A.a[2][0]的地址B.a[2][0]的值
C.第2行的所有元素D.无意义
10、已知:
inta=2;
doubleb=2.5,下列表达式中,结果为整型数的是(D)。
A.a%5+bB.b%5+aC.--a+bD.a/(int)b
11、C++程序中编译预处理命令的标志是(A)。
A.#B.ifC.cinD.for
12、C++中循环体至少执行一次的循环是(B)。
A.While循环B.Do-while循环
C.For循环D.没有
13、下列描述中,属于传值调用的是(C)。
A.形参是指针,实参是地址B.形参、实参都是数组
C.形参是变量,形参是常数D.形参是指针,实参是数组名。
14、在类的友元函数中,可以访问的数据成员是(D)。
A.本类的私有成员B.本类的保护成员
C.本类的公有成员D.本类的所有成员
15、下列各种函数中,在对象生命期结束时自动调用的函数的是(B)。
A.构造函数B.析构函数C.友元函数D.虚函数
16、下列描述中,属于析构函数的特征是(D)。
A.函数的名字与类名无关B.函数可以重载
C.函数形参可有可无D.不能指定函数返回值的类型
17、列对类的描述中,不符合C++语法的是(B)。
A.一个派生类至少有一个基类
B.一个派生类只能有一个基类
C.一个基类不可以有多个派生类
D.抽象类一定是另一个类的基类
18、C++中的虚函数可以实现的面向对象的基本特性是(D)。
A.封装性B.继承性C.抽象性D.多态性
19、面向对象程序设计中,在已有类的基础上形成新类的机制被称为(C)。
A.封装B.多态C.继承D.抽象
20、下列描述中,符合地址调用的是(A)。
A.形参是指针,实参是地址B.形参、实参都是变量
C.形参、实参都是变量的引用D.形参是变量的引用,实参是变量名
21、下列关于对象的描述中,错误的是(D)。
A.对象是一种自定义数据类型B.对象是通过类定义的
C.一个类可定义多个对象D.对象只能有数据成员
22、按照标示符的命名规则,标示符中可以有(B)。
A.运算符B.下画线C.汉字D.空格
23、编译预处理命令不包括(D)。
A.包含命令B.宏定义命令C.条件编译命令D.函数原型声明
24、如果定义一个函数时未指定函数返回值类型,则函数返回值的类型应是(B)。
A.无B.intC.任意D.void
25、定义函数时直接或间接地调用了被定义函数,这样的函数称为(A)。
A.递归函数B.友元函数C.函数模版D.内联函数
26、下列各种函数中,可用于实现动态多态性的是(D)。
A.构造函数B.析构函数C.友元函数D.虚函数
27、下列关于构造函数的描述中,错误的是(C)。
A.构造函数的名字与类名相同B.构造函数可以重载
C.构造函数可以被派生类继承D.构造函数不能指定返回值的类型
28、不可以实现运算符重载的函数是(A)。
A.析构函数B.友元函数C.虚函数D.成员函数
29、若B类是A类的派生类,则创建B类的对象时构造函数的调用顺序是(A)。
A.先调用A类的构造函数,然后调用B类的构造函数
B.先调用B类的构造函数,然后调用A类的构造函数
C.不调用A类的构造函数
D.视定义时A类和B类出现的位置
30、在声明类时,关键字private、public和protected可出现(D)。
A.至少一次B.至多一次C.至多三次D.任意次数
31、下列标示符中,属于块作用域的是(B)。
A.全局变量名B.函数体中定义的变量名C.类名D.函数名
32、抽象类中必定有的函数是(C)。
A.构造函数B.析构函数C.纯虚函数D.虚函数
33、下列描述的情况中,不执行构造函数的情况是(B)。
A.通过new操作创建对象
B.用一个已有对象初始化一个新对象
C.声明一个没有初始化的新对象
D.用一个匿名对象为一个同类对象赋值
34、设有定义inta=2,b;
执行b=(a+=2,a+5,a++);
后,b的值是(A)。
A.4B.5C.7D.9
35、以下指针用法中正确的是(A)。
A.inta,*p=&
a;
B.inta,*p=a;
C.inta,*p;
p=a;
D.int*p=5;
36、设a为整型变量,不能正确表达数学关系5<
a<
10的C++表达式是(C)。
A.a==6‖a==7‖a==8‖a==9B.a>
5&
&
10
C.5<
10D.!
(a<
=5)&
!
(a>
=10)
37、cin和cout是系统预定义的I/O流(C)。
A.类B.包含文件C.对象D.常量
38、以下运算符中不能用成员函数重载的是(C)。
A.=B.+C.>
>
D.%
39、程序中以#开头的命令是(A)。
A.编译预处理命令B.条件语句C.开关语句D.循环语句
40、使用类模板的目的是(B)。
A.解决继承中的二义性问题B.提高编程效率
C.实现动态多态性D.实现静态多态性
二、判断题
1、一个程序文件中,main函数有且只能有一个。
(√)
2、程序中的注释是可执行的语句。
(×
)
3、C++的表达式中不允许不同类型数据的混合运算。
4、系统函数不需要任何人定义,编程时可直接使用。
5、数组名可以看作一个指针变量。
6、不同函数间传递数组时,采用的是引用调用方式。
7、虚函数可以是类的静态成员。
8、抽象类只能做基类,但可以定义该类的对象。
9、文本文件只能保存字符数据,不能保存数值数据。
10、函数调用在前,定义在后时,需要原型声明。
11、main函数总是程序中第一个被执行的函数。
(√)
12、程序中的注释是写给编程人员看的。
(√)
13、C++的表达式中允许不同类型数据的混合运算。
14、函数在调用之前必须先定义或声明。
15、数组名中存放的是一个地址。
(√)
16、C++中的文本文件只能进行顺序读写,二进制文件只能进行随机读写。
(×
17、基类的指针可以指向其派生类的对象。
(√)
18、复制构造函数与构造函数的执行时机是一样的。
(×
19、类中定义的成员函数都是内联函数。
20、没有main函数的C++程序也可以执行。
21、程序中有没有注释不影响程序的执行。
22、一个函数的函数体中不能包含另一个函数的定义。
23、类的任何公有成员在类体外必须通过对象来访问。
24、一个指针变量指向数组元素时可以做++或—操作。
25、具有块作用域的变量在块结束时,所占存储空间一定被释放。
26、C++中的基本数据类型不包含空值(void)类型。
27、只要定义了一个类就可以对类的对象做逻辑运算。
28、派生类继承了基类的所有成员,包括构造函数和析构函数。
29、C++程序中的标示符不区分大小写。
30、定义引用只是为已定义的变量取了个别名,不会为引用分配存储空间。
(√)
三、阅读程序写结果
1、
#include<
iostream.h>
voidmain()
{
inta,b,c;
intm(3),n(4);
a=7*2+5%3-4/3;
b=m>
n?
m:
n;
cout<
<
'
\t'
b<
endl;
c=++m-n--;
c<
"
\t"
m<
n<
}
输出结果:
154
043
2、
inta,b=5;
cout<
”输入一个整数:
”;
cin>
switch(a>
0)
{case1:
switch(b<
10)
{case0:
″*″<
case1:
″#″<
default:
″!
\n″;
case0:
switch(b>
″ok1\n″;
″ok2\n″;
第一次运行:
输入一个整数:
1
#
ok2
第二次运行:
第三次运行:
5
3、
inta[5],x,i=0;
do
{
cin>
x;
if(x%2==0)
{
a[i]=x;
i++;
}
}while(i<
5);
for(i=0;
i<
5;
i++)
cout<
a[i]<
"
;
输入:
165820710
682010
4、
inta[4],i,j,k;
for(i=0;
4;
i++)a[i]=0;
k=3;
k;
for(j=0;
j<
=k;
j++)
a[j]=a[i]+2;
a[1]<
″″<
a[3]<
1012
5、
#inclu