ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:22.21KB ,
资源ID:27404651      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27404651.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(春季学期《C++程序设计》作业题目及答案.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

春季学期《C++程序设计》作业题目及答案.docx

1、春季学期C+程序设计作业题目及答案2013年春季学期C+權序设计 作业题目及答案作业提交格式要求:请同学们把答案集中单 独写在一个.doc文档中,作为附件上传(不要把 答案直接填写在题目的空中)。特规定格式如下:一、 ABCDD AAAAA题 号12345678910结 果VVVVXXXXXX-、(1)BeiJi ngSha ngHaix=8,y=7r=k : i+j=90以上只是举例,不是正确的输出结果。请按上 述规定书写和提交作业结果,不符合以上规定的 作业将作为0分处理。鼓励独立完成作业,严惩抄袭第一部分(C+第1-7、8、9章)一、单选题 BDBCD DCDCB1、 C+是从早期的C语

2、言逐渐发展演变来的,与C语言相比,它在求解问题方法上最大的改 进是( )。A. 面向过程 B.面向对象 C.安全性D.复用性2、 下列关于this指针的叙述中,正确的是( )A. 任何与类相关的函数都有this指针B. 类的成员函数都有this指针C. 类的友元函数都有this指针D. 类的非静态成员函数才有this指针3、 若有以下类Z声明,函数fStatic的正确定义是( )。class Z int a;public:void fStatic(Z&)static;A. void Z:fStatic(Z &o bjZ) objZ.a=O; B. void Z:fStatic(Z &o bjZ

3、) a= obj Z. a; C. void Z:fStatic(Z &o bjZ) a=0; D. void Z:fStatic(Z &objZ) Z:a=0; 4、 在C+中,关于下列设置缺省参数值的描述 中,()是正确的。A .不允许设置缺省参数值;B. 只能在函数的定义中指定参数的缺省值;C. 在指定了缺省值的参数右边,不能出现没有 指定缺省值的参数;D. 设置缺省参数值时,必须全部都设置;5、 关于友元函数的描述中,错误的是( )。A .友元函数说明在类体内 B .友元函数不是成员函数C.友元函数必须用对象来引用 D .友元函数可以直接访问类中的私有成员6、 对于类,下面哪个是不正确

4、的()。A. 类是对象的设计蓝图B. 使用关键字Class创建类结构C. 类被声明后,类名成为类型名并且可以 用来声明变量D. 类与结构体相同,它们之间没有区别7、 下列是构造函数的特点,( )是错误的。A. 构造函数是一种成员函数,它具有一般成员函数的特点B. 构造函数的名称与其类名相同。C. 构造函数必须指明其类型。D. 个类中可以定义一个或多个构造函数。&已知:p是一个指向类A数据成员m的指针, a是类A的一个对象。在给 m赋值为5的下列 表达式中,()是正确的。A. a.p=5 B. a-p=5 C. a.*p=5D. *a.p=59、 下面对静态数据成员的描述中,正确的选项是()。A

5、. 静态成员可以在类体内进行初始化B. 静态数据成员不可以被类的对象调用C. 静态数据成员可以直接用类名调用D. 静态数据成员不可以直接用类名调用10、 下列关于new运算符的描述中,错误的是 ()。A. new运算符组成的表达式的值是地址值B. 创建对象时不调用构造函数C. 用它创建的对象须用delete来删除D. 可用它来创建动态的对象和对象数组二、判断题 TFFTT FFTFF1. 子对象的初始化可以不放在该类的构造函 数中。T2. 如果一个类中没有定义任何构造函数, 则该 类的对象便无法初始化。F3. 构造函数和析构函数都不能重载。F4. 如果一个成员函数只存取一个类的静态数 据成员,

6、则可将该成员函数说明为静态成员 函数。T5. 构造函数和析构函数都是系统自动调用的。T6. 可以在类的构造函数中对静态数据成员进 行初始化。F7. 友元函数是成员函数,它可以访问类中私有 成员。F8. 对象数组的元素必须是同一个类的对象。 T9. 用class定义的类中,默认的访问权限是公 有的。F10. 运算符new可以创建变量或对象, 也可以创建数组。F三、写出下列程序的输出结果:#in elude using n amespace std;class Testpublic:Test()coutconstructor of Test endl;Test a;int mai n()coutm

7、ain() start endl;Test b;retur n 0;输出结果:con structi on of Testmai n( )startcon structor of Test2、#in elude class Stude ntpublic:Stude nt(i nt i=0,double j=0) n um=i;score=j; void prin t() coutnum,scoreendl; friend void fun(Student &rs);private:int n um;double score;void fun( Stude nt &rs) rs.nu m=110

8、0;rs.score=80;rs.pri nt();void mai n() Stude nt s1(1002,50),s2;s1.pri nt();fun (s2);输出结果:1002, 501100, 803、#in elude class Aprivate:int a;public:A(i nt aa)a=aa;A()cout”Destructor A! ”vavendl; ;class B:public Aprivate:int b;public:B(int aa = 0, int bb = 0):A(aa) b = bb;B()cout”Destructor B! ”vbvendl;

9、void mai n()B 也 1(5),也 2(6,7);return;;输出结果:Destrutor B ! 7Destrutor A ! 6Destrutor B ! 0Destrutor A ! 54、#in clude class Apublic:A(i nt i=0)m=i; coutvv ” Con structorcalled. ” vvmvve ndl;void Set(i nt i)m=i;void Prin t() constcoutvvmvve ndl;A()cout ”Destructor called. ” vvmvvendl; private:int m;void

10、 mai n()const int N=5;A my;my=N;my.Pri nt();输出结果:Con strutor called.0Con strutor called.55Destrutor called.5Destrutor called.5第二部分(C+第10、11章)一、单选题 CAADD ADA1、在C+中类与类之间的继承关系具有( )A. 自反性 B.对称性 C.传递性 D. 反对称性2、 int Func(int , int);不可与下列哪个函数构成 重载()。A. INT FUNC(INT , INT , INT)B. DOUBLE FUNC(INT , INT)C. D

11、OUBLE FUNC(DOUBLE , DOUBLE)D. DOUBLE FUNC(INT , DOUBLE);3、 关于基类和派生类的描述中,错误的是 ( )。A. 基类和派生类间是包含关系B 派生类中可以定义自己的成员C .基类成员在派生类中的访问权限与继承方 式有关D .一个派生类可以从一个基类派生,也可 以从多个基类派生。4、 下列对运算符重载的描述中,正确的是()。A.运算符重载可以改变结合性B. 运算符重载可以改变优先级C. 运算符重载可以改变操作数的个数D. 运算符重载不改变优先级和结合性5、下列函数中,()不能重载A.成员函数 B.非成员函数 C.构造函数 D.析构函数6、 当

12、一个类某个函数被说明为 virtual时该函数 在该类的所有派生类中()。A. 都是虚函数B. 只有被重新说明时才识虚函数C. 只有被重新说明为virtual时才是虚函数D. 都不是虚函数7、 实现运行时的多态性采用( )A.重载函数 B.构造函数 C.析构函数 D.虚函数&关于动态联编的下列描述中,( )是错误的。A.动态联编是在编译时确定操作函数的E. 动态联编是以虚函数为基础的C. 动态联编是在继承的前提下的一种多态 性D. 动态联编时要求类的继承是公有的二、判断题 FFTTF FFTTF1. C+支持运算符重载,所有运算符都可 以重载。F2在公有继承中,基类中的公有成员和私有成员在派生

13、类中都是可见的。F3. 基类中的保护成员在其派生类中可以访 问,而派生类对象不可访问。T4. 运算符重载不能改变运算符的运算优先 级、结合方向。T5. 派生类的对象不可以给基类对象赋值。F6 静态联编是在运行时进行的,动态联编 是在编译时进行的。F7.派生类的构造函数中应包含直接基类的 构造函数。F8 私有继承方式下,基类中公有成员和保 护成员在派生类中都是私有的。T9 .抽象类不能定义对象,可以定义对象引 用和对象指针。T10.个对象在创建时,总是要被初始化的。F三、写出下面程序的输出结果。1、#in elude class BASE public:void get( int i,i nt

14、j,i nt k,i nt l ) a = i; b = j; x = k; y = I;void prin t() cout a = a tb = b tx = x ty = y en dl;int a,b;protected:int x, y;class A: public BASE public:void get( int i, i nt j, i nt k, i nt l ) BASE obj3;obj3.get( 50, 60, 70, 80 );obj3.pri nt();a = i; b = j; x = k; y = l;u = a + b + obj3.a ; v = y -

15、 x + obj3.b; void prin t() cout a = a tb = b tvv x = x ty = y en dl;cout u = u tv = v en dl;private:int u, v ;void mai n() BASE obj1;A obj2;obj1.get( 10, 20, 30, 40 ); obj2.get( 30, 40, 50, 60 ); obj1.pri nt();obj2.pri nt();输出结果:a=50 b=60 x=70 y=80 a=10 b=20 x=30 y=40 a=30 b=40 x=50 y=60 u=120 v=702

16、、#in elude class Apublic:A(i nt i,i nt j) a1=i; a2=j; virtual void Prin t() couta1 +a2e ndl; protected:int a1,a2;class B:public Apublic:B(int i,int j):A(i,j) void Print() couta1*a2endl; ;void fun(A &a) a.Print(); void mai n()int m=10, n=2;B b(m, n); fun( b);输出结果:203、#in elude class Bpublic :B()B(int

17、 i)b=i;virtual void virf un()cout ”B:virfun() called.n ”; private:int b;;class D:public Bpublic:D()D(int i,int j):B(i)d=j;private:int d;void virfun()cout ”D:virfun() called.n ”;void fun(B *obj)obj-virf un();void mai n()B *pb=new B;fun (pb);D *pd=new D;fun (pd);输出结果:D:virfun() called.第三部分(vc+)一、单选题 C

18、DBDB BADDC1. 下面关于API的描述错误的是()A. API是用来控制Windows各个元素的外观和行 为的一套预定义的Windowj函数。B. 创建应用程序,打开窗口、描绘图形都要调 用API函数。C .Windows操作系统构建在API函数上D.早期,windows程序员编写程序只能使用 API 函数2. 下面关于API的描述错误的是()A. API函数构建在Windows操作系统上B. 创建应用程序,打开窗口、描绘图形都要调 用API函数。C. API是用来控制Windows各个元素的外观和行 为的一套预定义的 Windows函数D Windows应用 程序构建在API函数上。

19、D. 现在,Windows程序员编写程序只能使用 API函数3. 下面描述句柄的语句,错误的是()A句柄是WINDOWS来标识被应用程序所建立或使用的对象的唯一整数B句柄中存放了 WindowS寸象的数据C句柄能区分不同的应用程序对象D.句柄具有多种类型4. ()C.HDC在Windows中,窗口句柄的类型是A. HINSTANCE B. HFONTD.HWND5. 在Windows中,字体句柄的类型是 ()A. HINSTANCE B. HFONT C.HDC D.HWND6. 对消息循环描述错误的是()A. GetMessage函数在消息队列非空时,取得消 息并返回。B. 若GetMess

20、age取得的是 WM_CLOSE!、则返回 0,否则返回非0.C. GetMessage函数在消息队列为空时,将一直 空闲。D. DispatchMessage将当前消息发送到对应的 窗口过程中去。7. 下面四个MF(类中哪一个是管理 MF(应用程序的()A. CWinApp B. CMai nFrame C. CDocume nt D. CView8. 下列类中不属于MF框架基本类的是()A. CWi nAppB. CFrameW ndC. CView D. CObject9. 关于GD的描述错误的是()A. GDI指图像设备接口。B. GDI负责用户和绘图程序之间的信息交换C. GDI控制

21、在输出设备上显示图形或文字。D. 采用了 GD,编程时还需关心显示卡或打印机 的驱动程序。10. 关于设备上下文的描述错误的是()A. 设备上下文是一种包含有关某个设备的绘制 属性的Windows数据结构。B. 设备上下文允许在Windows中进行与设备无关 的绘制。C. 设备上下文可以用于绘制到屏幕,打印机但不 能绘制到图元文件。D. 设备上下文对象圭寸装了绘制线条、形状和文本 等的 Windows API.1、填空题1.SendMessage 和 PostMessage 都会向窗体发 送一个消息,但 SendMessage将一条消息发 送至U指定窗口,立即处理 而PostMessage将一

22、条消息投递到指定窗口的消息队列, 不需要 立即处理 。2. 使用MFC AppWizard产生的应用程序的类型主要包括单文档应用程序 、多文档应用程序 、基于对话框的应用程序 .3. VC+的工作区窗口包含3个视图,分别是佳视图 , 资源视图 , 文件视图 。4. 封装画刷的 GDI类是 CBrush 封装画笔的GDI类是 CPen封装字体的GDI类 是 ,封装位图的GDI类是CBitmap 。5. Win dows应用程序的消息来源主要包括 系统消息禾廿 6. Windows应用程序的消息按处理方式主要包括 命令消息 、 标准消息 禾和 通告消息 。7. 在Visual C+中,创建控件有两

23、种方法:一种是 ,另一种是 动态创建 。8、 按钮控件对应 CButt on 类,静态文本控件对应CStatic 类,单选和复选按钮对应 CCheckListBox 类。9、 在 MFC 的众多类中, CObject 是所有MFC类的原始基类。10、 消息处理函数 OnLButtonDown 响应 左键按下 消息。三、简答题1什么是句柄?它在 Windows程序中的作用是 什么?答:句柄,是整个 windows编程的基础。一个 句柄是指使用的一个唯一的整数值,即一个四字 节长的数值,来标志应用程序中的不同对象和同 类对象中的不同的实例,诸如,一个窗口,按钮, 图标,滚动条,输出设备,控件或者文

24、件等。应 用程序能够通过句柄访问相应的对象的信息,但 是句柄不是一个指针,程序不能利用它句柄来直 接阅读文件中的信息。如果句柄不用在I/O文件 中,它是毫无用处的。句柄是windows用来标 志应用程序中建立的或是使用的唯一整数, windows使用了大量的句柄来标志很多对象。2. CPaintDC,CClientDC,CWindowDC 的区 别?答:CClientDC :(1) (客户区设备上下文)用于客户区的输出,与特定窗口关联,可以让开发者访问目标窗口中客 户区,其构造函数中包含了 GetDC,析构函数中包含了 ReleaseDCCPaintDC :用于响应窗口重绘消息(WM_PAIN

25、T )是的 绘图输出。(2) CPaintDC在构造函数中调用 BeginPaint()取得设备上下文,在析构函数中调用 En dPai nt()释放设备上下文。EndPaint()除了释放设备上下 文外,还负责从消息队列中清除WM_PAINT消 息。因此,在处理窗口重画时,必须使用 CPaintDC,否则WM_PAINT消息无法从消息 队列中清除,将引起不断的窗口重画。(3) CPaintDC也只能用在WM_PAINT消息处理 之中。CWindowDC :可在非客户区绘制图形,而 CClientDC ,CPaintDC只能在客户区绘制图形。(2) 坐标原点是在屏幕的左上角, CClientDC ,CPaintDC下坐标原点是在客户区的左上角。(3) 关联一特定窗口,允许开发者在目标窗口的任何一部分进行绘图,包含边界与标题,这种 DC同WM_NCPAINT消息一起发送

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1