C++复习题1.docx
- 文档编号:11561309
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:21
- 大小:26.06KB
C++复习题1.docx
《C++复习题1.docx》由会员分享,可在线阅读,更多相关《C++复习题1.docx(21页珍藏版)》请在冰豆网上搜索。
C++复习题1
一、概念题
1.类和对象有什么区别和联系?
2.什么是类的实现?
3.this指针的概念是什么?
4.为什么要引入构造函数和析构函数?
5.什么时候需要自定义拷贝构造函数?
若程序员没有定义拷贝构造函数,则编译器自动生成一个缺省的拷贝构造函数,它可能会产生什么问题?
6.什么是堆对象?
创建和回收堆对象的方法是什么?
7.为什么需要静态数据成员?
静态数据成员的定义和初始化方法是什么?
8.什么是静态成员函数?
静态成员函数和非静态成员函数有什么区别?
9.结构struct和类class有什么异同?
10.比较类的三种继承方式public、protected、private之间的区别。
11.派生类构造函数和析构函数执行的次序是怎样的?
12.什么叫虚基类?
有什么作用?
13.什么是多态性,在C++中是如何实现多态的?
14.什么是抽象类,其有何作用?
抽象类的派生类是否一定要给出纯虚函数的实现?
15.在C++中能否声明虚构造函数,为什么?
能否声明虚析构函数,有什么作用?
16.典型的Windows应用程序结构有哪些?
17.什么是消息?
什么是消息映射?
18.文档类的主要作用是什么?
视图类提供的主要函数有哪些?
19.简述利用ClassWizard是如何添加消息映射函数的。
20.非模式对话框和模式对话框有何区别?
二、填空题
1.拷贝构造函数使用______作为参数初始化创建中的对象。
2.在C++中,对于构造函数和析构函数来说,______是可以重载的,而______是不可以重载的。
3.B类中包含一个A类的成员a,则生成B类的对象时构造函数的调用顺序为______。
4.类的每一个成员函数(静态成员函数除外)都有一个隐含的参数,叫做______。
假设类名为A,则该参数的类型为______。
5.类的静态成员分为______和______。
6.声明友元的关键字是______。
7.如果类A继承了B,则类A称为______,类B称为______。
8.派生类对基类的继承有三种方式:
______、______和______。
9.如果只想保留公共基类的一个拷贝,就必须使用关键字________把这个公共基类定义为虚基类。
10.派生类的成员有两种来源,即______和______。
11.要想访问基类的private成员变量,只能通过基类提供的______进行间接访问。
12.重载运算符应仍保持其原有的操作数个数、结合性和______。
13.对于双目运算符,若重载为类的成员函数,有______个参数;若重载为友元函数,则有______个参数。
14.后缀"++"重载为类的成员函数(设类名为A)的形式为______,重载为类的友元函数(设类名为A)的形式为______。
15.设有一时间类Time,现欲用成员函数方法重载运算符+,实现一个时间与一个整数的相加运算,所得结果为一个新时间,则成员函数的声明语句为______。
16.C++语言支持的两种多态性分别是编译时的多态性和______的多态性。
17.联编有两种方式,即______和______。
18.抽象类必须至少包含一个______。
21.Windows系统中消息的主要类型有______、______和______。
22.当用户在窗口中按下鼠标左键时,Windows系统就会自动发送______消息给该窗口,如果程序要对此消息作出反应,则程序中应包含类似______函数。
23.OnDraw()函数有一个指向______类的指针参数,通过该参数可以直接向视图输出。
24.应用程序将任何东西画到设备中之前,必须明确索取一个______。
25.对话框分为______和______两种。
26.对话框的初始化工作一般在______和______中完成。
27.MFC中公用对话框有______、______、______、______和______。
28.视图派生类可以选择______类作其基类,可以实现文本编辑功能。
29.对于文档类,数据成员的初始化工作是在______函数中完成的。
30.如果修改了文档类中的数据,并要求重新显示,要用______或______发出重画消息,引起对OnDraw()的调用。
31.当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到______的开始位置。
32.假定x和y为整型,其值分别为16和5,则a/y和double(x)/y的值分别为______和______。
33.strlen(“apple”)的值为______。
34.C++程序运行时的内在空间可以分为全局数据区,堆区,栈区和______区。
35.假定a是一个一维指针数组,则a+i所指对象的地址比a大______字节。
36.如果一个派生类只有一个唯一的基类,则这样的继承称为______。
37.假定AA是一个类,“AA*abc()const;”是该类中的一个成员函数的原型,在该函数体中______向*this或其成员赋值。
38.假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为______。
39.假定用户为类AB定义了一个构造函数“AB(intaa){a=aa;}”,该构造函数实现对数据______的初始化。
40.作为类的成员函数重载地个运算符时,参数表中只有一个参数,说明该运算符有______个操作数。
41.C++有两种联编方式,其中在程序编译时的联编叫做______联编
42.虚函数可以是另一类的______函数
43.定义虚函数需要用______关键字
44.将函数“voidvf()”定义为纯虚数的格式是virtualvoidvf()______
45.拥有纯虚函数的类就是______,该类不能产生类的实例
46.派生类没有重载基类的纯虚函数,则此派生类也是______
47.有如下程序
#include
classCSAI_A
{
public:
virtualvoidfun(){cout<<"A";}
};
classCSAI_B:
publicCSAI_A
{
public:
virtualvoidfun(){CSAI_A:
:
fun();cout<<"B";}
};
voidmain()
{CSAI_A*p=newCSAI_B;
p->fun();
deletep;
}
执行这个程序的输出结果是()答案:
______
48.有如下程序
#include
constintT=8;
voidmain()
{
inti,s=0;
for(i=1;i<=T;i++){
s+=i*i;
cout<
}
cout< } 运行结果: ______ 49.有如下程序 intff(intx,inty){ intz; cout< cin>>z; if(x+y==z)return1; elsereturn0; } 函数功能: ______ 50.有如下程序 char*f(char*s){ intn=strlen(s); char*r=newchar[n+1]; for(inti=0;i if(s[i]>='a'&&s[i]<='z')r[i]=s[i]-'a'+'A'; elser[i]=s[i]; r[n]='\0'; returnr; } 函数功能: ______ 51.C++虚函数有两种调用方式,分别是______和多态调用方式 52.当运算符重载为成员函数时,对象本身就是______,不在参数表中显示地出现。 53.若以成员函数形式,为类CSAI重载“double”运算符,则该运算符重载函数的原则是______ 54.在表达式“x+=y”中,“+=”是作为非成员函数重载的运算符,若是使用显式的函数调用代替直接使用运算符“+=”,这个表达式还可以表示为______ 55.将运算符“>>”重载为类CSAI的友元函数的格式是: friendinstream&operator>>______ 56.this指针______破坏类的封装性。 57.通过指向基类的指针调用派生类对象的函数时,采用______调用。 58.下面是对按从小到大排列的有序数组a[n]中进行二分查找x的算法,若查找成功返回该元素的下标,否则返回-1。 intBinnarySearch(inta[],intn,intx) { intlow=0,high=n-1;//定义并初始化区间下界和上界变量 intmid;//定义保存中点元素下标的变量 while(low<=high){ mid=(low+high)/2; if(x==a[mid])______
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 复习题
![提示](https://static.bdocx.com/images/bang_tan.gif)