c++期终考试2部分答案.docx
- 文档编号:886932
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:17
- 大小:21.44KB
c++期终考试2部分答案.docx
《c++期终考试2部分答案.docx》由会员分享,可在线阅读,更多相关《c++期终考试2部分答案.docx(17页珍藏版)》请在冰豆网上搜索。
c++期终考试2部分答案
浙江工业大学期终考试命题稿
2014/2015学年第二学期
课程名称
C++程序设计Ⅱ
使用班级
信息学院
教师份数
学生份数
500
命题人
陈晋音
审核人
张健
命题总页数
页
每份试卷需用白纸
大张
命题注意事项:
一、命题稿请用A4纸电脑打印,或用教务处印刷的命题纸,并用黑墨水书写,保持字迹清晰,页码完整。
二、两份试题必须同等要求,卷面上不要注明A、B字样,由教务处抽定A、B卷。
三、命题稿必须经学院审核,并在考试前两周交教务处。
浙江工业大学2014/2015学年
第二学期试卷
课程C++程序设计Ⅱ姓名___________________________
班级____________________________授课教师
题序
一
二
三
四
五
六
七
八
总评
计分
试题一、选择题(每题1分,共20分)
1.所谓数据封装就是将一组数据和与这组数据有关的操作组装在一起,形成一个实体,这个实体定义成()。
A
A.类B.对象C.函数体D.数据块
2.假定A是一个类,则执行“A*p=newA[10];”语句时共调用该类构造函数的次数是()。
D
A.1B.2C.11D.10
3.已知定义了类Person,则Person类的复制构造函数声明应定义正确的是()。
B
A.voidPerson(Person&p);B.Person(constPerson&p);
C.PersonPerson(Person&p)D.Person(Personp);
4.下列不能作为类的成员的是()。
B
A.自身类对象的指针B.自身类对象C.自身类对象的引用D.另一个类的对象
5.下述静态数据成员的特征中,()是错误的。
B
A.说明静态数据成员时前边要加修饰符static
B.静态数据成员在类内进行初始化
C.引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符
D.静态数据成员是所有对象共用的
6.已知类A是类B的友元,类B是类C的友元,则()。
D
A.类A一定是类C的友元
B.类C一定是类A的友元
C.类C的成员函数可以访问类B的对象的任何成员
D.类A的成员函数可以访问类B的对象的任何成员
7.对于常成员函数,下面描述正确的选项是()。
C
A.类的成员函数可以操作常对象B.类的成员函数不能操作常对象
C.只有常成员函数可以操作常对象D.在常成员函数中,常对象可以被更新
8.有如下类定义:
classMyBASE{
intk;
public:
voidset(intn){k=n;}
intget()const{returnk;}
};
classMyDERIVED:
protectedMyBASE{
protected;
intj;
public:
voidset(intm,intn){MyBASE:
:
set(m);j=n;}
intget()const{returnMyBASE:
:
get()+j;}
};
则类MyDERIVED中保护成员个数是()。
B
A.4B.3C.2D.1
9.有下列代码:
1classFred;
2classBarney{
3Fredx;
4Fred*p;
5};
6classFred{
7Barneyy;
8};
有错误的地方是()。
B
A.第1行:
classFred;B.第3行:
Fredx;
C.第4行:
Fred*p;D.第7行:
Barneyy;
10.需要一种逻辑功能一样的函数,而编制这些函数的程序文本完全一样,区别只是数据类型不同。
对于这种函数,下面不能用来实现这一功能的选项是()。
D
A.宏函数B.为各种类型都重载这一函数
C.模板D.友元函数
11.为正确执行以下程序,则函数定义正确的是()。
B
#include
voidmain()
{print(2,3.4);}
A.template
voidprint(Targ1,Targ2)
{
cout<<"arg1:
"< cout<<"arg2: "< } B.template voidprint(T1arg1,T2arg2) { cout<<"arg1: "< cout<<"arg2: "< } C.voidprint(intarg1,intarg2) { cout<<"arg1: "< cout<<"arg2: "< } D.template voidprint(Targ1,intarg2) { cout<<"arg1: "< cout<<"arg2: "< } 12.以下基类哪个表示抽象类()。 C A.classMyClass{virtualvoidvf(int);}; B.classMyClass{voidvf(int)=0;}; C.classMyClass{virtualvoidvf()=0;}; D.classMyClass{virtualvoidvf(int){}}; 13.下面关于虚函数和函数重载的叙述不正确的是()。 A A.虚函数不是类的成员函数 B.虚函数实现了C++的多态性 C.函数重载允许非成员函数,而虚函数则不行 D.函数重载的调用根据参数的个数、序列来确定,而虚函数依据对象确定 14.如果表达式++i*k时中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可表示为()。 B A)operator*(i.operator++(),k)B)operator*(operator++(i),k) C)i.operator++().operator*(k)D)k.operator*(operator++(i)) 15.下列关于虚函数的说法,错误的是()。 B A.需要通过基类的对象、指针或者引用来调用虚函数 B.派生类中的虚函数必须与基类中的虚函数同名,但参数的个数可以不一样 C.一个函数如果被定义成虚函数,经历多次派生后,其虚特性将不会保持 D.设置虚函数的目的是消除二义性 16.有如下程序: #include usingnamespacestd; classBase{ private: voidfun1()const{cout<<”fun1”;} protected: voidfun2()const{cout<<”fun2”;} public: voidfun3()const{cout<<”fun3”;} }; classDerived: protectedBase{ public: voidfun4()const{cout<<”fun4”;} }; intmain(){ Derivedobj; obj.fun1();//① obj.fun2();//② obj.fun3();//③ obj.fun4();//④ } 其中没有语法错误的语句是()。 D A.①B.②C.③D.④ 17.有如下类定义: classAA{ inta; public: intgetRef()const{return&a;}//① intgetValue()const{returna;}//② voidset(intn)const{a=n;}//③ friendvoidshow(AAaa)const{cout< }; 其中的四个函数定义中正确的是()。 B A.①B.②C.③D.④ 18.下面程序使用new与delete命令,下面是对这段程序的叙述,其中正确的是()。 C #include intmain() { long*p,i; p=newlong; if(! p){cout<<”Allocationerror\n”; return1; } *p=1000; i=(long)p; cout<<”Hereisintegeratp: ”<<*p<<”\n”; cout<<”Hereisi: “< deletep; return0; } A.有错误,编译不能通过 B.正确,执行结果为: 10001000 C.正确,但执行结果的第二个数值不定 D.正确,执行结果的各个数值均不为1000 19.要求打开文件test.dat,可读出数据,正确的语句是()D A.ifstreammyFile(“test.dat”,ios: : in); B.fstreammyFile(“test.dat”,ios: : in); C.ifstreammyFile;myFile.open(“test.dat”,ios: : in); D.以上都正确 20.read函数的功能是从输入流中读取()。 D A.一个字符B.当前字符C.一行字符D.指定若干字节 试题二、程序填空题(每空1分,共20分)。 1.【程序说明】以下程序能实现求a2+b2+c2。 其中a、b、c的值由对象的初始化值提供。 该程序使用静态成员实现。 运行结果: Number=5 Number=10 Number=15 Result=350 #include usingnamespacestd; classmyclass{ public: myclass(intx); voidgetnumber(); staticvoidResult(); private: inta; (1);//定义静态数据成员sum }; myclass: : myclass(intx){ a=x; (2); } voidmyclass: : getnumber(){ cout<<"Number="< } voidmyclass: : Result(){ cout<<"Result="< } (3); intmain() { myclas
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 期终 考试 部分 答案