C++期末考试复习题.docx
- 文档编号:27783570
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:17
- 大小:49.04KB
C++期末考试复习题.docx
《C++期末考试复习题.docx》由会员分享,可在线阅读,更多相关《C++期末考试复习题.docx(17页珍藏版)》请在冰豆网上搜索。
C++期末考试复习题
C++期末考试复习题
一、选择题
1.在声明类时,下面的说法正确的是(C)。
A.可以在类的声明中给数据成员赋初值B.数据成员的数据类型可以是register
、public、protected可以按任意顺序出现
D.没有用private、public、protected定义的数据成员是公有成员
2.在一个类的定义中,包含有(C)成员的定义。
A.数据B.函数C.数据和函数D.数据或函数
3.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(A)。
A.intAA:
:
a()B.intAA:
a()C.AA:
:
a()D.AA:
:
inta()
4.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(C)。
A.px(a)B.px[a]C.px->aD.
5.下列关于运算符new的描述中,错误的是(D)。
A.它可以创建对象或变量B.它可以创建对象数组或一般类型数组
C.用它创建对象或对象数组时要调用相应的构造函数D.用它创建的对象可以不用delete运算符释放
6.在下面有关析构函数特征的描述中,正确的是(A)。
A.一个类中可以定义多个析构函数B.析构函数名与类名完全相同
C.析构函数不能指定返回类型D.析构函数可以由一个或多个参数
7.构造函数是在(B)时被执行的。
A.程序编译B.创建对象C.创建类D.程序装入内存
8.友元的作用之一是(A)。
A.提高程序的运行效率B.加强类的封装性
C.实现数据的隐藏性D.增加成员函数的种类
9.设置虚基类的目的是(B)。
A.简化程序B.消除二义性C.提高运行效率D.减少目标代码
10.回值的纯虚函数,正确的写法是(B)。
show()=0;voidshow();
voidshow()=0;D.voidshow()=0virtual;
11.重载函数在调用时选择的依据中,(B)是错误的。
A.函数名字B.函数的返回类型C.参数个数D.参数的类型
12.已知:
intfun(int&a),m=10;下列调用fum()函数的语句中,正确的是(C)。
A.fun(&m);B.fun(m*2);C.fun(m);D.fun(m++);
13.下列各种类中,不能定义对象的类是(B)。
A.派生类B.抽象类C.嵌套类D.虚基类
14.类中定义的成员默认为(A)访问属性。
A.publicB.privateC.protectedD.friend
15.静态成员函数对类的数据成员访问(B)。
A.是不允许的B.只允许是静态数据成员
C.只允许是非静态数据成员D.可允许是静态数据成员或非静态数据成员
16.在下列语句中,将函数intf_sum(intx,inty)正确重载的是(A)。
f_sum(intx,inty)f_sum(inta,intb)
f_sum(intx)f_sum(inta,intb)
17.下列各语句是输出字符'A'的,其中错误语句是(B)。
A.cout<<'A';B.('A');C.charch='A';cout< 18.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的(D)。 A.只能是公有成员B.只能是保护成员 C.只能是除私有成员之外的任何成员D.具有任何权限的成员 19.C++语言程序中进行文件操作时应包含的头文件是(A)。 A.B.C.D. 20.在C++程序中使用的cin标识符是系统类库中定义的(A)类中的一个对象。 A.istreamB.ostreamC.iostreamD.fstream 21.已知: charn=’p’;在下列表示引用的方法中,()是正确的。 &x=n;B.char&y=’p’;C.char&z;&t=&n; 22.在(A)情况下适宜采用内联函数。 A.函数代码小,频繁调用B.函数代码多,频繁调用 C.函数体含有递归语句D.函数体含有循环语句 23.如果表达式a+b中的“+”是作为友元函数重载的运算符,若采用运算符函数调用格式,则可表示为()。 A.+(b)B.+(a)C.operator+(a,b)D.operator(a+b) 24.执行完循环for(i=1;i<100;i++);后,i的值为(B)。 A.99B.100C.101D.102 25.假定一个类对象数组为A[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为(C)。 A.0B.1C.nD.n-1 26.在C++程序中使用的cout标识符是系统类库中定义的(B)类中的一个对象。 A.istreamB.ostreamC.iostreamD.fstream 二、填空题 1.在下面一段类定义中,Derived类是由直接基类Base1和Base2所派生的,Derived类包含有两个间接基类BaseBase,在初始化函数Init中,需要把x1和x2的值分别赋给属于基类Base1的x成员和属于基类Base2的x成员。 classBaseBase{ protected: intx; public: BaseBase(){x=1;} }; classBase1: publicBaseBase{ public: Base1(){} }; classBase2: publicBaseBase{ public: Base2(){} }; classDerived: (1)publicBase1, (2)publicBase2 { public: Derived(){} voidInit(intx1,intx2){ (3)Base1: : x=x1; _(4)__Base2: : x=x2_; } (5)voidoutput(){cout< : x<<''< : x< }; 2.该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。 int (1)inta[] { intx=a[0]; for(inti=1;i if(a[i]>x) (2)a[j+i=j]; (3)break; } classA{ char*a; public: ___ (1)___下列程序的功能是,建立磁盘文件,从键盘输入一行字符串,以回车键结束,将其中的字母字符存放在文件中,请填空完成该程序。 #include usingnamaspacestd; intmain() { chara[80]; ; #include<> voidmain() { inti,j; int*p1,*p2; p1=&i;p2=&j; i=3;j=6; cout<<"i="< cout<<"*p1="<<*p1<<"*p2="<<*p2< *p1=5;*p2=8; cout<<"i="< cout<<"*p1="<<*p1<<"*p2="<<*p2< } 2. #include<> #include<> classCD{ char*a; intb; public: voidInit(char*aa,intbb) { a=newchar[strlen(aa)+1]; strcpy(a,aa); b=bb; } char*Geta(){returna;} intGetb(){returnb;} voidOutput(){cout< }; voidmain() { CDdx,dy; chara[20]; ("abcdef",30); strcpy(a,()); strcat(a,"xyz"); (a,()+20); (); (); } 3. #include<> classA{ inta[10];intn; public: A(intaa[],intnn): n(nn){ for(inti=0;i } intGet(inti){returna[i];} intSumA(intn){ ints=0; for(intj=0;j returns; } }; voidmain(){ inta[]={2,5,8,10,15,20}; Ax(a,4); Ay(a,6); intd=1; for(inti=0;i<4;i++)d*=(i); intf=(5); cout<<"d="< cout<<"f="< } 4. #include<> classcircle{ protected: intr; public: voidsetr(intx){r=x;} virtualvoidshow()=0; }; classarea: publiccircle{ public: voidshow() {cout<<"这个圆的面积是: "<<*r*r< classperimeter: publiccircle{ public: voidshow() {cout<<"这个圆的周长是: "<<2**r< voidmain() {circle*ptr; areaob1; perimeterob2; (10); (10); ptr=&ob1;ptr->show(); ptr=&ob2;ptr->show(); } 5. #include<> classA{ public: A(){cout<<"A";} }; classB{ public: B(){cout<<"B";} }; classC: publicA{ public: C(){cout<<"C";} private: Bb; }; intmain() { Cobj; return0; } 6. #include<> classsmall_cat{ doubleweight; 编程求圆、圆内接正方形和圈外切正方形的面积和周长。 要求使用抽象类。 解: #include<> constdoublePI=; classShape { public: Shape(doublei) {r=i;} virtualvoidArea()=0; virtualvoidPerimeter()=0; protected: doubler; }; classCircle: publicShape { public: Circle(doublei): Shape(i) {} voidArea() {cout<<"圆的面积是"< voidPerimeter() {cout<<"圆的周长是"<<2*PI*r< }; classIn_Square: publicShape { public: In_Square(doublei): Shape(i) {} voidArea() {cout<<"圆内接正方形的面积是"<<2*r*r< voidPerimeter() {cout<<"圆内接正方形的周长是"<<4**r< }; classEx_Square: publicShape { public: Ex_Square(doublei): Shape(i) {} voidArea() {cout<<"圆外切正方形的面积是"<<4*r*r< voidPerimeter() {cout<<"圆外切正方形的周长是"<<8*r< }; voidmain() { Shape*ps; ps=newCircle(8); ps->Area(); ps->Perimeter(); ps=newIn_Square(8); ps->Area(); ps->Perimeter(); ps=newEx_Square(8); ps->Area(); ps->Perimeter(); deleteps; } (附上运行结果: ) 2.已知复数类Complex的声明如下: classComplex {public: Complex();编写程序,计算出复数对象c1和c2相加结果,并将其结果输出。 4.从建立的数据文件中读入10个整数放在数组中,找出并输出10个数中的最大者和它在数组中的序号。 解: #include #include usingnamespacestd; intmain() { inta[10],max,i,order; fstreaminfile("",ios: : in); if(! infile) { cerr<<"openerror! "< (1);} for(i=0;i<10;i++) { infile>>a[i]; cout< } cout< max=a[0]; order=0; for(i=1;i<10;i++) if(a[i]>max) {max=a[i];order=i;} cout<<"max="< return0; } 5.根据下面类中MaxMin函数成员的原型和注释写出它的类外定义。 classAA{ int*a; intn; intMS; public: voidInitAA(intaa[],intnn,intms){ if(nn>ms){cout<<"Error! "< (1);} MS=ms; n=nn; a=newint[MS]; for(inti=0;i } intMaxMin(int&x,int&y);根据下面类中构造函数的原型和注释写出它的类外定义。 classArray{ int*a;//指向动态分配的整型数组空间 intn;//记录数组长度 public: Array(intaa[],intnn);//构造函数,利用aa数组长度nn初始化n, //利用aa数组初始化a所指向的数组空间 Array(Array&aa);//拷贝构造函数 Array&Give(Array&aa);//实现aa赋值给*this的功能并返回*this ArrayUion(Array&aa);//实现*this和aa中的数组合并的 //功能,把合并结果存入临时对象并返回 intLenth(){returnn;}//返回数组长度 voidPrint(){//输出数组 for(inti=0;i cout< cout< } }; 解: Array: : Array(Array&aa) { n=; a=newint[n]; for(inti=0;i }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 期末考试 复习题