|
东师《C++程序设计》15秋在线作业1
试卷总分:100 测试时间:--
一、单选题(共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();
满分:3分
2.假设A为抽象类,下列声明()是正确的。
A. A fun(int);
B. A *p;
C. int fun(A);
D. A obj;
满分:3分
3.假设定义了一个具有构造函数的book类,构造函数只有一个非默认的整型参数,则下列的类型转换错误的是()。
A. book(12)
B. (book20);
C. book x=2;
D. book x=book(2);
满分:3分
4.如果在类A中用友元函数的方式重载了前缀自增运算符++,又定义了类A的一个对象a,则以下用法正确的是()。
A. operator++(a);
B. a.operator++();
C. a.operator++(0);
D. a++;
满分:3分
5.在下面有关静态成员函数的描述中,正确的是()。
A. 在静态成员函数中可以使用this指针
B. 在建立对象前,就可以为静态数据成员赋值
C. 静态成员函数在类外定义时,要用static前缀
D. 静态成员函数只能在类外定义
满分:3分
6.说明一个成员为静态成员的关键字为()。
A. static
B. extern
C. inline
D. friend
满分:3分
7.已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。
A. void print( ) const;
B. const void print( );
C. void const print( );
D. void print(const);
满分:3分
8.下面关于静态成员的描述中,正确的是()。
A. 静态数据成员是类的所有对象共享的数据
B. 类的每个对象都有自己的静态数据成员
C. 类的不同对象有不同的静态数据成员值
D. 静态数据成员不能通过类的对象访问
满分:3分
9.进行文件操作需包含头文件()。
A. fstream.h
B. ostream.h
C. stdio.h
D. stdlib.h
满分:3分
10.如果表达式++j*k中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可以表示为()。
A. operator*(j,operator++(),k)
B. operator*(operator++(j),k)
C. j.operator++().operator*(k)
D. k.operator*(operator++(j))
满分:3分
11.一个()允许用户为类定义一种模式,使得类中的某些数据成员及成员函数的返回值能取任意类型。
A. 函数模板
B. 模板函数
C. 类模板
D. 模板类
满分:3分
12.静态数据成员的初始化必须在()。
A. 类内
B. 类外
C. 在构造函数内
D. 静态成员函数内
满分:3分
13.下面对于友元函数描述正确的是()。
A. 友元函数的实现必须在类的内部定义
B. 友元函数是类的成员函数
C. 友元函数破坏了类的封装性和隐藏性
D. 友元函数不能访问类的私有成员
满分:3分
14.#include <iostream.h> class BASE{ char c; public: BASE(char n):c(n){} virtual~BASE(){cout<<C;} }; class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout
A. XY
B. YX
C. X
D. Y
满分:3分
15.静态数据成员的初始化必须在()。
A. 类内
B. 类外
C. 构造函数内
D. 静态成员函数内
满分:3分
16.面向对象的程序设计语言必须具备的关键要素是()。
A. 抽象和封装
B. 抽象和多态性
C. 抽象、封装、继承和多态性
D. 抽象、封装和继承性
满分:3分
17.设有函数模板 template<class Q> Q Sum(Q x,Q y){ return(x)+(y); } 则下列语句中对该函数模板错误的使用是()。
A. Sum(10,2);
B. Sum(5.0,6.7);
C. Sum(15.2f,16.0f);
D. Sum(″AB″,″CD″);
满分:3分
18.定义类模板时要使用关键字()。
A. const
B. new
C. delete
D. template
满分:3分
19.下列函数中,()是对文件进行写操作的。
A. get()
B. read()
C. seekg()
D. put()
满分:3分
20.C++程序的执行总是从()开始的。
A. main函数
B. 第一行
C. 头文件
D. 函数注释
满分:3分
二、判断题(共20道试题,共40分。)
1.类模板必须由程序员实例化成模板类。
A. 错误
B. 正确
满分:2分
2.C++标准库中的输入输出格式操作符(函数)必须由输入输出流对象来调用。
A. 错误
B. 正确
满分:2分
3.若一个类A,它的两个直接基类是从同一个间接基类派生而来的,则类A对基类成员的访问会产生二义性。
A. 错误
B. 正确
满分:2分
4.若有声明:class B:virtual public A{};则类A为类B的虚基类。
A. 错误
B. 正确
满分:2分
5.类对象的输入输出需在类中定义重载的提取运算符“>>”和插入运算符“<<”。
A. 错误
B. 正确
满分:2分
6.如果要在程序中使用IO流库,应包含头文件iostream.h。
A. 错误
B. 正确
满分:2分
7.ifstream是用于写文件的文件流。
A. 错误
B. 正确
满分:2分
8.函数模板是模板函数的实例化。
A. 错误
B. 正确
满分:2分
9.类中成员的默认访问属性为私有,结构中成员的默认访问属性为公有。
A. 错误
B. 正确
满分:2分
10.C++中,对象保存在内存中,栈内存是自动分配和释放的,而堆内存需要用户自己申请和释放。
A. 错误
B. 正确
满分:2分
11.在文件操作结束时,可以用close()成员函数关闭该文件。
A. 错误
B. 正确
满分:2分
12.当一个函数无返回值时,函数的返回类型可省略。
A. 错误
B. 正确
满分:2分
13.C++流类库是用继承方法建立起来的,它具有两个平行的基类,即streambuf类和ios类,所有其他的流类都是从它们直接或间接地派生出来的。
A. 错误
B. 正确
满分:2分
14.当类中有指针类型数据成员时,需重载赋值运算符,否则会产生指针悬挂问题。
A. 错误
B. 正确
满分:2分
15.类成员是按照它们在成员初始化表中列出的顺序进行初始化的,与它们在类里被声明的顺序无关。
A. 错误
B. 正确
满分:2分
16.ofstream是用于写文件的文件流。
A. 错误
B. 正确
满分:2分
17.用对象访问成员时应使用运算符“.",用指向对象的指针访问成员时应使用运算符“->"。
A. 错误
B. 正确
满分:2分
18.后缀自增运算符用成员函数方式重载时,其参数个数为1,用友元函数重载时,其参数个数为2。
A. 错误
B. 正确
满分:2分
19.若重载了赋值运算符“=”,则相当于重载了“+=”、“-=”、“*=”、“/=”运算符。
A. 错误
B. 正确
满分:2分
20.在C++中,用数组、指针、和引用作为函数参数,都能够将参数值带回。
A. 错误
B. 正确
满分:2分
|
|