石河子大学 信息学院 c++期末考试 复习题.docx
- 文档编号:2850102
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:59
- 大小:37.08KB
石河子大学 信息学院 c++期末考试 复习题.docx
《石河子大学 信息学院 c++期末考试 复习题.docx》由会员分享,可在线阅读,更多相关《石河子大学 信息学院 c++期末考试 复习题.docx(59页珍藏版)》请在冰豆网上搜索。
石河子大学信息学院c++期末考试复习题
(小题前面那个复习题里面有,大题注意一下)
试题一
一、单项选择题(共20分,每题2分,正确答案只有一项)
1.以下说法中正确的是
A.类A的private成员只能在类A的成员函数内部进行直接访问,其他任何地方都不能直接访问。
B.静态成员一定不能是private的。
C.在某种情况下,在派生类的成员函数内部也能对基类的私有成员进行直接访问。
D.只有成员变量才能是protected的,成员函数不能是protected的。
(C)
2.以下关于this指针的说法中不正确的是:
A.const成员函数内部不可以使用this指针
B.成员函数内的this指针,指向成员函数所作用的对象。
C.在构造函数内部可以使用this指针
D.在析构函数内部可以使用this指针
(A)
3.下列类模板中定义正确的是:
A.template
classA:
{
T1b;
intfun(inta){returnT1+T2;}
};
B.template
classA{
intT2;
T1fun(T2a){returna+T2;}
};
C.template
classA{
public:
T2b;T1a;
A
T1fun(){returna;}
};
D.template
classA{
T2b;
T1fun(doublea){b=(T2)a;return(T1)a;}
};
(D)
4.假设p1,p2是STL中的list容器上的迭代器,那么以下语句哪个是不符合语法的
A.p1++;
B.p1--;
C.p1+=1;
D.intn=(p1==p2);
(C)
5.将一个对象放入STL中的容器里时:
A.实际上被放入的是该对象的一个拷贝(副本)
B.实际上被放入的是该对象的指针
C实际上被放入的是该对象的引用
D.实际上被放入的就是该对象自身
(A)
6.以下关于函数对象的说法正确的是:
A.函数对象所属的类将()运算符重载为一个成员函数
B.函数对象所属的类将[]运算符重载为一个成员函数
C.函数对象所属的类不能有成员变量
D.A和C都对
(A)
7.以下说法正确的是:
A.const成员函数内可以调用非const成员函数
B.在抽象类的某些成员函数中,可以出现调用纯虚函数的语句
C.静态成员函数也可以是虚函数
D.静态成员变量只能通过静态成员函数来访问
(B)
8.如果将运算符“*”重载为某个类的成员运算符(也即成员函数),则该成员函数的参数个数是:
A.0个B.1个C.2个D.根据实际作用不同,0个或1个都行
(D)
9.以下关于STL中stack类模板的正确说法是:
A.stack是关联容器
B.对于stack上的迭代器p,能够执行p++操作
C.stack可以用deque实现
D.可以用sort算法对stack进行排序
(C)
10.以下说法正确的是
A.在静态成员函数中调用虚函数是动态联编(多态)
B.在构造函数中调用虚函数,不是动态联编
C.抽象类的成员函数都是纯虚函数
D.构造函数和析构函数都不能是虚函数
(B)
二.以下程序编译、连接都能通过,请写出运行时输出的结果。
你认为没有输出的,就写"无输出"(共28分)。
1)4分
#include
#include
usingnamespacestd;
classA{
private:
intnId;
public:
A(intn){
nId=n;
cout< }; ~A(){ cout< } }; main() { vectorvp; vp.push_back(newA (1)); vp.push_back(newA (2)); vp.clear(); Aa(4); } /* 1contructor 2contructor 4contructor 4destructor */ 2)4分 #include classApple{ private: staticintnTotalNumber; public: Apple() {nTotalNumber++;} ~Apple(){nTotalNumber--;} staticvoidPrintTotal() {cout< }; intApple: : nTotalNumber=0; intmain(){ Apple*p=newApple[4]; Apple: : PrintTotal(); Applep1,p2; delete[]p; Apple: : PrintTotal(); } /* 4 2 */ 3)4分 #include #include usingnamespacestd; classA{ public: inti; A(intn): i(n){}; voidPrint(){cout< }; A&Func(vector&v,A*p) { v.push_back(*p); for(inti=0;i if(v[i].i==2){ p=&(v[i]); break; } return*p; } main() { constintSIZE=4; Aarray[SIZE]={A (1),A (2),A(3),A(4)}; vectorv(array,array+SIZE); A*p=newA(5); Func(v,p)=10; for(inti=0;i v[i].Print(); cout< cout< } /* 1,10,3,4,5, 5 */ 4)4分 #include classA{ public: A(){} virtualvoidfunc() {cout<<"A: : func"< ~A(){} virtualvoidfund() {cout<<"A: : fund"< }; classB: publicA{ public: B(){func();} voidfun(){func();} virtual~B(){fund();} }; classC: publicB{ public: C(){} voidfunc() {cout<<"C: : func"< ~C(){fund();} voidfund() {cout<<"C: : fund"< }; main() { A*pa=newC(); deletepa; B*pb=newC(); deletepb; } /* A: : func A: : func C: : fund A: : fund */ 5)4分 #include #include #include usingstd: : vector; usingstd: : accumulate; classComplex{ doublereal; doubleimage; public: Complex(doubler=0,doublei=0): real(r),image(i){} friendComplexoperator+(constComplex&c,inti); friendostream&operator<<(ostream&o,constComplex&c); }; Complexoperator+(constComplex&c,inti) { Complextmp; tmp.real=i*i+c.real; tmp.image=c.image; returntmp; } ostream&operator<<(ostream&o,constComplex&c) { o< returno; } main() { inta[]={1,2,3,4}; vector cout< } /* 32+3i */ 6)4分 #include #include usingnamespacestd; classGt { public: booloperator()(constint&n1,constint&n2)const{ return(n1%10)>(n2%10); } }; intmain(){ typedefmap mmidMyMap; cout< MyMap.insert(mmid: : value_type(15,2.7)); MyMap.insert(mmid: : value_type(15,99.3)); cout< MyMap.insert(mmid: : value_type(30,111.11)); MyMap.insert(mmid: : value_type(11,22.22)); cout< for(mmid: : cons
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 石河子大学 信息学院 c+期末考试 复习题 石河子 大学 信息 学院 c+ 期末考试