面向对象程序设计离线作业答案
面向对象离线离线作业答案
《面向对象程序设计》离线作业答案第2章【2.3】测试下面的注释(它在C++风格的单行注释中套入了类似于C的注释)是否有效。
//this is a strange /*way to do a comment*/答:有效【2.4】以下这个简短的C++程序不可能编译通过,为什么?#include<iostream>using namespace std;int main(){int a,b,c;cout<<"Enter two numbers:";cin>>a>>b;c=sum(a,b);cout<<"sum is:"<<c;return 0;}sum(int a,int b){ return a+b;}答:不能sum使用前必须声明【2.5】回答问题。
(1) 以下两个函数原型是否等价:float fun(int a,float b,char *c);float fun(int,float,char * );等价(2) 以下两个函数的第一行是否等价:float fun(int a,float b,char * c);float fun(int,float,char * );答:等价【2.6】下列语句中错误的是(C )。
A.int *p=new int(10);B.int *p=new int[10];C.int *p=new int;D.int *p=new int[40](0);【2.7】假设已经有定义“const char * const name="chen";”下面的语句中正确的是( D )。
A. name[3]='a';B. name="lin";C. name=new char[5];D. cout<<name[3];【2.8】假设已经有定义“char * const name="chen";”下面的语句中正确的是( C )。
面向对象程序设计答案
m_fReal += c.m_fReal;
m_fImag += c.m_fImag;
return *this;
}
Complex& operator-= (const Complex &c)
{
m_fReal -= c.m_fReal;
m_fImag -= c.m_fImag;
return *this;
在日常生活或者说日常编程中,简单的问题用面向过程的思路解决,更加直接有效,但是当问题的规模稍大时,如要描述三万个人吃饭的问题,或者要构建一个航空母舰模型的时候,用面向过程的思想是远远不够的。而且面向过程程序的代码复用性、可扩展性、可移植性、灵活性、健壮性都会在处理大规模问题中出现问题。
二、综合回答(每小题15分,共30分)
一、简答题(每小题6分,共30分)
1、面向过程思想的优点是什么?
与人类思维习惯一致;稳定性好:以object模拟实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定;可重用性好;可维护性好
2、比较Java和C++?
JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,从而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,摒弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。用C++可以使用纯过程化的编程,也可以是基于对象的编程,还可以是面向对象的编程,当然大部分是混合编程,c++可以跨平台
C++面向对象程序设计习题答案
《C++面向对象程序设计》习题答案(总29页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除《C++程序设计》习题解答目录第2部分习题解答................................................................................................... 错误!未定义书签。
第1章面向对象程序设计概述.................................. 错误!未定义书签。
第2章面向过程程序设计...................................... 错误!未定义书签。
第3章类和对象.............................................. 错误!未定义书签。
第4章继承与派生............................................ 错误!未定义书签。
第5章多态性与虚函数........................................ 错误!未定义书签。
第6章友元与静态成员........................................ 错误!未定义书签。
第7章运算符重载............................................ 错误!未定义书签。
第8章泛型编程.............................................. 错误!未定义书签。
第9章输入/输出............................................. 错误!未定义书签。
第10章异常处理............................................. 错误!未定义书签。
面向对象程序设计习题及答案
面向对象程序设计一、选择填空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) 87. 类型修饰符unsigned修饰(D)类型是错误的。
(A)char ( B) int (C) long int (D) float& 对于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 )是正确的。
c面向对象程序设计课后习题答案
c面向对象程序设计课后习题答案C面向对象程序设计课后习题答案在学习C面向对象程序设计课程的过程中,课后习题是巩固知识、提升能力的重要途径。
通过认真完成习题,我们可以更好地理解课程内容,掌握编程技巧,提高解决问题的能力。
下面我们将针对一些常见的C面向对象程序设计课后习题进行答案解析。
1. 请编写一个C++程序,实现一个简单的学生信息管理系统,包括学生姓名、学号、成绩等信息的录入、查询和修改功能。
答案解析:首先,我们需要定义一个学生类,包括姓名、学号、成绩等属性,并实现相应的方法来实现信息的录入、查询和修改功能。
然后在主函数中创建学生对象,调用相应的方法即可实现学生信息管理系统。
2. 编写一个C++程序,实现一个简单的图书管理系统,包括图书名称、作者、出版社等信息的录入、查询和删除功能。
答案解析:同样地,我们需要定义一个图书类,包括图书名称、作者、出版社等属性,并实现相应的方法来实现信息的录入、查询和删除功能。
在主函数中创建图书对象,调用相应的方法即可实现图书管理系统。
3. 设计一个C++程序,模拟实现一个简单的银行账户管理系统,包括账户余额、存款、取款等功能。
答案解析:在这个问题中,我们需要定义一个银行账户类,包括账户余额、存款、取款等属性,并实现相应的方法来实现账户管理系统。
在主函数中创建账户对象,调用相应的方法即可实现银行账户管理系统。
通过以上习题的解答,我们可以看到C面向对象程序设计的重要性和实际应用。
通过不断地练习和实践,我们可以更好地掌握面向对象程序设计的知识和技能,提高编程能力,为今后的工作和学习打下坚实的基础。
希望同学们能够认真对待课后习题,不断提升自己的编程水平。
《面向对象程序设计》答案
0837一、BCABB DDCBA二、1、答:程序运行的输出结果是:1 2 6 24 1202、3、问题(1):Test3是SuperTest的子类(或SuperTest是Test3的父类,或继承关系)。
问题(2):super指对象的父类(或超类);this指使用它的对象本身(或对对象自己的引用)。
问题(3):程序的输出是:<\ p="">Hi, I am OliveNice to meet you!Age is 7My age is 7My parent"s age is 35<\ p="">4、答:问题(1):new FileOutputStream(“out.txt”)dout.writeInt( ‘0’ + i);dout.close( );new FileInputStream(“out.txt”)din.readInt( )din.close( );问题(2):常被用于读取与存储(读写或输入/输出)基本数据类型的数据。
问题(3):文件out.txt的内容是:0 1 2 3 4 5 6 7 8 9程序在控制台窗口输出:0,1,2,3,4,5,6,7,8,9,三、import java.io.DataOutputStream;import java.io.FileOutputStream;import java.io.IOException;public class TestSort {public static int MAXSIZE = 61;public static void sortInt(int[] arr) { // 采用选择法对一维数组进行排序for (int i = 0; i < arr.length - 1; i++) {int k = i;for (int j = i + 1; j < arr.length; j++)if (arr[j] < arr[k])k = j; // 用k记录最小值的下标if (k > i) { // 在外循环中实施交换arr[i] = arr[i] + arr[k];arr[k] = arr[i] - arr[k];arr[i] = arr[i] - arr[k];}}}public static void main(String args[]) {int score[] = new int[MAXSIZE];try {for (int i = 0; i < MAXSIZE; i++)score[i] = (int) (Math.random() * 100 + 0.5);sortInt(score);DataOutputStream dout = new DataOutputStream(new FileOutputStream(\"score.txt\"));for (int i = 0; i < MAXSIZE; i++) {dout.writeInt(score[i]);System.out.println(score[i]);}dout.close();// 结果保存到文件} catch (IOException e) {System.err.println(\"发生异常:\" + e);e.printStackTrace();}// try-catch结构处理异常}}。
C-面向对象程序设计习题解答(全)Word版
《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]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
22春“计算机科学与技术”专业《面向对象程序设计》离线作业-满分答案10
22春“计算机科学与技术”专业《面向对象程序设计》离线作业-满分答案1. 设B类是A类的派生类。
当创建一个B类的对象时,构造函数的调用顺序是( )。
A.视定义时A类和B类出现的位置B.先调用B类的构造函数,然后调用A类的构造函数C.先调用A类的构造函数,然后调用B类的构造函数D.不调用A类的构造函数参考答案:C2. 将一个string类对象赋予新值,应该使用string类的( )函数。
将一个string类对象赋予新值,应该使用string类的( )函数。
A.assignB.insertC.swapD.find参考答案:A3. 一个算法必须能在有限步骤内解决问题。
( )一个算法必须能在有限步骤内解决问题。
( )A.正确B.错误参考答案:A4. 下列字符列中,可作为C++语言程序自定义标识符是( )。
A.switchB.fileC.breakD.do参考答案:B5. 所有的异常类皆继承哪一个类?( )A.java.io.Exceptionng.Throwableng.Exceptionng.Error参考答案:C6. 下列常见的系统定义的异常中,( )是输入、输出异常。
A.UnknownHostExceptionB.IOExceptionC.FileNotFoundExceptionD.ClassNotFoundException参考答案:B7. Give incompleted method: //one {if(unsafe( )){//do something …} elseif(safe( )){//doGive incompleted method://one{if(unsafe( )){//do something …}else if(safe( )){//do the other …}}The method unsafe( ) will throw an IOException, which completes the method of declaration when added at line one。
(0837)《面向对象程序设计》网上作业题及答案
(0837)《面向对象程序设计》网上作业题及答案1:[单选题]执行下列语句后,变量x的值是:()int x = 7, y = 10;switch (x / y) {case 0:x++;case 7:x *= y;case 14:x += y;break;default:x %= y;}A:8B:70C:80D:90参考答案:D2:[单选题]以下由for语句构成的循环的执行次数是:()for (int i=0; i<=0; i=i) ;A:有语法错,不能执行B:一次也不执行C:执行1次D:无限次参考答案:D3:[单选题]设有定义int i=7;char ch='b'; 下面赋值语句中不正确是:()A:i = ch;B:ch = i;C:ch = (char)i;D:i = (int)ch;参考答案:B4:[单选题]设有定义int i=80, j=7; double d=80.7;下列语句中正确的赋值语句是:()A:i = d;B:i = (int)d + j;C:j = (int)i - d;D:i + j = (int)d;参考答案:B5:[单选题]以下关于Java语言的叙述错误的是:()A:Java是最纯粹的面向对象语言,对面向对象方法学的支持也最全面B:Java是解释执行的语言,由Java解释器负责将Java源文件解释为机器码执行C:Java是平台无关的,即Java程序不用修改就可以在不同类型的计算机平台上运行D:Java提供了大量功能丰富的可重用类库,有效减少了编程的工作量参考答案:B6:[单选题]下列选项中,用于声明实现一个接口关键字是:()A:interfaceB:implementsC:importD:abstract参考答案:B7:[单选题]Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序“一次编写,到处运行”的特点:()A:多线程B:与平台无关C:面向对象D:分布式参考答案:B8:[单选题]下列不属于Java语言关键字的是:()A:repeatB:tryC:breakD:new参考答案:A9:[单选题]下列字符序列中可以作为Java语言标识符的是:()A:trueB:123_xyzC:x.yD:_x123参考答案:D10:[单选题]下列字符序列中不能作为Java语言标识符的是:()A:abc_123B:圆周率PIC:falseD:_123abc参考答案:C1:[单选题]下列语句序列给出了k,myArr和myMethod()的声明。
第三章 面向对象程序设计(答案)
学号:姓名:第三章面向对象程序设计作业一、判断题1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。
对2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。
对3、接口中的成员变量全部为常量,方法为抽象方法。
对4、抽象类可以有构造方法,可以直接实例化。
错5、对static方法的调用可以不需要类实例。
对6、包含抽象方法的类一定是抽象类。
对7、方法中的形参可以和方法所属类的属性同名。
对8、接口无构造器,不能有实例,也不能定义常量。
错9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。
对10、Java应用程序的入口main方法只有一种定义法。
对二、选择题1、下列答案正确的是(A)A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为publicB) 在同一个Java源文件中只能包含一个类,并被声明为publicC) 在同一个Java源文件中可以包含多个类,都可以被声明为publicD) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default2、Java实现动态多态性是通过(B)实现的。
A) 重载B) 覆盖C) 接口D) 抽象类3、下列哪一个是正确的方法重载描述(A)A) 重载方法的参数类型必须不同B) 重载方法的参数名称必须不同C) 返回值类型必须不同D) 修饰词必须不同4、final关键字不可以用来修饰(D)A) 类B) 成员方法C) 域D) 接口5、接口的所有成员方法都具有(B)属性A) private, final B) public, abstractC) static, protected D) static6、Java的封装性是通过(A)实现的A) 访问控制B) 设计内部类C) 静态域和静态方法D) 包7、下列接口或类不属于java.util.*包的是(D)A) Collection B)Vector C) MapD) Integer8、下述哪一组方法,是一个类中方法重载的正确写法?(A)A) int addValue( int a, int b ){return a+b;}float addValue ( float a, float b) {return a+b;}B) int addValue (int a, int b ){value=a+b; }float addValue ( int a, int b) {return (float)(a+b);}C) int addValue( int a, int b ){return a+1;}int addValue ( int a, int b) {return a+b;}D) int addValue( int a, int b ) {return a+b;}int addValue ( int x, int y ) {return x+y;}9、下列说法哪个是正确的?(C)A) 子类不能定义和父类同名同参数的方法B) 子类只能继承父类的方法,而不能重载C) 重载就是一个类中有多个同名但有不同形参和方法体的方法D) 子类只能覆盖父类的方法,而不能重载10、对于下列代码:public class Parent {public int addValue( int a, int b) {int s;s = a+b;return s;}}class Child extends Parent {}下述哪个方法不可以加入类Child? (B)A) public int addValue( int a, int b,int c ){// do something...}B) public void addV alue (int a, int b ){// do something...}C) public int addValue( int a ){// do something...}D) public int addValue( int a, int b ) {//do something...}11、以下程序段输出结果的是(B)public class A implements B {public static void main(String args[]) {int i;A c1 = new A();i= c1.k;System.out.println("i="+i);}}interface B {int k = 10;}A) i=0 B) i=10 C) 程序有编译错误D) i=true12、阅读下面的程序,输出结果是(B)public class TestDemo {int m=5;public void some(int x) {m=x;}public static void main(String args []) {new Demo().some(7);}}class Demo extends TestDemo {int m=8;public void some(int x) {super.some(x);System.out.println(m);}}A) 5 B) 8 C) 7 D) 编译错误13、下述哪个说法是不正确的?(A)A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法D) for语句中定义的变量,当for语句执行完时,该变量就消亡了14、下述那一个保留字不是类及类成员的访问控制符。
青书学堂面向对象程序设计网课答案
A、 类是一种用户自定义的数据类型 B、 只有类中的成员函数或类的友元函数才能存取类中的私有成员 C、 在类中,如果不做特别说明,所有成员的访问权限均为私有的 D、 在类中,如果不做特别说明,所有成员的访问权限均为公用的 学生答案: D 标准答案:D 解析:
得分: 2 38. (单选题) 已知 X 类,则当程序执行到语句:X array[3];时,调用了( )次构造函数。(本题 2.0 分)
A、 0 B、 1 C、 2 D、 3 学生答案: D 标准答案:D
解析: 得分: 2 39. (单选题) 下面说法中,正确的是( )(本题 2.0 分)
A、 一个类只能定义一个构造函数,但可以定义多个析构函数 B、 一个类只能定义一个析构函数,但可以定义多个构造函数 C、 构造函数与析构函数同名,只要名字前加了一个求反符号(~) D、 构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是 void 类型也 不可以 学生答案: B 标准答案:B 解析: 得分: 2 40. (单选题) 已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的。 (本题 2.0 分) A、 void print( )const; B、 const void print( ); C、 void const print( ); D、 void print(const); 学生答案: B 标准答案:B 解析: 得分: 2 41. (判断题) 使用关键字 class 定义的类中缺省的访问权限是私有(private)的 ( )(本题 2.0 分) A、 正确 B、 错误 学生答案: A 标准答案:A 解析: 得分: 2 42. (判断题) 作用域运算符( ::)只能用来限定成员函数所属的类。( )(本题 2.0 分) A、 正确 B、 错误 学生答案: B 标准答案:B 解析: 得分: 2 43. (判断题) 析构函数是一种函数体为空的成员函数。( )(本题 2.0 分) A、 正确 B、 错误 学生答案: B 标准答案:B 解析: 得分: 2
面向对象的程序设计作业及答案
1. Java中如果定义的类是从一个父类派生而来,那么父类的名字应写在()之后 CA. classB. superC. extendsD. implements满分:4 分2. Java计算模式结合了主机架构和客户端架构的特点,可用于()架构的计算,将程序放到服务器上,用户使用时从服务器上下载到客户端运行。
()A. 主机架构B. 客户端架构C. 客户-服务器架构D. 服务器架构满分:4 分3. 垃圾收集器在Java虚拟机运行时的空闲时,通过检查内存的()来完成内存释放的。
DA. 存储的数据大小B. 存储数据的重要性C. 在内存的高端还是低端D. 内存被引用的次数满分:4 分4. 下列哪个不是Java的正确标识符?()DA. a2B. aa2C. a2aD. 2aa满分:4 分5. JVM运行的代码一般存储在什么为扩展名的文件中?CA. javaB. jvmC. classD. obj满分:4 分6. 下列属于Runnable接口实现的函数是。
DA. publicRunnble(Thread t)B. public void start( )C. public void main( )D. public void run( )满分:4 分7. 错误提示内容:javac:Command not found,请判断是下列哪个方面出了问题?AA. 编译器的路径变量设置不正确B. 程序中有错误的语句C. 文件名和公有类名不匹配D. main方法缺少statci和public修饰满分:4 分8. java使用()关键字声明一个公有类。
CA. publicB. classC. public classD. Public Class满分:4 分9. 所有异常类的父类是()? AA. ExceptionB. IOExceptionC. ErrorD. Throwable满分:4 分10. Java中所有的类的共同的父类是()BA. objectB. ObjectC. FrameD. Main满分:4 分11. 编译后的Java程序不能在硬件系统的CPU上直接运行,而是通过()来执行的。
兰州大学_面向对象程序设计_离线作业
《面向对象程序设计》请阅读以下材料作答:程序可能按编程者的意愿终止,也可能因为程序中发生了错误而终止。
例如,程序执行时遇到除数为0或下标越界,这时将产生系统中断,从而导致正在执行的程序提前终止。
程序的错误有两种,一种是编译错误,即语法错误。
如果使用了错误的语法、函数、结构和类,程序就无法被生成运行代码。
另一种是在运行时发生的错误,它分为不可预料的逻辑错误和可以预料的运行异常。
在编写程序时,应该考虑确定程序可能出现的错误,然后加入处理错误的代码。
也就是说,在环境条件出现异常情况下,不会轻易出现死机和灾难性的后果,而应有正确合理的表现。
要求:1、阐述如何捕获异常。
2、阐述异常处理的基本思想有哪些。
3、阐述异常处理的机制。
4、没有统一答案,请勿抄袭。
答:1、阐述如何捕获异常捕获异常:检查异常与非检查异常检查异常对方法调用者来说属于必须处理的异常。
当一个应用系统定义了大量或者容易产生很多检查异常的方法调用程序中会有很多的异常处理代码。
如果一个异常是致命的且不可恢复并且对于捕获该异常的方法根本不知如何处理时或者捕获这类异常无任何益处,应该定义这类异常为非检查异常。
由顶层专门的异常处理程序处理像数据库连接错误、网络连接错误或者文件打不开等之类的异常一般均属于非检查异常。
这类异常一般与外部环境相关,一旦出现,基本无法有效地处理。
而对于一些具备可以回避异常或预料内可以恢复并存在相应的处理方法的异常可以定义该类异常为检查异常。
像一般由输入不合法数据引起的异常或者与业务相关的一些异常,基本上属于检查异常。
当出现这类异常,一般可以经过有效处理或通过重试可以恢复正常状态。
由于检查异常属于必须处理的异常,在存在大量的检查异常的程序中,意味着很多的异常处理代码。
另外,检查异常也导致破坏接口方法。
如果一个接口上的某个方法已被多处使用,当为这个方法添加一个检查异常时,导致所有调用此方法的代码都需要修改处理该异常。
当然,存在合适数量的检查异常,无疑是比较优雅的,有助于避免许多潜在的错误。
C++面向对象程序设计课后题答案
C++面向对象程序设计课后题答案面向对象程序设计课后题答案第二章C++概述【2.6】D 【2.7】D 【2.8】A 【2.9】A 【2.10】B 【2.11】A 【2.12】C 【2.13】B 【2.14】D 【2.15】C 【2.16】D 【2.17】C【2.18】程序的运行结果: 101【2.19】程序的运行结果: 10 10【2.20】程序的运行结果: 10 20【2.22】编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。
#include int main() { int *p,i; p=new int[20];1p[0]=1; p[1]=1; for(i=2;i<20;i++) { }for(i=0;i<20;i++) { } return 0; }【2.23】编写一个C++风格的程序,建立一个被称为sroot()的函数,返回其参数的二次方根。
重载sroot()3次,让它返回整数、长整数与双精度数的二次方根。
#include #include double sroot(int m) {return sqrt(m); }double sroot(long m) {return sqrt(m); }double sroot(double m) {return sqrt(m); } int main() {2cout<cout<【2.24】编写一个C++风格的程序,解决百钱问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法?#include int main() { int k=0;for(int i=0;i<=20;i++) { }cout<【2.25】编写一个C++风格的程序,输入两个整数,将它们按由小到大的顺序输出。
要求使用变量的引用。
void change(int &a,int &b) { int t=a; a=b;3for(int j=0;j<=50;j++) { }if(100-5*i-2*j>=0) { }k++;b=t; } int main() { int m,n;cout<>m>>n; if(m>n)change(m,n);cout<【2.26】编写一个C++风格的程序,用二分法求解f(x)==0的根。
面向对象程序设计作业参考答案
面向对象程序设计作业参考答案习题一5、分析下面程序运行的结果。
#using namespace std;int main(){cout<<”This”<<”is”;cout<<”a”<<”C++”;cout<<”program.”<<endl;< p="">return 0;}输出结果:ThisisaC++program.6、分析下面程序运行的结果。
#includeusing namespace std;int main(){int a,b,c;a = 10;b = 23;c = a + b;cout<<'a + b =";cout<<c;< p="">cout<<endl;< p="">return 0;}输出结果:a + b = 338、在你所用的C++系统上,输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。
修改后的程序如下:#includeusing namespace std;int main(){int a, b;a =b = 0;int c = a + b;cout<<”a + b =”<return 0;}9、输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。
修改后的程序如下:#includeusing namespace std;int add(int x,int y);int main(){int a = 0, b = 0;int c = add(a,b);cout<<" a + b ="<<c<<endl;< p="">return 0;}int add(int x,int y){int z = x + y;return z;}习题二1、请检查下面的程序,找出其中的错误(先不要上机,在纸面上作人工检查),并改正之。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙江大学远程教育学院《面向对象程序设计》课程作业答案第2章【】测试下面的注释(它在C++风格的单行注释中套入了类似于C的注释)是否有效。
name[3]='a'; B. name="lin";C. name=new char[5];D. cout<<name[3];【】假设已经有定义“char * const name="chen";”下面的语句中正确的是( A )。
A. name[3]='q';B. name="lin";C. name=new char[5];D. name=new char('q');【】假设已经有定义“const char * name="chen";”下面的语句中错误的是(A )。
A. name[3]='q';B. name="lin";C. name=new char[5];D. name=new char('q');【】重载函数在调用时选择的依据中,( B )是错误的。
A.函数名字 B.函数的返回类型C.参数个数 D.参数的类型【】在( A )情况下适宜采用内联函数。
A.函数代码小,频繁调用 B.函数代码多,频繁调用C.函数体含有递归语句 D. 函数体含有循环语句【】下列描述中,( C)是错误的。
A. 内联函数主要解决程序的运行效率问题B. 内联函数的定义必须出现在内联函数第一次被调用之前C. 内联函数中可以包括各种语句D. 对内联函数不可以进行异常接口声明【】在C++中,关于下列设置默认参数值的描述中,( B )是正确的。
A.不允许设置默认参数值B.在指定了默认值的参数右边,不能出现没有指定默认值的参数C.只能在函数的定义性声明中指定参数的默认值D. 设置默认参数值时,必须全部都设置【】下面的类型声明中正确是( D )。
A. int &a[4];B. int &*p;&&q; D. int i,*p=&i;【】下面有关重载函数的说法中正确的是(C )。
A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C. 重载函数必须有不同的形参列表D.重载函数名可以不同【】关于new运算符的下列描述中,( D )是错误的。
A,它可以用来动态创建对象和对象数组B. 使用它创建的对象或对象数组可以使用运算符delete删除C. 使用它创建对象时要调用构造函数D. 使用它创建对象数组时必须指定初始值【】关于delete运算符的下列描述中,(C )是错误的。
A.它必须用于new返回的指针B. 使用它删除对象时要调用析构函数C. 对一个指针可以使用多次该运算符D.指针名前只有一对方括号符号,不管所删除数组的维数【】写出下列程序的运行结果。
#include<iostream>using namespace std;int i=15;int main(){ int i;i=100;::i=i+1;cout<<::i<<endl;return 0;}答:101【】写出下列程序的运行结果。
#include<iostream>using namespace std;void f(int &m,int n){ int temp;temp=m;m=n;n=temp;}int main(){ int a=5,b=10;f(a,b);cout<<a<<" "<<b<<endl;return 0;}答:10 10【】分析下面程序的输出结果。
#include<iostream>using namespace std;int &f(int &i){ i+=10;return i;}int main(){ int k=0;int &m=f(k);cout<<k<<endl;m=20;cout<<k<<endl;return 0;}答:1020【】举例说明可以使用const替代#define以消除#define的不安全性。
答:例如#include <>#define A 2+4#define B A*3void main(){cout<<B<<endl;}上面程序的运行结果是14而不是18但很容易被认为是18。
用const替代#define就能得到正确结果从而消除了#define的不安全性。
#include <>const A=2+4;const B=A*3;void main(){cout<<B<<endl;}运行结果为18。
【】编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci 数列的前20项,并存储到动态分配的空间中。
#include<iostream>using namespace std;int main(){int i;int *p;p=new int[20];p[0]=0;p[1]=1;cout<<*p<<" "<<*(p+1)<<" ";for(i=2;i<20;i++){p[i]=p[i-2]+p[i-1];cout<<*(p+i)<<" ";}delete p;return 0;}【】编写一个C++风格的程序,建立一个被称为sroot()的函数,返回其参数的二次方根。
重载sroot()3次,让它返回整数、长整数与双精度数的二次方根(计算二次方根时,可以使用标准库函数sqrt())。
#include <>#include <>int sroot(int x){return(int)sqrt(x);}float sroot(float x){return(float)sqrt(x);}double sroot(double x){return (double)sqrt(x);}void main() 析构函数名与类名完全相同C. 析构函数不能指定返回类型D. 析构函数可以有一个或多个参数【】构造函数是在( B )时被执行的。
A.程序编译 B. 创建对象C. 创建类 D.程序装人内存【】在下面有关静态成员函数的描述中,正确的是( B )。
A.在静态成员函数中可以使用this指针B. 在建立对象前,就可以为静态数据成员赋值C. 静态成员函数在类外定义时,要用static前缀D. 静态成员函数只能在类外定义【】在下面有关友元函数的描述中,正确的说法是〔A )。
A.友元函数是独立于当前类的外部函数B. 一个友元函数不能同时定义为两个类的友元函数C. 友元函数必须在类的外部定义D. 在外部定义友元函数时,必须加关键字friend【】友元的作用之一是(A)。
A.提高程序的运行效率 B.加强类的封装性C. 实现数据的隐藏性D. 增加成员函数的种类【】以下程序运行的结果是( B )。
#include<iostream>using namespace std; class B{public:B(){}B(int i,int j){ x=i;y=j;}void printb(){cout<<x<<","<<y<<endl; }private:int x,y;};class A{public:A(){}A(int I,int j);void printa();private:B c;};A::A(int i,int j):c(i,j) {}void A::printa(){();}int main(){ A a(7,8);();return 0;}A.8,9 B. 7,8 C. 5,6 D. 9,10【】以下程序的运行结果是(A )。
#include<iostream>using namespace std;class A{public:void set(int i,int j){ x=i;y=j;}int get_y(){return y;}private:int x,y;};class box{public:void set(int l,int w,int s,int p){ length=1;width=w;(s,p);}int get_area(){return length*width;}private:int length,width;A label;};int main(){ box b;(4,6,1,20);cout<<()<<endl;return 0;}A.24 B. 4 C. 20 D. 6【】以下程序的运行结果是( B )。
#include<iostream>using namespace std;class Sample{public:Sample(int i,int j){ x=i;y=j;}void disp(){cout<<"disp1"<<endl;}void disp() const{cout<<"disp2"<<endl;}private:int x,y;};int main(){const Sample a(1,2);();return 0;}A. disp1 2 C. disp1 disp2 D. 程序编译出错【】以下程序的运行结果是( B )。
#include<iostream>using namespace std;class R{public:R(int r1,int r2){R1=r1;R2=r2;}void print();void print() const;private:int R1,R2;};void R::print(){cout<<R1<<","<<R2<<endl;}void R::print() const{cout<<R1<<","<<R2<<endl;}int main(){ R a(6,8);const R b(56,88);();return 0;}A. 6,8B. 56,88C. 0,0D. 8,6【】写出下面程序的运行结果。