版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2023年春季学期?C+程序设计?作业作业提交格式要求:请同学们把答案集中单独写在一个.doc文档中,作为附件上传(不要把答案直接填写在题目的空中)。特规定格式如下:一、 ABCDD AAAAA二、题号12345678910结果三、 (1) BeiJing ShangHai(2) x=8,y=7(3) r=k:i+j=90以上只是举例,不是正确的输出结果。请按上述规定书写和提交作业结果,不符合以上规定的作业将作为0分处理。鼓励独立完成作业,严惩抄袭。第一局部C+第1-7、8、9章一、单项选择题BDBCD DCDCB1、C+是从早期的C语言逐渐开展演变来的,与C语言相比,它在求解问题方法上最大的
2、改进是 。 A 面向过程 B. 面向对象 C. 平安性 D. 复用性2、以下关于this指针的表达中,正确的是( )任何与类相关的函数都有this指针类的成员函数都有this指针类的友元函数都有this指针类的非静态成员函数才有this指针3、假设有以下类Z声明,函数fStatic的正确定义是( )。class Z int a;public:void fStatic(Z&)static;void Z:fStatic(Z &objZ) objZ.a=0; void Z:fStatic(Z &objZ) a= objZ.a; void Z:fStatic(Z &objZ) a=0; void Z:
3、fStatic(Z &objZ) Z:a=0; 4、在C+中,关于以下设置缺省参数值的描述中, 是正确的。A不允许设置缺省参数值;B只能在函数的定义中指定参数的缺省值;C在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;D设置缺省参数值时,必须全部都设置;5、关于友元函数的描述中,错误的是 。A友元函数说明在类体内 B友元函数不是成员函数 C友元函数必须用对象来引用D友元函数可以直接访问类中的私有成员6、对于类,下面哪个是不正确的( )。A. 类是对象的设计蓝图B. 使用关键字Class创立类结构C. 类被声明后,类名成为类型名并且可以用来声明变量D. 类与结构体相同,它们之间没有区别7
4、、以下是构造函数的特点,( )是错误的。构造函数是一种成员函数,它具有一般成员函数的特点。构造函数的名称与其类名相同。构造函数必须指明其类型。一个类中可以定义一个或多个构造函数。8、:p是一个指向类A数据成员m的指针,a是类A的一个对象。在给m赋值为5的以下表达式中,( )是正确的。A. a.p=5 B. a-p=5 C. a.*p=5 D. *a.p=59、下面对静态数据成员的描述中,正确的选项是( )。静态成员可以在类体内进行初始化静态数据成员不可以被类的对象调用静态数据成员可以直接用类名调用静态数据成员不可以直接用类名调用10、以下关于new运算符的描述中,错误的是( )。A. new运
5、算符组成的表达式的值是地址值B. 创立对象时不调用构造函数C.用它创立的对象须用delete来删除D.可用它来创立动态的对象和对象数组二、判断题 TFFTT FFTFF子对象的初始化可以不放在该类的构造函数中。T如果一个类中没有定义任何构造函数,那么该类的对象便无法初始化。F构造函数和析构函数都不能重载。F如果一个成员函数只存取一个类的静态数据成员,那么可将该成员函数说明为静态成员函数。 T构造函数和析构函数都是系统自动调用的。T可以在类的构造函数中对静态数据成员进行初始化。F友元函数是成员函数,它可以访问类中私有成员。F对象数组的元素必须是同一个类的对象。 T用class定义的类中,默认的访
6、问权限是公有的。F运算符new可以创立变量或对象, 也可以创立数组。F三、写出以下程序的输出结果:1、#include using namespace std;class Testpublic:Test()coutconstructor of Testendl;Test a;int main()coutmain() startendl;Test b;return 0;输出结果:construction of Test main()start constructor of Test2、#include class Studentpublic:Student(int i=0,double j=0)
7、 num=i;score=j; void print() coutnum,scoreendl; friend void fun(Student &rs);private:int num;double score;void fun(Student &rs)rs.num=1100;rs.score=80;rs.print();void main()Student s1(1002,50),s2;s1.print(); fun(s2);输出结果:1002,50 1100,803、#include class Aprivate:int a;public:A(int aa)a=aa;A()coutDest
8、ructor A!aendl;class B:public Aprivate:int b;public:B(int aa = 0, int bb = 0):A(aa) b = bb;B()coutDestructor B!bendl;void main()B obj1(5), obj2(6,7);return;输出结果:Destrutor B!7 Destrutor A!6 Destrutor B!0 Destrutor A!54、#include class Apublic:A(int i=0)m=i; coutConstructor called.mendl;void Set(int i)
9、m=i;void Print() constcoutmendl;A()coutDestructor called.mendl;private:int m;void main()const int N=5;A my;my=N;my.Print();输出结果:Construtor called.0 Construtor called.5 5 Destrutor called.5 Destrutor called.5第二局部C+第10、11章一、单项选择题 CAADD ADA1、在C+中,类与类之间的继承关系具有( )。 A. 自反性 B. 对称性 C. 传递性 D. 反对称性2、int Func(
10、int,int);不可与以下哪个函数构成重载 。int Func(int,int,int)double Func(int,int)double Func(double,double)double Func(int,double);3、关于基类和派生类的描述中,错误的是 。基类和派生类间是包含关系 b派生类中可以定义自己的成员 c基类成员在派生类中的访问权限与继承方式有关d一个派生类可以从一个基类派生,也可以从多个基类派生。4、以下对运算符重载的描述中,正确的是( )。A. 运算符重载可以改变结合性运算符重载可以改变优先级运算符重载可以改变操作数的个数运算符重载不改变优先级和结合性5、以下函数中
11、,( )不能重载。 A. 成员函数 B. 非成员函数 C. 构造函数 D. 析构函数6、当一个类某个函数被说明为virtual时,该函数在该类的所有派生类中( )。都是虚函数只有 被重新说明时才识虚函数只有被重新说明为virtual时才是虚函数都不是虚函数7、实现运行时的多态性采用( ) A. 重载函数 B. 构造函数 C. 析构函数 D. 虚函数8、关于动态联编的以下描述中,( )是错误的。动态联编是在编译时确定操作函数的动态联编是以虚函数为根底的动态联编是在继承的前提下的一种多态性动态联编时要求类的继承是公有的二、判断题 FFTTF FFTTF1C+支持运算符重载,所有运算符都可以重载。F
12、2在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。F3基类中的保护成员在其派生类中可以访问,而派生类对象不可访问。T4运算符重载不能改变运算符的运算优先级、结合方向。T5派生类的对象不可以给基类对象赋值。F6静态联编是在运行时进行的,动态联编是在编译时进行的。F7. 派生类的构造函数中应包含直接基类的构造函数。F8私有继承方式下,基类中公有成员和保护成员在派生类中都是私有的。T9抽象类不能定义对象,可以定义对象引用和对象指针。T10一个对象在创立时,总是要被初始化的。F三、写出下面程序的输出结果。1、#include class BASE public: void get( in
13、t i,int j,int k,int l ) a = i; b = j; x = k; y = l; void print() cout a = a t b = b t x = x t y = y endl; int a,b;protected:int x, y;class A: public BASE public:void get( int i, int j, int k, int l ) BASE obj3; obj3.get( 50, 60, 70, 80 ); obj3.print(); a = i; b = j; x = k; y = l; u = a + b + obj3.a
14、; v = y - x + obj3.b; void print() cout a = a t b = b t x = x t y = y endl; cout u = u t v = v endl;private: int u, v ;void main() BASE obj1;A obj2;obj1.get( 10, 20, 30, 40 );obj2.get( 30, 40, 50, 60 );obj1.print();obj2.print();输出结果: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
15、=702、#include class A public:A(int i,int j) a1=i; a2=j; virtual void Print() couta1+a2endl; protected:int a1,a2;class B:public A public:B(int i,int j):A(i,j) void Print() couta1*a2endl; ;void fun(A &a) a.Print(); void main()int m=10,n=2;B b(m,n);fun(b);输出结果:203、#include class Bpublic: B() B(int i) b
16、=i; virtual void virfun() coutB: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()coutvirfun();void main()B *pb=new B;fun(pb);D *pd=new D;fun(pd);输出结果:D:virfun() called.第三局部VC+一、单项选择题CDBDB BADDC1.下面关于API的描述错误的是A.API是用来控制Windows各个元素的外观和行为的一套预定
17、义的Windows函数。B .创立应用程序,翻开窗口、描绘图形都要调用API函数。C .Windows操作系统构建在API函数上D.早期,windows程序员编写程序只能使用API函数2.下面关于API的描述错误的是AAPI函数构建在Windows操作系统上B创立应用程序,翻开窗口、描绘图形都要调用API函数。CAPI是用来控制Windows各个元素的外观和行为的一套预定义的Windows函数D Windows应用程序构建在API函数上。D.现在,Windows程序员编写程序只能使用API函数。3.下面描述句柄的语句,错误的是A 句柄是WINDOWS用来标识被应用程序所建立或使用的对象的唯一整
18、数B 句柄中存放了Windows对象的数据C 句柄能区分不同的应用程序对象D句柄具有多种类型4.在Windows中,窗口句柄的类型是A.HINSTANCE B. HFONT C.HDC D.HWND5.在Windows中,字体句柄的类型是A.HINSTANCE B. HFONT C.HDC D.HWND6.对消息循环描述错误的是AGetMessage函数在消息队列非空时,取得消息并返回。B.假设GetMessage取得的是WM_CLOSE消息那么返回0,否那么返回非0. CGetMessage函数在消息队列为空时,将一直空闲。DDispatchMessage 将当前消息发送到对应的窗口过程中去
19、。7.下面四个MFC类中哪一个是管理MFC应用程序的A. CWinApp B. CMainFrame C. CDocument D. CView 8.以下类中不属于MFC框架根本类的是 ( A. CWinApp B. CFrameWnd C. CView D. CObject 9.关于GDI的描述错误的是A.GDI指图像设备接口。B.GDI 负责用户和绘图程序之间的信息交换C.GDI控制在输出设备上显示图形或文字。D采用了GDI,编程时还需关心显示卡或打印机的驱动程序。10.关于设备上下文的描述错误的是A.设备上下文是一种包含有关某个设备的绘制属性的Windows数据结构。B.设备上下文允许在
20、Windows中进行与设备无关的绘制。C.设备上下文可以用于绘制到屏幕,打印机但不能绘制到图元文件。D.设备上下文对象封装了绘制线条、形状和文本等的Windows API.二、填空题1.SendMessage 和 PostMessage 都会向窗体发送一个消息,但 SendMessage将一条消息发送到指定窗口,立即处理而 PostMessage 将一条消息投递到指定窗口的消息队列,不需要立即处理。2.使用MFC AppWizard产生的应用程序的类型主要包括单文档应用程序、多文档应用程序、基于对话框的应用程序.3、VC+的工作区窗口包含3个视图,分别是类视图,资源视图,文件视图。4. 封装画
21、刷的GDI类是CBrush,封装画笔的GDI类是CPen,封装字体的GDI类是CFont,封装位图的GDI类是CBitmap。5. Windows应用程序的消息来源主要包括系统消息和自定义消息6.Windows应用程序的消息按处理方式主要包括命令消息、标准消息和通告消息。7. 在Visual C+中,创立控件有两种方法:一种是静态创立,另一种是动态创立。8、按钮控件对应CButton类,静态文本控件对应CStatic类,单项选择和复选按钮对应CCheckListBox类。9、在MFC的众多类中,CObject是所有MFC类的原始基类。10、消息处理函数OnLButtonDown响应左键按下消息。三、简答题1.什么是句柄?它在Windows程序中的作用是什么?答:句柄,是整个windows编程的根底。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九年级物理电与磁专题复习教案(河北中考适用)
- 山东省零碳建筑评价导则 JD37-001-2025
- 八年级数学下册第19章二次根式期末复习教学设计
- 小学四年级劳动技术《小兔子、跳跳蛙和花篮》项目式教学设计
- 小学一年级美术《心中的太阳》教学设计:以色彩表达传递爱与温暖
- 雨课堂学堂在线学堂云《Python程序设计(江西现代职业技术学院)》单元测试考核答案
- 九年级语文下册 第三单元 11 送东阳马生序第2课时教学设计 新人教版
- 人教版初中化学九年级下册 第十一单元课题2 化学肥料 教学设计
- 海理定理与视觉感知中的格式塔完形
- 一年级体育下册 第八课换物赛跑教案
- 各种疾病分诊知识
- 口腔疾病与全身疾病关系
- 加油站储存经营的危化品“一书一签”
- 【直接打印】人教版(2024新版)八年级上册物理默写小纸条
- 螺杆空压机微电脑控制器MAM-KY12S(B)-(Ⅻ)型
- DL∕T 1779-2017 高压电气设备电晕放电检测用紫外成像仪技术条件
- 《想象与思维》课件
- 垃圾渗滤液应急处理服务投标方案技术标
- 第二章 分数(单元重点综合测试)(解析版)
- GB/T 30121-2013工业铂热电阻及铂感温元件
- GB/T 17037.4-2003塑料热塑性塑料材料注塑试样的制备第4部分:模塑收缩率的测定
评论
0/150
提交评论