C笔试试卷A卷答案解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南大学课程考试试卷
考试中心填写:
3.类型转换函数( A )。
A. 不能带有参数
B. 最多只能带有2个参数
C. 只能带有一个参数
D. 可以带多个参数
析:记住,类型转换函数有三个特点:1必须是成员函数2无返回类型3无参数
4.静态成员函数没有( B )。
A. 返回值
B. this指针
C. 指针参数
D. 返回类型
析:故静态成员函数不能访问类的一般成员(静态成员除外)5.定义类模板时要使用关键字( D )。
A. const
B. new
C. delete
D. template
6.下列不具有访问权限属性的是( A )。
A. 非类成员
B. 类成员
C. 数据成员
D.
函数成员
析:答案显然,但非类成员可能能访问类成员,如友元函数
7.C++语言鼓励程序员在程序设计时将( C )。
A. 数据和操作分别封装
B. 不同类型的数据封装在一起
C. 数据和操作封装在一起
D. 不同作用的操作封装在
一起
8.所谓多态性是指( B )。
A. 不同的对象调用不同名称的函数
B. 不同的对象调用
相同名称的函数
C. 一个对象调用不同名称的函数
D. 一个对象调用不同名
称的对象
9.解决二义性问题的方法有( C )。
A. 只能使用作用域分辨操作符
B. 使用作用域分辨操作符或赋值兼容规则
C. 使用作用域分辨操作符或虚基类
D. 使用虚基类或赋值兼容规则
10.如果在类CTest的外面函数调用CTest::f();则函数f()是类CTest的( A )。
A. 静态成员函数
B. 非静态成员函数
C. 友元函数
D. 前面都不正确
析:友元函数不输入类成员,故不能那样调用。
11.对虚基类的定义,( B )。
A. 不一定要使用虚函数
B. 必须使用虚函数
C. 必须使用private
D. 必须使用public
12.假定CTest为一个类,并且构造函数的参数无缺省值,则执行CTest objTest语句时将自动调用该类的( A )。
A. 有参构造函数
B. 无参构造函数
C. 拷贝构造函数
D. 赋值重载函数
析:无缺省值既有默认值,例如A(int i=0,double=”hello”).
13.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中( A )。
A. 都是虚函数
B. 只有被重新说明时才是虚函数
C. 只有被重新说明为vittual时才是虚函数
D. 都不是虚函数
析:之后,派生类的该虚函数前的virtual关键字可加可不加
14.调用一个成员函数时,使用动态联编的情况是( B )。
A. 通过对象调用一虚函数
B. 通过指针或引用调用
一虚函数
C. 通过对象调用一静态函数
D. 通过指针或引用调用一
静态函数
析:记住,通过对象调用虚函数不会出现多态(通过指针或者引用才会有多态性)
在构造函数里面调用虚函数不会出现多态
指定命名域调用不会出现多态
15.在派生类中能够直接访问基类的( D )。
A. 公有成员和私有成员
B. 保护成员和私有成员
C. 不可访问的和私有的成员
D. 保护成员和公有成员
二、判断正误题(本大题共10小题,每小题1分,共10分)判断正
误,在题后的括号内,正确的划上“√”错误的划上“×”。
1.friend属于类的存取权限。
(√)
2.重载函数要求函数有相同的函数名,但具有不同的参数个数或参数类型。(√)
3.常对象可以调用任意成员函数。
(×)
析:私有的和保护的不行
4.在类声明中不但可以说明成员函数的函数头,也可以定义函数体。
(√)
析:这样将使该函数成为内联函数。
5.使用关键字class定义的类中缺省的访问权限是私有(private)的。(√)
6.构造函数和析构函数都不能重载。
(×)
析:构造函数可以重载
7.可以在类的构造函数中对静态数据成员进行初始化。
(×)
析:类头只是申明而已只是表明分配内存的方式并不分配内存,既然
没有分配内存何来赋值。正确方式应是在实现文件中省略static关键字但要表明类型和作用域解析操作符来初始化。例如:
在类A中声明了static int x;则要在实现文件中初始化,int A::x=1;
8. cout通常与显示器相连,cin通常与键盘相连。
(√)
9. IO流库重载的插入和析取运算符处理所有的数据类型。
(×)
10. ostrstream是向字符数组的输出流,istrstream是从字符数组的输入流。()
这道题暂时不太清楚对错,有谁知道告诉一下我
三、填空题(本大题共10小题,每小题1分,共10分)不写解答过
程,将正确的答案写在每小题的空格内。错填或不填均无分。
1.编译时多态性是通过虚函数实现的。
2.在C++中,如果类的名称是CTest,则此类的析构函数名称为
~CTese() 。
3.使用new建立的动态对象在不用时必须用 delete 删除,以便释放所占用空间。
4.友元函数用关键字 friend 说明。
5.使用C++风格的输入/输出时,在程序中必须包含头文件
iostream (不是)。
6. 执行语句cout<<"x86\082\n";后,输出结果为 x86 (注意并没