东师C++程序设计19春在线作业2[答案]答案
C 程序设计19春在线作业2-0005
试卷总分:100 得分:0
一、 单选题 (共 20 道试题,共 60 分)
1.应在下列程序划线处填入的正确语句是()。 #include class Base { public: void fun(){cout<<"Base::fun"<<ENDL;} }; class Derived:public Base { void fun() {_____________ //显示调用基类的函数fun() cout<<"Derived::fun"<<ENDL; } };
A.fun();
B.Base.fun();
C.Base::fun();
D.Base->fun();
2.不能作为重载函数的调用依据的是()。
A.参数个数
B.参数类型
C.返回值类型
D.函数名称
3.当将一个函数f()说明为另一个类B的友元后,函数f()能够直接访问类B的()。
A.只能是公有成员
B.只能是保护成员
C.只能是除私有成员之外的任何成员
D.具有任何权限的成员
4.若已知char str[20],有语句 cin>>str;,当输入为:This is a cat,则str中的内容为()。
A.This is a cat
B.This
C.This is
D.This is a
5.要想以读方式打开文件“D:\File.txt”,以下不能实现目的的语句是()。
A.ifstream inf("D:\\File txt",ios::in);
B.ifstream inf("D:\\File.txt");
C.ofstream inf("D:\\File.txt",ios::out);
D.fstream inf("D:\\File.txt",ios::in|ios::out);
6.如果表达式++j*k中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可以表示为()。
A.operator*(j,operator++(),k)
B.operator*(operator++(j),k)
C.j.operator++().operator*(k)
D.k.operator*(operator++(j))
7.如果类B在类A的基础上构造,那么,就称()。
A.类A为基类或父类,类B为超类或子类
B.类A为基类、父类或超类,类B为派生类或子类
C.类A为派生类,类B为基类
D.类A为派生类或子类,类B为基类、父类或超类
8.对于一个类,可以利用关键字()将其他类声明为该类的友元。
A.public
B.private
C.protected
D.friend
9.下列()可以是虚函数。
A.构造函数
B.拷贝构造函数
C.静态成员函数
D.析构函数
10.C++程序的执行总是从()开始的。
A.main函数
B.第一行
C.头文件
D.函数注释
11.当需要使用ostream流类定义一个流对象并联系一个字符串时,应在文件开头使用#include命令,使之包含()文件。
A.iostream.h
B.stdlib.h
C.strstream.h
D.fstream.h
12.假定classA为一个类,f()为该类公有的数据成员,x为该类的一个对象,则访问x对象中成员函数f()的格式为()。
A.x.f
B.x.f()
C.x->f
D.x->f()
13.下列语句中不存在类型转换的是()。
A.int(1.1);
B.(double)2.2;
C.int i=1;
D.char c=97;
14.考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是()。
A.test(5);
B.test(5,8);
C.test(6,"#")
D.test(0,0,"*");
15.实现运行时的多态性需要使用()。
A.重载函数
B.构造函数
C.析构函数
D.虚函数
16.C++流类库预定义的与标准输入设备相关联的是()。
A.cin
B.cout
C.cerr
D.clog
17.析构函数是一种特殊的成员函数,显式定义时其访问属性应被定义为()。
A.public
B.private
C.protected
D.static
18.类的析构函数的作用是()。
A.一般成员函数的初始化
B.类的初始化
C.对象的初始化
D.删除类创建的对象
19.运算符重载函数必须以特殊的关键字()开始。
A.virtual
B.operator
C.template
D.static
20.如果编程者没有显式定义构造函数(包括复制构造函数),C++编译器就()。
A.出现编译错误
B.没有构造函数
C.必须显示定义
D.隐式定义缺省的构造函数
东师C++程序设计19春在线作业2[答案]多选题
二、 判断题 (共 20 道试题,共 40 分)
1.在删除一个动态对象时,将自动调用该动态对象所属类的析构函数。
A.错误
B.正确
2.cout通常与显示器相连,cin通常与键盘相连。
A.错误
B.正确
3.类和对象之间的关系是具体和抽象的关系。
A.错误
B.正确
4.用对象访问成员时应使用运算符“.",用指向对象的指针访问成员时应使用运算符“->"。
A.错误
B.正确
5.在默认参数函数的原型中,所有取缺省值的参数都必须出现在不取缺省值的参数的右边。
A.错误
B.正确
6.通过类对象可以访问类中所有的成员。
A.错误
B.正确
7.类模板必须由程序员实例化成模板类。
A.错误
B.正确
8.使用setw()函数时需包含iomanip.h头文件,而使用width()函数时需包含iostream.h头文件。
A.错误
B.正确
9.拷贝构造函数是重载的构造函数。
A.错误
B.正确
10.文本文件结束标志为EOF(即-1)。
A.错误
B.正确
11.我们不能用抽象类定义对象,但可以定义对象的指针。
A.错误
B.正确
12.类成员是按照它们在成员初始化表中列出的顺序进行初始化的,与它们在类里被声明的顺序无关。
A.错误
B.正确
13.C++利用函数重载实现面向对象程序设计的封装性。
A.错误
B.正确
14.若左操作数为基本数据类型或其它类对象时,此运算符应以友元函数的方式重载。
A.错误
B.正确
15.类中含有指针数据成员时,若不定义拷贝构造函数则会产生指针悬挂问题。
A.错误
B.正确
16.类中可以包含各种数据类型的数据成员,但不能有其他类对象。
A.错误
B.正确
17.类是C++中预定义的数据类型。
A.错误
B.正确
18.当基类的构造函数没有参数,或没有显式定义构造函数时,派生类可以不定义构造函数。
A.错误
B.正确
19.ofstream是用于写文件的文件流。
A.错误
B.正确
20.操纵符函数setw(n)只对下一个输出有效。
A.错误
B.正确
东师C++程序设计19春在线作业2[答案]历年真题如下: