面向对象程序设计习题及答案
- 格式:doc
- 大小:61.00 KB
- 文档页数:8
《JAV A语言程序设计》练习题 1一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3 ,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected4、为AB 类的一个无形式参数无返回值的方法method 书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5、给定java 代码如下,编译运行后,输出结果是( )(选择一项)。
public class test {static int i;public int aMethod() {i++;return i;}public static void main (String args[]) {Test test=new Test() ;test.aMethod () ;System.out.println (test.aMethod()) ;} }a) 0 b) 1 c) 2 d) 3二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
2、在Java 的基本数据类型中,char 型采用Unicode 编码方案,每个Unicode 码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。
3、设x = 2 ,则表达式( x + + ) /3 的值是0 。
《⾯向对象程序设计》编程题复习及其答案《⾯向对象程序设计》复习题1、(C++的输⼊输出)天猫优惠券,我就要券/doc/a2caece903020740be1e650e52ea551811a6c980.html定义⼀个函数max,实现输⼊两个数a、b,⽐较并从⼩到⼤输出。
2、(函数的重载)(1)定义⼀个带两个参数的函数max,输出最⼤值。
(2)再定义⼀个带三个参数的函数max,输出最⼤值。
(3)主函数测试之。
3、(有默认参数的函数)将题2⽤带默认参数的函数实现。
4、(变量的引⽤)(1)定义⼀个swap1函数,以普通形参传⼊两个变量a、b,互换a、b的值。
(2)定义⼀个swap2函数,以指针形参传⼊两个变量a、b,互换a、b的值。
(3)定义⼀个swap3函数,以引⽤形参输⼊两个变量a、b,互换a、b的值。
(4)主函数定义两个变量x、y传⼊三个函数,观察x、y值前后的变化。
5、(类的定义)定义⼀个student类,数据成员包括:学号num,姓名name,年龄age,性别sex,成员函数包括:(1) set函数,键盘输⼊学号,姓名,年龄,性别(2) display函数,输出学⽣信息。
6、(构造函数和析构函数)定义⼀个student类,数据成员包括:学号num,姓名name,年龄age,性别sex,成员函数包括:(1)构造函数,初始化学号,姓名,年龄,性别(2)display函数,输出学⽣信息。
(3)析构函数,输出学⽣学号。
(4)主函数定义多个对象,并注意构造函数和析构函数的调⽤顺序。
7、(构造函数的重载)在题6基础上增加⼀个默认构造函数,实现构造函数的重载8、将题6⽤带默认参数的构造函数实现。
9、(对象数组和对象的动态建⽴及释放)在题8基础上,实现如下主函数:(1)在主函数中定义⼀个包含三个学⽣的数组,并初始化之。
(2)在主函数中定义⼀个student类指针p并⽤new运算符分配动态内存(3)⽤delete删除p指向的动态内存。
《JA V A语言程序设计》练习题1一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5、给定java 代码如下,编译运行后,输出结果是( )(选择一项)。
public class test {static int i;public int aMethod() {i++;return i;}public static void main (String args[]) {Test test=new Test() ;test.aMethod () ;System.out.println (test.aMethod()) ;} }a) 0 b) 1 c) 2 d) 3二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
3、设x = 2 ,则表达式( x + + )/3 的值是0 。
书后习题参考答案习题1 2习题2 3习题3 4习题4 10习题5 11习题6 14习题7 15习题9 16习题12 20习题13 25习题14 27习题15 28习题16 31习题17 39习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。
命令:javac –d . 文件名称.java(3)使用Java解释器(java.exe)运行Java程序。
命令:java 包名.类名3.Java的源文件是由若干个书写形式互相独立的类、接口、枚举等组成。
应用程序中可以没有public类,若有的话至多可以有一个public类。
4.新建JAVA_HOME系统环境变量,指向安装目录在系统环境变量path中增加内容:%JAVA_HOME%\bin;新建系统环境变量classpath并填入三项:.; %JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar5. B6. Java源文件的扩展名是.java。
Java字节码的扩展名是.class。
7. D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class和Xiti8.class(3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8)执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError:Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。
java面向对象程序设计习题答案Java面向对象程序设计习题答案在Java编程中,面向对象程序设计是一种重要的编程范式。
它通过将现实世界中的实体抽象成对象,然后通过对象之间的交互来实现程序的功能。
在这篇文章中,我们将为您提供一些常见的面向对象程序设计习题答案,帮助您更好地理解和掌握这一编程范式。
1. 请编写一个简单的Java类,表示一个学生。
该类应该包括学生的姓名、年龄和学号等属性,并且应该有方法来设置和获取这些属性。
```javapublic class Student {private String name;private int age;private String studentId;public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getStudentId() {return studentId;}public void setStudentId(String studentId) {this.studentId = studentId;}}```2. 请编写一个简单的Java类,表示一个图书。
该类应该包括图书的名称、作者和价格等属性,并且应该有方法来设置和获取这些属性。
```javapublic class Book {private String title;private String author;private double price;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}}```通过以上两个例子,我们可以看到面向对象程序设计的特点:将现实世界中的实体抽象成对象,并通过对象的属性和方法来描述和实现这些实体。
《C++面向对象程序设计》习题解答陈腊梅目录第一章面向对象程序设计概述.............................................................. 错误!未定义书签。
第二章对C语言的基础扩充................................................................... 错误!未定义书签。
第三章类和对象的初步探讨 ................................................................. 错误!未定义书签。
第四章类和对象的进一步解析.............................................................. 错误!未定义书签。
第五章在对象中使用运算符—运算符重载.......................................... 错误!未定义书签。
第六章继承与派生 (2)第七章多态性与虚函数 (2)第一章面向对象程序设计概述一、选择题二、填空题1、多态性2、成员函数3、抽象4、处理这些数据的操作或处理这些数据的函数5、面向对象分析、面向对象分析、面向对象编程、对象对象测试、面向对象维护第二章对C语言的基础扩充二、程序阅读题1答案a=639,b=78,c=122答案a=5,b=8a=8,b=53答案104答案x=20.6 y=5 z=Ax=216.34 y=5 z=Ax=216.34 y=2 z=Ax=216.34 y=2 z=E5答案ic=11fc=7.82ic=5fc=2.15第三章类和对象的初步探讨一、选择题二、填空题1 数据成员、成员函数2 private 、protected 、public3 指向对象的指针、对象的引用4 属性、行为、属性、行为5 对象、属性和操作这些属性的操作、对外隐藏四、程序改错题#include <iostream>using namespace std;class Clock{//public:void set_clock(void);void show_clock(void);//private:int hour;int minute;int second;};Clock clock;int main( ){clock.set_clock( );clock.show_clock ( );//return 0 ;}void Clock::set_clock(void){cin>>hour;cin>>minute;cin>>second;}void Clock::show_clock(void){cout<<hour<<":"<<minute<<":"<<second<<endl;}第四章类和对象的进一步解析二、填空题1 this2所有成员3友元类、友元函数4 friend5 程序编译、程序结束三、程序阅读题1答案Default constructor called.constructor called.0,06,86,8Destructor called.0,0Destructor called.2答案x!=y3答案Initalizing defaultInitalizing default0 0Destructor is activeDestructor is active4答案n=2,sum=2n=3,sum=5n=5,sum=105答案x=36答案x=1,y=2x=30,y=407答案1 2 3 4 4exit main3 2 1 08答案n=1009答案the student is:Li Huthe teacher is:Wang Ping10答案211答案1035,789.50412答案13答案constructing object:x=1第五章在对象中使用运算符—运算符重载二、程序完善题1(1)A A::operator+(A &b)(2){ A temp;temp.i = i+b.i;return temp; }三、程序阅读题1.答案n=4n=3232.答案c1=10 c2=20c1=100 c2=200c1=11 c2=21c1=100 c2=2003.答案1 2 4 7 11 16第六章派生与继承1 继承2 具体化、抽象3 公有继承、保护继承、私有继承4 子对象5 public(共有的)、protected(保护的)、不可访问6 protected(保护的)、protected(保护的)、不可访问的7 private(私有的)、private(私有的)、不可访问的8 二义性1.C++语言中,既允许单继承,又允许多继承。
面向对象程序设计课后习题答案第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:每一个对象必须有一个名字以区别于其他对象。
需要用属性来描述它的某些特性。
有一组操作,每一个操作决定了对象的一种行为。
对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
java面向对象程序设计考试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义类的属性?A. staticB. finalC. privateD. public答案:C2. 以下哪个方法用于在Java中创建对象?A. newB. createC. makeD. construct答案:A3. 哪个关键字用于在Java中定义一个方法?A. functionB. methodC. defineD. procedure答案:B4. 在Java中,哪个关键字用于实现类的继承?A. extendsB. inheritC. deriveD. base答案:A5. Java中接口和抽象类的主要区别是什么?A. 接口没有构造方法,抽象类有B. 接口可以有实现,抽象类不能C. 接口不能有属性,抽象类可以D. 接口可以有私有方法,抽象类不可以答案:A二、填空题(每空1分,共10分)1. 在Java中,一个类可以继承另一个类的属性和方法,这种特性称为____。
答案:继承2. Java中,一个类只能继承一个父类,这是Java的____特性。
答案:单继承3. 当一个类实现了一个接口时,它必须实现接口中所有的____方法。
答案:抽象4. Java中,____关键字用于声明一个类是抽象的。
答案:abstract5. 在Java中,____关键字用于声明一个方法没有具体的实现。
答案:abstract三、简答题(每题10分,共20分)1. 请简述Java中封装的概念及其重要性。
答案:封装是面向对象编程中的一个核心概念,它指的是将对象的状态(属性)和行为(方法)结合在一起,并隐藏对象的内部实现细节。
封装的重要性在于它提高了代码的安全性和可维护性,使得对象的内部状态不会被外部代码随意访问和修改,从而保护了对象的完整性。
2. 描述Java中多态的概念及其作用。
答案:多态是面向对象编程中的一个特性,它允许不同类的对象对同一消息做出响应。
c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 在C++中,以下哪个关键字用于定义类?A. structB. typedefC. enumD. union答案:A2. 以下哪个选项不是面向对象编程的三大特性?A. 封装B. 继承C. 多态D. 抽象答案:D3. 在C++中,构造函数的作用是什么?A. 初始化局部变量B. 初始化成员变量C. 销毁对象D. 计算对象的值答案:B4. 下列哪个关键字用于实现类的继承?A. extendsB. implementsC. inheritsD. public答案:D5. 在C++中,友元函数可以访问类的哪些成员?A. 公有成员B. 私有成员C. 保护成员D. 所有成员答案:D6. 下列关于虚函数的描述,哪个是正确的?A. 虚函数不能在基类中定义B. 虚函数不能在派生类中重写C. 虚函数可以用于实现多态D. 虚函数不能在接口类中定义答案:C7. 在C++中,下列哪个关键字用于定义纯虚函数?A. abstractB. virtualC. overrideD. final答案:B8. 下列关于静态成员的描述,哪个是错误的?A. 静态成员变量可以在类外初始化B. 静态成员函数可以访问类的非静态成员C. 静态成员属于类本身D. 静态成员函数不能访问类的静态成员答案:B9. 在C++中,下列哪个关键字用于定义常量成员函数?A. constB. staticC. finalD. abstract答案:A10. 下列关于运算符重载的描述,哪个是正确的?A. 运算符重载不能改变运算符的优先级B. 运算符重载可以改变运算符的结合性C. 运算符重载可以改变运算符的操作数数量D. 运算符重载可以改变运算符的类型答案:A二、填空题(每题2分,共20分)1. 在C++中,使用关键字________定义类。
答案:class2. 面向对象编程的三大特性包括封装、继承和________。
《面向对象程序设计(Java)》经典编程集(共60题,含答案)/*一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第5次落地时,共经过多少米?第5次反弹多高?*//*输出7*7口诀*//*求1+2!+3!+...+10!的和*//*有5个人坐在一起,问第五个人多少岁?他说比第4个人大3岁。
问第4个人岁数,他说比第3个人大3岁。
问第三个人,又说比第2人大3岁。
问第2个人,说比第一个人大3岁。
最后问第一个人,他说是10岁。
请问第五个人多大? *//*求0--7所能组成的6位的奇数个数是多少个*//*有1、2、3、4、5、6、7、8、9个数字,能组成多少个互不相同且无重复数字的四位数?程序分析:可填在千位、百位、十位、个位的数字都是1、2、3、4、5、6、7、8、9。
组成所有的排列后再去掉不满足条件的排列。
*//*一个整数,它加上1000后是一个完全平方数,再加上1680又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上1000后再开方,再将该数加上2680后再开方,如果开方后的结果满足如下条件,即是结果。
请看具体分析*//*利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,80-89分之间的用B表示,70-79分之间的用C表示,60-69分之间用D表示,60分以下的用E表示。
(假定输入数字为95,判断等级)*//*题面:编写程序解决如下问题,小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,求可以有多少种不同的借法?将结果打印输出*//*题面:编写程序解决如下问题,某人将一缸金鱼分5次出售,第一次卖出全部的一半加二分之一条;第二次卖出余下的三分之一加三分之一条;第三次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的11条。
问原来的鱼缸中共有几条金鱼?将结果打印输出*//*题面:编写程序,一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数,以十进制输出。
面向对象程序设计试题及答案一、试题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. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。
简答题1、传统的结构化程序设计的优点和缺点是什么?优点:(1)这种程序设计方法力求算法描述精确。
(2)对每一子过程模块简单进行程序正确性证明。
缺点:(1)这种程序设计方法本质上是面对“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能干脆反映人类求解问题的思路。
(2)程序代码可重用性差。
程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。
即使重用代码,通常也是通过拷贝或编辑重新生成一份。
(3)维护程序的一样性困难。
该种方法将数据与对数据进行处理的程序代码分别。
2、什么是对象?每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。
对象的属性描述了对象的状态和特征,对象的方法说明白对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。
3、什么是消息?在面对对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。
当一个对象须要另外一个对象供应服务时,它向对方发出一个服务恳求,而收到恳求的对象会响应这个恳求并完成指定的服务。
这种向对象发出的服务恳求就称为消息。
4、什么是多态性?所谓多态性是指当程序中的其他部分发出同样的消息时,根据接收消息对象的不同能够自动执行类中相应的方法。
其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大便利。
5、什么是面对对象的程序设计方法?这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。
在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息相互作用,对象中的方法确定要向哪个对象发消息、发什么消息以及收到消息时如何进行处理等。
6、面对对象方法的特点是什么?(1)OOP以“对象”或“数据”为中心。
由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更困难的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的变更对整个系统几乎没有影响。
. .. 面向对象程序设计 一、 选择填空 1. 关于C++与C语言的关系描述中,(D)是错误的。 (A)C语言是C++的一个子集 (B)C语言与C++是兼容的 (C)C++对C语言进行了一些改进 (D)C++和C语言都是面向对象的 2. 下面关于对象概念的描述中,(B)是错误的。 (A)对象就是C语言的结构变量 (B)对象代表着正在创建的系统中的一个实体 (C)对象是一个状态的操作(或方法)的封装体 (D)对象之间的信息传递是通过消息进行的 3. 下面关于类概念的描述中,(D)是错误的。 (A)类是抽象数据类型的实现 (B)类是具有共同行为的若干对象的统一描述体 (C)类是创建对象的样板 (D)类就是C语言的结构类型 4. 按照标识符的要求,(A)符号不能组成标识符。 (A)连接符 (B)下划线 (C)大小写字母 (D)数字字符 5. 下列符号中,(C)不可作为分隔符。 (A), (B) : (C)? (D); 6. 在16位机中,int型字宽为(A)字节。 (A)2 (B)4 (C)6 (D)8 7. 类型修饰符unsigned修饰(D)类型是错误的。 (A)char (B)int (C)long int (D)float 8. 对于int *pa[5];的描述,(D)是正确的。 (A)pa是一个指向数组的指针,所指向的数组是5个int型元素 (B)pa是一个指向某数组中第5个元素的指针,该元素是int变量 (C)pa[5]表示某个数组的第5个元素 (D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针。 9. 下列关于指针的运算中,(D)是非法的。 (A) 两个指针在一定条件下,可以进行相等或不等的运算。 (B) 可以有一个空指针赋值给某个指针。 (C) 一个指针可以加上一个整数。 (D) 两个指针在一定条件下,可以相加。 10. 指针可以用来表示数组元素,下列表示中(A)是错误的。已知: int a[3][7]; (A)*(a+1)[5] (B)*(*a+3) (C)*(*(a+1)) (D)*(&a[0][0]+2) 11. 下列表示引用的方法中,(A)是正确的。已知: m=10; (A)int &x=m; (B)int &y=10; (C)int & z; (D)float &t=&m; 12. 下列各运算符中,(A)可以作用于浮点数。 (A)++ (B)% (C)>> (D)& (与C语言不同,在C++中++和--运算符可以作用于浮点数) 13. 当一个函数无返回值时,定义它其函数类型应是(A)。 (A)void (B)任意 (C)int (D)无 14. 在函数说明时,下列(D)项是不必要的。 (A)函数的类型 (B)函数的参数类型和名字 . .. (C)函数名字 (D)返回值表达式 15. 下列的(D)是引用调用。 (A)形参是指针,实参是地址值 (B)形参和实参都是变量 (C)形参是数组名,实参是数组名 (D)形参是引用,实参是变量 16. 在C++中,下列关于设置参数默认值的描述中,(B)是正确的。 (A)不允许设置参数的默认值 (B)设置参数默认值时,应按从右到左的顺序进行 (C)设置参数默认值时,应按从左到右的顺序进行 (D)设置参数默认值时,应该全部参数都设置 17. 重载函数在调用时选择的依据中,(D)是错误的。 (A)参数个数 (B)参数类型 (C)函数名字 (D)函数的返回值类型 18. 在一个函数中,要求通过函数调用来实现一个不太复杂的功能,并且要求加快执行速度,选用(A)最合适。 (A)内联函数 (B)重载函数 (C)递归函数 (D)嵌套调用 19. 采用函数重载的目的在于(D) (A)实现共享 (B)减少空间 (C)提高速度 (D)使用方便,提高可读性 20. 说明语句 “const char *ptr; ”中,ptr应该是(C)。 (A)指向字符常量的指针 (B)指向字符的常量指针 (C)指向字符串常量的指针 (D)指向字符串的常量指针 21. 在下列关键字中,用以说明类中公有成员的是(A)。 (A)public (B)private (C)protected (D)friend 22. 下列的种类函数中,(C)不是类的成员函数。 (A)构造函数 (B)析构函数 (C)友元函数 (D)拷贝构造函数 23. 作用域运算符的功能是(D)。 (A)标识作用域的级别 (B)指出作用域的范围 (C)给定作用域的大小 (D)标识某个成员是属于哪个类 24. (B)是不可以作为该类的成员的。 (A)自身类对象的指针 (B)自身类的对象 (C)自身类对象的引用 (D)另一个类的对象 25. (D)不是构造函数的特点。 (A)构造函数的函数名与类名相同 (B)构造函数可以重载 (C)构造函数可以设置缺省参数 (D)构造必须指定类型说明 26. (A)是析构函数的特征。 (A)一个类中只能定义一个析构函数 (B)析构函数名与类名不同 (C)析构函数的定义只能在类体内 (D)析构函数可以有一个或多个参数 27. 通常拷贝构造函数的参数是(C)。 (A)某个对象名 (B)某个对象的成员名 (C)某个对象的引用名 (D)某个对象的指针名 28. 关于成员函数特征的下述描述中,(A)是错误的 (A)成员函数一定是内联函数 (B)成员函数可以重载 (C)成员函数可以设置缺省参数 (D)成员函数可以是静态的 29. 下述静态数据成员的特征中,(D)是错误的。 (A)说明静态数据成员时前边要加修饰符static (B)静态数据成员要在类外进行初始化 . .. (C)引用静态数据成员时,要在静态数据成员名前加和作用域运算符 (D)静态数据成员不是所有对象共有的 30. 友元的作用是(A) (A)提高程序的运行效率 (B)加强类的封装性 (C)实现数据的隐藏 (D)增加成员函数的种类 31. 已知类A中一个成员函数说明如下:void Set(A &a); 其中A &a的含义是(C)。 (A)指向类A的指针a (B)将a的地址赋给变量Set (C)a是类A对象的引用,用来作函数Set( )的形参 (D)变量A与a按位逻辑与,作为函数Set( )的参数 32. 下列关于对象数组的描述中,(D)是错误的。 (A)对象数组的下标是从0开始的 (B)对象数组的数组名是一个常量指针 (C)对象数组的每个元素是同一个类的对象 (D)对象数组只能赋初值,而不能被赋值 { 赋值格式:对象数组名[行下标][列下标] = 构造函数名(实参表) ; } 33. 下列定义中,(B)是定义指向数组的指针p。 (A)int *p[5]; (B)int (*p)[5]; (C)(int *)p[5]; (D)int *p[ ]; 34. 已知:print()函数是一个类的常(const)成员函数,它无返回值,下列表示中,(A)是正确的。 (A)void print( ) const; (B)const void print( ); (C)void const print( ); (D)void print (const); { this指针是一个常量指针,但也可以将它定义成指向常量的常量指针,其方法是在定义成员函数时,或者在类中声明成员函数时,在函数头后面加上关键字const } 35. 关于new运算符的下列描述中,(D)是错误的。 (A)它可以用来动态创建对象和对象数组 (B)使用它创建的对象或对象数组应使用运算符delete删除 (C)使用它创建对象时要调用构造函数 (D)使用它创建对象数组时必须指定初始值 { *指针变量名 = new [元素个数]; 指针变量名[下标] = 构造函数(参数表); } 36. 关于delete运算符的下列描述中,(C)是错误的。 (A)它必须用于new返回的指针 (B)它也适用于空指针 (C)对同一个动态对象可以多次使用该运算符 (D)指针名前只用一对方括号符,不管所删除数组的维数 37. 具有转换功能的构造函数,应该是(B)。 (A)不带参数的构造函数 (B)带有一个参数的构造函数 (C)带有两个以参数的构造函数 (D)缺省构造函数 38. 下列对派生类的描述中,(D)是错误的。 (A)一个派生类可以作另一个派生类的基类 (B)派生类至少有一个基类 (C)派生类的成员除了它自己的成员外,还包含了其基类的成员 (D)派生类中从基类继承的成员,其访问权限保持不变 39. 派生类对象对基类有成员中(A)是可以访问的。 (A)公有继承的公有成员 (B)公有继承的私有成员 . .. (C)公有继承的保护成员 (D)私有继承的公有成员 40. 对基类和派生类的描述中,(B)是错误的。 (A)派生类是基类的具体化 (B)派生类是基类的子集 (C)派生类是基类定义的延续 (D)派生类是基类的组合 41. 派生类构造函数的成员初始化列表中不能包含(C)。 (A)基类的构造函数 (B)派生类中成员对象的初始化 (C)基类成员对象的初始化 (D)派生类中一般数据成员的初始化 42. 关于多继承二义性的描述中,(C)是错误的。 (A)一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员进行访问可能出现二义性。 (B)解决二义性的最常用的方法是用“类名::”指定成员名所属类。 (C)基类和派生类中出现的同名成员函数,也存在二义性问题。 (D)一个派生类是从两个基类派生而来,而这两个基类又有一个共同的基类,对该基类的成员进行访问时,也可能出现二义性。 43. 设置虚基类的目的是(B)。 (A)简化程序 (B)消除二义性 (C)提高运行效率 (D)减少目标代码 44. 在派生类对基类继承的传递性中,(C)是错误的。 (A)在公有继承方式下,直接派生类对象可以直接调用基类中的公有成员函数,去访问基类的私有数据成员。 (B)在公有继承方式下,间接派生类对象可以直接调用基类中的公有成员函数,去访问基类的私有数据成员。 (C)在私有继承方式下,间接派生类对象可以直接调用基类中的公有成员函数,去访问基类的私有数据成员。 (D)不管是私有继承还是公有继承,基类中的私有成员在派生类的作用域内都是不可见的。 45. 对定义重载函数的下列要求中,(D)是错误的。 (A)要求参数的个数不同 (B)要求参数中至少有一个类型不同 (C)要求参数个数相同,参数类型不同 (D)要求函数的返回值不同 46. 下列函数中,(C)不能重载。 (A)成员函数 (B)非成员函数 (C)析构函数 (D)构造函数 47. 下列对重载函数的描述中,(A)是错误的。 (A)重载函数中不允许使用缺省参数 (B)重载函数中编译系统根据参数表进行选择 (C)不要使用重载函数来描述毫不相干的函数 (D)构造函数重载将给初始化带来多种方式 48. 下列运算符中,(C)不能重载。 (A)&& (B)[ ] (C):: (D)new 49. 下列关于运算符重载的描述中,(D)是正确的。 (A)运算符重载可以改变运算量的个数 (B)运算符重载可以改变优先级 (C)运算符重载可以改变结合性 (D)运算符重载不可以改变语法结构 50. 运算符可以重载为(A)或(B)。 (A)成员函数 (B)友元函数 (C)内联函数 (D)带缺省参数的函数