- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
C++程序设计试题和答案
一、单项选择题(每题2分,共20分)
1.以下关于C++类成员访问权限的描述中,正确的是()
A.private成员只能被类的成员函数访问,友元类不能访问
B.protected成员可以被类的派生类成员函数直接访问
C.public成员在类外可以通过对象名直接访问,但不能通过指针访问
D.类的默认访问权限是protected
2.若有定义`intp[5];`,则以下描述正确的是()
A.p是一个指向5个int型元素的数组的指针
B.p是一个包含5个int型指针的数组
C.p是一个指向int型的指针,该指针指向长度为5的数组
D.该定义存在语法错误
3.关于虚函数的描述,错误的是()
A.基类中声明为virtual的函数,派生类中同名函数自动成为虚函数
B.虚函数不能是静态成员函数
C.构造函数不能声明为虚函数,但析构函数可以
D.虚函数的调用一定发生动态绑定
4.已知`classA{public:A(intx){coutA构造;}};`,则以下定义对象的方式中,会调用A构造函数的是()
A.`Aa=10;`
B.`Aa=newA[2];`
C.`Aa();`
D.`constAa;`
5.关于C++11移动语义的描述,正确的是()
A.移动构造函数的参数是const左值引用
B.移动操作会将源对象的资源转移到目标对象,源对象后续不可再使用
C.std::move函数的作用是将左值转换为右值引用
D.若类中未定义移动构造函数,编译器不会自动提供
6.以下代码执行后,输出结果是()
```cpp
intmain(){
inta[]={1,2,3,4};
intp=a;
(p++)+=10;
coutp,a[0]endl;
}
```
A.2,11
B.2,1
C.3,11
D.3,1
7.若要实现“当对象被销毁时自动释放动态分配的内存”,应主要利用C++的()机制
A.异常处理
B.运算符重载
C.析构函数
D.友元函数
8.以下模板声明中,语法正确的是()
A.`templateclassT1,T2classMyClass;`
B.`templatetypenameT1,intNclassArray;`
C.`templateTvoidfunc(Ta){...}`
D.`templateclassT1=T2,classT2classPair;`
9.关于异常处理的描述,错误的是()
A.try块中抛出的异常必须被对应的catch块捕获
B.catch(...)可以捕获所有类型的异常
C.构造函数中可以抛出异常,但析构函数不建议抛出
D.异常抛出后,程序会跳过当前函数剩余代码,跳转到最近的匹配catch块
10.已知`classBase{public:virtualvoidf(){coutBase;}};`,`classDerived:publicBase{public:voidf(){coutDerived;}};`,则以下代码输出为()
```cpp
Baseb;Derivedd;
Basepb1=b;Basepb2=d;
pb1-f();pb2-f();
```
A.BaseBase
B.BaseDerived
C.DerivedBase
D.DerivedDerived
二、填空题(每空2分,共20分)
1.若要限制类的对象只能在堆上分配(不能在栈上分配),应将类的__________函数声明为private。
2.表达式`sizeof(hello\n)`的结果是__________(假设系统为32位)。
3.已知`intx=5,y=3;`,则表达式`(x--y)?++y:x`的值为__________。
4.类的成员函数中,__________函数不能修改类的成员变量(除非成员被mutable修饰)。
5.在C++中,使用__________关键字声明内联函数,编译器可能将其直接替换为函数体以提高效率。
6.若有`structNode{intdata;Nodenext;};`,则
文档评论(0)