电大面向对象程序设计编程题
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《面向对象程序设计》题库及答案一一、单项选择题(每小题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的值分别为( )。
国家开放大学《面向对象程序设计(本)》形考任务1-4参考答案
国家开放大学《面向对象程序设计(本)》形考任务1-4参考答案形考任务1一、单项选择题(每题1分,共20分)1.Java是一门()语言。
a. 汇编b. 面向对象的高级c. 面向过程的高级d. 机器2.机器语言中的指令编码为()编码。
a. 符号b. 数字c. 十进制d. 二进制3.更接近人类自然语言的计算机语言是()语言。
a. 高级b. 机器c. 数字d. 汇编4.对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。
a. 重量b. 颜色c. 状态d. 动态5.类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。
a. 成分b. 元素c. 产品d. 实例6.Java语言的主要特点不包括()。
a. 可移植性b. 处理文件c. 面向对象d. 自动垃圾回收7.Java语言的主要特点不包括()。
a. 解释执行b. 处理字符串c. 多线程d. 安全性8.具有相同属性和服务的一组对象的模板称为()。
a. 代码b. 概念c. 类d. 程序9.把对象的属性和服务组合成一个独立的整体,尽可能隐蔽其内部的细节,这称为对象的()。
a. 继承性b. 封装性c. 开放性d. 多态性10.使用JDK编译Java程序时使用的命令是()。
a. javadocb. javacc. appletviewerd. java11.组成Java程序的最小单位是()。
a. 方法b. 常量d. 类12.在Java程序中包含主方法的类被称为主类,主方法名为()。
a. voidb. mainc. Maind. args13.在Java程序中包含主方法的类被称为主类,主方法的访问控制修饰符为()。
a. privateb. staticc. publicd. protected14.在Java程序中包含主方法的类被称为主类,主方法的存储控制属性应定义为()。
a. staticb. shortc. finald. abstract15.Java语言中的基本数据类型有9种,其中属于数值型的数据类型有()种。
面向对象测试题及答案
面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。
2. 解释什么是多态,并给出一个Java中多态的例子。
3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。
计09面向对象程序设计 考试试卷(B卷)参考解答
{ cout<<"Num="<<Num<<" Name="<<Name.c_str()<<" Age=" <<Age<<"
Sex="<<Sex<<endl;
}
int main()
{ doctor s1,s2(1002,"周博士",28,'0'),*p;
s1.display();
s2.display(); p = new doctor(1003,"马博士",29,'0');
doctor(int Num0=1001, string Name0="彭博士", int Age0=30,char Sex0='1')
{ Num = Num0; Name = Name0; Age = Age0; Sex = Sex0;
}
void display();
};
void doctor::display()
错误
2 3 4 5 6 7 8 9 10
的打
×
(每
小题
————————————————————————密封线——————————————————————
学号
姓名
系(院) 计算机与通信学院 课程名称 面向对象程序设计 班级
湖南工业大学考试试卷纸
三、填空题(每空 2 分, 共 10 分)
第 1 页 共4 页
(4) new Number(5)
void print(); };
(5) p->GetNum()
(国开)面向对象程序设计形考任务4
2024国家开放大学《面向对象程序设计》形考任务4(预备知识:第7,8章;分值:25分)一、单项选择题(每题1分,共10分)1.下面()既可以作为流的数据源,又可以作为流的目的地。
单选题(1 分) 1分A.键盘B.磁盘文件C.显示器D.扫描仪2.进行文件输入输出操作时,最常用的系统包是()。
单选题(1 分) 1分A.java.iongC.java.utilD.java.awt3.Java中有3个标准输入/输出流,下面的()不包含在内。
单选题(1 分) 1分A.System.inB.System.outC. System.errD.System.cur4.在读字符文件Employee.dat 时,使用该文件作为参数的类是()。
单选题(1 分) 0分A.BufferedReaderB.DataInputStreamC.DataOutputStreamD.FileInputStream5.下列不是InputStream 子类的是()。
单选题(1 分) 1分A. FileInputStreamB.ObjectInputStreamC.FileOutputStreamD.ZipInputStream6.下列哪个类不是异常类的父类?()。
单选题(1 分) 0分A.ErrorB.ThrowableC.ExceptionD.Object7.下面的关键字()与异常处理无关。
单选题(1 分) 1分A.throwB.voidC.throwsD.try8.下面的异常()为数组下标越界异常。
单选题(1 分) 1分A.ArithmeticExceptionB.NullPointerExceptionC.ArrayIndexOutOfBoundsExceptionD.FileNotFoundException9.下面()既可以作为流的数据源,又可以作为流的目的地。
单选题(1 分) 1分A.键盘B.磁盘文件C.显示器D.扫描仪10.Java中有3个标准输入/输出流,下面的()不包含在内。
最新电大面向对象程序设计作业答案参考资料知识点复习考点归纳总结
三一文库()*电大考试*一、编程题。
根据程序要求,写出函数的完整定义。
(40分)1.写一个函数,找出给定字符串中大写字母字符(即’A’-‘Z’这26个字母)的个数(如字符串”China Computer Wrold”中大写字母字符的个数为3个)。
函数的原型:int CalcCapital (char *str);函数参数:str为所要处理的字符串;函数返回值:所给字符串中数字字符的个数答:int CalcCapital (char *str){if (str == NULL) return 0; //判断字符指针是否为空int num_of_Capital = 0; //记录大写字母字符个数的变量,初值为0for(int i=0; str[i] != 0x0; i++)if (str[i] <= 'A' && str[i] >= 'Z') num_of_ Capital ++; //若是大写字母,则总数加1return num_of_ Capital; //返回大写字母字符数}2.写一个函数,用递归函数完成以下运算:sum(n) = 1 –1/2 + 1/3 –1/4 + …-(1/n)*(-1)n (其中n>0)函数原型:float sum(int n);函数参数:n为正整数。
函数返回值:相应于给定的n,右边表达式运算结果。
提示:你可以使用递归表达式:sum(n) = sum(n-1) -(1/n)*(-1)n答:float sum(int n){if (n == 1) return 1;else return sum(n-1) -(1.0/n)*(-1)n;}3. 给定新数值,在一个按节点所存放数值从大到小排序的链表中,找适当位置插一个新节点,仍保持有序的链表,写一个函数,完成此操作。
函数的原型:Node * InsNode(Node * head, int newValue);其中,链表节点的定义如下:struct Nodee{int Value; //存放数值Node * next; //指向链表中的下一个节点};函数参数:函数的第一个参数head指向链表头一节点的指针,如果链表为空,则head的值为NULL。
电大面向对象程序设计 单项选择题
最最新面向对象程序设计试题单项选择题一、1.用来构成C++程序文件的基本单位是(C)。
A.字符B.语句C.函数D.表达式2.在下列的符号常量定义中,错误的定义是(C)。
A. const double DD=3.14;B. const int M=20;C. const char ch;D. const bool mark=true;3.下面给字符数组赋初值时,正确的语句是(A)。
A.char sl[]="abcdef";B.char s2[4]="abed";C.char s3[2][3]={"abc","xyz"};D.char s4[4][]={‘a’,’x’,’s’,’t’,};”,若要把数组a中下标为3的元素值赋给x,则不正确的4.假定一条定义语句为“int a[10],x,*pa=a;语句为(D)。
A. x=pa[3] ;B.x=*(a+3);C. x=a[3];D.x=*pa+3;5.在一个完整类的定义中,应包含有(C)成员的定义。
A.数据B.函数C.数据和函数D.数据或函数6.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为(B)。
A.x.aB.x.a()C.x—)aD.x-)a()7.假定AA是一个类,abc()是该类的一个成员函数,则参数表中隐含的第一个参数的标识符为(C)。
A.abcB.intC.thisD.bool8.对于一个类的构造函数,其函数名与类名(A)。
A.完全相同B.基本相同C.不相同D.无关系9.假定AB为一个类,则执行“AB*s=new AB(a,5):”语句时得到的一个动态对象为(D)。
A.sB.s-)aC.s.aD.*s10.若派生类公有继承基类,则基类的公有和保护成员在派生类中将(D)成员。
A.全部变成公有B.全部变成保护C.全部变成私有D.仍然相应保持为公有和保护11.程序中主函数的名字为(A),A. mainB.MAINC.MainD.任意标识符12.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择(A)。
电大《面向对象程序设计(本)》形考任务一
试卷总分:100 得分:1001.在类的定义中,实现接口子句所使用的关键字为()。
A.publicB.implementsC.extendsD.abstract答案:B2.在Java语言中,允许将一个类声明置入另一个类声明中,称这种类为“内部类”。
答案:正确3.在程序中声明包的语句关键字为()。
A.volatileB.packageC.importD.pack答案:B4.当浏览器装入一个含有Applet的Web页时,Applet便被下载到该浏览器中。
答案:正确5.Java中有3个标准输入/输出流,下面的()不包含在内。
A.System.errB.System.inC.System.outD.System.cur答案:D6.在Java语言中,既可以利用抽象类生成对象,也可以利用接口生成对象。
答案:错误7.向量类Vector中的set(i,x)方法不能够把向量中下标为i的元素值修改为x的值。
答案:错误8.在Java语言中,能够利用抽象类生成对象,但不能利用接口生成对象。
答案:错误9.下面的关键字()与异常处理无关。
A.tryB.catchC.finallyD.switch答案:D10.Applet程序是由Java源代码构成的,并被编译为class文件。
答案:正确11.当浏览器装入一个含有Applet的Web页时,Applet不会被下载到该浏览器中。
答案:错误12.在类的定义中,若需要把一个属性或方法定义为类成员,而不是实例成员,则使用的修饰符为()。
A.finalB.constC.staticD.public答案:C13.java.io包中提供的ObjectOutputStream类能够把对象信息存储到文件中。
答案:正确14.Java.io包中的OutputStream及其子类专门用于把字节数据写入二进制数据文件中。
答案:正确15.一个父类的对象可以直接赋值给下层子类的对象。
答案:错误16.下列哪个类不是异常类的父类?()。
国家开放大学(面向对象程序设计)试题
国家开放大学(面向对象程序设计)[填空题]1试述值类型和引用类型的区别?参考答案:值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。
值类型变量直接把变量的值保存在栈中,引用类型的变量把实际数据的地址保存在栈中,而实际数据则保存在堆中。
[填空题]2试述下面代码的输出结果是什么?参考答案:old3[填空题]3简述装箱和拆箱的过程。
参考答案:装箱(boxing)是将值类型隐式地转换为引用类型。
如int i=3;object o = i ;便是装箱过程,装箱一个数值会为其分配一个对象实例,并把该数值拷贝到新对象中。
拆箱(unboxing)是显式地把引用类型转换成值类型,如int j = (int)o char j= (char)。
[填空题]4什么是静态变量?参考答案:类的数据成员可以分静态变量、非静态变量两种.静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员.非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在内容中。
一个类中可以同时包含静态成员和非静态成员,类中也包括静态构造函数和非静态构造函数。
[填空题]5试述abstract class和interface有什么区别?参考答案:[填空题]6进程和线程分别怎么理解?参考答案:1)定义解释进程是具有一定独立功能程序在关于某个数据集上的一次运行活动。
进程是系统进行资源分配和调度的一个独立单位。
线程是进程的一个实体,是Cup调度的基本*单位。
面向对象程序设计试题及答案
面向对象程序设计试题及答案一、试题1. 请简要解释面向对象(Object-Oriented)程序设计的概念。
2. 列举面向对象程序设计中的四个基本特征,并分别进行简要描述。
3. 请说明封装(Encapsulation)在面向对象程序设计中的作用和优势。
4. 解释继承(Inheritance)在面向对象程序设计中的概念和用途。
5. 什么是多态(Polymorphism)?请解释多态的概念以及其在面向对象程序设计中的重要性。
6. 简要介绍抽象类(Abstract Class)和接口(Interface)的概念,并说明它们之间的区别。
7. 请解释类(Class)与对象(Object)之间的关系。
8. 在面向对象程序设计中,什么是构造函数(Constructor)?请说明构造函数的作用和使用方法。
9. 请示范一个使用面向对象程序设计的简单实例,并说明你所设计的类的结构和功能。
二、答案1. 面向对象程序设计是一种以对象为中心的编程方法,通过定义表示对象属性和行为的类来组织程序结构,以实现代码的重用性、灵活性和可维护性。
2. (1)封装:将数据和对数据的操作封装在一个类中,通过访问权限控制,保护数据的安全性和完整性。
(2)继承:通过建立类之间的继承关系,实现代码的重用,具有层次性和扩展性。
(3)多态:允许不同类的对象对同一消息作出不同的响应,实现代码的灵活性和扩展性。
(4)抽象:通过抽象类和接口的定义,隐藏对象的具体实现细节,提供统一的接口和规范。
3. 封装的作用是将数据和对数据的操作封装在一个类中,外部无法直接访问类的内部实现细节,只能通过类提供的接口访问和操作数据。
封装的优势包括:(1)提高代码的可维护性和可读性,减少代码的重复。
(2)保护数据的安全性和完整性,防止外部直接对数据进行非法操作。
(3)降低模块之间的耦合度,提高代码的灵活性。
4. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。
【标准答案】国家开放大学2020年7月《1008面向对象程序设计》春季学期期末统一考试真题
类。()
18. 当利用一个方法进行文件访问操作可能生成一个 IO Exception 异常时,该方法可以在
方法头声明中抛出该异常,也可以采用 try … catch 块捕获并处理该异常。(
)
19. 在 Java 程序中,既允许创建单个线程,也允许创建多个线程。(
)
20. JDBC 隔离了 Java 与不同数据库之间的对话,使得 Java 程序无须考虑不同数据库管
public class XXK3 extends Rectangle { private int c; public XXK3(int aa, int bb, int cc) {super(aa,bb); c=cc; } public int volume() {return area()* c;} public int arrisLength() {return 2 * girth0+4 * c;} public static void main(String[] args) { XXK3 x=new XXK3(1,3,5); int yl=x. volume(); int y2 = x . arrisLength () ; System. out. println(yl+" , "十 y2);
)
15. 向量类 Vector 中的 size() 方法能够返回调用向量中当前保存的元素的个数。(
)
16 . List 是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素 的索引去
访问。(
)
17 . 输入流类 CinputStream) 和输出流类 (OutputStream) 是用来处理字符流的抽象基
}
结果为:
电大《面向对象程序设计(本)》形考任务三
试卷总分:100 得分:1001.在Java语言中,捕获和处理异常的语句块为()。
A.do…whileB.switch…caseC.if…elseD.try…catch答案:D2.在Java程序中包含主方法的类被称为主类,主方法的存储控制属性应定义为()。
A.finalB.staticC.abstractD.short答案:B3.Java语言中转义字符'\n'代表()。
A.空格B.回车C.换页D.换行答案:D4.一个类只能实现一个接口,所使用的子句关键字为implements。
答案:错误5.Java既支持类的单继承,又支持类的多重继承。
答案:错误6.抽象类只允许包含抽象方法,不允许包含非抽象的方法。
答案:错误7.在Java中将信息的输入与输出过程抽象为输入/输出流。
输入是指数据流入程序,输出是指数据从程序流出。
答案:正确8.Java开发工具包简称为()。
A.JRKB.JDKC.JRED.JKD答案:B9.在派生类中不能定义与父类中具有相同名称和参数表的方法。
10.DataOutputStream类的文件流能够把各种基本类型的数据写入到二进制数据文件中。
答案:正确11.机器语言中的指令编码为()编码。
A.数字B.十进制C.符号D.二进制答案:D12.Java中有3个标准输入/输出流,下面的()不包含在内。
A.System.errB.System.outC.System.curD.System.in答案:C13.具有()访问权限的成员能够被本类和任何其他类中的成员所访问。
A.protectdB.publicC.缺省D.private答案:B14.在一个派生类中,不能定义与上层父类中的成员同名的变量。
答案:错误15.Java.io包中的OutputStream及其子类专门用于把字节数据写入二进制数据文件中。
答案:正确16.向文本文件中写入字符数据,在任何时候都只需要用到文件写入器类(FileWriter),不需要用到缓冲写入器类(BufferedWriter)。
国开电大《面向对象程序设计》2020 年春季学期期末统一考试真题及答案(试卷代号:1008)
21. y= 120
22. 15,36
23. s=48
24. 1, Wang
17
C. Set 、 List 、 Map 都继承千 Collection
D. SortedSet 继承于 Set
9. 下列哪个类不是异常类的父类?(
)
A. Error
B. Throwable
C. Exception
D. Object
10. 下面(
)既可以作为流的数据源,又可以作为流的目的地。
A. 键盘
)
14. 在 Java 语言中,声明包语句可以出现在一个 Java 程序文件的任何位置。(
)
15. 向量类 Vector 中的 size() 方法能够返回调用向量中当前保存的元素的个数。(
)
16 . List 是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素 的索引去
访问。(
)
17 . 输入流类 CinputStream) 和输出流类 (OutputStream) 是用来处理字符流的抽象基
结果为:
16
试卷代号: 1008
国家开放大学 2020 年春季学期期末统一考试
面向对象程序设计 试题答案及评分标准
(供参考)
一、单项选择题(在括号内填写正确的选项编号。每小题 3 分,共 30 分)
2020 年 7 月
l.B
2. C
3. D
4. C
5. D
6. A
7. A
8. C
ห้องสมุดไป่ตู้
9. A
10. B
B. 多态性
C. 继承性
D. 开放性
13
7. 具有(
)访问权限的成员能够被本类和其他任何类中的成员所访问。
电子科技大学22春“计算机科学与技术”《面向对象程序设计》期末考试高频考点版(带答案)试卷号5
电子科技大学22春“计算机科学与技术”《面向对象程序设计》期末考试高频考点版(带答案)一.综合考核(共50题)1.import java.awt.*;public class X extends Frame{public static void main(String[] args){X x=new X();x.pack();x.setVisible(true);}public X(){setLayout(new GridLayout(2,2));Panel p1=new Panel(); add(p1);Button b1=new Button("One"); p1.add(b1);Panel p2=new Panel(); add(p2);Button b2=new Button("Two"); p2.add(b2);Button b3=new Button("Three"); p2.add(b3);Button b4=new Button("Four"); add(b4);}}when the frame. is resized, ()A.all change height and widthB.Button Two change height and Button Three change widthC.Button One change heightD.Button Four change height and width参考答案:D2.在线程中,普通优先级的线程其优先级默认值为()。
A.5B.2C.10D.1参考答案:A3.已知如下代码:public class Test{ static long a[] = new long[10]; public static void mainB.When compile, some error will occur.C.Output is null.D.Output is 0.参考答案:D4.在一个applet标记中,()标记属性项可以省去不写。
电大《面向对象程序设计(专)》测试三
1.在说明一个结构变量后,不能整体引用结构体变量,需要逐一引用
答案:正确
2.多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。
答案:正确
3.多继承情况下,派生类的构造函数的执行顺序取决于成员初始化列表中的顺序。
答案:错误
4.如果A类型是B类型的子类型,则A类型必然适应于B类型。
答案:正确
5.如果一个成员函数只存取一个类的静态数据成员,则可将该成员函数说明为静态成员函数。
答案:正确
6.字符数组中每一个元素可存放一个字符,而字符指针变量存放字符串首地址.
答案:正确
7.定义一个对象时,系统只为该对象的数据成员开辟内存空间,而成员函数是同类对象共享的.
答案:正确
8.对象成员的表示与结构变量成员表示相同,使用运算符.或->。
答案:正确
9.引用是某个变量或对象的别名。
引用不是变量,它不占据内存空间,它本身没有内存地址。
引用只是被引用的变量或对象的替身。
答案:正确
10.引用是某个变量的别名,对引用的操作就是对被引用变量的操作。
答案:正确
11.所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类以外的函数对它们的访问都是非法的
答案:错误
12.数组是在内存中连续存储的一组同种数据类型的元素(变量),每一数组有一个唯一名称,通过在名称后面加索引的方式可以引用它的每一个元素。
答案:正确
13.构造函数可以声明为虚函数。
答案:错误。
省开课6219面向对象程序设计技术(附答案)
电大6219面向对象程序设计技术复习题一、单选题1. 用最简形式表示的整数类型修饰符包括()。
A. double、long、int;B.int、short、float;C. short、float、double;D.int、short、long2. 下列关于常值变量的表述中错误的是()A.程序中不允许改变常值变量的值;B.常值变量只能在程序的开始处定义;C.定义常值变量须在前面加上保留字const;D.定义常值变量时必须初始化;3. C++是()。
A.面向对象的程序设计语言;B.面向过程的程序设计语言;C.既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言;D.非结构化的程序设计语言4. 关于语句“long arm[6];”定义了一个一维数组。
关于此数组,下列表述中错误的是()A.数组的最大下标是6;B.数组有6个元素;C.数组的类型是长整型;D.数组的名称是arm5. 在语句“typedef double RATE;”中,自定义类型修饰符是()A. typedef;B.doubleC.RATE;D.double;RATE6. 下列语句定义变量p使得语句“cout<<p;”输出单词Goodmorning,其中错误的定义语句是()。
A. char *p={‘G’,’o’,’o’,’d’,’m’,’o’,’r’,’n’,’i’,’n’,’g’,’\0’};B.char p[]=”Goodmorning”;C.char *p=”Goodmorning”;D.char p[]={‘G’,’o’,’o’,’d’,’m’,’o’,’r’,’n’,’i’,’n’,’g’,’\0’};7. 面向对象程序设计思想的主要特征中不包括()。
A.封装性;B.多态性;C.继承性;D.功能分解,逐步求精8. 抽象类指的是()。
A. 没有任何成员的类;B.只有成员函数没有数据成员的类;C.有虚函数的类;D.有纯虚函数的类9. 不能作为重载函数的调用的依据是()A. 函数类型;B.参数类型;C.参数个数;D.参数顺序10. 下面关于友元的描述中,错误的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最最新面向对象程序设计试题编程题一、1.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。
int f(int a[],int n);int f(int a[],int n){if(n==0) return 0;else return a[n—1]*a[n—l]+f(a,n—1);}2.根据下面类中拷贝构造函数的原型写出它的类外定义。
class Array {int*a; //指向动态分配的整型数组空间int n; //记录数组长度public:Array(int aa[],int nn) ; //构造函数,利用aa数组长度nn初始化n,//利用aa数组初始化a所指向的数组空间 Array (const Array&aa) ;//拷贝构造函数};//在下面写出拷贝构造函数的类外定义Array::Array(const Array&aa) {n=aa. n;a=new int[n] ;for(int i=0;i<n; i++)a[i]=aa.a[i];}3.计算l+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。
#include<iostream. h〉void main(){int i;int p=1;int s=l;for(i=l;i< =l0;i++) {p*=3;s+=p;}cout<<s<<endl;}4.根据下面类中Min函数成员的原型和注释写出它的类外定义。
class AA {int * a;int n;int MS;public:void lnitAA(int aa[], int nn, int ms) {if(nn〉ms) {cout<<"Error!”<<endl; exit(l);}MS=ms; n~nn; a=new int[MS];for(int i=0;i<n;i++) a[i]=aa[i];}int Min(); //从数组a的前n个元素中求出最小值并返回};int AA::Min(){int x=a[0];£or(int i=1; i〈n; i++ )if(a[i]<x) x=a[i];return x;}5.求满足表达式22+42+...+n2的值,其中n取从键盘输人值的最大偶数。
假定分别采用i和s作为循环变量与求和变量,并限定使用for循环编程。
#include<iostream. h>void main(){int n,i=0,s=0;cin>>n;if(n%2==1) n=n—1;for(i=2;i<=n;i+=2) s+=i*i;cout<<"s="<<s<<endl;‘}6.编写出下面Strings类的构造函数的类外定义。
class Strings{char *s; //指向动态分配的字符串数组空间int n; //记录字符串长度 public;Strings(char*str);//构造函数};Strings::Strings(char * str){n=strlen(str);s=new char[n+l];strcpy(s,str) ;}7.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素之和。
int f(int a[],int n);int f(int a[],int n){if(n==0) return 0;else return a[n—l]+f(a, n—1);}注:if 语句可改写为 if(n==l) return a[0];8.根据下面类中Max函数成员的原型和注释写出它的类外定义。
class AA {int*a;int n;int MS;public:void InitAA(int aa[],int nn,int ms){if (nn>ms) {cout<<"Error!"<<endl;exit(l);}MS=ms; n=nn; a=new int[MS];for (int i=0;i<MS; i++)a[i]=aa[i];}int Max(); //从数组a的前n个元素中求出最大值并返回};int AA∷ MaxO{int x=a[0];for (int i=l;i<n; i++)if (a[i]>x) x=a[i]return x;}9.编写一个函数,分别求出由指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素中,该函数的原型声明如下:void fun(char*a, int b[]);void fun(char * a, int b口){int i;for(i=0;i<10 ;i++) b[i]=0;while(*a){int j=*a—'O';if(j>-0 && j< = 9) b[j]++;a++;}}10.根据下面类中CompareBig函数成员的原型和注释写出它的类外定义。
class AA {int* a;int n;int MS;public:void InitAA(int aa[],int nn, int ms) {if(nn>ms){cout〈<"Error!"<<endl; exit(l);}MS=ms;N=nn;a=new int[MS];for(int i=0;i<n;i++)a[i]=aa[i];}int CornpareBigC AA &• h);//比较*this与b的大小,从前向后按两数组//中的对应元素比较,若*this中元素值大则返回1,若b中//元素值大则返回-1,若相等则继续比较下一个元素,直到//一个数组中无元素比较,此时若两者的n值相同则返回0,//否则若*this中的n值大则返回1,若b中的n值大则返回-1。
};int AA:: CompareBig (AA&b){int k;if(n>b.n) k=b.n;else k=n;for(int i=0;i<k;i++)if(a[i]>b.a[i])return 1;else if(a[i]<b.a[i])return-1;if(k==n&&k==b.n)return 0;else if(k<n) return 1;else return —1 ;}11.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。
int f(int a[],int n);int f(int a[],int n){if(n==0) return 0;else return a[n—1]*a[n—l]+f(a,n—1);}12.根据下面类中拷贝构造函数的原型写出它的类外定义。
class Array {int *a: //指向动态分配的整型数组空间int n;//记录数组长度public:Array(int aa[] ,int nn);//构造函数,利用aa数组长度nn初始化n,//利用aa数组初始化a所指向的数组空间 Array(Array& aa) ;//拷贝构造函数}Array:: Array(Array&aa){n=aa.n;a=new int[n];for(int i=0;i<n;i++)a[i]=aa. a[i];}13.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。
int f(int a[],int n);int f(int a[],int n){if(n==0) return 0; //或者if(n==l)retun a[0]*a[0];else return a[n—l]*a[n—l]+f(a,n— 1);}14,根据下面类中Sum函数成员的原型和注释写出它的类外定义。
class AA{int*a;int n;int MS;public:void InitAA(int aa[],int nn, int ms){if(nn>ms){cout<< "Error! "<<endl;exit(l);}MS=ms;n=nn;a=new int[MS];for(int i=0;i<n i++)a[i]=aa[i];}int Sum(); //求出并返回数组a中前n个元素之和};int AA::Sum(){int s=0;for(int i=1;i<n; i++) s+=a[i];return s;}15.根据下面函数原型编写一个函数,求出并返回由字符指针a所指向的字符串中包含的字符’a’和'A'的总个数。
•int void fun(char* a);int fun(char * a){int i=0;while( *a){if( *a==’a’||*a==’A’) i++;a++;}return i;}16.根据下面类中拷贝构造函数的原型写出它的类外定义。
class Array{int *a; //指向动态分配的整型数组空间int n; //数组长度public:Array(int aa[],int nn){ //构造函数n=nn;a=new int[n];£or(int i=0; i<n;i++)a[i]=aa[i];}Array(Array& bb); //拷贝构造函数Array& Give(Array&. cc);//实现cc賦值给*this 的功能并返回*thisint Lenth(){return n;} //返回数组长度};Array::Array (Array& bb){n=bb. n;a=new int[n];for(int i=0;i<n;i++)a[i]=bb. a[i];}17.编写一个函数,分别求出由指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素中,该函数的原型如下。
void fun(char *a,int b[]);void fun(char *a,int b[]){int i;for(i=0;i<10;i++) b[i]=0;while( *a) {int j=*a—'0';if(j>=0&& j<=9) b[j]++;a++;}}18.根据下面类中CotnpareBig函数成员的原型和注释写出它的类外定义。