《C++精简复习资料.docx》由会员分享,可在线阅读,更多相关《C++精简复习资料.docx(9页珍藏版)》请在第壹文秘上搜索。
1、一、填空题1、C+用流输入输出,要求包含iostream.h头文件,并使用命名空间。在VS2008的控制台窗口中使用C+编程应在程序开头加上:#includeusingnamespacestd;然后使用cout表示标准输出,cin表示标准输入。2、C+引入引用类型。引用类型的变量或参数相当于它所引用变量的别名,本质上相当于一个指针(使用时不需要用指针对应的运算符),并不量要占该数据类型变量相应的独立的存储空间。例如:intx,&y=x;这时y就是对X的引用,给y赋值就是给X赋值,值存入X对应的存储空间中。3、函数重载。在C+中,可以定义两个或多个函数名相同,但参数个数或参数类型不同的函数,这称
2、为函数重载。在程序被编译时,编译程序会根据调用函数时的函数名和参数个数及参数类型选择调用哪个函数。4、函数默认参数。在C+中,可以将函数的参数自右向左依次指定参数的默认值,这样在函数调用时如果参数值就是默认值时就可以不传递参数,如果调用函数时不使用默认值,则传递自己的实参。5、面向对象编程中将对象的共有特征抽象为类。有封装、继承和多态性三大特征。6、C+中类定义的基本格式。在类外定义类的成员函数时,应当使用上来标识该函数为特定类的成员。在类定义的收大括号后面一定要加分号。7、构造函数和析构函数的特征。假定MyCIass为一个类,则执行:MyClassa3,*p2;语句时,自动调用该类构造函数的
3、次数为3o(a数组的三个元素在自动创建时会调用构造函数,而p指针数组并没有创建对象,所以没有调用构造函数)类AB的缺省构造函数和析构函数是AB(详AB()0类的析构函数一般用来释放对象占用的存储空间,可以自己定义特定的函数体进行相关操作。8、友元函数特点。友元函数不是类的成员函数;类的友元函数可以访问类的所有访问属性的成员。9、类成员的访问属性有PriVataProteCted,public三种(默认时在类中定义的项都是私有的)private(私有):成员变量和成员函数只能被该类本身声明的成员函数访问protected(保护成员除了可被本类中的成员函数访问外,还可以被本类派生的类的成员函数访问
4、,因此用于类的继承public(公共):成员可以被本类以外的函数访问,是类与外部的接口10、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行基类的对象成员的构造函数,接着执行基类的构造函数然后执行派生类的对象成员的构造函数,最后才执行派生类的构造函数。11、 消息循环的处理过程为:GetMessage函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后,TranslateMessage把来自键盘的命令翻译成WM_CHAR消息命令形式。D
5、ispatchMessage函数通知Windows把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。12、 消息包括窗口管理消息、用户消息、系统消息、控件消息等。其中用户消息包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息:控件消息用来与Windows的控件对象,如列表框、按钮、复选框等进行双向通信。当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。二、问答题1、在窗口程序的消息处理函数中要有一个对DefVMndowPr
6、oc函数的调用,为什么要调用这个函数?答:DefWindowProc是系统默认的窗口消息处理函数,在窗口应用程序中有些消息在我们定义的窗口函数(消息处理函数)中处理,有些消息由操作系统来处理,所有应用程序自己不处理的消息都要交给DefWindowProc函数处理,这样保证所有发送到该窗口的消息均得到处理。2、简述WlnMain入口函数和WndProc窗口函数的结构及功能。答:WinMain入口函数有四个参数:HINSTANCE、HINSTANCE1.PCWSTR、int。该入口函数有三个基本组成部分:函数说明,初始化和消息循环,功能:注册窗口类,建立窗口及执行必要的初始化,进入消息循环,根据接
7、受的消息调用相应的处理过程,当消息循环检索到WM_QUIT时终止程序运行。WndProc窗口函数有四个参数:HWNDUINTWPARAM.1.PARAMo该窗口函数定义了应用程序对接收到的不同消息的响应,包含了对各种可能接收到的消息的处理过程。WndProc函数由一系列case语句组成。每一条case语句对应一种消息,当应用程序接收到一个消息时,相应的CaSe语句被激活并执行相应的响应程序模块。3、什么是图形刷新?在什么情况下需要进行刷新?答:图形刷新是在Windows系统中的窗口程序在移动位置、部分被覆盖后需要恢复、被对象穿越后恢复时重新完整地显示窗口的行为。在上述三种情形需要刷新,另外在程
8、序中如果需要更新用户界面的显示,也可以主动刷新。4、在单文档MFC应用程序中创建及使用对话框的步骤是什么?以单击文档弹出一个模式对话框为例。答:首先创建一个单文档的工程文件。从资源视图里插入Dialog,添加需要的控件,创建好对话框资源。为对话框定义一个类,例如MyDlgo使用对话框类。为View类的消息WM-1.BUTTONDOWN添加消息响应函数,加入代码Mydlgdig;dlg.D0M0dal()o5、按钮控件分为哪几类?有什么特点?答:按钮控件分普通按钮、单选按钮、复选按钮、组框和自绘式按钮。a)普通按钮外形为矩形条,按钮上可设置文本、图标或位图,帮助用户触发指定动作;b)单选按钮外形
9、为左侧小圆框和右侧文本,当选中时圆框加点显示,同一组圆按钮所包含的个选项之间具有互斥的性质;c)复选按钮外形为左侧小方框和右侧文本,当选中时方框中出现J,可以选择其中一个或多个选项:d)组框外形为左上角包含文本的矩形框,主要在对话框中起分割区域作用;e)自绘式按钮是指由程序而不是系统负责重绘的按钮。6、一个Win32应用程序的组成及结构。答:一个Win32应用程序由C语言源程序文件、头文件、模块定义文件、资源描述文件、项目文件组成。由WinMain入口函数和WndProC窗口函数构成基本框架,包含各种数据类型、数据结构和函数,WinMain入口函数和WndProc窗口函数是构成Windows应
10、用程序的主体。程序包括窗口、事件驱动、句柄、WindoWS消息。三、程序题1、己定义一个Shape抽象类,在此基础上派生出矩形Rectangle和圆形Circle类,二者都有CaIcuIateO函数计算对象的周长请设计Rectangle类和Circle类。要求:1设计合适的私有成员数据;2设计合适的构造函数初始化数据;3设计计算周长的CalCUIate()函数;4设计测试main函数,可以输出矩形和圆的周长。#includeusingnamespacestd;classShape(public:Shape()Q-Shape()virtualfloatCalculate()=O;);答:Clas
11、sRectangle:publicShapeprivate:float1.,W;public:Rectangle(floati,floatj)构造函数,初始化宽和高(1.=i;W=j;)-RectangIeOOfloatCalculate()函数重载,计算矩形的周长(return2*(1.+W););ClassCircle:publicShape(private:floatR;public:Circle(floatr)构造函数,初始化圆的半径(R=r;)floatCalculate()函数重载,计算圆的周长(return3.14*2*R;);voidmain()(Shape*sp;sp=new
12、CircIe(IO);coutCalculate()endl;sp=ewRectagle(6,4);coutCalculate()SetWindowText(1.Error);3、下面是一个基于对话框的应用程序,用来求解一元二次方程的根。当用户在A、B、C三个编辑框中输入3个参数后,单击“计算”按钮,将显示出该方程的根在Xl和X2编辑框中。各控件对应的成员变量见下表:要实现当点击“计算”按钮时计算出一元二次方程AX2+BX+C=0的解,将解在下面两个文本框中显示。请编写“计算”按钮的消息处理程序。voidCRootDlgDlg:IOnButtonCal()解答:voidCRootDlgDlg:
13、IOnButtonCal()doubledelta,xl,x2;UPdateData(TRUE);将控件中的输入传给变量delta=mb*mb+4.0*ma*m_c;if(delta=O)(xl=(-mb+sqrt(delta)/2;x2=(-mb-sqrt(delta)/2;mxl.Format(1.%.21f”,xl);mx2.Format(1.*%.21f,z,x2);)else(mxl=1.无实根”;m_x2=1.无实根;UpdateData(FA1.SE);/将变量内容显示到控件控件ID号变量类型变量名AIDC_EDIT1intm_aBIDC_EDIT2intm_bCIDC_EDIT3intm_cXlIDC_EDIT4CStringm_xlX2IDC_EDIT5Cstringm_x24、下面是一个基于对话框的简易计算器应用程序。各控件对应的成员变量见下表:当用户在输入