面向对象程序方案复习题

合集下载

面向对象程序设计复习题

面向对象程序设计复习题

一、单项选择题。

1引入内联函数的主要目的是A)缩短程序代码,少占用内存空间B.既可以保证程序的可读性,又能提高程序的运行效率C)提高程序的执行速度D)使程序的结构比较清晰2重载函数是A)以函数参数来区分,而不用函数的返回值来区分不同的函数B.以函数的返回值来区分,而不用函数参数来区分不同的函数C)参数表完全相同而返回值类型不同的两个或多个同名函数D)参数表和返回值类型都必须是不同的两个或多个同名函数3有函数原型 void fun2 (int *), 下面选项中,正确的调用是A) double x = 2.17。

fun2 (&x)。

C) int a = 15。

fun2 (a*3.14)。

B) int b = 100。

fun2 (& b)。

D) fun2 (256)。

4在C++中,要实现动态联编,必须使用( )调用虚函数。

A) 类名B) 派生类指针 C)对象名D) 基类指针5 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是A)派生类的对象可以直接访问基类中的所有成员B)派生类的对象可以初始化基类的引用C)派生类的对象可以赋给基类的对象D) 派生类的对象的地址可以赋给指向基类的指针6设置虚基类的目的是A)消除两义性 B) 简化程序C)提高运行效率 D)减少目标代码7关于构造函数,以下说法错误的是A) 构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。

在对象创建时由系统自动调用。

B) 基类的构造函数可以被派生类所继承。

C) 如果程序中未声明,则系统自动产生出一个缺省形式的构造函数。

D) 允许为内联函数、重载函数、带缺省形参值的函数。

8下列关于C++函数的说明中,正确的是A)内联函数就是定义在另一个函数体内部的函数B)函数体的最后一条语句必须是return语句C)标准C++要求在调用一个函数之前,必须先声明其原型D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式9 由于常对象不能被更新,因此A)通过常对象只能调用它的常成员函数B)通过常对象只能调用静态成员函数C)常对象的成员都是常成员D)通过常对象可以调用任何不改变对象值的成员函数10下列关于虚函数的说明中,正确的是A)从虚基类继承的函数都是虚函数 B)虚函数不得是静态成员函数C)只能通过指针或引用调用虚函数 D)抽象类中的成员函数都是虚函数11 运算符重载是对已有的运算符赋予多重含义,因此A)可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义B)可以改变一个已有运算符的优先级和操作数个数C)只能重载C++中已经有的运算符,不能定义新运算符D)C++中已经有的所有运算符都可以重载12模板对类型的参数化提供了很好的支持,因此A)类模板的主要作用是生成抽象类B)类模板实例化时,编译器将根据给出的模板实参生成一个类C)在类模板中的数据成员都具有同样类型D)类模板中的成员函数都没有返回值13下列符号中可以用作C++标识符的是A)_radius B)foo~bar C)else D)3room14下列语句中,错误的是A)const int buffer=256。

面向对象复习题1

面向对象复习题1

一、单项选择(共20分,每小题2分)1、面向对象的软件开发过程的正确顺序是:()。

A.设计、分析、编程、维护、测试 B.分析、设计、编程、测试、维护C.分析、设计、测试、编程、维护 D.设计、分析、测试、维护、编程2、以下选项中不属于面向对象三大特征的是:()。

A.继承 B.多态 C.重载 D.封装3、()是C++的合法标识符。

A._Student B.namespace C.ip@address D.2016C++4、int a=20; int b=a++; int c=++b;上述语句全部执行后a、b、c的值分别是()。

A.20、21、22 B.21、21、21 C.21、20、22 D.20、20、215、关于类的友元,下列说法错误的是()。

A.友元关系不可传递B.友元关系是单向的C.如果类A是类B的友元,那么B的全部成员函数都是A的友元函数D.类外部访问本类成员不一定要通过定义友元函数的方式6、类的静态成员具有下列()所述的性质。

A.静态数据成员不属于任何一个对象B.静态成员函数只能通过类名访问C.静态成员函数只能访问静态数据成员D.静态数据成员在类中初始化7、把乘法运算符*重载为某个类的成员函数与非成员函数时,分别需要()个形参。

A.1,2 B.0,1 C.2,1 D.1,08、所谓抽象类是()的类。

A.用virtual关键字继承 B.带有虚函数C.带有纯虚函数 D.在程序代码中用关键字abstract说明9、下面哪一个不是预定义的ostream类对象?()A.cout B.cerr C.clog D.cin10、有如下程序段try{…throw “exception”;…}catch(int){…} //①catch(char){…} //②catch(…){…} //③catch(char[]){…} //④则try块中抛出的异常将会被()捕获并处理。

A.① B.② C.③ D.④二、填空(共15分,每空1分)1、面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。

面向对象程序设计复习题文档

面向对象程序设计复习题文档

面向对象程序设计考试题型:1)选择题10题,共20分2)填空题10题,共20分3)程序阅读题3题,共15分4)程序填空题,10空,共20分5)简答题3题,共15分6)编程题1题,共10分一、选择题:1.属于C#语言的关键字( )。

A. abstractB. camelC. SalaryD. Employ答案:A2.C#语言中,值类型包括:基本值类型、结构类型和()。

A.小数类型B.整数类型C.类类型D.枚举类型答案:D3. 假定一个10行20列的二维整型数组,下列哪个定义语句是正确的()。

A. int[]arr = new int[10,20]B. int[]arr = int new[10,20]C. int[,]arr = new int[10,20]D. int[,]arr = new int[20;10]答案:C4.在类作用域中能够通过直接使用该类的()成员名进行访问。

A. 私有B. 公用C. 保护D. 任何答案:D5.小数类型和浮点类型都可以表示小数,正确说法:( )A. 两者没有任何区别B. 小数类型比浮点类型取值范围大C.小数类型比浮点类型精度高D. 小数类型比浮点类型精度低答案:C6.能作为C#程序的基本单位是( )。

A. 字符B. 语句C. 函数D. 源程序文件答案:B7. 可用作C#程序用户标识符的一组标识符是( )。

A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof答案:B8.引用类型主要有4种:类类型、数组类型、接口类型和()。

A.对象类型B.字符串类型C.委托类型D.整数类型答案:C9.StreamWriter对象的下列方法,可以向文本文件写入一行带回车和换行的文本的是()。

A.WriteLine()B.Write()C.WritetoEnd()D.Read()答案:A10.建立访问键时,如“新建(N)”菜单中的“N”键,需在菜单标题的字母前添加的符号是( )。

面向对象程序设计Java复习题

面向对象程序设计Java复习题

面向对象程序设计Java复习要求一、单选题1、当线程进行调度使其暂停时,暂停的时间单位是( B )A、毫秒B、秒C、分钟D、小时2、在java中和数据库连接的机制是( A )A、JDBCB、CORBAC、自定义D、ODBC3、下列选项中不属于Java虚拟机的执行特点的一项是(D )。

A、异常处理B、多线程C、动态链接D、简单易学4、下列选项中属于Java语言的垃圾回收机制的一项是( D )。

A、语法检查B、堆栈溢出检查C、跨平台D、内存跟踪5、下列选项中属于Java语言的安全性的一项是( C )。

A、动态链接B、高性能C、访问权限D、内存跟踪6、下列选项中,属丁JVM执行过程中的特点的一项是( C )。

A、编译执行B、多进程C、异常处理D、静态链接7、在Java语言中,那一个是最基本的元素?( C )A、方法B、包C、对象D、接口8、如果有2个类A和B,A类基于B类,则下列描述中正确的一个是( B )。

A、这2个类都是子类或者超类B、A是B超类的子类C、B是A超类的子类D、这2个类都是对方的子类9、使用如下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?(D )A、abstractB、privateC、protectedD、不使用保留字10、编译一个定义了3个类和10个办法的Java源文件后,会产生多少个字符码文件,扩展名是什么?(D )A、13个字节码文件,扩展名是.classB、1个字节码文件,扩展名是.classC、3个字节码文件,扩展名是.javaD、3个字节码文件,扩展名是.class11、下列说法正确的一项是( C )。

A、java.1ang.Integer是接口B、java.1ang.Runnable是类C、Doulble对象在iava.1ang包中D、Double对象在java.1ang.Object包中12、下列关于类、包和源文件的说法中,错误的一项是( D )。

A、一个文件可以属于一个包B、一个包可包含多个文件C、一个类可以属于一个包D、一个包只能含有一个类13、以下关于面向对象概念的描述中,不正确的一项是( B )。

面向对象设计单项选择复习题

面向对象设计单项选择复习题

面向对象程序设计期末综合练习一(单选题)单选题1. C++源程序文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik3. 编写C++程序一般需经过的几个步骤依次是( )。

A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接4. 能作为C++程序的基本单位是( )。

A. 字符B. 语句C. 函数D. 源程序文件5. 可用作C++语言用户标识符的一组标识符是( )。

A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof6. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。

A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车7. 在一个类的定义中,包含有()成员的定义。

A. 数据B. 函数C. 数据和函数D. 数据或函数8. 在类作用域中能够通过直接使用该类的()成员名进行访问。

A. 私有B. 公用C. 保护D. 任何9. 在关键字public后面定义的成员为类的()成员。

A. 私有B. 公用C. 保护D. 任何10. 在关键字private后面定义的成员为类的()成员。

A. 私有B. 公用C. 保护D. 任何11. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为()。

A. x(a)B. x[a]C. x->aD. x.a12. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()。

A. x.aB. x.a()C. x->aD. x->a()13. 假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px 所指对象中数据成员a的格式为()。

面向对象程序设计期末复习题及答案1

面向对象程序设计期末复习题及答案1

C++面向对象程序设计复习试题类型1、单项选择题(在每小题的四个备4.在进行完任何C++流的操作后,都可以用C++ 流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。

15 题,每小题2 分,共30 分) [主要从作业题目中抽出来]答案:eof 5.函数重载是指____________ 。

答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同3 题,每小题5 分,共15 分)程序编制题【也称综合分析题】每题8 分,第3题9分,共25 分)容打*号是重点,打▲号是编程题出题范围*基本概念,对象,消息,类。

面向对象系统特性,封装性,继承性,多态性。

*▲ C++ 类的构成,类与对象,构造与析构,动态存储,类嵌套。

静态成员,对象数组,友元。

*函数重载。

运算符重载。

*引用定义与引用参数*基类与派生类的定义。

*基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。

多继承与虚基类。

*多态性与虚函数。

纯虚函数、抽象类。

* ▲函数模板。

* ▲使用类来定义对象并在程序中的应用样题填空题1. 假定AB 为一个类,则执行“ a[10]; ”语句时,系统自动调用该类的构造函数的次数为。

答案:102. 可以用p.a 的形式访问派生类对象P 的基类成员a, 其中a 是__________________ 。

答案:公有继承的公有成员阅读程序例题【计算题】1.分析以下程序的执行结果#include<iostream.h>class Sample{int x,y;public:Sample() {x=y=0;}Sample(int a,int b) {x=a;y=b;}~Sample(){if(x==y)cout<< “x=y” <<endl;elsecout<< “ x!=y ”<<endl;}void disp(){cout<< “x=” <<x<<“,y ” =<<y<<endl;}};void main(){Sample s1,s2(2,3);s1.disp();s2.disp();}解:x=0,y=0 x=2,y=3 x!=y x=y2.分析以下程序的执行结果#include<iostream.h> int add(int x,int y){return x+y;2. 填空题。

面向对象程序设计期末复习题资料

面向对象程序设计期末复习题资料

面向对象程序设计期末复习题一、单项选择题1.对于类中定义的成员,其隐含访问权限为【 B 】A) public B) private C) static D)protected2.关于类和对象不正确的说法是【 B 】A) 类是一种类型,它封装了数据和操作 B) 一个类的对象只有一个C) 对象是类的实例D) 一个对象必属于某个类3.下面关于对象概念的描述中,【 C 】是错误的。

A)对象代表着正在创建的系统中的一个实体B)对象就是C语言中的结构体变量C)对象是一个状态和操作(或方法)的封装体D)对象之间的信息传递是通过消息进行的4. 使用派生类的主要原因是【 A 】。

A)提高代码的可重用性B)提高程序的运行效率C)加强类的封装性D)实现数据的隐藏5. 有关析构函数的说法不正确的是【D 】A)析构函数有且只有一个B)析构函数无任何函数类型C)析构函数没有形参D)析构函数的作用是在对象被撤消时收回先前分配的内存空间6. 声明一个类的对象时,系统自动调用一个函数;撤消对象时,系统自动调用一个函数;该函数为【 C 】A) 成员函数;构造函数B) 复制构造函数;析构函数C) 构造函数;析构函数D) 析构函数;复制构造函数7. 下列关于运算符重载的描述中,【 D 】是正确的。

A)运算符重载可以改变操作数的个数B)运算符重载可以改变优先级C)运算符重载可以改变结合性D)运算符重载不可以改变语法结构8. 能用友元函数重载的运算符是【 A】。

A)+ B)= C)[] D)->9.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的【 A 】A) private成员B) protected成员C) public成员D) 友元10.在C++中,要实现动态联编,必须使用【D】调用虚函数A) 类名B) 派生类指针C) 对象名D) 基类指针11.若一个类中含有纯虚函数,则该类称为【 A 】A) 抽象类B) 纯基类C) 派生类D) 基类12.当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式【 B 】A) ios:: out B) ios:: inC) ios::in|ios::out D) ios::binary13.通常拷贝构造函数的参数是【 C 】。

C#面向对象程序设计期末复习题

C#面向对象程序设计期末复习题

面向对象程序设计测试题一、单选题1、改变窗体的标题,需修改窗体的什么属性( A )A)Text B)Name C)Title D)Index2、打开代码编辑器的功能键是( C )A)F1 B)F5 C)F7 D)F123、加载窗体时触发的事件是( B )A)Click B)Load C)Gotfocus D)DoubleClick4、设置计时器时间间隔的属性是( C )A)Enabled B)Name C)Interval D)Modifiers5、数据类型为Long的数据在内存中占用几个字节数( D )A) 2 B) 4 C) 4 D) 86、如果要使文本框能够多行显示,则应使什么属性设为True。

( A )A) MultiLine B) MaxLength C) SelLength D) Locked7、图片框控件可显示图像,若想使图片框自动改变大小,以适应装入的图片,应修改SizeMode 属性值为( B )A) Normal B) AutoSize C) StretchImage D) CenterImage8、要使文本框成为密码输入框,一般应修改文本框的什么属性( C )A)PasswordChar属性和MaxLength属性,并且 MultiLine属性值只能为False。

B)PasswordChar属性和MaxLength属性,并且Lines属性值只能为False。

C)只修改PasswordChar属性值就可以了,其他属性可以不修改。

D)PasswordChar属性和MaxLength属性, MultiLine属性值可以为True。

10、以下四组属性中,决定对象的大小的一组属性为:( A )A)width, height B)left, top C)forecolor,backcolor D)right,buttom11、下面哪个控件在程序运行时是不可见的( c )A)单选钮 B)组合框 C)组件 D)框架12、有两个数组s1和s2,要将s1的内容“拷贝”一份给s2,应使用( B )A)s2=s1 B)s2=string.copy(s1) C)s2=s1.Clone D)s2=s1.All13、下面哪种不是循环结构( A )A)Try…Catch…Finally B)For…NextC)For Each…Next D)Do…Loop14、用于专门输入日期时间型数据的控件是(B )A)Timer B)DateTimePicker C)ListBox D)TextBox15、要以表格形式显示数据表,可以使用以下什么控件(B )A)ListBox B)DataGridView C)DataSet D)TextBox16、C#项目文件的扩展名是( B )A) .sln B) .csproj C) .proj D).cs17、C#中,用什么属性标识不同的对象( B )A)Text B)Name C)Title D)Index18、菜单项标题中含有带下划线的字符,这是( B )A)快捷键 B)访问键 C)选取标记 D)菜单禁用19、可以通过改变什么属性,改变复选框的状态( C )A)value B)checked C)style D)appearance20、在C#中,用什么对象来创建弹出式菜单( B )A)Menu B)contextMenustrip C)Menustrip D)Mainmenu21、SQL语句分为三类,分别是:( C )A) create delete modify B) select update editC) DDL DML DCL D) create alter drop22、下面哪种语言不是面向对象程序设计语言( D )A) JAVA B) C# C) D) PHP23、对象的三个基本要素,它们是( B )A)对象的名称、值和所属类 B)对象的属性、事件和方法C)对象的大小、存储方式和内容 D)对象的访问方法、存储方式和名称24、在使用OpenfileDialog对话框控件时,希望通过对话框查找到 (*.txt) 类型的文件和所有文件(*. *),则该控件的filter属性应该如何设置( B )A)文本文件 (*.txt): *.txt; 所有文件 (*. *): *. *B)文本文件 (*.txt)|*.txt|所有文件 (*. *)|*. *C)文本文件 (*.txt)\*.txt\所有文件 (*. *)\*. *D)文本文件 (*.txt)->*.txt; 所有文件 (*. *)->*. *25、要创建多文档应用程序,需要将父窗体的什么属性设置为true ( D )A) DrawGrid B) ShowInTaskbar C) Parent D) IsMdiContainer26、下列不属于容器类控件的是( d )A)Panel控件 B)GroupBox控件 C)TabControl控件 D)listBox控件27、下列对象模型中,用于生成并执行SQL语句的对象是( B )A)Connection对象 B)Command对象 C)DataSet对象 D)DataReader对象28、使用DataSet 类定义数据集对象,应在代码开始处添加对什么命名空间引用。

《面向对象程序设计》期末复习题及答案1

《面向对象程序设计》期末复习题及答案1

面向对象程序设计》期末复习指导-单选题1. C++源程序文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik2. 编写C++程序一般需经过的几个步骤依次是( )。

A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接3. 程序中主函数的名字为()。

A. mainB. MAINC. MainD. 任意标识符4. 存储以下数据,占用存储字节最多的是()。

A. 0B. …0‟C. “0”D. 0.01 5. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc 的表达式是( )。

A. 1.0/a*b*cB. 1/(a*b*c)C. 1/a/b/(float)cD. 1.0/a/b/c6. x>0 || y==5的相反表达式为()。

A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==57. 字符串”a+b=12\n”的长度为()。

A. 6B. 7C. 8D. 98. 循环语句“for(int i=0; i<n; i++) cout<<i*i<<’’;”中循环体执行的次数为( )。

A. 1B. n-1C. nD. n+19. 在下面循环语句中循环体执行的次数为()。

int i=0,s=0; while(s<20) {i++; s+=i;}A. 4B. 5C. 6D. 710. 在下面循环语句中循环体执行的次数为()。

int i=0,s=0; while(s<20) {i++; s+=i;}A. 4B. 5C. 6D. 711. 循环体至少被执行一次的语句为()。

A. for循环B. while循环C. do循环D. 任一种循环12. 在下面的一维数组定义中,哪一个有语法错误。

Java面向对象程序设计复习题附答案

Java面向对象程序设计复习题附答案

Java面向对象程序设计复习题一、选择题1、下列哪个是Java中的关键字(C )。

A、runB、IntegerC、defaultD、implement2、下面关于Java.applet.Applet和其祖先类的描述语句哪个不对(B )。

A、Applet是Container的一种B、Applet是Window的一种C、Applet是Component的一种D、Applet是Panel的一种3、下列类DataOutputStream的构造方法正确的是(A )。

A、new dataOutputStream(new FileOutputStream(“out.txt”));B、new dataOutputStream(“out.txt”);C、new dataOutputStream(new writer(“out.txt”));D、new dataOutputStream(new FileWriter(“out.txt”));4、在switch(表达式)语句中,表达式的类型不能为(C )。

A、byteB、charC、longD、int5、在接口MouseMotionListener中方法正确的是(A )。

A、Public void mouseDragged(MouseEvent)B、Public boolean mouseDragged(MouseEvent)C、Public void mouseDragged(MouseMotionEvent)D、Public boolean MouseDragged(MouseMotionEvent)6、下面是一些异常类的层次关系ng.Exceptionng.RuntimeExceptionng.IndexOutOfBoundsExceptionng.ArrayIndexOutOfBoundsExceptionng.StringIndexOutOfBoundsException假设有一个方法X,能够抛出两个异常,Array Index和String Index异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。

电大面向对象程序期末复习题目与答案(精选)

电大面向对象程序期末复习题目与答案(精选)

电大面向对象程序期末复习题目与答案(精选)一、单选题,在括号内填写正确的选项编号{每小题2分,共20分)1.对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。

A.颜色B.动态 c.状态 D 重量2.使用JDK编译Java程序时使用的命令是( )。

A. javaB. javacC. appletviewer D javadoc3.包含主方法的类被称为主类,主方法的存储控制属性应定义为()。

A. finalB. abstractC. short Do static4.在类的定义中,若需要把一个属性或方法定义为类成员,而不是实例成员,则使用的修饰符为( )。

A. constB. finalC. static D public5.JaV3 语言中规定的转义字符,以()字符作前缀。

A. B.I C. / D.\6.把对象的属性和服务组合成一个独立的整体,尽可能隐蔽其内部的细节,这称为对象的()。

A.封装性B.多态'性C.继承性D.开放性7.具有()访问权限的成员能够被本类和其他任何类中的成员所访问。

A. publicB. protectdC. privateD.缺省8.在类定义首部的语法格式中,()不能作为其中的修饰符。

A. publicB. protectdC. extendsD. abstract9.下面的关键字( )与异常处理无关。

A. throwB. throwsC. importD. finally10.下面( )既可以作为流的数据源,又可以作为流的目的地。

A.键盘B.磁盘文件c.显示器D.扫描仪二、是非判断题,在每小题后面括号内打上对号、/表示叙述正确,打上叉号×表示叙述错误11. Java既支持类的单继承,又支持类的多重继承。

( )12.在一个派生类中,能够定义与上层父类中的成员具有相同名称的成员。

( )13.派生类可以直接访问从父类中继承下来的所有成员。

( )14.在Java语言中,可以把实现了一个接口的类对象,赋给这个接口的引用对象。

面向对象程序设计复习题

面向对象程序设计复习题

一、选择题(每题1分,共30分)1. 下列关于C++语言的描述,哪个是错误的?()。

A. C++语言支持结构化程序设计方法B. C++语言是解释执行的C. C++语言是编译执行的D. C++语言支持面向对象程序设计方法2. 下列哪种数据类型的存储位数最多?()。

A. charB. intC. floatD. double3.下列哪个名字可以作为变量名?()。

A. No.1B. 123ABCC. longD. Long4. 下列定义变量语句中,错误的是()。

A. int x, y;B. int x = 5, y;C. int x = y = 5;D. int x = 5, y = 5;5. 计算圆形周长的公式是:周长=2πr,其中r为半径。

编写计算圆形周长的程序时需要将什么数据定义成变量?()。

A. πB. 半径C. 周长D. 半径和周长6. C++语言表达式:5 / 2,该表达式结果的数据类型和值分别是()。

A. short,2B. int,2C. float,2.5D. double,2.57. 执行C++语句:int x = 5, y = 6, z; z = x++ / --y; 执行后变量x、y和z的值分别为()。

A. 5, 5, 1B. 6, 5, 1C. 6, 5, 1.2D. 5, 6, 08. 执行下列语句:int x = 5, &y = x; y = x + 10; 执行后变量x的值为()。

A. 5B. 10C. 15D. 209. 下列定义并使用指针变量px的语句中,正确的是()。

A. int x, *px; px = 10;B. int x, *px = &x; px = 10;C. int x, *px; *px = 10;D. int x, *px = &x; *px = 10;10. 执行下列C++语句:int x = 15;if (x%2 == 0) cout << x / 2;else cout << x / 2 + 1;显示器上将显示()。

面向对象程序设计复习题答案

面向对象程序设计复习题答案

面向对象程序设计复习选择题1. 一个设计得好的面向对象系统具有(B)特征。

A 低内聚、低耦合B 高内聚、低耦合C 高内聚、高耦合D 低内聚、高耦合2. 面向对象程序设计的特点主要概括为(C)。

A 可分解性、可组合性、可分类性B 继承性、封装性、多态性C 抽象封装性、继承性、多态性D 封装性、易维护性、可扩展性、可重用性3. 关于C#程序的书写,下列不正确的说法是( D )。

A. 区分大小写B. 一行可以写多条语句C. 一条语句可写成多行D. 一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法4. 关于C#语言的基本语法,下列哪些说法正确的是(C)A. C#语言使用using 来引用需要用到的命名空间;B. 用C#编写的程序中,Main 函数是唯一允许的全局函数;C. C#语言中使用的名称严格区分大小写;D. C#中一条语句必须写在一行内;5 以下标识符中,正确的是(A)。

A._nNameB. typeofC. 6bD. x5#6.字符串连接运算符包括&和(A)。

A. +B. -C. *D. /7.拆箱是关于:(B)A、值类型到引用类型的转换B、引用类型到值类型的转换C、引用类型到引用类型的转换D、值类型到值类型的转换8.装箱是关于:(A)A、值类型到引用类型的转换B、引用类型到值类型的转换C、引用类型到引用类型的转换D、值类型到值类型的转换9.下列引用类型和值类型描述正确的是(A)。

A. 引用类型变量保存内存地址,值类型直接保存变量值B. 引用类型在变量中直接保存变量值,值类型保存内存地址C. 引用类型和值类型保存数据的方式相同D. .NET Framework不支持值类型,因为所有的类型都是引用类型了10.一个类中的静态方法的调用可以:(A)A、通过类名调用B、通过实例化的对象调用C、在主方法中直接调用D、在同一个类中的某一方法中直接调用11.以下数据类型中,属于引用类型的是:(A)A、string类型B、double类型C、int类型D、 char类型12.下列类型中为值类型的是(C)A. 字符串类型B. 树组类型C. 枚举类型D. 接口类型13.decimal类型和浮点类型都可以表示小数,正确说法:(C)A. 两者没有任何区别B. 小数类型比浮点类型取值范围大C.小数类型比浮点类型精度高D. 小数类型比浮点类型精度低14. 有定义语句:int [,]a=new int[5,6]; 则下列正确的数组元素的引用是(C)。

面向对象复习题

面向对象复习题

第一部分面向对象方法概述、填空题I•对象的抽象是______________ ,类的实例是_______________ 。

2.动态模型描述了系统的_________________ 结构。

3.软件系统中存在两种控制流,外部控制流是系统中对象之间外部事件的事件流,有 _______ 、_________ 和_________ 三种外部事件控制流。

_____________ 控制流是一个处理内部的控制,均可结构化。

4.在C++和C中有一个 ______________ 函数,可以使用这个过程来说明构成系统主要对象的那些类的实例。

5.继承性是__________ 自动共享父类属性和________________ 的机制。

6.对象具有封装性,实现了_______________ 的组合。

7.在面向对象方法中,信息隐藏通过对象的_____________ 来实现。

类结构分离了和 _______ ,从而支持了信息隐藏。

8.抽象是指强调实体的_____________ 、________ ,忽略一些无矢紧要的属性。

类实现了对象的 _____ 和_______ 的抽象,它是对象的共性的抽象。

9.子类只继承的属性和操作,称为单重继承。

10.对象的抽象是_________________ ,类的具体化就是__________________ ,也可以说类的实例II _______________ •类具有 _______ ,它是的行动的抽象。

12.对象具有状态,对象用______________ 来描述它的状态。

13.概念模型描述了系统的。

功能模型指出,动态模型确定____________ ,而对象模型确定 ______________ 。

功能模型由________________ 组成。

14.面向对象有三个基本要素,它们是____________________ 、___________ 、_____________ 。

面向对象程序设计复习试题(答案)

面向对象程序设计复习试题(答案)

语法扩充选择题在C++中用( D )能够实现将参数值带回。

a)数组 b)指针 c)引用 d)上述ABC都可考虑函数原型void test(int a,int b=7,char *ch="*"),下面的函数调用中,属于不合法调用的是:( C )A)test(5) B)test(5,8) C)test(6,"#")D)test(0,0,"*");已知: int m=10;下列表示引用的方法中,正确的是:( C )A)int &Z; B)int &t=10; C)int &X=m; D)float &f=&m;下列不是函数重载所要求的条件是:( D )A)函数名相同 B)参数个数不同C)参数类型不同 D)函数返回值类型不同在C++中执行以下4条语句后输出rad值为:( C )static int hot=200;int &rad=hot;hot=hot+100;cout<<rad<<endl;A) 0 B) 100 C) 300 D) 200系统在调用重载函数时,不能作为确定哪个重载函数被调用的依据是:( D )A)参数个数 B)参数类型 C)函数名称 D)函数的返回值类型对C++语言和C语言的兼容性,描述正确的是:( A )A)C++兼容C B)C++部分兼容C C)C++不兼容C D)C兼容C++在C++中使用流进行输入输出,其中用于屏幕输出的对象是:( C )A)cerr B)cin C)cout D)cfile对使用关键字new所开辟的动态存储空间,释放时必须使用( C )A)free B)create C)delete D)realse在函数调用时,如某一默认参数要指明一个特定值,则有( A )A)其之前所有参数都必须赋值 B)其之后所有参数都必须赋值C)其前、后所有参数都必须赋值 D)其前、后所有参数都不必赋值下列哪个类型函数不适合声明为内联函数( A )A)函数体语句较多 B)函数体语句较少C)函数执行时间较短 D)函数执行时间过长int Func(int,int);不可与下列哪个函数构成重载( B )A)int Func(int,int,int); B)double Func(int,int);C)double Func(double,double); D)double Func(int,double);下面的哪个保留字不能作为函数的返回类型( C )A)void B)int C)new D)long一个函数功能不太复杂,但要求被频繁调用,选用( A )。

面向对象程序设计考前复习题及答案

面向对象程序设计考前复习题及答案

简答题1、传统的结构化程序设计的优点和缺点是什么?优点:(1)这种程序设计方法力求算法描述精确。

(2)对每一子过程模块简单进行程序正确性证明。

缺点:(1)这种程序设计方法本质上是面对“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能干脆反映人类求解问题的思路。

(2)程序代码可重用性差。

程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。

即使重用代码,通常也是通过拷贝或编辑重新生成一份。

(3)维护程序的一样性困难。

该种方法将数据与对数据进行处理的程序代码分别。

2、什么是对象?每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。

对象的属性描述了对象的状态和特征,对象的方法说明白对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。

3、什么是消息?在面对对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。

当一个对象须要另外一个对象供应服务时,它向对方发出一个服务恳求,而收到恳求的对象会响应这个恳求并完成指定的服务。

这种向对象发出的服务恳求就称为消息。

4、什么是多态性?所谓多态性是指当程序中的其他部分发出同样的消息时,根据接收消息对象的不同能够自动执行类中相应的方法。

其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大便利。

5、什么是面对对象的程序设计方法?这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。

在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息相互作用,对象中的方法确定要向哪个对象发消息、发什么消息以及收到消息时如何进行处理等。

6、面对对象方法的特点是什么?(1)OOP以“对象”或“数据”为中心。

由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更困难的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的变更对整个系统几乎没有影响。

面向对象程序设计(C++)复习题(1)

面向对象程序设计(C++)复习题(1)

一.选择题1.对类的构造函数和析构函数描述正确的是().A.构造函数可以重载,析构函数不能重载B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载D.构造函数不能重载,析构函数也不能重载2.继承具有( ),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。

A)规律性 B。

传递性 C.重复性 D.多样性3.假设OneClass为一个类,则该类的复制初始化构造函数的声明语句为()。

A.OneClass(OneClass p);B。

OneClass& (OneClass p );C. OneClass(OneClass &p);D。

OneClass (OneClass *p);4.对于结构中定义的成员,其默认的访问权限为()。

A。

public B. protected C。

private D。

static5.下面对静态数据成员的描述中,不正确的是( )。

A.静态数据成员可以在类体内进行初始化B。

静态数据成员不可以在类体内进行初始化C.静态数据成员能受private控制符的作用D.静态数据成员调用前必须初始6。

C++中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。

A.复用B。

继承C。

封装 D.引用7。

假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为().A. x(a) B。

x[a] C。

x-〉a D。

x.a9. 对于一个类的构造函数,其函数名与类名( )。

A。

完全相同 B。

基本相同 C。

不相同 D. 无关系10。

一个类的构造函数通常被定义为该类的( )成员。

A. 公有 B。

保护 C。

私有 D。

友元11. 一个类的析构函数通常被定义为该类的( )成员。

A. 私有B. 保护C。

公有 D. 友元12。

一个类的静态数据成员所表示属性()。

A。

是类的或对象的属性 B。

C面向对象程序设计重点复习

C面向对象程序设计重点复习

面向对象程序设计复习题一、单项选择题1.下面关于对象概念的描述中,_______是错误的;BA.对象代表着正在创建的系统中的一个实体B.对象就是C语言中的结构体变量C.对象是一个状态和操作或方法的封装体D.对象之间的信息传递是通过消息进行的2. 继承机制的作用是: CA.信息隐藏B.数据封装C.定义新类D.数据抽象3.有关析构函数的说法不正确的是_________DA.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数没有形参D.析构函数不能是虚函数4.友元的作用之一是__________AA.提高程序的运行效率B.加强类的封装性C.实现数据的隐藏性D.增加成员函数的种类5.通常拷贝构造函数的参数是__________;CA.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名6.如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是________;Cshow=0; void show;void show=0; show=0 virtual;7.下面关于友元的描述中,错误的是_________;DA.友元函数可以访问该类的私有数据成员B.一个类的友元类中的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承8.在C++中,_________运算符不能重载;BA. +B.: D.<=9.下列关于运算符重载的描述中,________是正确的;DA.运算符重载可以改变操作数的个数B.运算符重载可以改变优先级C.运算符重载可以改变结合性D.运算符重载不可以改变语法结构10. 在下列函数原型中,可以作为类AA构造函数的是_________DA.void AAint ; B.int AA ; C.AAintconst; D.AAint;11.在声明类时,下面的说法正确的是_________;CA.可以在类的声明中给数据成员赋初值B.数据成员的数据类型可以是register,public,protected可以按任意顺序出现D.没有用private,public,protected定义的数据成员是公有成员12.继承具有________,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员;BA.规律性B.传递性C.重复性D.多样性13.在多重继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则___________;AA.完全相同B.完全不同C.部分相同,部分不同D.以上都不对14.对虚函数的调用__________;DA.一定使用动态联编B.必须使用动态联编C.一定使用静态联编D.不一定使用动态联编15.关于成员函数特征的下述描述中,_______是错误的;AA.成员函数一定是内置函数B.成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的16. 下面关于c++语言变量的叙述错误的是_______BA.在c++语言中变量分为auto,static,extern和register四种存储类型B.自动变量和外部变量的作用域为整个程序C.内部变量的作用域是定义它的函数D.外部静态变量的作用域是定义它的文件17.下列的各类函数中,_______不是类的成员函数;CA.构造函数B.析构函数C.友元函数D.拷贝构造函数18. 有如下类声明:class Foo {ing bar ;};则Foo类的成员bar是_________CA.公有数据成员B.公有成员函数C.私有数据成员D.私有成员函数19.下列表示引用的方法中,__________是正确的;已知:int m=10; DA. float &t=&m; &y=10; &z; D. int &x=m;20.设置虚基类的目的是________;BA.简化程序B.消除二义性C.提高运行效率D.减少目标代码21.对于类中定义的成员,其隐含访问权限为________B22.关于类和对象不正确的说法是________ BA.类是一种类型,它封装了数据和操作B.一个类的对象只有一个C.对象是类的实例D.一个对象必属于某个类23.声明一个类的对象时,系统自动调用一个函数___c___;撤消对象时,系统自动调用一个函数;该函数为___c___A.成员函数;构造函数B.复制构造函数;析构函数C.构造函数;析构函数D.析构函数;复制构造函数24.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的__A______ 成员成员成员 D.友元25.在C++中,要实现动态联编,必须使用_____D___调用虚函数A.类名B.派生类指针C.对象名D.基类指针26.若一个类中含有纯虚函数,则该类称为____A____A. 抽象类B. 纯基类C.派生类D. 基类27.下列关于this指针的叙述中,正确的是___D_____A.任何与类相关的函数都有this指针B.类的成员函数都有this指针C.类的友元函数都有this指针D.类的非静态成员函数才有this指针28.有如下类声明:class Book {int num ;};则Book类的成员num是___D_____A.公有数据成员B.公有成员函数C.私有数据成员D.私有成员函数29.下面有关重载函数的说法中正确的是___C_____A.重载函数必须具有不同的返回值类型;B.重载函数形参个数必须不同;C重载函数必须有不同的形参列表; D.重载函数名可以不同;30.设置虚基类的目的是___A_____A.消除二义性B.简化代码C.提高运行效率D.减少目标代码31.在C++语言程序中,对象之间的相互通信通过___B_____A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现32.下列运算符中,在C++语言中不能重载的是__C______A. B.>= C.:: D./33.下面对友元函数描述正确的是___C_____A.友元函数的实现必须在类的内部定义B.友元函数是类的成员函数C.友元函数破坏了类的封装性和隐藏性D.友元函数不能访问类的私有成员34.下面叙述不正确的是___A_____A.基类的保护成员在派生类中仍然是保护成员B.基类的保护成员在公有派生类中仍然是保护成员C.基类的保护成员在私有派生类中是私有成员D.对基类成员的访问必须是无二义性35.下面对静态数据成员的描述中,正确的是___D_____A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以被类的对象调用C.静态数据成员不能受private控制符的作用D.静态数据成员可以直接用类名调用36.在C++类语言体系中,不能被派生类继承的有_______BA.转换函数B.构造函数C.虚函数D.静态成员函数37.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是____C____A.友元函数B.虚函数C.构造函数D.析构函数38.下列关于虚基类的描述中,错误的是_B_______A.设置虚基类的目的是为了消除二义性;B.虚基类的构造函数在非虚基类之后调用;C.若同一层包含多个虚基类,这些基类的构造函数按照它们的次序调用;D.若虚基类由非基类派生而来,则仍然先调用基类构造函数,再用派生类的构造函数;39.考虑函数原型voidtestinta,int b=7,char="",下面的函数调用中,属于不合法调用的是___C_____A. test5 5,8 6,"" 0,0."";40.下列关于构造函数的描述中,错误的是___D_____A.构造函数可以设置默认参数;B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数;D.构造函数不可以重载41.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是 ; DA.一元成员运算符 B.二元成员运算符 C.一元友元运算符 D.选项B和选项C都可能42.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是 ; CA.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针43.下面关于虚函数的描述,错误的是 ; BA.在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数C.虚函数可以是另一个类的友元函数,但不能是静态成员函数D.基类中说明的纯虚函数在其任何派生类中都必须实现44.定义派生类时,若不使用关键字显示地规定采用何种继承方式,则默认方式为 ; AA.私有继承 B.非私有继承 C.保护继承 D.公有继承45.有如下程序:includeusing namespace std;class ONE{int c;public:ONE:c0{cout<<1;}ONEint n:cn{cout<<2;}};class TWO{ONE onel;ONE one2;public:TWOint m:one2m{cout<<3;}};int main{TWO t 4 ;return 0 ;}运行时的输出结果是 ; CA.3B.23C.123D.21346.关于静态数据成员的描述中正确的是DA类的静态数据成员不是类的所有对象共享的数据B类的静态数据成员不能被类的成员函数调用C类的静态数据成员不能被类的构造函数调用D类的静态数据成员必须进行初始化47下面正确的是,在父类中的访问属性访问修饰符在子类中的访问属性CApublic,private不能直接访问 Bprotect,public,publicCprivate,public不能直接访问 Dprotect,private,protect48类A是类B的友元,类B是类C的友元,则下列说法正确的是DA类B是类A的友元B类C是类A的友元C类A是类C的友元D以上都不对49下列关于构造函数说法不正确的是CA构造函数必须与类同名 B构造函数可以省略不写C构造函数必须有返回值 D在构造函数中可以对类中的成员进行初始化50.类的析构函数的作用是DA一般成员函数的初始化 B类的初始化C对象的初始化D删除类创建的对象51.下列说法正确的是BA内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C类的内联函数必须在类体内定义D类的内联函数必须在类体外通过加关键字inline定义52.下面对静态数据成员的描述中,正确的是DA静态数据成员可以在类体内进行初始化B静态数据成员不可以被类的对象调用C静态数据成员不能受private控制符的作用D静态数据成员可以直接用类名调用二、知识点1.实现运行时的多态性要使用虚函数;2.如果一个类至少有一个纯虚函数,那么就称该类为抽象类;3. 运算符重载不能改变操作符的个数、运算符的优先级、运算符的结合性和运算符的语法结构;4. 构造函数是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作;5. 静态成员函数不能直接引用类中说明的非静态成员;6. 引用是给对象取一个别名,它引入了对象的同义词;7.设置友元函数的目的是为能够访问该类的私有成员;8.运算符重载仍然保持原来的优先级、结合性和语法结构;9.基类的私有成员不能被派生类的成员访问;10.静态联编支持的多态性称为编译时的多态性,也称静态多态性;11.任何类中允许有三种访问权限的数据,这三种访问权限分别是public、private、protected;12.为了满足运算符“+”的可交换性,必须将其重载为友元函数;13.对于含有对象成员的派生类,其构造函数的执行顺序为:先执行基类的构造函数、再执行对象成员的构造函数,后执行派生类的构造函数;14.利用成员函数对双目运算符重载,其左操作数为this指针指出的对象,右操作数为成员函数参数;++允许在相同的作用域内以相同的名字定义几个不同实现的函数,称这种同一个函数名多个含义的现象为函数重载;16.通过使用new和delete两个运算符进行的分配为动态存储分配;17.当类定义中有数据成员为指针时,解决浅拷贝出现的运行错误的方法是编写拷贝构造函数;18.如果使用protected继承基类,其公有成员就会变成派生类的保护成员,其保护成员就会变成派生类的保护成员,其私有成员不能继承19.一个函数功能不太复杂但要求被频繁调用,应定义为内联函数;20.抽象类只能作为基类使用,而不能声明它的对象;21.构造函数可以重载,析构函数不可以重载;22.静态成员函数没有this指针;23.类有两个特殊的成员函数构造函数和析构函数;24.在表达式x+yz中,+是作为成员函数重载的运算符,是作为非成员函数重载的运算符;其中operator+有一个参数,operator有两个参数;25.一个派生类只有一个基类的情况称为单继承,而有多个直接基类的情况称为多继承;26.调用析构函数的次序正好与调用构造函数的次序相反;27. 非成员函数应说明为类的友元函数才能访问这个类的private成员;28. 通过使用new和delete两个运算符进行的分配为动态存储分配;29.如果类B继承了类A,则称类A为类B的基类,类B称为类A的派生类30. 表达式operator+x,y还可以表示为x+y ;31 C++语言中的多态性分为编译时的多态性和运行时的多态性;32将x+yz中的"+"用成员函数重载,""用友元函数重载,应解释为x. operator+operatory,z33如果要把返回值为void的函数A声明为类B的友元函数,则应在类B的定义中加入的语句是friend void A ;34派生类的成员一般分为两部分,一部分是从基类继承的成员,另一部分是自己定义的新成员;35继承的方式有公有继承、私有继承和保护继承3种;。

C++面向对象程序设计(高起专)复习题专业课程期末复习题(含答案)

C++面向对象程序设计(高起专)复习题专业课程期末复习题(含答案)

仲恺农业工程学院C++面向对象程序设计(高起专)复习题课程名称:C++面向对象程序设计(高起专)1.(单选题)下列各运算符中,( )结合性从左到右。

(本题1.0分)A.三目;B.赋值;C.比较;D.单目答案:C.解析:无.2.(单选题)下列各运算符中,( )优先级最低。

(本题1.0分)A.:B.|C.||D.!=答案:A.解析:无.3.(单选题)下列各运算符中,( )可以作用于浮点数。

(本题1.0分)A.++;B.%;C.>>;D.&答案:A.解析:无.4.(单选题)关于成员函数特征的下述描述中,( )是错误的。

(本题1.0分)A.成员函数一定是内联函数;B.成员函数可以重载;C.成员函数可以设置参数的缺省值;D.成员函数可以是静态的。

答案:A.解析:无.5.(单选题)通常的拷贝初始化构造函数的参数是( )。

(本题1.0分)A.某个对象名;B.某个对象的成员名;C.某个对象的引用名;D.某个对象的指针名。

答案:C.解析:无.6.(单选题)下列各运算符中,( )优先级最高。

(本题1.0分)A.+(双目);B.*(单目);C.<=;D.*=答案:B.解析:无.7.(单选题)下面关于对象概念的描述中,( )是错误的。

(本题1.0分)A.对象就是C语言中的结构变量;B.对象代表着正在创建的系统中的一个实体;C.对象是——个状态和操作(或方法)的封装体;D.对象之间的信息传递是通过消息进行的答案:A.解析:无.8.(单选题)下面关于类概念的描述中,( )是错误的。

(本题1.0分)A.类是抽象数据类型的实现;B.类是具有共同行为的若干对象的统—描述体;C.类是创建对象的样板;D.类就是C语言中的结构类型答案:D.解析:无.9.(单选题)关于C++与C语言的关系的描述中,( )是错误的。

(本题1.0分)A.C语言是C++的一个子集;B.C语言与C++是兼容的;C.C++对C语言进行了一些改进;D.C++和C语言都是面向对象的答案:D.解析:无.10.(单选题)( )不是面向对象系统所包含的要素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单项选择题。

1引入内联函数的主要目的是A>缩短程序代码,少占用内存空间B.既可以保证程序的可读性,又能提高程序的运行效率C>提高程序的执行速度D>使程序的结构比较清晰2重载函数是A>以函数参数来区分,而不用函数的返回值来区分不同的函数B.以函数的返回值来区分,而不用函数参数来区分不同的函数C>参数表完全相同而返回值类型不同的两个或多个同名函数D>参数表和返回值类型都必须是不同的两个或多个同名函数3有函数原型 void fun2 (int *>, 下面选项中,正确的调用是A> double x = 2.17。

fun2 (&x>。

C> int a = 15。

fun2 (a*3.14>。

B> int b = 100。

fun2 (& b>。

D> fun2 (256>。

4在C++中,要实现动态联编,必须使用( >调用虚函数。

A> 类名B> 派生类指针 C>对象名D> 基类指针5 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是A>派生类的对象可以直接访问基类中的所有成员B>派生类的对象可以初始化基类的引用C>派生类的对象可以赋给基类的对象D> 派生类的对象的地址可以赋给指向基类的指针6设置虚基类的目的是A>消除两义性 B> 简化程序C>提高运行效率 D>减少目标代码7关于构造函数,以下说法错误的是A> 构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。

在对象创建时由系统自动调用。

B> 基类的构造函数可以被派生类所继承。

C> 如果程序中未声明,则系统自动产生出一个缺省形式的构造函数。

D> 允许为内联函数、重载函数、带缺省形参值的函数。

8下列关于C++函数的说明中,正确的是A>内联函数就是定义在另一个函数体内部的函数B>函数体的最后一条语句必须是return语句C>标准C++要求在调用一个函数之前,必须先声明其原型D>编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式9 由于常对象不能被更新,因此A>通过常对象只能调用它的常成员函数B>通过常对象只能调用静态成员函数C>常对象的成员都是常成员D>通过常对象可以调用任何不改变对象值的成员函数10下列关于虚函数的说明中,正确的是A>从虚基类继承的函数都是虚函数 B>虚函数不得是静态成员函数C>只能通过指针或引用调用虚函数D>抽象类中的成员函数都是虚函数11 运算符重载是对已有的运算符赋予多重含义,因此A>可以对基本类型(如int类型>的数据,重新定义“+”运算符的含义B>可以改变一个已有运算符的优先级和操作数个数C>只能重载C++中已经有的运算符,不能定义新运算符D>C++中已经有的所有运算符都可以重载12模板对类型的参数化提供了很好的支持,因此A>类模板的主要作用是生成抽象类B>类模板实例化时,编译器将根据给出的模板实参生成一个类C>在类模板中的数据成员都具有同样类型D>类模板中的成员函数都没有返回值13下列符号中可以用作C++标识符的是A>_radius B>foo~bar C>else D>3room14下列语句中,错误的是A>const int buffer=256。

B>const int temp。

C>const double *point; D>const double *rt =new double(5.5>。

15有如下程序:int x=3。

do{x -= 2。

cout<<x。

}while(!(--x>>。

执行这个程序的输出结果是A> 1 B> 3 0 C> l-2 D>死循环16有如下程序:#include <iostream>using namespace std。

int main(>{int *p。

*p = 9。

cout<<"The value at p:"<<*p。

return 0。

}编译运行程序将出现的情况是A>够编译时出现语法错误,不能生成可执行文件B>运行时一定输出:The value at p: 9C>运行时一定输出:The value at p: *9D>运行时有可能出错17 有如下程序:#include <iostream>using namespace std。

int main(>{void function(double val>。

double val。

function(val>。

cout<<val。

return 0。

}void function(double val>{val = 3。

}编译运行这个程序将出现的情况是A>编译出错,无法运行 B>输出:3C>输出:3.0 D>输出一个不确定的数18 有如下类定义:class AA{int a。

public:int getRef(> const{return &a。

} //①int getValue(> const{return a。

} //②void set(int n> const{a=n。

} //③friend void show(AA aa> const {cout<<aa。

} //④}。

其中的四个函数定义中正确的是A>① B>② C>③D>④19有如下程序:#include <iostream>using namespace std;class Base{public:void fun(>{cout<<"Base::fun"<<endl。

}。

class Derived:public Base{public:void fun(>{cout<<"Derived::fun"<<endl。

}}。

int main(>{Derived d。

________________。

d.fun(>。

return 0。

}已知其执行后的输出结果为:Base::funDerived::fun则程序中下划线处应填入的语句是A>Base.fun(>。

B>Base::fun(> C>Base->fun(> D>fun(>。

20下面是重载为非成员函数的运算符函数原型,其中错误的是A>Fraction operator + (Fraction, Fraction>。

B>Fraction operator - (Fraction>。

C>Fraction& operator = (Fraction&, Fraction>。

D>Fraction& operator += (Fraction&, Fraction>。

21有如下类定义:class Foo{public:Foo(int v>:value(v>{} //①~Foo(>{} //②private:Foo(>{} //③int value = 0。

//④}。

其中存在语法错误的行是A>① B>② C>③ D>④22 有如下类定义:class Point{int x_, y_。

public:Point(>:x_(0>, y_(0>{}Point(int x, int y = 0>:x_(x>,y_(y>{} }。

若执行语句Point a(2>, b[3], *c[4]。

则Point类的构造函数被调用的次数是A>2次 B>3次 C>4次 D>5次23有如下程序:#include <iostream>using namespace std。

class A{public:A(>{cout<<"A"。

}~A(>{cout<<"~A"。

}}。

class B:public A{A* p。

public:B(>{cout<<"B"。

p = new A(>。

}~B(>{cout<<"~B"。

delete p。

} }。

int main(>{B obj。

return 0。

}执行这个程序的输出结果是A>BAA~A~B~AB>ABA~B~A~AC>BAA~B~A~A D>ABA~A~B~A24有如下程序:#include <iostream>using namespace std。

class Base{private:void funl(> const{cout<<"funl"。

}protected:void fun2(> const{cout<<"fun2"。

}public:void fun3(> const{cout<<"fun3"。

}}。

class Derived:protected Base{public:void fun4(> const{cout<<"fun4"。

}}。

int main(>{Derived obj。

obj.funl(>。

//①obj.fun2(>。

//②obj.fun3(>。

//③obj.fun4(>。

//④return 0。

}其中有语法错误的语句是A>①②③④ B>①②③ C>②③④ D>①④25有如下程序:#include <iostream>using namespace std。

class Base{public:void funl(>{cout<<"Base "<<endl。

相关文档
最新文档