c++程序设计课程期末考试试题(a卷)
一判断题(正确打“a”,错误打“b”。每小题1分,共计20分)
1在面向对象的编程中,**和数据合并为一个不可分割的对象。()2对象是有确定简介且与要处理的问题相关的概念或事物。()
3每个对象都称为它的类的一个示例。类中的对象具有相同的属性和共同的行为。()
4多态性是指相同的函数可以在不同的类指有不同的行为。()
5如果函数的参数具有默认值,则调用该函数时不需要包括所有的参数。()
6重载函数是一组具有相同名称的函数。调用函数时将执行哪个函数取决于调用时提供的参数类型和参数个数。()
7作用域操作符:对于在类外部定义的成员函数非常重要。只有作用域操作符才能将函数标识为特定类的成员。()
8当指针指向对象时,可以使用访问操作符->来访问该对象所属的类的成员。()
9在c++中,由与流关联的类提供输入和输出。头文件提供输入和输出。()
10c++有两个处理文件的基本类:ifstream和ofstream。()11友元函数和友元类用于访问类的非公有成员。
()12友元函数通过在函数名前加关键字friend来申明。()
13重载既不能改变一个操作符的基本功能,也不能改变其在语言中已经定义的优先级顺序的位置。()
14继承最重要的优点时**的可重用性。()
15派生类能够引用基类的函数和数据,而基类没有访问派生类的权限。()16如果在派生类的申明中使用关键字private,那么派生类的对象不能访问基类的公有成员函数。()
17如果需要访问由指针所指向的对象中的成员函数,需要使用类成员访问操作符(->
18虚函数允许派生类替换基类提供的函数实现。编译器确保无论何时总是调用正在讨论的派生对象中函数的替换版本。()
19c++提供了两种类型的模板,即类模板和函数模板。()
20若要对每种数据类型简洁方便地执行完全相同的操作,可以使用函数模板。()
二选择题(每小题2分,共74分。提示:每小题至少有一个正确答案)
1将数据和函数合并为单个实体称为()。
a.多态性。
b.封装。c.类。
d.对象。2骆驼相对于动物就如对象相对于()。a.成员函数。
b.类。c.操作符。
d.数据项。
3哪些是c++中的保留字()。a.iostream
b.inline
c.friend
d.object
4()是可以重用现有类以构建新类的一种特性。a.信息隐藏。
b.继承。c.数据抽象。
d.成员函数。
5函数中的默认参数的值()。a.是变量值c.由该函数提供。
b.是常量值。
d.在每次调用该函数时递增。
6()函数最好用于经常使用的小函数。a.成员7重载()。
a.是具有相同名称的一组函数。b.由相同的参数个数和类型。c.参数必须有常量值。d.节省内存空间。
8通过在函数名前加()可以使其返回引用。a.<<
b.>>
c.=d.&
b.内联。c.常规。
9()对于在类外部定义成员函数非常重要。a.静态成员。
b.构造函数。
c.作用域操作符。
d.析构函数。
10在类中,不能有()。a.多个同名的构造函数。
b.多个带有单个参数的构造函数c.多个默认构造函数11()初始化数据成员。a.函数。
b.构造函数。
c.析构函数。
d.对象。12判断下列哪个函数是类time的析构函数()。a.time(int,int);b.~time();time::time();13new操作符()。
a.返回指向所创建的对象的指针b.创建名为new的对象c.为新类获得内存。
d.告诉为某个对象分配了多少内存。
14要引用指针所指向的对象中的任何成员函数,使用()。a.+操作符。
b.==操作符。
c.>>操作符。
d.->操作符。
c.~time(int,int);
d.15任何试图修改定义为()的变量的值的尝试都将导致一个错误。a.int
b.float
c.const
d.var16在类中,如果day是成员变量,则(a.
b.*day=28
将把28赋给day。c.day=28
17当同一个类的所有对象必须共享相同的数据时,()非常有用。a.静态数据成员c.公有数据成员。
b.私有数据成员d.以上答案都不正确。
18下列哪个对象对应于标准输入流,默认情况下是键盘?()a.cin
b.cout
c.cerr
d.clog
19()类包含为输出操作定义的函数,这些操作称为流插入。a.ofstream
b.fstream
c.ostream
d.istream
20标准流上的输出是使用()来实现的,该对象与标准输出设备(屏幕)相关联。
a.ostream类的cerr对象。
b.ostream类的cout对象。
c.istream类的cin对象21操作符函数(a.endl
输出换行符。
b.flush
d.ostream类的clog对象。
c.putd.write
22如果one类被申明为two类的友元,那么()。a.two类的每个对象都能访问one的私有数据成员b.one类的每个对象都能访问two的私有数据成员c.two类的每个函数都能访问one的私有数据成员d.one类的每个函数都能访问two的公有数据成员。
23将一个现有操作符与一个成员函数相关联并将该操作符与其类的对象(作为它的操作数)一起使用,称为()。
a.重载c.函数重载。
24可以将操作符分类为()。a.一元操作符和比较操作符c.二元操作符和一元操作符25()是接受两个操作数的操作符。a.复制操作符c.类型转换操作符。
b.下标操作符d.二元操作符。
b.下标操作符和一元操作符d.二元操作符和比较操作符b.操作符重载d.以上答案都不正确。
26如果alpha从类beta继承而来,则()。a.类alpha称为基类,而类beta称为派生类。
b.类alpha称为派生类或子类,而类beta称为基类或父类c.类alpha称为超类,而类beta称为派生类d.类alpha称为父类,而类beta称为子类27继承允许(),它将节省开发时间并鼓励使用类库。a.可访问性。
b.功能性。
c.可重用性。
d.函数覆盖。
28三个成员访问控制说明符是()。a.private、random、publicb.public、private、mandatoryc.public、private、protectedd.protected、public、random
29类的私有成员可以由下列哪种成员函数来访问()。a.类的成员函数b.类的非成员函数。
c.通过私有派生的派生类的成员函数d.通过公有派生的派生类的成员函数。
30如果一个类包含一个或多个纯虚函数,那么它就被称为()。a.抽象类。
b.虚基类。
c.派生类。
31当使用指针来访问类时,可以使用()来访问类的成员。a.类成员访问操作符b.插入操作符c.作用域解析操作符。
32()函数允许派生类替换基类提供的函数实现。a.友元。
b.虚。c.内联。
33虚函数应该在()类中申明。a.派生。
b.基。c.虚基。
34非虚成员函数是()解析的。a.静态。
b.动态。c.以上都不正确。
35在()绑定中,成员函数是根据对象的类型而不是根据指向对象的指针/引用的类型在允许时选择的。
a.动态。b.早期。
c.以上都不正确。
36在c++中重用源**是由()提供的。a.模板。
b.stlc.算法。
d.容器。37定义一个模板类的对象的语法是()。a.templateb.classnameobjectname
c.classnameobjectname(arglist)d.templateobjectname(arglist)
三程序分析题(6分)
有如下程序:行。
#include#include
usingnamespacestd;
/定义公共基类personclassperson
protected://保护成员charname[20];charsex;intage;};
/定义类teacher
/声明person为公用继承基类classteacher:publicpersonprotected://保护成员chartitle[10];/职称};
/构造函数。
/定义类student
/声明person为公用继承基类classstudent:publicperson;
protected://保护成员floatscore;//成绩};
/定义多重继承的派生类graduate
/声明teacher和student类为公用继承的直接基类classgraduate:publicteacher,publicstudent;//输出研究生的有关数据voidshow()private:
floatwage;//工资};
intmain(){
graduategrad1("wang-li",'f',24,"assistant",89.5,1234.5);
return0;
在编译时,产生如下错误信息及警告信息:
45行):errorc2614:'graduate':illegalmemberinitialization:'person'isnotabaseormember
49行):errorc2385:'graduate::name'isambiguous
49行):warningc4385:couldbethe'name'inbase'person'ofbase'teacher'ofclass'graduate'
49行):warningc4385:orthe'name'inbase'person'ofbase'student'ofclass'graduate'
50行):errorc2385:'graduate::age'isambiguous
50行):warningc4385:couldbethe'age'inbase'person'ofbase'teacher'ofclass'graduate'
50行):warningc4385:orthe'age'inbase'person'ofbase'student'ofclass'graduate'
51行):errorc2385:'graduate::sex'isambiguous
51行):warningc4385:couldbethe'sex'inbase'person'ofbase'teacher'ofclass'graduate'
51行):warningc4385:orthe'sex'inbase'person'ofbase'student'ofclass'graduate'
4error(s),6warning(s)
请指出这些错误信息及警告信息的含义,分析产生的原因,并改正程序。
C程序设计试卷1C程序设计
c 程序设计试卷。一 选择题。每小题3分,共15分 1 派生类能够直接访问的基类的成员是 a 公有成员 b 保护成员 c 私有成员 d 静态。2 下面是几条定义类的语句,不能被继承的类是 a abstract class figure b class figure c public class fi...
C 程序设计试卷C
面向对象的程序设计c 试卷c 一 填空 每空2分,共20分 1 定义于函数外的变量称为。2 假定class1为一个类,则执行 class1 a 5 b 2 p 3 语句时,自动调用该类构造函数的次数为。3 利用操作符 语句序列p p 1 f p 5 的功能可以由一个语句完成。4 不借助于其他变量交换...
C程序设计试卷
嘉兴学院试卷。2005 2006学年第二学期期考试卷no卷。课程名称 c程序设计使用班级 考试形式 闭卷。班级学号姓名。b 1 和 2 语句的执行结果,都是把变量a的地址值赋值给指针变量pc 1 在对p进行说明的同时进行初始化,使p指向a 2 将变量a的值赋给指针变量d 1 在对p进行说明的同时进行...