您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 2007Windows编程试卷A
1考试课程名称:windows编程学时:40+20考试方式:闭卷,笔试------07-------A考试内容:一、名词解释(共15分)1.多态性2.深拷贝3.友元4.GDI5.句柄二、单选题(共20分)1.关于对象概念的描述中,()是错误的。A)对象就是C语言中的结构体B)对象是状态和操作的封装体C)对象之间的信息传递是通过消息进行的D)对象是某个类的一个实例2.已知,intm=10,在下列表示引用的方法中正确的是()A)int&x=mB)int&y=10C)int&zD)float&t=&m3.假设MyClass是一个类,则该类的拷贝构造函数的声明语句为()A)MyClass(MyClassp);B)MyClass&(MyClassp);C)MyClass(MyClass&p);D)MyClass(MyClass*p);4.已知类A是类B的友元,类B是类C的友元,则()A)类A一定是类C的友元B)类C一定是类A的友元C)类C的成员函数可以访问类B的对象的任何成员D)类A的成员函数可以访问类B的对象的任何成员5.下列对继承关系的描述中,正确的是()A)在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的B)在公有继承中,基类中只有公有成员对派生类的对象是可见的C)在私有继承中,基类中只有公有成员对派生类对象是可见的D)在私有继承中,基类中的保护成员对派生类的对象是可见的6.模板类型参数包含关键字()A)classB)typenameC)class或typenameD)class与typename7.已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的A)voidprint()const;B)constvoidprint();C)voidconstprint();D)voidprint(const);8.考虑函数原型voidtest(inta,intb=7,char=*),下面的函数调用中,属于不合法调用的是()A)test(5);B)test(5,8);C)test(6,#);D)test(0,0,*);9.如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是()A)virtualshow()=0;B)virtualvoidshow();C)virtualvoidshow()=0;D)voidshow()=0virtual;210.当用户进行鼠标操作时,释放鼠标左键会发出()消息。A)WM_lBUTTONDOWNB)WM_lBUTTONUPC)WM_lBUTTONBLOCKD)WM_RBUTTONUP11.应在下列程序划线处填入的正确语句是()#includeclassBase{public:voidfun(){coutBase::funENDL;}};classDerived:publicBase{voidfun(){_____________//显示调用基类的函数fun()coutDerived::funENDL;}};A.fun();B.Base.fun();C.Base::fun();D.Base-fun();12.在下列叙述中,不是Windows程序的特点是()A.Windows程序通过窗口与用户进行交互。B.Windows程序是应用事件驱动进行编程。C.Windows程序是利用消息进行通信。D.Windows程序是利用过程驱动的程序。13.下列不是Windows绘图对象类的是()A.CBrushB.CPenC.CRectD.CFont14.在下列MFC中,不是控件类是()A.CListCtlB.CComboBoxC.CTreeCtlD.CMenu15.当单文档应用框架接收到框架窗口的命令时,它将按如下次序来寻找相应的消息控制函数()A.视、文档、SDI主框架、应用AppB.文档、应用App、视、SDI主框架C.视、文档、应用App、SDI主框架D.SDI主框架、文档、视、应用App16.关于动态绑定(联编)的下述描述中()是错误的。A.动态绑定(联编)是在编绎时不确定操作数的。B.动态绑定(联编)是以虚函数为基础的。C.动态绑定(联编)是在继承前提下的一种多态性。D.动态绑定(联编)是要类的继承是公有的。317.C++中,下面设置的默认参数正确的是()A.voidfun(intx=0,inty,intz)B.shortfun(intx=0,inty=0,intz)C.floatfun(intx=0,inty,intz=0)D.doublefun(intx,inty=0,intz=0)18.下面有关构造函数的描述正确的是()A.构造函数只能有一个B.构造函数不能带参数C.构造函数不能重载D.构造函数不能是虚函数19.有关重载的描述正确的是()A.运算符(操作符)+new.?:都可以重载B.运算符(操作符)重载不改变操作数的个数C.运算符(操作符)重载可以改变优先级数D.运算符(操作符)重载可以改变语法结构20.在下列叙述中,叙述错误的是()A.Windows应用程序与控制台(Console)程序的入口函数不同。B.在基于MFC编写的程序中,其类大部分都是由CObject类派生出来C.WM_LBUTTONDOWN、WM_RBUTTONUP、WM_KEYDOWN都是鼠标消息D.对话框、图标、菜单、光标等在VC中都可以是作为资源来处理三.填空题(共10分)1.描述命题A小于B或小于C的表达式为2.当一个成员函数被调用时,该成员函数的指向调用它的对象。3.举出C++中两种用户自定义的数据类型:、4.动态联编要满足两个条件,它们是、5.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为,定义该类至少具有一个。6.Windows应用程序的入口函数是_______。7.MFC英文名称的全称是(中文)_______。四.程序阅读题(共25分)1.阅读下面程序,写出运行结果#includeiostream.hclassTest{private:inti;staticintk;public:Test();voidDisplay();};intTest::k=0;Test::Test(){i=0;k++;}4voidTest::Display(){couti=i,k=kendl;}voidmain(){Testa,b;a.Display();b.Display();}2.阅读下面程序,写出运行结果#includeiostream.hclassB{inty;public:friendclassA;};classA{intx;public:A(inta,B&r,intb){x=a;r.y=b;}voidDisplay(B&);};voidA::Display(B&r){coutxr.yendl;}voidmain(){BObj2;AObj1(33,Obj2,88);Obj1.Display(Obj2);}3.阅读下面程序,写出运行结果#includeiostream.hclassbase{public:virtualvoidf1(){cout“f1functionofbase!\n”;}virtualvoidf2(){cout“f2functionofbase!\n”;}virtualvoidf3(){cout“f3functionofbase!\n”;}voidf4(){cout“f4functionofbase!\n”;}};classderive:publicbase{public:5voidf1(){cout“f1functionofderive!\n”;}voidf2(intx){cout“f2functionofderive!\n”;}voidf4(){cout“f4functionofderive!\n”;}};main(){baseobj1,*ptr;deriveobj2;ptr=&obj1;ptr-f1();ptr-f2();ptr-f3();ptr=&obj2;ptr-f1();ptr-f2();ptr-f4();return1;}4.阅读下面程序,写出运行结果#includeiostream.hclassA{public:A(){cout“AConstructor”endl;}virtual~A(){cout“ADestructor”endl;}virtualvoidf(){cout“A::f()”endl;}voidg(){f();}};classB:publicA{public:B(){f();cout“BConstructor”endl;}~B(){cout“BDestructor”endl;}};classC:publicB{public:C(){f();cout“CConstructor”endl;}~C(){cout“CDestructor”endl;}voidf(){cout“C::f()”endl;}6};voidmain(){A*p=newC;p-g();deletep;}5.阅读下面程序,写出运行结果:#includeiostream.hclassCSample{charch1,ch2;public:friendvoidset(CSample&s,charc1,charc2);CSample(chara,charb){ch1=a;ch2=b;coutCSampleConstructorendl;}CSample(constCSample&rhs){ch1=rhs.ch1;ch2=rhs.ch2;coutCSampleCopy-constructorendl;};CSample&operator=(constCSample&rhs){ch1=rhs.ch1;ch2=rhs.ch2;coutCSampleOperator=endl;return*this;}~CSample(){coutch1=ch1,ch2=ch2endl;}};voidset(CSample&s,charc1,charc2){s.ch1=c1;s.ch2=c2;}CSamplefun(CSampleobj){set(obj,'7','9');returnobj;}voidmain(){CSampleobj1('7','8');7CSampleobj2=obj1;obj2=fun(obj1);}五.综合题(共30分)1.解释下列代码,说明其完成的功能是什么?voidCTest2View::OnLButtonDown(UINTnFlags,CPointpoint){CClientDCdc(this);CPenpen(PS_SOLID,2,RGB(0,255,0));CBrushbrush(RGB(244,0,0));dc.SelectObject(&pen);dc.SelectObject(&brush);dc.Rectangle(point.x-20,point.y-20,point.x+20,point.y+20);CView::OnLButtonDown(nFlags,point);}2.下面是应用AppWizard生成的单文档程序One中的视图类的实现文件OneView.cpp中的OnDraw函数,试填写划线空白处。voidCOneView::OnDraw(________pDC){COneDoc*pDoc=_____________________;ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedatahere}3.编写一个基于对话框的应用程序。在这个窗口中,有一个垂直滚动条,滚动条下面有一个编辑框,滚动条两边各有两个按钮。滚动条的滚动范围0~~20,初始值为10,滚动条下面的编辑框
本文标题:2007Windows编程试卷A
链接地址:https://www.777doc.com/doc-6027291 .html