C 程序设计18春在线作业2-0003 试卷总分:100 得分:0 一、 单选题 (共 20 道试题,共 60 分) 1.关于函数模板,描述错误的是()。 A.函数模板必须由程序员实例化 B.函数模板的实例化由编译器实现
C 程序设计18春在线作业2-0003
试卷总分:100 得分:0
一、 单选题 (共 20 道试题,共 60 分)
1.关于函数模板,描述错误的是()。
A.函数模板必须由程序员实例化
B.函数模板的实例化由编译器实现
C.一个类定义中,只要有一个函数模板,则这个类是类模板
D.若类模板的成员函数是函数模板,则类模板实例化后,成员函数也随之实例化
2.下面有关重载函数的说法中正确的是()。
A.重载函数必须具有不同的返回值类型
B.重载函数形参个数必须不同
C.重载函数必须有不同的形参列表
D.重载函数名可以不同;
3.实现运行时的多态性需要使用()。
A.重载函数
B.构造函数
C.析构函数
D.虚函数
4.cout是I/O流库中预定义的()。
A.类
B.对象
C.文件
D.常量
5.在下面有关对构造函数的描述中,正确的是()。
A.构造函数可以带有返回值
B.构造函数的名字与类名完全相同
C.构造函数必须带有参数
D.构造函数必须定义,不能缺省
6.下列各种高级语言中,不是面向对象的程序设计语言的是()。
A.C++
B.Java
C.VB
D.C
7.假设Sample是个类,则语句“Sample a[2],*p[3];”调用构造函数的次数为()。
A.0
B.2
C.3
D.5
8.在C++中继承方式有几种()。
A.1
B.2
C.3
D.4
9.以下基类中的成员函数中表示纯虚函数的是() 。
A.virtual void vf(int);
B.virtual void vf(int)=0;
C.virtual void vf(int=0);
D.virtual void vf(int){ };
10.若已定义了person类,则执行语句"person p1=p2;"将调用p1的()。
A.构造函数
B.拷贝构造函数
C.析构函数
D.赋值运算符重载函数
11.在下列关键字中,用于说明类中公有成员的是()。
A.public
B.private
C.protected
D.friend
12.下面对类的析构函数的定义是() 。
A.X::~ X( 参数 );
B.void X::~ X( 参数 );
C.void X::~ X();
D.X::~ X();
13.已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。
A.void print( ) const;
B.const void print( );
C.void const print( );
D.void print(const);
14.下面描述中,表达错误的是()。
A.公有继承时基类中的public成员在派生类中仍是public的
B.公有继承时基类中的private成员在派生类中仍是private的
C.公有继承时基类中的protected成员在派生类中仍是protected的
D.保护继承时基类中的public成员在派生类中是private的
15.如果表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,则采用运算符函数调用格式,该表达式还可以表示为()。
A.x.operator++(0).operator*(y)
B.operator*(x.operator++(0),y)
C.operator*(operator++(x,0),y)
D.y.operator*(operator++(x,0))
16.下列说法正确的是()。
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外通过加关键字inline定义
17.在磁盘文件操作中,以追加方式打开磁盘文件时,其mode值为()。
A.in
B.app
C.out
D.ate
18.若已知char str[20],有语句 cin>>str;,当输入为:This is a cat,则str中的内容为()。
A.This is a cat
B.This
C.This is
D.This is a
19.在I/O流库中定义的控制浮点数输出精度的函数为()。
A.width()
B.fill()
C.precision()
D.setprecision()
20.下面运算符中,不能被重载的运算符是()。
A.<=
B.-
C.?:
D.[]
二、 判断题 (共 20 道试题,共 40 分)
1.如果一个类只定义了一个带参的构造函数,则系统会给它提供缺省的无参构造函数。
A.错误
B.正确
2.C++利用类的派生机制实现面向对象程序设计的继承性。
A.错误
B.正确
3.类是C++中自定义的数据类型。
A.错误
B.正确
4.多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。
A.错误
B.正确
5.如果派生类没有实现虚函数,那么它将使用它的基类的虚函数。
A.错误
B.正确
6.C++中的函数调用就是面向对象理论中的方法。
A.错误
B.正确
7.指针和引用都是变量,都占有单独的内存空间。
A.错误
B.正确
8.若有声明:class B: A{};则类B的继承方式为私有继承。
A.错误
B.正确
9.静态成员函数与在一般的成员函数一样,都隐含有一个this指针。
A.错误
B.正确
10.在删除一个动态对象时,将自动调用该动态对象所属类的析构函数。
A.错误
B.正确
11.C++是一种纯粹的面向对象程序设计语言。
A.错误
B.正确
12.若左操作数为基本数据类型或其它类对象时,此运算符应以友元函数的方式重载。
A.错误
B.正确
13.函数模板不可以重载。
A.错误
B.正确
14.多态性是指相同的对象收到不同的消息时产生多种不同的行为方式。
A.错误
B.正确
15.凡是左操作数必须为本类对象的运算符均应以类成员函数的方式重载。
A.错误
B.正确
16.创建派生类对象时,先调用基类的构造函数,再调用派生类的构造函数,当销毁这个对象时顺序正好相反,先调用派生类的析构函数,再调用基类的析构函数。
A.错误
B.正确
17.ofstream是用于读文件的文件流。
A.错误
B.正确
18.当基类的构造函数没有参数,或没有显式定义构造函数时,派生类可以不定义构造函数。
A.错误
B.正确
19.一个类的友元一定是另一个类的成员函数。
A.错误
B.正确
20.撤销包含有对象成员的派生类对象时,自动调用析构函数的执行顺序依次为派生类、对象成员所属类、基类的析构函数。
A.错误
B.正确