面向对象程序设计题目库.doc_第1页
面向对象程序设计题目库.doc_第2页
面向对象程序设计题目库.doc_第3页
面向对象程序设计题目库.doc_第4页
面向对象程序设计题目库.doc_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目模板课程名称:面向对象程序设计 层次:高起专 题目阶段:阶段性作业1(阶段性作业1-4只包含客观题,每套作业的题量为20-30小题)一、 单选题1. 下列关于栈的叙述正确的是_(1)_(A):栈是非线性结构 (B):栈是一种树状结构 (C):栈具有先进先出的特征 (D):栈具有后进先出的特征答案B2. 已知,int m=10,在下列表示引用的方法中正确的是_(2)_ (A):int &x=m (B): int &y=10 (C): int &z (D): float &t=&m答案A3. 结构化程序设计所规定的三种基本控制结构是_(3)_ (A):输入、处理、输出(B): 树形、网形、环形 (C):顺序、选择、循环(D): 主程序、子程序、函数 答案C4. 结构化程序设计的一种基本方法是_(4)_ (A):筛选法(B): 递归法(C): 归纳法(D): 逐步求精法答案D5. C+语言的跳转语句中,对于break和continue说法正确的是_(5)_ (A):break语句只应用与循环体中 (B): continue语句只应用与循环体中 (C): break是无条件跳转语句,continue不是 (D): break和continue的跳转范围不够明确,容易产生问题答案B6. 考虑函数原型void test(int a,int b=7,char=*),下面的函数调用中,属于不合法调用的是_(6)_ (A):test(5) (B): test(5,8) (C): test(6,#) (D): test(0,0,*) 答案C7. C+语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是_(7)_(A):面向过程(B): 面向对象(C): 安全性(D): 复用性答案B8. 关于delete运算符的下列描述中,_(8)_是错误的。(A): 它必须用于new返回的指针(B): 使用它删除对象时要调用析构函数(C): 对一个指针可以使用多次该运算符(D): 指针名前只有一对方括号符号,不管所删除数组的维数答案C9. 下列静态数据成员的特性中,_(9)_是错误的。(A): 说明静态数据成员时前边要加修饰符static(B): 静态数据成员要在类体外进行初始化(C): 静态数据成员不是所有对象所共用的(D): 引用静态数据成员时,要在其名称前加和作用域运算符答案C10. 下面有关重载函数的说法中正确的是_(10)_ (A): 重载函数必须具有不同的返回值类型;(B): 重载函数形参个数必须不同; (C): 重载函数必须有不同的形参列表 (D): 重载函数名可以不同; 答案C11. 下面说法正确的是_(11)_(A):内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 (B):内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 (C):类的内联函数必须在类体内定义 (D):类的内联函数必须在类体外通过加关键字inline定义答案B12. 下列各高级语言中,_(12)_是面向对象的程序语言。(A): BASIC (B): C (C): C+ (D): Pascal答案C13. 在32位机中,double型字宽为_(13)_字节。(A):2; (B):4;(C): 6; (D):8答案D14. 在int a3=1,0,3,2,4,5,6,0;中a22的值是_(14)_。(A):0; (B):5; (C):6; (D):2答案C15. 对于double (*p)10;的描述,_(15)_是正确的。(A):p是一个指向数组的指针,所指向的数组是10个double型元素;(B):p是一个指向某个数组中第10个元素的指针,该元素是double型变量;(C):p5表示某个数组的第10个元素的值;(D):p是一个具有10个元素的指针数组,每个元素是一个double型指针;答案A16. 下列for循环的循环体执行次数为_(16)_。for(int i(10),j(1);i=j=0;i+,j- -) (A): 0; (B): 1; (C): 4; (D): 无限;答案D17. 下述关于开关语句的描述中,_(17)_是正确的。(A):开关语句中default子句可以没有,也可以有一个;(B):开关语句中每个语句序列中必须有break语句;(C):开关语句中default子句只能放在最后;(D):开关语句中case子句后面的表达式可以是整形表达式。答案A18. 下列_(18)_是引用调用;(A):形参是指针,实参是地址值; (B):形参和实参都是变量;(C):形参是数组名,实参是数组名; (D):形参是引用,实参是变量。答案D19. 以下说法中正确的是_(19)_(A):C+程序总是从第一个定义的函数开始执行(B):在C+程序中,要调用的函数必须在main()函数中定义(C) :C+程序总是从main()函数开始执行(D):C+程序中的main()函数必须放在程序的开始部分答案C20.关于new运算符的下列描述中,_(20)_是错的。(A):它可以用来动态创建对象和对象数组;(B):使用它创建的对象或对象数组可以使用运算符delete删除;(C):使用它创建对象时要调用构造函数;(D):使用它创建对象数组时必须指定初始值。 答案D二、 多选题三、 判断题四、 填空题(注意:填空题每空答案要唯一,不要出并列答案的填空题,如_1_、_2_、_3_,答案为a、b、c 或者 b、a、c等等。)题目阶段:阶段性作业2一、 单选题1.不是面向对象编程特征的是_(1)_(A) :封装 (B) :继承 (C) :多态性 (D) :代码重用答案D2. 假设MyClass是一个类,则该类的拷贝构造函数的声明语句为_(2)_(A):MyClass(MyClass p) (B): MyClass& (MyClass p) (C): MyClass(MyClass& p) (D): MyClass(MyClass * p)答案C3. 类的析构函数是在_(3)_调用的。(A):类创建时 (B): 创建对象时(C):删除对象时 (D): 不自动调用 答案C4. 如果类A被说明成类B的友元,则_(4)_(A): 类A的成员即类B的成员 (B): 类B的成员即类A的成员(C): 类A的成员函数不得访问类B的成员 (D): 类B不一定是类A的友元答案D5. 下列关于多态性的描述,错误的是_(5)_(A): C+语言的多态性分为编译时的多态性和运行时的多态性(B): 编译时的多态性可通过函数重载实现(C): 运行时的多态性可通过模板和虚函数实现(D): 实现运行时多态性的机制称为动态绑定答案C6. 构造函数不具备的特征的是_(6)_(A):构造函数的函数名与类名相同 (B):构造函数可以重载(C):构造函数可以设置默认参数 (D):构造函数必须指定类型说明 答案D7关于对象概念的描述中,_(7)_是错误的。(A): 对象就是C语言中的结构体 (B): 对象是状态和操作的封装体(C): 对象之间的信息传递是通过消息进行的 (D): 对象是某个类的一个实例答案A8 下列说法中正确的是_(8)_(A):类定义中只能说明函数成员的函数头,不能定义函数体(B):类中的成员函数可以在类体中定义,也可以在类体外定义(C):类中的函数成员在类体外定义时必须要与类声明在同一文件中(D):在类体之外定义的函数成员不能操作该类的私有数据成员答案B9下列的各类函数中,_(9)_不是类的成员函数。(A):构造函数 (B): 析构函数 (C):友元函数 (D): 拷贝构造函数答案C10下面叙述错误的是_(10)_(A):基类的protected成员在派生类中仍然是protected(B):基类的protected成员在public派生类中仍然是protected的(C):基类的protected成员在private派生类中是private的(D):基类的protected成员不能被派生类的对象访问答案A11友元的作用是_(11)_(A):提高程序的运行效率 (B):加强类的封装性(C):实现数据的隐蔽 (D):增加成员函数的种类答案A12有关类的说法不正确的是_(12)_(A):类是一种用户自定义的数据类型(B):只有类中的成员函数才能存取类中的私有数据(C):在类中,如果不作特别说明,所有的数据均为私有类型(D):在类中,如果不作特别说明,所有的成员函数均为公有类型答案D13有关析构函数的说法不正确的是_(13)_(A):析构函数有且只有一个 (B):析构函数无任何函数类型(C):析构函数和构造函数一样可以有形参(D):析构函数的作用是在对象被撤销时收回先前分配的内存空间答案C14下列关于对象数组的描述中,_(14)_是错的。(A):对象数组的下标是从0开始的 (B):对象数组的数组名是一个常量指针(C):对象数组的每个元素是同一个类的对象(D):对象数组的只能赋初值,而不能被赋值答案D15设置虚基类的目的是_(15)_(A):简化程序 (B):消除二义性 (C):提高程序运行效率 (D):减少目标代码答案B二、 多选题三、 判断题1.在说明语句 char a(A),&b=a,*pa=&a;中,b的值的*pa的是相等的?答案是2.在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型double型?答案否3.break语句也可以用于if体内,它可退出if语句?答案否4.在一个被调用函数中,一个return语句不可返回多个值给调用函数?答案是5.在传值调用中,要求实参和形参的类型完全一致并且个数相等?答案否6.for循环中,循环变量的作用域是该循环的循环体内?答案是7.const char *p说明了p是指向字符串的常量指针?答案否四、 填空题题目阶段:阶段性作业3一、 单选题1.下列能被派生类的成员函数访问的_(1)_(A) :基类的私有变量被私有派生 (B) :基类的保护变量被公有派生(C) :基类的私有变量被公有派生(D):基类的保护变量被私有派生 答案B2. 下面描述中,表达错误的是_(2)_(A):公有继承时基类中的public成员在派生类中仍是public的 (B):公有继承是基类中的private成员在派生类中仍是private的 (C):公有继承时基类中的protected成员在派生类中仍是protected的 (D):私有继承时基类中的public成员在派生类中是private的 答案B3. 如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是_(3)_(A):virtual show( )=0 (B): virtual void show( )(C): virtual void show( )=0 (D): void show( )=0 virtual答案C4.应在下列程序划线处填入的正确语句是_(4)_ #include class Base public: void fun()coutBase:funENDL; ; class Derived:public Base void fun() _ /显示调用基类的函数fun() coutDerived:funfun(); 答案C5.在int a=3,*p=&a;中,*p的值是_(5)_。(A):变量a的地址值 (B):无意义 (C):变量p的地址值 (D):变量a的值答案D6.定义析构函数时,应该注意_(6)_(A):其名与类名完全相同 (B):返回类型是void类型(C):无形参,也不可重载 (D):函数体中必须有delete语句答案A7.在一个类中可以对一个操作符进行_(7)_重载。(A):1种 (B):2种以下 (C):3种以下 (D):多种答案D8.下列_(8)_的调用方式是引用调用。(A): 形参是指针,实参是地址值(B): 形参和实参都是变量(C):形参是数组名,实参是数组名(D):形参是引用,实参是变量答案D二、 多选题1.每个类_(1)_构造函数。(A):只能有一个 (B):可有公有的(C):可以有多个 (D):只可有缺省的答案BC2.在_(2)_情况下适宜采用inline定义内联函数。(A):函数体含有循环语句 (B): 函数体含有递归语句(C):函数代码少、频繁调用 (D): 函数代码多、不常调用(E):需要加快程序执行速度答案CE3.在类中说明的成员可以使用关键字_(3)_进行修饰。(A):private (B):extern (C):auto (D):、public (E):register答案AD4.如果类A被说明成类B的友元,则_(4)_。(A):类A的成员即类B的成员 (B):类B的成员即类A的成员(C):类A的成员函数不能访问类B的成员 (D):类A的成员函数可以访问类B的成员(E):类B不一定是类A的友元答案DE5.在派生类中重新定义虚函数时必须在_(5)_方面与基类保持一致。(A):参数个数 (B):参数类型 (C):参数名字 (D):操作内容 (E):返回类型答案ABE三、 判断题1C+的类中包含成员函数和数据成员,但是成员函数不一定可以访问所有的数据成员?答案否2类的构造函数不可以带参数?答案否3类的析构函数不可以带参数?答案是4.多态性是运行时的多态性,也称动态多态性?答案是5C+中的内联成员函数要在类定义时给出其实现?答案是6. 在面向对象的程序设计(OOP)中,类的析构函数可以重载?答案否7函数重载是编译时的多态性,它要求名称相同的函数可以带有不同类型或不同参数等来完成不同的功能?答案是8C+中的this指针隐含于类的每个成员函数之中,但并不指向该类的对象?答案否四、 填空题题目阶段:阶段性作业4一、 单选题1在下列叙述中,不是Windows程序的特点是_(1)_(A):Windows程序通过窗口与用户进行交互。(B):Windows程序是应用事件驱动进行编程。(C):Windows程序是利用消息进行通信。(D):Windows程序是利用过程驱动的程序。答案D2下列不是控件的是_(2)_ (A):组合框 (B):编辑框 (C):滚动条 (D):菜单答案D3下列不是Windows绘图对象类的是_(3)_ (A) :CBrush (B) :CPen (C) :CRect (D) :CFont答案C4下列可以被应用程序访问的_(4)_(A):基类中的公有变量被公有派生 (B) :基类中的公有变量被私有派生 (C):基类中的私有变量被公有派(D):基类中的私有函数被公有派生答案A5在下列MFC中,不是控件类是_(5)_(A) :CListCtl (B) :CComboBox (C) :CTreeCtl (D) :CMenu答案D6. 不是Windows应用程序的资源的是_(6)_(A) :加速键 (B) :位图 (C) :菜单 (D) :窗口答案D7.如果要在窗口上画一个2英寸高、2英寸宽的方块,应选择的映射方式_(7)_(A) :MM_TEXT映射方式 (B) :固定比例的映射方式(C):比例可变的映射方式 (D) :设备坐标方式 答案C8.在应用Windows API函数显示和关闭模态对话框的函数分别是_(8)_(A):CreateDialog,EndDialog (B):CreateDialog,DestroyWindow(C):DialogBox, EndDialog (D):DialogBox,DestroyWindow答案B9.下面是MFC文件类的是_(9)_(A):CTime (B) :CFile (C) : CWnd (D) :CDC答案B10.当单文档应用框架接收到框架窗口的命令时,它将按如下次序来寻找相应的消息控制函数_(10)_(A) :视、文档、SDI主框架、应用 App(B) :文档、应用 App、视、SDI主框架(C) :视、文档、应用 App、SDI主框架(D):SDI主框架、文档、视、应用 App答案A11.在下列DC中,客户区DC是_(11)_(A) :CPainDC (B) :CClientDC (C) : CWindowDC (D) :CMetaFileDC答案B12.在下列各类中,用于框口分割的是_(12)_(A):CSplitterWnd (B) :CWnd (C) : CWindow (D) :CFrameWnd答案A13.在下列变量命名中,不符合匈牙利表示法的是_(13)_(A) : m_chName (B) :m_List (C) :m_hWnd (D) :m_bFlag答案B二、 多选题三、 判断题1对于模态对话框,在对话框被关闭前,用户无法在应用的其它地方进行工作?答案是2文档视结构将数据从用户对数据的观察中分离出来,这么做的明显好处是允许对一个数据可以有多视?答案是3窗口是Windows 应用程序基本的操作单元?答案是4. 列表框、组合框、复选框、滚动条控件均会向其父窗口发出WM_COMMAND消息?答案否5.键盘可以产生WM_CHAR、WM_KEYUP及WM_RBUTTONUP等消息?答案否6.用Windows API函数编写Windows应用程序,其基本结构由入口函数WinMain和窗口函数组成?答案是7Visual C+是由IBM公司研制开发的?答案否8Windows本身并不利用GDI来绘制用户界面的各个部分?答案否9所有Windows应用程序的入口函数都是WinMain?答案否10一个窗口对应唯一一个DC?答案是11CDC所有成员函数都用逻辑坐标作为参数?答案是12MFC都是从CObject类派生而来?答案否13Windows应用程序中利用Windows消息(Message)与其它的Windows应用程序进行信息交换?答案是14Windows的控件可以以对话框控件的形式和子窗口的形式出现?答案是15动态连接库(DLL)一般是不能单独编译和调试?答案否16MFC的ODBC类主要有CDatabase和CRecordSet,可实现与数据源的ODBC连接和访问数据库?答案是17在MFC程序框架中,其CView类的虚函数OnDraw既可以用于屏幕输出,也可以用于打印输出?答案是四、 填空题题目阶段:综合测试1(每套综合测试的答题时间为90分钟,请酌量出题,如果沿用原来的综合测试题,可以不需要提交这部分)一、 单选题1最初的计算机编程语言是_(1)_。(A):机器语言 (B):汇编语言 (C):高级语言 (D):低级语言答案:A2下列那一项不是面向对象系统所包含的要素_(2)_。(A):重载 (B):对象 (C):类 (D):继承答案:A3下列关于类的描述中那一项使错误的_(3)_?(A):类是抽象数据类型的实现 (B):类是具有共同行为的若干对象的同样描述(C):类是创建对象的模板 (D):类就是C语言中的数据类型答案:D4I/O类库的根基类是:_(4)_(A):iostream (B):istream (C):ostream (D):ios答案:D5下列程序的运行结果:_(5)_includevoid main() char s=”Programming”,*p=s;while(*p) if(*p=i)cout20)iNowPos=20;m_Scrollbar.SetScrollPos(iNowPos);itoa(m_Scrollbar.GetScrollPos(),sPos,10);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(sPos);break;case SB_LINEUP:/单击滚动条向上的箭头iNowPos=m_Scrollbar.GetScrollPos();iNowPos=iNowPos-1;if(iNowPos20)iNowPos=20;m_Scrollbar.SetScrollPos(iNowPos);itoa(m_Scrollbar.GetScrollPos(),sPos,10);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(sPos);break;case SB_PAGEUP:/单击滚动条上面的箭头与滚动块之间的区域iNowPos=m_Scrollbar.GetScrollPos();iNowPos=iNowPos-3;if(iNowPos0)iNowPos=0;m_Scrollbar.SetScrollPos(iNowPos);itoa(m_Scrollbar.GetScrollPos(),sPos,10);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(sPos);break;/代码编写结束CDialog:OnVScroll(nSBCode, nPos, pScrollBar);(4)Up按钮消息void CSCROLLBARDlg:OnUpButton() / TODO:在此处加入控件通知句柄代码/代码编写开始m_Scrollbar.SetScrollPos(0);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(0);/代码编写结束(5)down按钮消息void CSCROLLBARDlg:OnDownButton() / TODO: 在此处加入通知句柄代码/代码编写开始m_Scrollbar.SetScrollPos(20);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(20);/代码编写结束(6)reset按钮消息void CSCROLLBARDlg:OnResetButton() / TODO: 在此处加入通知句柄代码/代码编写开始m_Scrollbar.SetScrollPos(10);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(10);/代码编写结束(7)exit按钮消息void CSCROLLBARDlg:OnExitButton() OnOK();题目阶段:综合测试2一、 单选题1C语言中允许的基本数据类型包括_(1)_(A): 整型、实型、逻辑型。 (B):整型、实型、字符型。(C): 整型、字符型。 (D):整型、实型、逻辑型、字符型。答案:D2C中规定,不同类型的数据占用存储空间的长度不同,下列各组数据类型中,满足占用存储空间从小到大顺序排列的是_(2)_(A): short int,char,float,double (B):char,float,int,double(C): int,unsigned char,long int,float (D):char,short int,float double答案:D3有以下定义char a;int b;float c,doubled;则表达式a*b+d-c值的类型为_(3)_。(A):float (B):int (C):char (D):double答案:D4若有char *func(char *p).return p;则函数的返回值是_(4)_(A):无确定的值 (B):型参p中存放的地址 (C):一个临时存储单元的地址 (D):型参P自身的地址答案:B5以下程序的输出结果为_(5)_#includevoid func(int x,int y,int z)z=x*x+y*y;void main() int k=33;func(5,2,k);coutk;(A):10 (B):33 (C):29 (D):出错答案:B6在下面程序运行后,输出结果为_(6)_#includevoid count(int a,int n,int &y)int k;y=0;for(k=0;kn;k+)if(ak0)y+;void main()int b=2,-1,8,-3,7,2,4,-6,0,13;int x;countb,10,x);cout”x”xendl;(A):x=3 (B):x=5 (C):x=7 (D):值不确定答案:A7声明类test的拷贝构造函数的正确形式是_(7)_。 (A):int test (B):void test (C):test(void) (D):test(test&) 答案:D8结构化程序设计的一种基本方法是_(8)_ (A):筛选法(B): 递归法(C):归纳法(D):逐步求精法答案:D9C+语言的跳转语句中,对于break和continue说法正确的是_(9)_(A):continue语句只应用与循环体中 (B):break语句只应用与循环体中 (C):break是无条件跳转语句,continue不是 (D):break和continue的跳转范围不够明确,容易产生问题 答案:A10考虑函数原型void test(int a,int b=7,char=*),下面的函数调用中,属于不合法调用的是_(10)_(A):test(5); (B): test(5,8); (C):test(6,#); (D): test(0,0,*);答案:C二、 多选题三、判断题四、填空题五、主观题1.阅读下列程序,写出运行结果_(1)_ #include void func(char,char*);void func(char*,char*);void func(char&,char&);void main()char x,y;x=X;y=Y;func(&x,&y);coutxy;x=X;y=Y;func(x,&y);coutxy;x=X;y=Y;func(x,y);coutxyendl;void func(char c,char *p)char t;t=c;c=*p;*p=t;void func(char *p,char *q)char t;t=*p;*p=*q;*q=t;void func(char& c,char &d)char t;t=c;c=d;d=t;答案:YXXXYX2阅读下列程序,写出运行结果_(2)_ 。#include class Testprivate:int i;static int k;public:Test();void Display();int Test:k=0;Test:Test()i=0;k+;void Test:Display()couti=i,k=kendl;void main()Test a,b;a.Display();b.Display();答案:i=0,k=2i=0,k=23阅读下面程序,写出运行结果_(3)_ #include class Apublic:A(int i,int j) a=i;b=j;void move(int i,int j) a+=i;b+=j;void disp() cout(a,b)endl; private:int a,b;class B:public Apublic:B(int i,int j,int k,int l):A(i,j),x(k),y(l) void disp() coutx,yendl;void fun() move(3,5);private:int x,y;void main()A m(1,2);m.disp();B d(3,4,5,6);d.fun();d.A:disp();d.disp(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论