c面向对象期末复习
- 格式:doc
- 大小:51.00 KB
- 文档页数:14
1程序控制结构,特别是异常:(1)异常(Exception)——程序检测到的运行时刻不正常的情况。
如被0 除、数组越界访问或空闲存储内存耗尽等等。
(2)异常处理——是一种允许两个独立开发的程序组件在程序执行期间遇到程序不正常的情况时相互通信的机制。
(3)这里的异常是指软件异常(4)抛掷异常的程序段……throw 表达式;(异常抛出)……(5)捕获并处理异常的程序段try复合语句(保护段)catch(异常类型声明)复合语句(处理段)catch(异常类型声明)复合语句(处理段)……(6)异常处理的执行过程如下:①程序通过正常的顺序执行到达try语句,然后执行try块内的保护段。
②如果在保护段执行期间没有引起异常,那么跟在try块后的catch语句就不执行,程序从最后一个catch语句后面的语句继续执行下去。
③如果在保护段执行期间或在保护段调用的任何函数中(直接或间接的调用)有异常被抛掷,则从通过throw创建的对象中创建一个异常对象(隐含调用拷贝构造函数),程序转到catch处理段。
④如果匹配的catch处理器未找到,则terminate()将被自动调用,该函数的默认功能是调用abort终止程序。
⑤如果找到了一个匹配的catch处理程序,且它通过值进行捕获,则其形参通过拷贝异常对象进行初始化。
在形参被初始化之后,“展开栈”的过程开始。
这包括对那些在与catch处理器相对应的try块开始和异常丢弃地点之间创建的(但尚未析构的)所有局部对象的析构。
3.委托的使用:答:(1)委托定义;(2)用委托声明变量;(3)准备委托函数;(4)委托调用;(5)委托赋值。
4 this指针或引用:(1)面向对象语言提供的一个特殊对象指针,this指针是一种隐含指针,每个非静态的成员函数都有一个this指针,用来标记成员函数操作哪个对象的数据成员。
(2)this是为了实现代码共享,C++和C一样:函数的作用是减少代码开销。
c语言期末复习资料C语言是计算机科学中非常基础的一门编程语言,是程序员必须掌握的技能之一。
由于其简单易学的特点和广泛的应用范围,越来越多的人开始学习和使用C语言。
期末考试是C语言学习过程中的重要节点,为了帮助考生顺利通过考试,本文整理了一些C语言期末复习资料以供参考。
一、基础知识1.变量和数据类型C语言中的变量用于存储程序中使用的数据,数据类型是指变量所代表的数据的类型。
常见的C语言数据类型包括整型、浮点型、字符型、布尔型等。
掌握变量和数据类型的定义和使用是C 语言学习的第一步。
2.运算符和表达式C语言中的运算符用于对变量进行运算和操作,包括算术运算符、关系运算符、逻辑运算符等。
表达式是由变量和运算符组成的代码段,用于对变量进行操作和计算。
掌握运算符和表达式的使用和规则是C语言学习的基础。
3.条件语句和循环语句条件语句和循环语句是C语言中的两种重要的控制结构。
条件语句根据条件的真假来执行不同的代码段,常见的条件语句包括if语句和switch语句。
循环语句用于重复执行同一个代码段,常见的循环语句包括for循环、while循环和do-while循环。
掌握条件语句和循环语句的使用和应用是C语言学习的重要环节。
二、进阶技巧1.字符数组和字符串字符数组和字符串是C语言中非常常用的数据类型,用于处理字符和文本。
字符数组是由若干个字符组成的数组,字符串是由若干个字符组成的字符串常量。
掌握字符数组和字符串的定义和使用,能够更好地处理文本和数据输入输出等问题。
2.函数和指针函数是C语言中的重要的模块化编程方法,函数将程序的功能分解为若干个具有特定功能的独立模块。
指针是C语言中的重要的数据类型,它存储变量的内存地址,常用于访问复杂数据结构和实现高效的内存管理。
掌握函数和指针的使用和细节能够更好地组织程序和提高程序的执行效率。
3.结构体和文件操作结构体是C语言中用于组织复杂数据结构的数据类型,常用于存储各种类型的数据记录。
期末复习试卷(三)一、单项选择题1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源文件名是()A。
teststudent。
javaB。
teststudent 。
classC. TestStudent。
javaD. TestStudent。
class正确答案:C解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致.2、关于下面的代码,哪个描述是正确的?public class Test{public static void main(String[]args){Integer n1 = new Integer(3);Object n2 = new Integer(4);System.out.println(pareTo(n2));}}A。
可以编译通过,可以运行,并得到预期结果.B。
可以编译通过,可以运行,但不能得到预期结果。
C。
可以编译通过,但又运行错误.D. 有编译错误。
正确答案:D解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer 类,T被替换为Integer,如下图:因此,Integer类中compareTo()方法的定义如下:因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer:System。
out.println(pareTo(n2));正确写法如下:System.out.println(pareTo((Integer) n2));类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。
第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再由类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。
(2)需要用属性来描述它的某些特性。
(3)有一组操作,每一个操作决定了对象的一种行为。
(4)对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:1966.10.1 工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
一、填空题1. 类是一组具有共同的_属性___ 特征和行为特征的对象的抽象。
2. 在面向对象程序设计中,一个对象向另一个对象发出的请求被称为_消息_。
3. 用class作关键字进行类声明,默认的访问属性是private(私有的)_4. 函数名重载是指同一作用域内的多个函数使用相同的函数名,这些同名函数要从参数类型和参数个数____进行区分。
5. 构造函数的作用是__在创建对象时对对象进行初始化____ 。
6. 多重继承指一个派生类可以有__多个基类______ .7. 保护继承下,基类中所有公有成员在派生类中的访问属性是__保护的____ 。
8. 假定要访问一个对象指针p所指对象中的b成员,则表示方法___ p.b ______.9. 若需要把一个函数“void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:friend void F(AB &)_。
10.Static成员函数与普通成员函数的区别是_静态成员函数没有this指针______。
11.若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用___ iostream ____头文件。
12.1。
关键字 _____C_______ 说明对象或变量初始化后不会被修改。
a. static b。
public c. const d。
inline2。
如果调用带有默认参数的函数时缺少一个参数,则____B_____参数就作为这一参数。
a。
第一个 b。
最后一个 c。
中间一个 d. 以上都不是3。
成员函数可声明为静态的,条件是它不访问 ____C______类成员。
a。
静态 b。
常数 c。
非静态 d. 公共4。
内联函数执行起来比标准函数_____B__________.a。
更慢 b。
更快 c. 次数更多 d。
以上都不是5。
默认参数的值由_________C__________提供。
a. 该函数 b。
《面向对象程序设计JA V A语言程序设计》期末考试试题及部分答案1一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。
1.下列语句序列执行后,k 的值是( B )。
int m=3, n=6, k=0;while( (m++) < ( -- n) ) ++k;A) 0 B) 1 C) 2 D) 32.设i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( B )。
A) i = i + 2 B) a[0] = 7;C) i++ - --j; D) a(0) = 66;3.Java语言的类间的继承关系是( B )。
A) 多重的B) 单重的C) 线程的D) 不能继承4.设有定义int i = 6 ;,则执行以下语句后,i 的值为( C )。
i += i - 1;A) 10 B) 121 C) 11 D) 1005.下列选项中,用于在定义子类时声明父类名的关键字是( C )。
A)interface B) package C) extends D) class6.若已定义byte[ ] x= {11,22,33,-66} ;其中0≤k≤3,则对x数组元素错误的引用是( C )。
A) x[5-3] B) x[k] C) x[k+5] D) x[0]7.下列语句序列执行后,ch1 的值是( B )。
char ch1='A',ch2='W';if(ch1 + 2 < ch2 ) ++ch1;A) ‘A' B) ‘B' C) ‘C' D) B8.下列语句序列执行后,i 的值是( D )。
int i=8, j=16;if( i-1 > j ) i--; else j--;A) 15 B) 16 C) 7 D) 89.下列语句序列执行后,k 的值是( C )。
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《面向对象程序设计》题库及答案一一、单项选择题(每小题2分,共20分)1.设x和y均为bool量,则x||y为假的条件是( )。
A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}”,则元素a[1][2]的值为( )。
A.2 B.4 C.6 D.83.假定P是具有int* *类型的指针变量,则给P赋值的正确语句为( )。
A.p=new int B.p=new int*C.p=new int** D.p=new int[10]4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( )。
A.可维护性 B.可复用性C.兼容性 D.正确性5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。
‘A.in B.inlineC.inLine D.InLiner .6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( )。
A.1ength+1 B first+lengthC.(first+1ength—1)%MS D.(first+length)%MS7.假定一个类的构造函数为“A(int aa,int bb){a=aa;b=aa*bb;)”,则执行“A x(4,5);”语句后,X.a和x.b的值分别为( )。
java面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个关键字用于声明一个类?A. classB. interfaceC. structD. enum答案:A2. Java中的继承是?A. 单继承B. 多继承C. 无继承D. 混合继承答案:A3. 下列哪个是Java中的访问修饰符?A. privateB. protectedC. publicD. 以上都是答案:D4. Java中哪个关键字用于实现多态?A. abstractB. finalC. staticD. override答案:D5. Java中接口和抽象类的主要区别是?A. 接口可以有构造方法B. 抽象类可以有构造方法C. 接口不能有构造方法D. 抽象类不能有构造方法答案:C6. 在Java中,下列哪个是正确的方法重载?A. 方法名相同,参数列表不同B. 方法名不同,参数列表相同C. 方法名和参数列表都相同D. 方法名相同,返回类型不同答案:A7. 下列哪个不是Java的集合框架中的接口?A. ListB. SetC. MapD. Stream答案:D8. Java中,下列哪个是线程安全的单例模式实现?A. 懒汉式B. 饿汉式C. 双重检查锁定D. 以上都是答案:B9. Java中,下列哪个是正确的异常处理关键字?A. tryB. catchC. finallyD. 以上都是答案:D10. 在Java中,下列哪个是正确的泛型使用方式?A. List<String> list = new ArrayList<>();B. List list = new ArrayList<>();C. List<String> list = new ArrayList<Integer>();D. List list = new ArrayList<String>();答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承______个父类。
最最新面向对象程序设计试题填空题一、1. C++语言是在 C 语言的基础上发展起来的。
2.假定x=5,y=6,则执行表达式y*=x++后,y的值为30_ 。
3.在if语句中,每个else关键字与它前面同层次并且最接近的if关键字相配套。
4.一维字符数组a[20]能够存储的字符串的长度至多为19__。
5.假定p所指对象的值为25,p+l所指对象的值为42,则执行*p++运算后,p所指对象的值为42。
6.若采用p—>abc(y)表达式调用一个成员函数,在成员函数中使用的this就代表了类外的P指针。
7.一个类中定义的数据成员或函数成员,可以使用_3_种保护属性中的一种。
b= bb;}",则定义该类的对8.假定用户只为类AB定义了一个构造函数"AB(int aa,int bb=0) {a=aa;象时,其初始化实参表中至少带有1个实参。
9.在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_成员函数_。
10.重载一个运算符时,该运算符的优先级、_结合性_以及运算对象的个数都不允许改变。
11.存储字符串"a"需要占用2个字节。
12.重载一个函数的条件是:该函数必须在参数的个数(或数目)或参数对应的类型上与其它同名函数不相同。
13.假定P是一个指向整数对象的指针,则用*p表示该整数对象。
14.元素a[i]的指针访问方式为*(a+i) _ 。
”语句后,x 的值是6。
15.已知有定义“int x,a[3]={5,7,9},*pa=a;”,在执行“x=++*pa;16.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队列为满的条件是length= =MS。
17.对类中对象和基类成员的初始化只能通过在构造函数中给出的初始化表来实现的。
18.假定AB为一个类,则执行"AB a,b(2),c[3],*p=&a"语句时共调用该类无参构造函数的次数为4次。
C++面向对象程序设计-编程题C++面向对象程序设计2010期末考试编程题1、编写一个程序根据输入的三角形的三条边判断是否能组成三角形,如果可以则输出它的面积和三角形类型(等边、等腰、直角三角形)。
#include<iostream>#include<math.h>using namespace std;int main(){double a,b,c;double v,p;cout<<"请输入三角形三条边:"<<endl;cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a){p=(a+b+c)/2;v=sqrt(p*(p-a)*(p-b)*(p-c));cout<<"该三角形面积是"<<v<<endl;if(a==b&&a==c)cout<<"该三角形是等边三角形!"<<endl;elseif(a==b&&a!=c||a==c&&a!=b||b==c&&b!=a)cout<<"该三角形是等腰三角形!"<<endl;if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a))cout<<"该三角形是直角三角形!"<<endl;}elsecout<<"这三条边组不成三角形!"<<endl;return 0;}2、定义一个学生类,其中有3 个数据成员:学号、姓名、年龄,以及若干成员函数。
同时编写main 函数使用这个类,实现对学生数据的赋值和输出。
c++面向对象程序设计_课后答案_中国铁道出版社_陈维兴_林小茶.txt婚姻是键盘,太多秩序和规则;爱情是鼠标,一点就通。
男人自比主机,内存最重要;女人好似显示器,一切都看得出来。
网址/xxgc/showart.asp?art_id=13网址/xxgc/showart.asp?art_id=17软件工程学院/xxgc/index.asp第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再由类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。
(2)需要用属性来描述它的某些特性。
B面向对象(Object Oriented)方法是将现实世界的事物以对象的方式()到计算机世界的方法。
a对应 b 映射 c 反映 d 反射D盒图也称为()或Chapin图。
这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
流程图框图判定表N-S图A面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的()结构。
程序数据逻辑物理B人机界面的风格大致经过了()代的演变。
三四五六D以下不属于白盒测试技术的是()逻辑覆盖基本路径测试循环覆盖测试等价类划分A为改正软件系统中潜藏的错误而进行的维护活动称为()。
纠错性维护适应性维护改善性维护预防性维护D软件的发展经历了()个发展阶段。
一二三四B需求分析的任务不包括()。
问题分析系统设计需求描述需求评审。
C一个软件的宽度是指其控制的()。
模块数层数跨度厚度A当模块中包含复杂的条件组合,只有()能够清晰地表达出各种动作之间的对应关系。
判定表和判定树盒图流程图关系图D以下不属于逻辑覆盖的是()。
语句覆盖判定覆盖条件覆盖基本路径B为适应软件运行环境的变化而修改软件的活动称为()。
纠错性维护适应性维护改善性维护预防性维护A从事物的组成部件及每个部件的属性、功能来认识事物。
这种方法被称为()的方法。
A、面向对象B、面向数据C、面向过程D、面向属性B判定表由四部分组成:左上部列出()。
条件组合与动作之间的对应关系所有条件所有可能的动作可能的条件组合D根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为()。
纠错性维护适应性维护改善性维护预防性维护B可行性研究的步骤中不包括()的内容。
复查初步分析结果。
研究现有的系统。
导出新系统高层逻辑模型。
建立新系统的物理模型解法。
A将软件组装成系统的一种测试技术叫()。
集成测试单元测试集合测试系统测试C技术可行性是可行性研究的关键,其主要内容一般不包括()。
A.风险分析资源分析人员分析技术分析A软件工程中的各种方法是完成软件工程项目的技术手段,它们支持软件工程的()阶段。
JAVA面向对象程序设计(期末考试试题及答案)一、选择题(每题5分,共30分)1. 下列哪个不是Java基本数据类型?A. intB. charC. StringD. boolean答案:C2. 下列哪个操作符用于取模?A. %B. /C.D. &答案:A3. 下列哪个关键字用于定义接口?A. classB. interfaceC. extendsD. implements答案:B4. Java中,下列哪个方法可以实现字符串的截取?A. substring(int start, int end)B. substring(int start, int length)C. substring(int index)D. substring(int index, int length)答案:A5. 下列哪个方法用于判断字符串是否为空?A. isEmpty()B. isBlank()C. isEmptyD. isNull()答案:B6. 下列哪个方法用于获取字符串长度?A. length()B. lengthC. size()D. getSize()答案:A二、填空题(每题5分,共30分)1. 在Java中,所有的类都是_______类的子类。
答案:Object2. Java中定义接口时,需要使用_______关键字。
答案:interface3. 在Java中,定义抽象类时需要使用_______关键字。
答案:abstract4. Java中,字符串比较可以使用_______方法。
答案:equals()5. 在Java中,若要实现字符串的翻转,可以使用_______类。
答案:StringBuilder6. 下列哪个方法用于判断字符串是否以指定的字符串开头?答案:startsWith(String prefix)三、编程题(共40分)1. 编写一个Java程序,实现一个简单的计算器功能,包括加、减、乘、除四种运算。
面向对象程序设计期末综合练习一(单选题)单选题1. C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. lik7. 程序中主函数的名字为( A )。
A. mainB. MAINC. MainD. 任意标识符8. C++程序的基本模块为( D )。
A. 表达式B. 标识符C. 语句D. 函数9. 可用作C++语言用户标识符的一组标识符是( B )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof38. 以下说法中正确的是( B )。
A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中39. 以下叙述中不正确的是( C )。
A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量40. 函数重载是指( A )。
A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同41. 以下关于函数模板叙述正确的是( C )。
A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型42. 下列( C )的调用方式是引用调用。
电大面向对象程序期末复习题目与答案(精选)一、单选题,在括号内填写正确的选项编号{每小题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语言中,可以把实现了一个接口的类对象,赋给这个接口的引用对象。
《面向对象的程序设计》期末考试A卷
姓名:
专业:
学号:
学习中心:
一、单选题 (共25题,每题2分,共50分)
▆《面向对象的程序设计》试卷共3页(第1 页)答案务必写在对应的作答区域内,否则不得分,超出黑色边框区域的答案无效!▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
图 getName()方法之间的关系 ( 错 )
30、Adapter模式不是必须针对某个接口进行设计。
( 错 )
31、对象适配器模式是合成聚合复用原则的典型应用。
( 对 )
32、Decorator(装饰)模式的意图是为一个对象连接附加的职责。
( 对 )
33、在设计模式中,“效果”只是指“原因和结果”。
( 对 )
34、Façade外观模式只能为方法调用创建更简单的接口,不能减少客户必须处理的对象数量。
▆《面向对象的程序设计》试卷共3页(第17 页)答案务必写在对应的作答区域内,否则不得分,超出黑色边框区域的答案无效!▆
▆
37、UML2.0前有几种常用图(diagram)?哪些属于静态图,哪些属于动态图?
答:静态图:类图,对象图,用例图,部署图,构件图,
动态图:状态图,顺序图,活动图,协作图
▆《面向对象的程序设计》试卷共3页(第19 页)答案务必写在对应的作答区域内,否则不得分,超出黑色边框区域的答案无效!▆
▆
▆
▆
▆《面向对象的程序设计》试卷共3页(第23 页)答案务必写在对应的作答区域内,否则不得分,超出黑色边框区域的答案无效!▆
▆。
吉林大学22春“计算机科学与技术”《面向对象程序设计》期末考试高频考点版(带答案)一.综合考核(共50题)1.设x=1,y=2,z=3,则表达式y+=z--/++x的值是()。
A.3B.3.5C.4D.5参考答案:A2.如果类中的成员变量可以被同一包访问,则使用如下哪个约束符?()A.privateB.publicC.protectedD.no modifier参考答案:D3.设有定义 int i=123; long j=456; 下面赋值不正确的语句是()A.j=i;B.j=(long)i;C.i=(int)j;D.i=j;参考答案:D4.下列构造方法的调用方式中,正确的是()。
A.按照一般方法调用B.由用户直接调用C.只能通过 new 自动调用D.被系统调用5.下列程序段执行后 b3 的结果是() boolean b1=true, b2, b3; b3= b1 ?b1 : b2;A.0B.1C.trueD.false参考答案:D6.关于被私有访问控制符private修饰的成员变量,以下说法正确的是()。
A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可以被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问参考答案:C7.所有的异常类皆继承哪一个类?()A.java.io.Exceptionng.Throwableng.Exceptionng.Error参考答案:C8.在Jave中,用package语句说明一个包时,该包的层次结构必须是()。
A.与文件的结构相同B.与文件目录的层次相同C.与文件类型相同D.与文件大小相同参考答案:B下列正确的表达式()。
A.double a=1,0B.Double a=new Double(1,0)C.byte a=340D.Byte a=120参考答案:AB10.设 x、y为已定义的类名,下列声明x类的对象x1的语句中正确的是()A.static x x1;B.public x x1=new x(int 123);C.y x1;D.x x1=x();参考答案:B11.设x = 1, y = 2, z = 3,则表达式y+=z--/++x的值是()A.3B.3.5C.4D.5参考答案:A12.下面的代码段中,执行之后i和j的值是()。
c++面向对象期末复习一、题型:1. 单项选择题(在每小题地四个备选答案中,选出一个正确答案,并将正确答案地序号填在题干地括号内.每小题2分,共20分)2. 填空题(每小题2分,共22分)3. 给出下列程序运行后地输出结果(每小题8分,共24分)4. 写出下列每个函数地功能(每小题8分,共16分)5. 编写程序(18分)二、练习题:-----------------------------------练习题1:{一}、单项选择题(在每小题地四个备选答案中,选出一个正确答案,并将正确答案地序号填在题干地括号内.每小题2分)1、在每个C++程序中都必须包含有这样一个函数,该函数地函数名为(A )A. mainB. MAINC. nameD. function2、设x和y均为bool量,则x&&y为真地条件是( A )A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假3、下面地哪个保留字不能作为函数地返回类型?( C )A. voidB. intC. newD. long4、假定a为一个整型数组名,则元素a[4]地字节地址为( C )A. a+4B. a+8C. a+16D. a+325、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象地加法,并返回相加结果,则该成员函数地声明语句为:( B )A. AB operator+(AB&a,AB&b)B. AB operator+(AB& a)C. operator+(AB a)D. AB & operator+( )6.类地析构函数地作用是( D )A.一般成员函数B.类地初始化C.对象地初始化D.撤消对象时所做地清理工作7.类地析构函数是在( C )调用地.A.类创建时B.创建对象时C.删除对象时D.不自动调用8.在( C )情况下适宜采用inline定义内联函数.A.函数体含有循环语句B.函数体含有递归语句C.函数代码少、频繁调用D.函数代码多、不常调用9.假定AB为一个类,则执行AB x;语句时将自动调用该类地( B )A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值构造函数10.C++语言建立类族是通过( B )A.类地嵌套B.类地继承C.虚函数D.抽象类(二)、填空题(每小题2分)1、执行“cout <<char('A'+2)<<endl;”语句后得到地输出结果为 C .2、float 和double 类型地大小分别为 4 和8 .3、算术表达式(xy2/3a)+4b-1对应地C++表达式为((x*y*y)/(3*a))+4*b-1 .4、关系表达式x+y>5地相反表达式为x+y<=5 .5、假定一个一维数组地定义为“char * a[8] ;”,则该数组所含元素地个数为8 ,所占存储空间地字节数为32 .6、变量分为全局和局部两种, 局部变量没有赋初值时,其值是不确定地.7、假定a是一个二维数组,则a[i][j]地指针访问方式为.8、假定一个结构类型定义为“struct D{int a;union{int b;double c;}; D * d[2] ; } ;”,则该类型地大小为字节.9、对一个类中地数据成员地初始化可以通过构造函数中地实现,也可以通过构造函数中地实现.10、假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类地构造函数地次数为.11、假定类AB中有一个公用属性地静态数据成员bb,在类外不通过对象名访问该成员bb地写法为.(三)、给出下列程序运行后地输出结果(每小题8分)1、# include <iostream.h>int a=5;void main() {int a=10,b=20;cout <<a<<' '<<b<<endl;{ int a=0,b=0;for (int i=1; i<6; i++) {a+=i; b+=a;}cout <<a<<' '<<b<<' '<<::a<<endl;}cout <<a<<' '<<b<<endl;}2、# include <iomanip.h>int LB(int *a,int n) {int s=1;for (int i=0; i<n; i++)s*=*a++;return s;}void main() {int a[]={1,2,3,4,5,6,7,8};int b=LB(a,5)+LB(&a[3],3);cout <<"b="<<b<<endl;}3、# include <iostream.h># include <string.h>struct Worker{char name[15]; // 姓名int age; // 年龄float pay; // 工资};void main() {Worker x;char *t="liouting";int d=38; float f=493;strcpy(,t);x.age=d; x.pay=f;cout <<<<' '<<x.age<<' '<<x.pay<<endl;}(四)、写出下列每个函数地功能(每小题8分)1、# include <iostream.h>int SA(int a,int b) {if (a>b) return 1;else if (a==b) return 0;else return -1;}2、struct StrNode {char name[15]; // 字符串域StrNode * next; // 指针域};void QB(StrNode * & f ,int n) {if (n==0) { f=NULL; return; }f=new StrNode;cin >>f->name;StrNode * p=f;while (--n) {p=p->next=new StrNode;cin >>p->name;}p->next=NULL;}(五)、编写程序把从键盘上输入地一批整数(以-1作为终止输入地标志)保存到文本文件“a:xxk1.dat”中.------------------------------------------练习题2:一、选择题(每题2分)一个函数功能不太复杂但要求被频繁调用,应选用A)内联函数B)重载函数C)递归函数D)嵌套函数A 为了使类中地某个成员不能被类地对象通过成员操作符访问,则不能把该成员地访问权限定义为A)public B)protected C)privateD)static(3)B 在C++语言程序中,对象之间地相互通信通过A)继承实现B)调用成员函数实现C)封装实现D)函数重载实现类地析构函数是在什么时候调用地?A)类创建时B)创建对象时C)删除对象时D)不自动调用C 通常拷贝构造函数地参数是A)某个对象名B)某个对象地成员名C)某个对象地引用名D)某个对象地指针名下列不是描述类地成员函数地是A)构造函数B)析构函数C)友元函数D)拷贝构造函数C 继承机制地作用是A)信息隐藏B)数据封装C)定义新类D)数据抽象B 在C++语言类体系中,不能被派生类继承地有A)转换函数B)构造函数C)虚函数D)静态成员函数C 对于类定义class A{public:virtual void funcl(){}void func2(){}};class B:public A{public:void funcl(){cout<<"class B func 1”;virtual void func2(){cout<<"class B func 2";};下面正确地叙述是A)A::func2()和B::funcl()都是虚函数B)A::func2()和B::funcl()都不是虚函数C)B::funcl()是虚函数,而A::func2()不是虚函数D)B::funcl()不是虚函数,而A::func2()是虚函数下面关于运算符重载地描述错误地是A)运算符重载不能改变操作数地个数、运算符地优先级、运算符地结合性和运算符地语法结构B)不是所有地运算符都可以进行重载C)运算符函数地调用必须使用关键字operatorD)在C++语言中不可通过运算符重载创造出新地运算符作用域运算符地功能是()A)给定作用域地大小B)表示作用域地级别C)某个成员是属于哪个类地D)指出作用域地范围D ()不是构造函数地特征A)构造函数可以重载B)构造函数可以设置缺省参数C)构造函数地函数名和类名相同D)构造函数必须指定类名13 关于new运算符地下列描述中,()是错地A)使用它创建对象时要调用构造函数B)使用它创建对象数组时必须指定初始值C)使用它创建对象数组时不能指定初始值D)使用它创建地对象或对象数组可以使用运算符delete删除派生类地描述中,()是错地A)一个派生类可以作为另一个派生类地基类B)派生类至少有一个基类C)派生类中继承地基类成员地访问权限在派生类中保持不变D)派生类地成员除了它自己地成员外,还包含了它地基类地成员设置虚基类地目地是(). A)减少目标代码 B)提高运行效率C)消除二义性D)简化程序D 以下关于虚函数和纯虚函数地说法中,()是不正确地A)在派生类中虚函数可以不用关键字virtual说明B)虚函数在派生类中都不需要重定义C)不能为虚函数定义缺省操作D)纯虚函数在派生类中可以不重定义C 以下关于抽象类地说法中,()是不正确地A)不可创建抽象类地实例B)可以声明抽象类地引用C)抽象类地派生类也是抽象类D)抽象类地派生类也可以是抽象类D 以下关于多态性地说法中,(?)是不正确地A)每个多态类地基类有一个虚函数表B)多态类地每一个派生类有一个虚函数表C)每个多态类地对象有一个虚表指针D)虚函数调用与this指针无关C C++语言对C语言做了很多改进,C++语言相对于C语言地最根本地变化是A)增加了一些新地运算符B)允许函数重载,并允许设置缺省参数C)规定函数说明符必须用原型D)引进了类和对象地概念(20)在公有派生情况下,有关派生类对象和基类对象地关系,下列叙述不正确地是A)派生类地对象可以赋给基类地对象B)派生类地对象可以初始化基类地引用C)派生类地对象可以直接访问基类中地成员D)派生类地对象地地址可以赋给指向基类地指针二、填空题(每空3分)(1) 一个类可以从直接或间接地基类中继承所有属性和方法.采用这个方法提高了软件地可重用性 .(2)在C++中封装性、继承性和多态性是面向对象思想地主要特征.(3)下列for语句地循环次数为 5 .for(int a=0,b=1;b&&a<5;a++);(4) 下面程序地输出结果是12345 .#includevoid main(){int a[6]={1,2,3,4,5,6};for(int i=0;i<5;i++)cout<<i;cout<<endl;}(5) C++程序是从主函数开始执行地.(6) 假定A为一个类,则语句A (A & A);为该类拷贝虚构函数 .(7) 派生类构造函数地执行顺序是先执行基类地构造函数.然后执行成员对象地构造函数,最后执行派生类地构造函数.(8) C++语言提供地基本控制结构可以分为3种类型:顺序结构、选择结构和循环结构.(9) 继承地方式有公有继承、私有继承和保护继承 3种.三、名词解释(每题2.5分)1.类2.对象3.封装性4.继承性四、阅读程序并写出结果(每题2分)1.#include<iostream.h>class A{static int n;public:A(){n=1;}A(int num){n=num;}void print(){cout<<n;}};int A::n=2:void main(){A a,b(3);a.print();b.pint();cout<<endl;}2.#include<iostream.h>class base{public:base(){ cout<<”0”;}};class basel:virtual base}public:base1(){cout<<”1”;}};class base2:virtual base{public:base2(){cout<<”2”;}};class derived:public base1,public base2 {public:derived(){cout<<”3”;}};void main(){derived obj;cout<<endl;}3.#include<iostream.h>int fun(int a[], int n){int result=1:for(int i=1;i<n;i++)result=result*a[i];return result;}void main(){int a[3]={3,4,5};cout<<fun(a,3);}4.#include <iostream.h>void main( ){int i=1;while(i<=8)if(++i%3!=2) continue;else cout<<i;}5.#include<iostream.h>class M{int m1,m2;public:M(int x,int y){m1=x; m2=y;}void print(){cut<<m1<<”,”<<m2<<endl;}void print()const;};void M::print()const{cut<<m1+m2<<endl;}void main(){M a(5,4);a.print();const M b(8,7);b.print();}五、程序设计写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形),Square(正方形),Triangle(三角形).用虚函数分别计算几种图形面积,并求它们地和.要求用基类指针数组,使它地每一个元素指向一个派生类对象,其中圆半径radius为15.2,正方形边长length 为6.5,三角形底边长bottom为5.4,高height为6.8.版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.Users may use the contents or services of this article for personal study, research or appreciation, and othernon-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.。