C++复习资料.docx
- 文档编号:18422917
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:17
- 大小:21.57KB
C++复习资料.docx
《C++复习资料.docx》由会员分享,可在线阅读,更多相关《C++复习资料.docx(17页珍藏版)》请在冰点文库上搜索。
C++复习资料
单选:
1、下列关于C++函数的叙述中,正确的是(C)。
A)每个函数至少要具有一个参数B)每个函数都必须返回一个值
C)函数在被调用之前必须先声明D)函数不能自己调用自己
2、下列关于类和对象的叙述中,错误的是(A)。
A)一个类只能有一个对象B)对象是类的具体实例
C)类是对某一类对象的抽象D)类和对象的关系是一种数据类型与变量的关系
3、在C++中,用于实现运行时多态性的是(D)。
A)内联函数B)重载函数C)模板函数D)虚函数
4、下列关于运算符重载的叙述中,正确的是(B)。
A)通过运算符重载,可以定义新的运算符B)有的运算符只能作为成员函数重载
C)若重载运算符+,则相应的运算符函数名是+D)重载二元运算符时,必须声明两个形
参
5、对于语句cout< A)“cout”是一个输出流对象B)“endl”的作用是输出回车换行 C)“x”是一个变量D)“<<”称作提取运算符 6、执行如下的程序段后,输出结果是(A)。 cout.fill('*');cout.width(6);cout.fill('#');cout<<123< A)###123B)123###C)***123D)123*** 7、在下列函数原型中,可以作为类AA构造函数的是(D)。 A)voidAA(int);B)intAA();C)AA(int)const;D)AA(int); 8、下面四个选项中,(A)是用来声明虚函数的。 A)virtualB)publicC)includeD)usingnamespace 9、实现运行时的多态性要使用(D)。 A)重载函数B)构造函数C)析构函数D)虚函数 10、要实现动态联编,必须通过(A)调用虚函数。 A)对象指针B)成员名限定C)对象名D)派生类名 11、以下(C)成员函数表示纯虚函数。 A)virtualintvf(int);B)voidvf(int)=0; C)virtualvoidvf()=0;D)virtualvoidvf(int){} 12、有如下类声明: classXA {private: intx; public: XA(intn){x=n;}}; classXB: publicXA {private: inty; public: XB(inta,intb);}; 在构造函数XB的下列定义中,正确的是(B)。 A)XB: : XB(inta,intb): x(a),y(b){}B)XB: : XB(inta,intb): XA(a),y(b){}C)XB: : XB(inta,intb): x(a),XB(b){}D)XB: : XB(inta,intb): XA(a),XB(b){} 13、在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运 算符。 则operator+有()个参数,operator*有()参数。 (C) A)2、2B)2、1C)1、2D)1、1 14、应在下列程序划线处填入的正确语句是(C)。 classBase {public: voidfun(){cout<<"Base: : fun"< classDerived: publicBase {voidfun() {//显示调用基类的函数fun() cout<<"Derived: : fun"< A)fun();B)Base.fun();C)Base: : fun();D)Base->fun(); 15、下列关于C++标识符的命名不合法的是(C) A.PadB.name_1C.A#bcD._a12 16、若有以下类型标识符定义: (D) intx=2;charw='a';floaty=23.45f;doublez=45.6712; 则表达式w*x+y-z的结果类型是 A.floatB.charC.intD.double 17、对重载函数形参的描述中,错误的是(D) A.参数的个数可能不同B.参数的类型可能不同 C.参数的顺序可能不同D.参数的个数、类型、顺序都相同,只是函数的返回值类型不同 18、下列给字符数组进行的初始化中,不正确的是(D) A.chars1[]="abcd";B.chars2[3]={'x','y','\0'}; C.chars3[]={'a','x','y','\0'};D.chars4[6]={"xyz","mnp"}; 19、通常的拷贝构造函数的参数是(C) A.某个对象名B.某个对象成员名 C.某个对象的引用D.某个对象的指针名 20、关于构造函数特点的描述中,错误的是(A) A.定义构造函数必须指出类型(构造函数特点是无返回类型) B.构造函数的名字与该类的类名相同 C.一个类中可定义0至多个构造函数(不写构造函数,系统会自动生成一个空的构造函 数) D.构造函数是一种成员函数 21、关于友元函数的描述中,错误的是(B) A.友元函数不是成员函数 B.友元函数只能访问类中私有成员 C.友元函数破坏隐藏性,尽量少用 D.友元函数说明在类体内,使用关键字friend 22、如果有intx,*p;floaty,*q;则下面操作正确的是(C) A.p=xB.p=q C.p=&xD.p=&y 23、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是(D) A.数组的长度B.数组第一个元素的值 C.数组所有元素的值D.数组第一个元素的地址 24、对于动态分配内存空间描述正确的是(D) A.使用new运算符分配的内存空间的长度必需是常量 B.delete运算符可以释放动态的存储空间和静态的存储空间 C.由new分配的内存空间是不连续的 D.delete运算符只能释放由new分配的动态存储空间 25、能够释放对象所占资源的是(A) A.析构函数B.数据成员 C.构造函数D.静态成员函数 26、虚函数的定义是在基类中进行的,定义时需要冠以关键字(C) A.staticB.frend C.virtualD.public 27、在C++中串流类是在头文件strstrea.h中定义的,下列不属于串流类的是(C) A.strstreamB.ostrstream C.ofstreamD.istrstream 28、关键字(C)说明对象或变量初始化后不会被修改。 a.staticb.publicc.constd.inline 29、如果调用带有默认参数的函数时缺少一个参数,则(B)参数就作为这一参数。 a.第一个b.最后一个c.中间一个d.以上都不是 30、成员函数可声明为静态的,条件是它不访问(C)类成员。 a.静态b.常数c.非静态d.公共 31、内联函数执行起来比标准函数(B)。 a.更慢b.更快c.次数更多d.以上都不是 32、表达式long(intVar)也可表示为(C)。 a.intvar=long;b.intVar(long)c.(long)intVard.以上都不是 33、静态数据成员的生存期(A)。 a.与整个程序相同b.不长于类的生存期 c.取决于创建的对象数d.以上都不是 34、要让一个类中的所有对象具有共同的数据,请使用(C)。 a.常数成员变量b.私有数据成员c.静态数据成员d.以上都是 填空: 1.在类中必须声明成员函数的(原型),成员函数的(实现)部分可以写在类外。 2.如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是(引 用)类型或(指针)类型。 3.(抽象)类只能作为基类使用,而不能声明它的对象。 4.进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们的形参(个数)或 (类型)必须不同。 5.函数的递归调用是指函数直接或间接地调用(自身)。 6.拷贝构造函数的形参必须是(本类对象的引用)。 7、在字长为32位的机器中,sizeof(char)= (1)字节,sizeof(unsignedint)=(4) 字节. 8、C++语法规定,任何变量在使用前必须先(定义);变量有两个值,一个是变量本身 的值,另一个是变量的(地址值)。 9、C++中任何一个数组的名字是一个(常量)指针,该指针的值是该数组(第一个元素)的 地址。 10、函数调用时的参数传递主要分为单向传递和(双向)传递,前者的特点是(形参的改 变不影响实参)。 11、函数重载时要求同名函数的参数(个数)或(类型)不同,否则无法确定是哪个函 数。 12、静态数据成员是类的所有对象中(共享)的成员,静态数据成员初始化与一般数据成 员初始化(不同)。 13、面向对象程序设计有四个主要特点,即抽象、封装、(继承)和(多态性)。 14、非成员函数应声明为类的(友元)函数才能访问这个类的private成员。 15、派生类中的成员不能直接访问基类中的(私有)成员。 16、在用class定义一个类时,数据成员和成员函数的默认访问权限是(private)。 17、运算符重载函数可能是类的(成员)函数,也可以是类的(友元)函数,还可以是普 通函数。 18、用流对象的成员函数控制输出格式时,用于设置字段宽度的流成员函数的名称是(width), 与之作用相同的控制符名称是(stew)。 19、含有纯虚函数的类称为(抽象类)。 20、函数重载时,编译系统会根据(形参的类型)或(形参的个数)来区分。 与返回类型 无关。 21、若有chara[80];则cin>>a表示从键盘上读入一个(字符串)到数组a中。 22、若希望用一个已有对象来构造另一个同类型的对象,可以使用(拷贝构造函数)来实 现。 23、静态成员(static)属于(类),而不属于(任何一个对象),它被同一个类的所有对 象共享。 24、类的继承方式有(public(或公有))继承、(private(或私有))继承和(protected (或保护))继承。 25、重载运算符的含义必须清楚,不能有(二义性)。 26、按照联编进行阶段的不同,联编方法可分为两种: (动态联编)和(静态联编)。 27、当基类中的某个成员函数被声明为虚函数后,此虚函数就可以在一个或多个派生类中 被重新定义,在派生类中重新定义时,其函数原型,包括返回类型、(函数名)、(参数 个数)、参数类型以及参数的顺序都必须与基类中的原型完全相同。 28、C++的I/O是以(字节流)的形式实现的,每个C++编译系统都带有一个面向对象的 输入/输出软件包,这就是(I/O流类库)。 判断: 1、在说明语句inta(15),&b=a,*p=&a;中,b的值与*P的是相等的。 (对) 2、在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型double型。 (错) 3、break语句也可以用于if体内,它可退出if语句。 (错) 4、在一个被调用函数中,一个return语句可返回多个值给调用函数。 (错) 5、在传值调用中,要求实参和形参的类型完全一致并且个数相等。 (错) 6、for循环中,循环变量的作用域是该循环的循环体内。 (错) 7、类中所提供的成员函数可以直接访问私有成员。 (对) 8、私有继承中,基类中所有成员对派生类的对象都是不可见的。 (对) 9、C++语言支持封装性和继承性,不支持多态性。 × 10、关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。 )× 11、字符串"sdfgh"的长度是5。 √ 12、引用和指针都可作函数参数。 √ 13、友元函数说明在类体内,它是一种成员函数。 × 14、友元类必须被说明为公有成员。 × 15、纯虚函数是在基类中说明的虚函数,它在该基类中没有定义具体的操作内容。 √ 16、析构函数不能被继承。 √ 17、运算符重载以后,其优先级和结合性都不能改变。 √ 18、在C++中,函数名实际上是一个指针,它指向函数的入口。 √ 19、友元函数用于允许一个函数访问不相关类的私有部分。 对 20、构造函数可以被继承。 错 21、动态绑定的多态性是通过虚函数实现的。 对 22、在c++中,传引用调用等同于传地址调用。 错 23、重载函数必须有不同的参数列表。 对 24、可以用delete释放不是用new运算符分配的内存。 错 25、类成员的默认访问模式是private。 对 26、在类Time中的析构函数可以声明为: void~Time(int);错 27、const对象必须初始化。 对 28、在c++中,只能重载已有的运算符。 对 写出程序的运行结果: 1、#include voidmain() { inta,b,c,d(5); c=2,c+=10; a=b=10; a*=2; b/=2; c%=2; cout< } 20,5,0 2、#include voidmain() { inta=50,b(0); b=++a; cout< b=a++; cout< } 51,51 52,51 3、#include voidmain() { intf=2002,x; if(f! =3) x=2003; else x=20; cout< } 2002,2003 4、#include voidmain() { inti=1,sum=0; while(i<=10) sum+=++i; cout<<"sum="< } sum=65,i=11 5、#include voidmain() { inti; for(i=4;i<=10;i++) {if(i%3==0)continue; cout< } 457810 6、#include voidmain() { charflag='c'; switch(flag) { case'a': cout<<"1"< case'b': cout<<"2"< case'c': cout<<"3"< default: cout<<"4"< } } 3 4 7、#include voidmain() { staticintb[][3]={{1,2,3},{4},{5,6}}; b[0][2]=12,b[1][2]=18; cout<<**b<<"\t"<<**(b+1)<<"\t"<<**b+1<<"\t"<<*(*(b+1)+2)<<"\n"; cout< } 14218 30 8、#include voidSwap(int&a,int&b); voidmain() { intx(10),y(7); cout<<"x="< Swap(x,y); cout<<"x="< } voidSwap(int&a,int&b) { inttemp; temp=a; a=b; b=temp;} x=10,y=7 x=7,y=10 9、#include intadd(inta,intb); voidmain() { externintx,y; cout< x/=y; cout< } intx(50),y(100); intadd(inta,intb) {ints=a+b;returns;} 150 100 10、#include classA { public: A(); A(inti,intj); ~A(){cout<<"Donstructor.\n";} voidprint(); private: inta,b; }; A: : A() { a=b=10;cout<<"Defaultconstructor.\n";} A: : A(inti,intj) {a=i,b=j;cout<<"Constructor.\n";} voidA: : print()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 复习资料
![提示](https://static.bingdoc.com/images/bang_tan.gif)