面向对象程序设计1
面向对象程序设计课程期末复习
一、填空题
1.Java源程序的扩展名是.java ,经过编译后的程序的扩展名是.class 。2.Socket通常也称为套接词,用于描述IP地址和端口。
3.线程的优先级在0 至31 之间,数值越大任务越紧急
4.构造方法是一种特殊的成员方法,构造方法名与类名相同
5.Java语言只允许单继承,指每个类只能有一个父类。
6. 在面向对象方法中,类描述的是具有相似属性与操作的一组对象。
7. 对象是Java程序中基本的结构单位。
8. 组件不能独立地显示出来,必须将组件放在一定的容器中才能显示。
9. 能将显示空间分成很多层的布局管理器是CardLatyout。
10. 任何一个Java程序都默认引入一个包,这个包的名字叫 https://www.360docs.net/doc/4916594456.html,ng。
11. Java语言中,有一个类是所有类或接口的父类,这个类的名称是Object。
12. 只能被同一包中的类访问的类中定义的成员变量是default成员
13. J2EE是大型企业级用容器管理专用组件的应用平台。
14. 在Java语言中,用abstract修饰符定义的类为抽象类。
15.Swing中用来表示面板的类是
16.
Collection的接口和类的API
18.main方法的声明格式包括public static void main(String[]args)
19.下列程序中构造了一个SET并且调用其方法add(),输出结果是 ( 1 )
public class A{
public int hashCode(){return 1;}
public Boolean equals(Object b){return true}
public static void main(String args[]){ Set set=new HashSet();
set.add(new A());
set.add(new A());
set.add(new A());
System.out.println(set.size());
}
}
20.下列程序的运行结果是
class A{
class Dog{
private String name;
private int age;
public int step;
Dog(String s,int a)
{
name=s;
age=a;
step=0;
}
public void run(Dog fast)
{
fast.step++;
}
}
public static void main (String args[])
{
A a=new A();
Dog d=a.new Dog("Tom",3);
d.step=25;
d.run(d);
System.out.println(d.step);
}
}
21.Java语言中, final 类不能被继承。
22.Java中的构造方法名必须与类名同名,它没有返回值。
23.AWT中用来表示对话框的类是 java.awt.Dialong 。
24.Frame框架窗口的默认布局管理器是 BorderLayout 。
25.点击窗口内的按钮时,产生的事件是 ActionEvent 。
三、多项选择
1.执行下列代码后,哪个结论是正确的 String[] s=new String[10]; BD
A、 s[10] 为 "";
B、 s[9] 为 null;
C、 s[0] 为未定义
D、 s.length 为10
2.下面的表达式哪个是正确的? AE
A、 String s="你好";int i=3; s+=i;
B、 String s="你好";int i=3; if(i==s){ s+=i};
C、 String s="你好";int i=3; s=i+s;
D、 String s="你好";int i=3; s=i+;
E、. String s=null; int i=(s!=null)&&(s.length>0)?s.length():0;
3.选出合理的标识符AC
A、 _sys1_lll
B、 2mail
C、 $change
D、 class
4.哪个布局管理器使用的是组件的最佳尺寸( preferred size)AE
A、 FlowLayout
B、 BorderLayout
C、 GridLayout
D、 CardLayout
E、GridBagLayout
5.下列哪个方法可用于创建一个可运行的类? AE
A、 public class X implements Runable{ public void run(){ ......} }
B、 public class X implements Thread{ public void run(){ ......} }
C、 public class X implements Thread{ public int run(){ ......} }
D、public class X implements Runable{ protected void run(){ ......} }
E、public class X implements Thread{ public void run(){ ......} }
6.下面哪个方法可以在任何时候被任何线程调用? DEF
A、 notify()
B、 wait()
C、 notifyAll()
D、 sleep()
E、yield()
F、synchronized(this)
7.构造BufferedInputStream的合适参数是哪个? AC
A BufferedInputStream
B BufferedOutputStream
C FileInputStream
D FileOuterStream
E. File
8.下列说法正确的是BC
A https://www.360docs.net/doc/4916594456.html,ng.Clonable是类
B https://www.360docs.net/doc/4916594456.html,ng.Runnable是接口
C Double对象在https://www.360docs.net/doc/4916594456.html,ng包中
D Double a=1.0是正确的java语句
9.指出正确的表达式AB
A double a=1.0;
B Double a=new Double(1.0);
C byte a = 340;
D Byte a = 120;
10.定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:CD
A private class MyClass extends Object
B class MyClass extends Object
C public class MyClass
D public class MyClass extends Object
11.指出下列哪个方法与方法public void add(int a){}为合理的重载方法。CD
A public int add(int a)
B public void add(long a)
C public void add(int a,int b)
D public void add(float a)
12.如果下列的方法能够正常运行,在控制台上将显示什么?ACD
public void example(){
try{
unsafe();
System.out.println("Test1");
}
catch(SafeException e)
{System.out.println("Test 2");}
finally{System.out.println("Test 3");}
System.out.println("Test 4");
}
A Test 1
B Test 2
C Test 3
D Test 4
13.下列哪些情况可以终止当前线程的运行?ABD
A 抛出一个例外时。
B 当该线程调用sleep()方法时。
C 当创建一个新线程时。
D 当一个优先级高的线程进入就绪状态时。
四、程序阅读与填空题
1. 阅读程序给出结果
下列程序段用来计算Fibonacci序列的第0,1,2,…各项
public class Fibonacci {
public static void main(String args[]) {
System.out.println("Fibonacci 第4项="+ fib(4)); }
static int fib(int n) {
if (n==0||n==1) {
return n;
}
else {
int sum=fib(n-1)+fib(n-2);
return sum;
}
}
}
输出结果为:
(2)3
2. 按注释提示完成文件复制的程序
//FileStream源代码如下:
import java.io.*;
class FileStream {
public static void main(String args[]) {
try{
File inFile=new File("file1.txt"); //指定源文件
File outFile=new File("file2.txt"); //指定目标文件
FileInputStream fis=(1)new FileInputStream(inFile); FileOutputStream fos=new FileOutputStream(outFile);
int c;
//逐字节从源文件中输入,再输出到fos流
while((c=fis.read())!=-1)
(2)fos.write(c) ;
fis.close();
fos.close();
}
catch(Exception e) {
System.out.println("FileStreamsTest: "+e);
}
}}
3. 阅读程序,给出结果
//B.java源代码如下:
class A{
int x=100;
}
class B extends A{
int x=200;
void prt(){
System.out.println("SubClass: "+x);
System.out.println("SuperClass: "+super.x);
}
public static void main(String args[]){
new B().prt();
}
}
结果:SubClass:200 SuperClass: 100
4. 阅读程序,给出结果:
// AbstractClassDemo.java源代码如下:
abstract class Shape { //定义抽象类Shape和抽象方法display
abstract void display();
}
class Circle extends Shape {
void display() { //实现抽象类的方法
System.out.println("Circle");
}
}
class Rectangle extends Shape {
void display() { //实现抽象类的方法 System.out.println("Rectangle"); }}
class Triangle extends Shape {
void display() { //实现抽象类的方法
System.out.println("Triangle");
}}
public class AbstractClassDemo{
public static void main(String args[]){
(new Circle()).display(); //定义无名对象来调用对应的display方法
(new Rectangle()).display();
(new Triangle()).display();
}}
结果:Circle Rectangle Triangle
五、判断题
F1. 下述代码是否正确
int b[5];
for(int i=0;i<5;i++)
b[i]=i;
F2. 下述代码是否正确
char b="A";
System.out.println("b = " + b);
T3.接口中的方法都是抽象方法。
F4.如果一个类实现了一个接口,则该类必须实现接口中的所有方法。
T5.Java中,https://www.360docs.net/doc/4916594456.html,ng.Object类是所有类的父类。
F6、public final abstract class FinalAndAbstract{ }
以上的类定义是正确的。
F7、以下类定义是正确的。
public class MyClass extends A, B{}
class A{}
class B{}
T8、关键字this表示的是当前对象,this只能用在方法中。
T9、在Java中,向上转型时不必使用强制类型转换。
如: class ParentClass{ }
class ChildClass extends ParentClass{ }
public class Test{
public static void main(String[] args){
ParentClass parent=new ParentClass();
ChildClass child=new ChildClass ();
parent=child;
} }
F10、在java中一个类不能继承一个类的同时实现3个接口。
F11、构造方法的返回值必须是void类型。
F12、以下定义的变量是正确的。float f=12.0;
T13、一个类的属性既可以是基本类型的变量,也可以是对象变量
T14.JRE 是java运行环境,JRE 是由JVM 和 java platform 核心类以及相关支撑文件组成。T15、Java中的字符使用的是 16 位的Unicode 编码。
T16、类是同种对象的集合和抽象。
T17、Java 仅支持类间的单重继承。
T18、接口是由常量和抽象方法组成的特殊类。
F19、构造函数的方法名可由编程人员任意命名。
F20、使用静态属性必须以类名做前缀。
F21、类的私有属性和私有方法可以被其子类访问。
F22、abstract 是抽象修饰符,可以用来修饰类及其属性和方法。
T23、Java 支持多线程机制。
F24、一个 Java 源程序中允许有多个公共类。
T25、Java 程序可以划分为两大类: Application 和 Applet
F26、for 语句中的循环体不能是空的。
F27、子类不能继承父类的构造函数。
F28、重载的方法可以通过它们的返回值类型的不同来区分。
T29、数组一定占用连续的内存空间。
F30. Java标识符允许以数字打头。
T31. 两个类在同一个包中定义,因此,其中的一个类就可以访问另一个类的私有成员变量。
F32. 接口的方法可以使用private进行修饰,接口中可以定义一般的成员变量。
F33. 在子类构造方法中使用super(…) 对父类构造方法进行调用时,super语句不必是子类构造方法的第一句。
T34. 一个适配器类实现并提供了一个事件监听器接口中所有的方法,而且这些方法都是空方法。
F35. Integer i=new Integer(256);
Integer j=new Integer(“256”);
则System.out.println(i==j);的结构应该是false.
F36. class A extends B 语句中表示B是A的子类。
T37. “覆盖”方法为子类提供了修改父类成员方法的能力。用来覆盖的子类方法应和被覆盖的方法保持同名、同返回值类型,以及相同的参数个数和参数类型。
T38.Java为程序提供了一种catch-Throw(捕获-抛出)异常处理方式。
六、编程题
1.定义一个类Student,具有以下属性和方法:
(1)三个private属性:姓名(name,String)、年龄(age,int)、性别(sex,String)
(2)8个public方法:1个带三个参数的构造方法、3个读取属性值的方法和3个设置属性值的方法、1个输出三个属性值的print方法
(3)main方法,创建一个实例student1,姓名为“张三”,年龄为30,性别为“男”,调用print方法输出student1的三个属性值。
public class Student {
private String name;
private int age;
private String sex;
public Student(String name, int age, String sex) {
super();
https://www.360docs.net/doc/4916594456.html, = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
https://www.360docs.net/doc/4916594456.html, = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public void print(){
System.out.println("姓名:"+https://www.360docs.net/doc/4916594456.html,+" 年龄:"+this.age+" 性别:"+this.sex);
}
public static void main(String[] args) {
Student student = new Student("张三",30,"男");
student.print();
}
}
定义Student的一个子类GradulateStudent(研究生),具有以下属性和方法:
(1)一个private属性:导师(teacher,String)
(2)4个public方法:1个带四个参数的构造方法、1个读取导师属性的方法和1个设置导师属性的方法、1个输出四个属性的print方法
(3)main方法,创建一个实例student2,姓名为“李四”,年龄为25,性别为“男”,导师为"王五",调用print方法输出student2的四个属性值。
2.编写类TxtFileDemo ,要求完成以下功能:
(1)使用学过的Writer、FileWriter 类,向c:\test.txt文件写入:"line 1\n"、"line 2\n"、"5678\n"、"true\n"
(2)利用Reader 、FileReader从文件c:\test.txt中读入数据到一个字符数组中,并将字符数组数据显示到屏幕上
注意:对可能出现的异常要用异常处理机制进行处理。
3.在各个应用系统中,读者应该可以看到用户登录程序的影子,下面就模拟一个简单的用户登录程序,为方便理解,使用初始化参数的方式输入用户名和密码。假定用户名为liuzhen,密码为123456。
注意:
①采用初始化参数的方式即:通过main(String args[])中的args数组带入参数。运行程序格式为:java LoginDemo1 用户名密码
②运行结果分如下几种情况为:
a.没有输入参数
输入的参数不正确,系统退出!
b.输入的用户名及密码错误
错误的用户名及密码
c.输入正确的用户名和密码
欢迎刘臻光临!
③分别采用面向过程的思想和面向对象的思想进行分析和程序设计
提示:采用面向过程的思想只需在main方法中按照步骤一步一步进行字符串比较,看是否符合。采用面向对象的思想需要考虑定义几个类,具体可参考如下:
class Check //主要功能是验证操作,只需要传入用户名和密码即可完成验证
{
public Boolean validate(……){……} /*执行具体的验证操作*/
}
class Operate{
private String info[];
public Operate(…){……} //构造方法
public Stirng login(){…….} //执行登录操作
public void isExit(){……} //退出系统(包括正常和非正常退出)
}
class LoginDemo //实例化对象进行测试
{
public static void main(String args[]){……}}
4.按照主题一中图书借阅系统的分析,要求对图书类和读者类进行封装。
要求:
①图书类中包括索引号、书名、作者、出版社、页数等信息。此外,还需要提供一种机制,能够获得并输出系统中已经存在的图书信息--class Book;
②读者类中包括学号、姓名、密码、学院、专业、年级等信息。提供一种机制用于获得并输出系统中已经存在的读者信息—class Users。
5.定义一个点类(Point)用来表示三维空间中的点(有三个坐标)。要求如下:
(1).可以生成具有特定坐标的点对象。
(2).提供可以设置三个坐标的方法。
(3).提供可以计算该“点”距原点距离的方法。
(4).编写程序验证上述三条。
6.采用面向对象的思想编写求解几何图形(包括三角形、矩形、圆形)的周长、面积的应用程序,要求尽量用到继承、接口、上转型对象和包等技术。
提示:采用面向对象的思想需要考虑如何将上述案例进行适当的整合,找出其中有共性的地方,具体可参考如下:
interface GetProperty //定义接口,将pi值、获取面积、获取周长、获取形状名字整合
{
……}
class Mpoint //定义点
{
……}
Abstract class Disp //定义屏幕输出需要的类
{……}
class Triangle implements GetProperty //定义三角形类
{……}
class Rectangle implements GetProperty //定义矩形类
{。。。。。。}
public class Drawing extends Disp //定义main()所在的类,并且要求根据相应的提示{……} //做出选择然后画出不同的图形。
7.有三类图书:教材类、文学类、科技类,它们的性质不同,借出期限不同,损坏赔偿价格不同。请设计出这三类图书的属性和方法。
提示:上述三种图书由于属性不同,计算公式不同,所以计算赔偿价格时采用的算法就不同,如果三种图书独立定义成各自没有关系的类的话,会使程序代码量增大。由于上述三个类都属于图书类,这时就可以通过使用抽象类,定义它们的变量和方法,然后分别在子类中进行实现。
Abstract class BookAll{
……}
class t_Book extends BookAll{
……}
……
《面向对象程序设计C 》期末试卷及标准答案
《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10; 下列表示引用的方法中,()是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0 B.1 C.2 D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型
面向对象程序设计考前复习题及答案
简答题 1、传统的结构化程序设计的优点和缺点是什么? 优点: (1)这种程序设计方法力求算法描述准确。 (2)对每一子过程模块容易进行程序正确性证明。 缺点: (1)这种程序设计方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能直接反映人类求解问题的思路。 (2)程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。 (3)维护程序的一致性困难。该种方法将数据与对数据进行处理的程序代码分离。 2、什么是对象? 每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。对象的属性描述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。 3、什么是消息? 在面向对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完成指定的服务。这种向对象发出的服务请求就称为消息。4、什么是多态性? 所谓多态性是指当程序中的其他部分发出同样的消息时,按照接收消息对象的不同能够自动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。 5、什么是面向对象的程序设计方法? 这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。 在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息相互作用,对象中的方法决定要向哪个对象发消息、发什么消息以及收到消息时如何进行处理等。 6、面向对象方法的特点是什么? (1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。 (2)引入了“类”(class)的概念。类与类以层次结构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,OOP中称这种机制为继承。 (3)OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量,同时降低了程序设计过程中出错的可能性,达到了事半功倍的效果。 7、面向对象的程序设计方法与结构化程序设计方法的比较 (1)传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难。
什么是面向对象程序设计
1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。
面向对象程序设计实验指导书讲解
面向对象程序设计实验指导书 实验一、C++开发环境应用入门(2学时)(选做) 1、实验目的 (1)了解C++开发工具的特点 (2)熟悉C++开发环境 (3)学习用C++编写标准的C++程序 2、实验任务 使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序: #include
c面向对象程序设计试题和答案(经典题目)
一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”< (A)指针(B)引用(C)枚举(D)结构 3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。 (A)share (B)public (C)private (D)protected 4、关于构造函数,下列说法不正确的是()。 (A)构造函数名字和类名相同 (B)构造函数在创建对象时自动执行 (C)构造函数无任何函数返回类型 (D)构造函数有且只有一个 5、派生类可以访问其基类的()。 (A)公有成员(B)保护成员 (C)私有派生(D)公有和保护成员 6、下列关于运算符重载的描述中,错误的是()。 (A)运算符重载不可以改变操作数的个数 (B)运算符重载不可以改变运算符的功能 (C)运算符重载不可以改变结合方向 (D)运算符重载不可以改变运算优先级 7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() (A)面向过程(B)面向对象(C)安全性(D)复用性 8、对于类中定义的成员,其隐含访问权限为()。 A.public B.protected C.private D.static 9、下面有关重载函数的说法中正确的是() (A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同; (C)重载函数必须有不同的形参列表(D)重载函数名可以不同; 10、有如下的对类“CSample”的说明,其中()是错误的。 class CSample { A.int a=23; B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类()构造函数。 (A)只能有一个(B)只可有公有的(完整版)《面向对象程序设计》答案