面向对象程序设计作业(带答案)

合集下载

面向对象程序设计习题及答案

面向对象程序设计习题及答案

面向对象程序设计一、选择填空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)float8.对于 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)是正确的。

面向对象程序设计作业1

面向对象程序设计作业1

作业11. 程序输出有下面Account类的定义,写出(1)—(4)函数运行后的结果。

(1)写出执行下面函数后的输出结果Your answer:答案:account1 balance: $3550(2)写出执行下面函数后的输出结果答案:account1 balance: $0(3)写出执行下面函数后的输出结果答案:account1 balance: $2770adding $375 to account1 balance account1 balance: $3145(4)写出执行下面函数后的输出结果答案:account1 balance: $799adding $-114 to account1 balance account1 balance: $6852. 代码改错有下面类的定义GradeBook,修改(1)—(4)代码段中的错误(1)创建GradeBook类对象。

答案:GradeBook gradeBook( "Introduction to C++" );(2)给GradeBook对象的courseName数据赋值。

答案:gradeBook.setCourseName( "Advanced C++" );(3)用户输入课程名给变量course,并将其值赋给对象gradeBook的数据成员nourseName。

答案://第二行cin.getline()缺少参数,这里用getline(cin, inputName)更合适cout << "Please enter the course name:" << endl;//未改动getline( cin, inputName );gradeBook.setCourseName( inputName );(4)输出对象gradeBook当前的课程名答案:cout << "The grade book's course name is: " << gradeBook.getCourseName() << endl;。

面向对象程序设计-作业及其答案

面向对象程序设计-作业及其答案
C++版本:
C#版本:
Java版本:
三、求解长方体的体积及面积
验证:在主函数中实例化长方形,调用其面积和体积的行为。
C++版本:
C#版本:
Java版本:
四、张三使用计算器计算四则运算
提示:
A、计算器是对象,有属性:数字、运算符;
有行为:计算,得到结果
B、张三是对象,有属性:姓名
有行为:使用(计算器)
PS:假设销售额固定为5000
C++版本:
C#版本:
Java版本:
PS:
1、父类中定义printArea方法,分别在2个子类中定义printAr化后赋值给父类
C++版本:
C#版本:
Java版本:
七、某跨国集团人力资源部门需要编写一个程序用来计算工资(Calculate),其中基本工资为8000元/月,然后根据每个员工的工作情况实际结算不同的工资。初级员工是(Employee)实行定额工资8000元/月;中级员工(MiddleEmployee),他们的工资是基本工资+绩效(销售额(salesAmount)的5%);高级员工(HighEmployee)的基本工资则是基本工资+绩效(销售额(salesAmount)的10%)。
面向对象程序设计作业及其答案
一、定义类:Person,其拥有三个属性姓名(name)、年龄(age)、性别(sex);其拥有一个行为:eat()输出某某人在吃饭
验证:在主函数中实例化小明,调用其吃饭的行为。
答案
C++版本
C#版本:
Java版本:
二、求解圆的面积
验证:在主函数中实例化圆,调用其面积的行为。

(完整版)《面向对象程序设计》答案

(完整版)《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境一、实验目的1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。

2、掌握如何编辑、编译、连接和运行一个C++程序。

3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。

二、实验要求1、分析下列程序运行的结果。

程序一:#include <iostream.h>int add(int x,int y=8);void main(){ int x=4;cout<<add(x)<<",";cout<<add(x,add(add(x,add(x))))<<endl;}int add(int x,int y){ return x+y;}//12,28程序二:#include <iostream.h>void main(){ int *p,i;i=5;p=&i;i=*p+10;cout<<"i="<<i<<endl;}//i=15程序三:#include <iostream.h>void main(void){ int i=10;int &r=i;r++;cout<<"i="<<i<<", r="<<r<<'\n';i=88;cout<<"i="<<i<<", r="<<r<<'\n';}//i=11,r=11i=88,r=88程序四:#include <iostream.h>int f(int i){ static int k=1;for(;i>0;i--)k +=i;return k;}void main(){ int i;for(i=0;i<5;i++)cout<<f(i)<<" ";}// 1 2 5 11 21程序五:#include <iostream.h>void func();int n=1;void main(){ static int a;int b= -9;cout <<"a:"<<a<<" b:"<<b<<" n:" <<n<<endl;b+=4;func();cout <<"a:"<<a<<" b:"<<b<<" n:"<<n<<endl;n+=10;func();}void func(){ static int a=2; int b=5;a+=2;n+=12;b+=5;cout <<"a:" <<a<<" b:" <<b<<" n:" <<n <<endl;}// a:0 b:-9 n:1a:4 b:10 n:13a:0 b:-5 n:13a:6 b:10 n:35实验二C++对C的扩充一、实验目的1、了解在面向对象程序设计过程中C++对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)一、单选题(共50题,每题1分,共50分)1、下列关于JDK和JRE的说法中,错误的是()A、JDK是java开发核心组件,是用来编译解释java程序的核心组件B、JDK包括Java编译器、Java文档生成工具、Java打包工具等C、JRE是个单独的软件,所以安装JDK后,还需要单独安装JRED、JRE是java运行环境,用来支持java程序的运行正确答案:C2、下列File类的构造方法格式,错误的是()A、File(File parent)B、File(String pathname)C、File(String parent,String child)D、File(URI url)正确答案:A答案解析:A选项,正确的应该是File(File parent, String child)3、下列关于静态变量的描述中,错误的是()A、静态变量指的是被static修饰的变量B、静态变量是随着类的加载而加载C、静态变量可以被所有的实例对象共享D、静态变量同成员变量一样,都需要通过实例对象来调用正确答案:D答案解析:静态变量是通过“类名.变量名”“方式调用的。

4、下列对于Runtime的描述中,正确的是()A、每一个Java应用程序运行时都产生一个Runtime类实例B、Runtime实例可以将应用程序和运行环境相结合C、Runtime类有构造函数D、Runtime实例需要被创建后才可以通过getRuntime()方法获取正确答案:A答案解析:Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。

每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,可以通过getRuntime()方法获得一个Runtime实例。

5、下列关于LinkedList类的方法,不是从List接口中继承而来的是()A、toArray()B、pop()C、remove()D、isEmpty()正确答案:B答案解析:pop()方法表示移除并返回此列表的第一个元素,是LinkedList特有的方法。

《JAVA面向对象程序设计》练习题参考答案

《JAVA面向对象程序设计》练习题参考答案

《J A 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 () ;} }a) 0 b) 1 c) 2 d) 3二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。

2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。

3、设x = 2 ,则表达式( x + + )/3 的值是0 。

4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true和false。

《面向对象程序设计》答案

《面向对象程序设计》答案

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结构处理异常}}。

面向对象程序设计课程作业参考答案

面向对象程序设计课程作业参考答案

面向对象程序设计课程作业参考答案1.第1题下面程序的运行结果为( ) 以下是引用片段:#include<iostream.h> void main() { for(int a=0,x=0;!x&&a<=10;a++) { a++; }cout < < a ;}A.10B.11C.12D.0您的答案:C题目分数:3此题得分:3.02.第2题do语句能够改写为()语句。

A.复合B.ifC.switchD.while您的答案:D题目分数:3此题得分:3.03.第3题下面描述中,表达错误的是()A.公有继承时基类中的public成员在派生类中仍是public的B.公有继承是基类中的private成员在派生类中仍是private的C.公有继承时基类中的protected成员在派生类中仍是protected的D.私有继承时基类中的public成员在派生类中是private的您的答案:B题目分数:3此题得分:3.04.第4题下列关于模板的说法正确的是( )A.模板的实参在任何时候都可以省略B.类模板与模板类所指的是同一概念C.类模板的参数必须是虚拟类型的D.类模板中的成员函数全部都是模板函数您的答案:D题目分数:3此题得分:3.05.第5题下面程序的运行结果是( ) 以下是引用片段:#include<iostream.h> void main(){ int num=1; int &ref=num; ref=ref+2; cout < < num; num=num+3; cout< < num; }A.13B.16C.36D.33您的答案:C题目分数:3此题得分:3.06.第6题下列()的调用方式是引用调用。

A.形参和实参都是变量B.形参是指针,实参是地址值C.形参是引用,实参是变量D.形参是变量,实参是地址值您的答案:C题目分数:3此题得分:3.07.第7题下列虚基类的声明中正确的是()A.class virtual B: public AB.class B: virtual public AC.class B: public A virtualD.virtual class B: public A您的答案:B题目分数:3此题得分:3.08.第8题以下正确的说法是()。

面向对象程序设计课程作业及答案_百度文库资料

面向对象程序设计课程作业及答案_百度文库资料

《面向对象程序设计》课程作业及答案中央电大理工部计算机教研室作业1:是非题1. 头文件中一般存放着变量和常量的定义、函数的原型以及类的定义。

1. 错2. 程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。

4. 对填空题下面是一个求数组元素之和的程序。

主程序中定义并初始化了一个数组,然后计算该数组各元素的和,并输出结果。

函数sum计算数组元素之和。

填充程序中不完整的部分。

________A__________int sum(int [],int;void main({int ia[5] = {2,3,6,8,10};B ;sumOfArray = sum(ia,5;cout << "Sum of array:" << sumOfArray << endl;}int sum(int array[],int len{int iSum = 0;for(int i = 0; C ; DE ;return iSum;}答案:A #includeB int sumOfArray;C i < lenD i++E iSum += array[i]; 阅读理解题写出下列程序的运行结果://file1.cppstatic int i = 20;int x;static int g(int p{return i + p;}void f(int v{x=g(v;}//file2.cpp#includeextern int x;void f(int;void main({int i=5;f(i;cout << x;}回答以下问题:1. 程序的运行结果是什么样的?2. 为什么文件file2.cpp中要包含头文件?3. 在函数main(中是否可以直接调用函数g(?为什么?4. 如果把文件file1.cpp中的两个函数定义的位置换一下,程序是否正确?为什么?5. 文件file1.cpp和file2.cpp中的变量i的作用域分别是怎样的?在程序中直接标出两个变量各自的作用域。

(0837)《面向对象程序设计》网上作业题及答案

(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.类和对象的概念和关系是什么?对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。

一个对象由一组属性和对这组属性进行操作的一组服务组成,类是具有相同属性和服务的一组对象的集合。

类是对象的模板,对象是类的实例2.用UML表示交通工具Vehicle类及名为car1,car2及car3的三个Vehicle对象3.简述对象之间的消息传递机制是如何实现的?当程序运行时,我们使用类和由类生成的对象来完成任务。

而要命令类或对象执行某项任务,就需要给它发送一条消息(message)。

为了能够处理所接收到的消息,类或对象必须拥有相应的方法(method)。

一个方法就是一个指令序列,也就是一段程序代码,类似于C语言中的函数。

为类定义的方法称为类方法(class method),为对象定义的方法称为实例方法(instance method)。

类方法可以通过类直接调用,实例方法则必须先创建类的实例才能够调用。

4.import语句的用途是什么?Java程序是否总要包括import语句?import保留字用于引入其他包中的类。

Java如果使用的都是同一包的类的话则不需要import保留字。

5.什么是Java的源文件?什么是字节码文件?Java的源文件是以.java结尾的文本文件,字节码文件是将Java源文件经过Java编译器编译后的文件,字节码文件不能直接运行,只能运行于Java虚拟机之上。

6.Java虚拟机是什么?它有作用是什么?Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。

Java语言的一个非常重要的特点就是与平台的无关性。

而使用Java 虚拟机是实现这一特点的关键。

一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。

而引入Java 语言虚拟机后,Java 语言在不同平台上运行时不需要重新编译。

Java 语言使用模式Java 虚拟机屏蔽了与具体平台相关的信息,使得Java 语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

Java面向对象程序设计—习题和答案

Java面向对象程序设计—习题和答案
访问权限可分为4种:公共类型、私有类型、默认类型和保护类型
4.11
1.被继承的类一般称为___________或___________,继承的类称为___________。
2.在继承中发生的强制类型转换为___________。
3.设有下面两个类的定义:
class Person {}
class Student extends Person {
AWT是随早期Java一起发布的GUI工具包,是所有Java版本中都包含的基本GUI工具包,其中不仅提供了基本的控件,并且还提供了丰富的事件处理接口。Swing是继AWT之后Sun推出的又一款GUI工具包。Swing建立在AWT 1.1的,也就是说AWT是Swing大厦的基石
6.适配器是指实现了一个或多个监听接口的类,适配器类为所有的事件处理方法都提供了空实现。实际开发中在编写监听器代码时不再直接实现监听接口,而是继承适配器类并重写需要的事件处理方法,这样就避免了大量编写不必要代码的情况
}
则顺序执行如下语句后输出结果为:()
Father a;
Child b;
A、我是父类B、我是子类
我是子类我是父类
C、我是父类D、我是子类
我是父类我是子类
5.什么时覆盖,它有什么优点
6.this和super的作用是什么
7.什么是动态绑定
答案:
1.超类、父类、子类
2.引用类型转换
3.B
4.A
5.子类其自身的方法中,若与继承过来的方法具有相同的签名,便构成了方法的覆盖(有的资料称之为方法的重写)。覆盖的主要优点是能够定义各子类的特有行为
public static void main(String[] args) {
String s = "C://myFile/a/b/c/d/a.text";

第三章 面向对象程序设计(答案)

第三章 面向对象程序设计(答案)

学号:姓名:第三章面向对象程序设计作业一、判断题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、下述那一个保留字不是类及类成员的访问控制符。

面向对象的程序设计作业及答案

面向对象的程序设计作业及答案

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上直接运行,而是通过()来执行的。

java面向对象程序设计练习题(有答案)

java面向对象程序设计练习题(有答案)

满分:100 分姓名:班级:学号:1. 填空题 ( 5.0 分 )面向对象三大特征______ ______ ______正确答案:封装继承多态2. 填空题 ( 5.0 分 )使用static 修饰的变量称为静态变量,静态变量可以有两种访问方式,分别是对象名.静态变量名和______正确答案:类名.静态变量名3. 单选题 (4.0 分 )下面关于java 中类的说法哪个是不正确的A. 构造函数是类中的特殊方法B. 类一定要声明为public 的,才可以执行C. 在软件设计中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的属性(变量)和行为(方法)D. 一个java 文件中可以有多个class 定义(但只能有一个public 修饰的类)正确答案:B4. 单选题 ( 4.0 分 )关于类中可以包含的内容,如下说法错误的是()A. 类中可以包含属性和方法B. 类中可以直接包含代码块C. 类中可以嵌套定义类D. 类中不能包含其他类正确答案:D5. 单选题 ( 4.0 分 )构造方法是否可被重写和重载()A. 不能重写,可以重载B. 可以重写,不能重载C. 不能重写,不能重载D. 可以重写,可以重载正确答案:A6. 单选题 ( 4.0 分 )关于封装的好处,以下错误的是()A. 隐藏实现的细节B. 方便修改的实现C. 只能通过规定方法访问D. 实现代码复杂化正确答案:D7. 单选题 ( 4.0 分 )在Java 中,下面描述正确的是()A. 一个子类可以有多个父类,一个父类也可以有多个子类B. 一个子类可以有多个父类,但一个父类只可以有一个子类C. 一个子类只可以有一个父类,但一个父类可以有多个子类D. 以上说法都不对正确答案:C8. 单选题 ( 4.0 分 )Java 语言的类间的继承关系是A. 多重的B. 单继承C. 线程的D. 不能继承正确答案:B9. 单选题 ( 4.0 分 )以下关于this 和super 关键字的说法错误的是()A. this 关键字指向当前对象自身,super 关键字指向当前对象的直接父类B. 在main 方法中可以存在this 或者super 关键字,但不能同时存在。

面向对象程序设计作业参考答案

面向对象程序设计作业参考答案

面向对象程序设计作业参考答案习题一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、请检查下面的程序,找出其中的错误(先不要上机,在纸面上作人工检查),并改正之。

java面向对象程序设计习题答案

java面向对象程序设计习题答案

java面向对象程序设计习题答案Java面向对象程序设计习题答案习题一:定义一个类问题描述:定义一个名为`Person`的类,包含姓名(name)、年龄(age)和性别(gender)属性,以及构造方法和相应的getters和setters方法。

答案:```javapublic class Person {private String name;private int age;private String gender;public Person(String name, int age, String gender) { = name;this.age = age;this.gender = gender;}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 getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}}```习题二:继承与多态问题描述:创建一个名为`Student`的类,继承自`Person`类,并添加一个名为`studentId`的属性。

重写`toString()`方法,以显示学生的详细信息。

答案:```javapublic class Student extends Person {private String studentId;public Student(String name, int age, String gender, String studentId) {super(name, age, gender);this.studentId = studentId;}public String getStudentId() {return studentId;}public void setStudentId(String studentId) {this.studentId = studentId;}@Overridepublic String toString() {return "Student{" +"name='" + getName() + '\'' +", age=" + getAge() +", gender='" + getGender() + '\'' +", studentId='" + studentId + '\'' +'}';}}```习题三:封装与隐藏问题描述:创建一个名为`BankAccount`的类,包含账户ID (accountId)、账户余额(balance)和账户类型(accountType)。

2020秋西南大学[0837]面向对象程序设计作业答案

2020秋西南大学[0837]面向对象程序设计作业答案

【D】1、下列Java表达式,错误的是()A. long j = 8888;B. String str = String("bb");C. char c = 74;D. int k = new String("aa");解析:String类型转换成int类型应用Integer.praseInt("123")且字符必须为纯数字【B】2、下列合法的Java标识符是()A. E. +voidB. _blackC. -5D. 12class解析:JAVA标识符不能是数字、符号、特殊符号开头【B】3、关于constructor,下列描述正确的是()A. class中的constructor不可省略B. constructor在一个对象被new时执行C. 一个class只能定义一个constructorD. constructor必须与class同名,但方法不能与class同名解析:constructor(构造器) 构造函数,不定义的情况下在编译代码阶段会自动在当前类增加无参构造函数故A错误一个class(类)可以有多个构造函数,如有一个参数的有多个参数的或无参的都可以故A错误方法可以随意命名,只要不是java保留字故D错误【A】4、以下哪个方法用于定义线程的执行体?()A. F. run()B. main()C. start()D. init()解析:init初始化线程start就绪线程run运行线程main是主体函数【C】5、编译一个定义了两个类和三个方法的Java源文件,产生字节码文件的个数和扩展名是()A. 5个字节码文件,以".java"为扩展名B. 5个字节码文件,以".class"为扩展名C. 2个字节码文件,以".class"为扩展名D. 2个字节码文件,以".java"为扩展名解析:java字节码都是二进制,所以AB错误一个类生成一个字节码文件与方法无关方法是类的成员另外需要注意如果存在内部类有几个内部类则生成几个字节码文件【B】6、下列程序的执行结果是()public class Test {public static void main(String args[]) {try {return;}finally {System.out.println("Finally");}}}A. B. 程序无输出B. 程序输出"Finally"C. 因为缺少catch块,所以编译出错D. 代码可以通过编译,但执行时产生异常解析:无论try catch块执行到什么位置,在程序执行结束前会先执行finally块;故选B【D】7、设有两个类A和B,以下描述中表示B继承自A的是()A. class A implements BB. class A extends BC. class B implements AD. class B extends A解析:集成关键字为extends 故A C错误类1 extends 类2 类1:表示子类类2:表示父类固定搭配所以B错误【B】8、下列程序的运行结果是()import java.awt.*;public class Test extends Frame {public Test(){add(new Label("Hello"));add(new TextField("Hello"));add(new Button("Hello")); //第6行pack();setVisible(true);}public static void main(String[]args){new Test();}}A. 在第6行抛出一个IllegalArgumentException异常B. 显示一个窗口,仅包含一个按钮C. 出现一个空窗口D. 代码编译不通过解析:label是标签无作用button是按钮textField是文本框窗体中有内容C错误代码能正常执行D错误pack();没有抛出异常A错误【B】9、关于Java程序中要使用的一个变量,以下描述不正确的是()A. 在Java程序中要使用一个变量,必须先对其进行声明B. 局部变量在使用之前可以不初始化,系统使用默认的初始值C. 变量不可以在其作用域之外使用D. 变量声明语句可以在程序的任何地方,只要在变量使用前就可以解析:变量使用原则:1、声明变量例:String s;s即为声明的变量引用类型为String2、赋值变量s="bianliang"; 即为初始化【B】10、关于abstract(抽象),下列描述正确的是()A. 声明抽象方法,大括号{ }可有可无B. 声明抽象方法不可写出大括号{ }C. abstract修饰符可修饰字段、方法和类D. 抽象方法的body部分必须用一对大括号{ }包住解析:接口不能有具体内容,抽象方法可以【A】11、()修饰符所定义的方法必须被子类所覆盖。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

人工智能学院面向对象程序设计作业Java语言基础年级专业 2019级软件工程专业学号姓名成绩一、选择题1.下列标识符中,正确的是(C)。

A.class B. 123_rr C. _lei D. test&122.下列( D )的选项可以正确表示八进制8。

A.0x8 B. 0x10 C.08 D. 0103. 以下哪个是十进制数17对应的十六进制正确表示?( D )A. 017B. x11C. 0x17D. 0X114.在Java中,不属于整数类型的是( A )。

A.double B. long C. int D. byte5.在Java中,关于标识符的说明,不正确的是(D )。

A.严格区分大小写;B.长度不限;C.不能用关键字和保留字作为标识符;D.可以包含空格6.给出下面代码的输出结果。

( D )public class ByteAdd {public static void main(String args[ ]){byte a=10;byte b=100;byte c;c=a+b;System.out.println(a+"+"+b+"="+c);} }A.输出零B.输出 10+100=110C. 编译时正确,运行时将产生错误;D.编译时将产生错误;二、程序阅读题1. 对于以下程序,运行“java Abs”,将得到什么打印结果?public class Abs{static int a=0x11;static int b=0011;static int c='\u0011';static int d=011;public static void main(String args[]){ System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);}}179179类和对象年级专业 2019级软件工程专业学号姓名成绩一、选择题1. 为了在当前程序中使用ch4中的类,可以使用的语句是( A )。

A.import ch4.*;B.import ch4;C.package ch4.*;D.package ch4;2.下面说法正确的是( A )。

A.类是对象的抽象,对象是类的实例B.类是组成java程序的最小单位C.java语言支持多继承D.java一个程序中只能有一个public类3.构造方法何时被调用?( B )。

A.类定义时;B.创建对象时;C.调用对象方法时;D.使用对象变量时;4.定义一个类名为“HelloWorld.java”的类,并且该类可以被一个工程中的所有类访问,则该类的正确声明应为( D )。

A.private class HelloWorld extends ObjectB. private class HelloWorldC. class HelloWorld extends ObjectD. public class HelloWorld5.方法的重载指的是( A )。

A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同B.两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的方法名字不同,但形参的个数或类型相同D.两个以上的方法取相同的方法名,并且方法的返回类型相同。

6.关于java中异常处理的叙述,正确的是( D )A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的7.以下关于类的继承的叙述中,正确的是( D )A.子类能直接继承父类中所有的非私有属性,也可以通过接口继承父亲的私有属性B.子类只能继承父类的方法,不能继承父类的属性C.子类只能继承父类的属性,不能继承父类的方法D.子类不能继承父类的私有属性8.用于创建一个对象的关键字是( C )。

A.class B. abstract C. new D.extends9. 以下哪个main()方法的声明能够作为程序的入口方法?( B )A.public static void main( )B.public static void main(String[] string )C.static public void main(String args )D.static void main(String[] args )10. 以下哪个选项的说法是正确的?( B )A.构造函数不能被重载B.构造方法不能被覆盖C.一个构造函数可以返回一个私有的或一个对象的引用D.构造函数代码执行时是从当前的类层级到它的祖先类二、填空题1.如果允许对对象的成员变量直接进行操作,将会导致数据的错误、混乱或安全性问题。

因此,通常将成员变量设置为 private 权限进行保护,再设置一些 public 权限的方法来设置、获取成员变量的值。

2.类是一种抽象的数据类型,是一类事物经过抽象,所共有属性的集合,类主要包括两方面的内容,分别是成员变量和成员方法。

3.以下代码实现了方法的重载,其中第(16)行调用了第(2)行的方法,第(17)行调用了第(6)行的方法。

(1) class AddClass{(2) public int add(int i,int j){(3) System.out.print("数据相加:");(4) return i+j;(5) }(6) public double add(double i,double j){(7) System.out.print("浮点数相加:");(8) return i+j;(9) }(10)}(11)public class Sample_1(12){(13) public static void main(String[] args)(14) {(15) AddClass c=new AddClass();(16) System.out.println(c.add(1,2));(17) System.out.println(c.add(1,2.0));(18) }(19)}三、程序阅读题1.class Base {String s;Base () {System.out.println(this.s+" Parent "); }}public class Child extends Base {Child(String s) {this.s=s;System.out.println(this.s);}public static void main(String[] args) { Child child = new Child("Child");} }运行结果(提示:字符串对象为空时输出null):null ParentChildclass Fruit{ }class Apple extends Fruit{ }class HongFuShi extends Apple{ }class EatApple{public void show(Fruit f){System.out.println("调用具有Fruit参数的方法!") ; } public void show(Apple f){System.out.println("调用具有Apple参数的方法!") ; } }public class Sample_1{ public static void main(String[] args){ EatApple e=new EatApple();Fruit f=new Fruit();Apple a=new Apple();HongFuShi h=new HongFuShi();e.show(f);e.show(a);e.show(h);运行结果:调用具有Fruit参数的方法!调用具有Apple参数的方法!调用具有Apple参数的方法!四、程序设计题(根据图示给出相关的程序代码)1.(5分)private String name;private int age;private double salary;public teacher(String name, int age, double salary) { = name;this.age = age;this.salary = salary;}}类的继承和多态1年级专业 2019级软件工程专业学号姓名成绩一、选择题1.关于覆盖与重载描述正确的是( A )。

A.覆盖发生在父类与子类之间,而重载发生在同一个类中。

B.覆盖方法可以不同名,而重载方法必须同名。

C.final修饰的方法可以被覆盖,但不能被重载。

D.子类必须覆盖父类中的方法。

2. 方法protected int MethodOverride(int i){ return i; }的重写(或覆盖)方法是( D)。

A. public double MethodOverride(double d){return d; }B. private int MethodOverride(int i){return i;}C. protected double MehtodOverride(double d){}D. public int MethodOverride(int i){return i;}3.以下关于类的继承,说法不正确的是( B )A.子类继承了父类的所有成员, 并不意味着父类的所有变量、方法都可以在子类中直接使用。

B.Java不允许在子类定义与父类同名的变量。

C.子类继承父类时,可以根据需要,增加自己的变量和方法。

D.子类可以实现对父类中的方法的覆盖。

4.下列修饰符中,与访问控制无关的是( B )A.privateB.finalC.protectedD.public二、填空题1. 以下程序中,子类实现了父类中变量 x和y 的隐藏,(3)和(7)实现了方法的重写/覆盖,而(7)和(8)实现了方法的重载(1)public class Point{(2) public int x, y;(3)public String toString(){…}(4)}(5)public class Circle extends Point {(6) public int x, y ,radius;(7)public String toString(){…}(8)public String toString(int x, int y, int radius){…}(9) }2. 如果要访问父类的隐藏变量、覆盖方法可以使用super关键字,其引用方式为 super.变量名和 super.方法名。

相关文档
最新文档