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

合集下载

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】程序的运行结果:1020【2.22】编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。

#include <iostream.h>int main(){int *p,i;p[0]=1;p[1]=1;for(i=2;i<20;i++){p[i]=p[i-1]+p[i-2];}for(i=0;i<20;i++){cout<<p[i]<<endl;}return 0;}【2.23】编写一个C++风格的程序,建立一个被称为sroot()的函数,返回其参数的二次方根。

重载sroot()3次,让它返回整数、长整数与双精度数的二次方根。

#include <iostream.h>#include<math.h>double sroot(int m){return sqrt(m);}double sroot(long m){return sqrt(m);}double sroot(double m){return sqrt(m);}int main()cout<<"sroot(145)="<<sroot(145)<<endl;cout<<"sroot(123456)="<<sroot(123456)<<endl;cout<<"sroot(1.44)="<<sroot(1.44)<<endl;return 0;}【2.24】编写一个C++风格的程序,解决百钱问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法?#include <iostream.h>int main(){int k=0;for(int i=0;i<=20;i++){for(int j=0;j<=50;j++){if(100-5*i-2*j>=0){k++;}}}cout<<"将一元人民币兑换成1、2、5分的硬币,共有"<<k<<"种换法"<<endl;return 0;}【2.25】编写一个C++风格的程序,输入两个整数,将它们按由小到大的顺序输出。

面向对象程序设计课后答案(完整版)

面向对象程序设计课后答案(完整版)

第二章2-4#include <iostream>using namespace std;Add(int a,int b);int main(){int x,y,sum;cout<<"please input x and y:";cin>>x>>y;sum = add(x,y);cout <<x<<"+"<<y<<"="<<sum<<endl;}Add(int a,int b){return a+b;}2-5(1)this is a C++ program.(2)x=50.6 y=10 z=Ax=216.34 y=10 z=Ax=216.34 y=2 z=Ax=216.34 y=2 z=E(3)x y z500 1000 0500 1500 1500500 200 15002-6#include <iostream>using namespace std;int main(){int *p,*init;int countp=0;int countn=0;p = new int[20];init = p;for(int i=0;i<20;i++){cin>>*p;p++;}p = p-20;for( i=0;i<20;i++){if(*p>0) countp++;if(*p<0) countn++;cout<<*p<<" ";p++;}cout<<"正数有:"<<countp<<endl; cout<<"负数有:"<<countn<<endl;p = init;delete[] p;return 0;}2-7不做要求#include <iostream>//#include <string>using namespace std;void checkagescore(string name,int age) {if (name == "exit") throw name;if(age<0||age>50)throw age;int main(){string name;int age;for(int i=0 ;i<5 ;i++ ){cin.ignore ();getline(cin,name );cin>>age ;try{checkagescore(name,age);}catch( string){cout<<"exception :name is exit"<<endl;continue;}catch(int){cout<<"exception :age is not proper"<<endl;continue;}cout<<"name:"<<name<<" age :"<<age<<endl;}return 0;}第三章3-1(1)A (2)C (3)B (4)C (5)C(6)B (7)B (8)C (9)C3-7(1)main()函数中p1.age = 30;语句是错误的。

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

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

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

面向对象程序设计(山东联盟-山东青年政治学院)智慧树知到答案章节测试2023年

面向对象程序设计(山东联盟-山东青年政治学院)智慧树知到答案章节测试2023年

第一章测试1.下列关于JDK的说法中,错误的是?( )A:JDK是Java开发工具包的简称B:JDK包括Java编译器、Java文档生成工具、Java打包工具等C:JDK是整个Java的核心D:安装JDK后,还需要单独安装JRE答案:D2.下列关于classpath环境变量的说法中,哪一个是正确的?( )A:classpath配置一次后可永久使用B:查看当前classpath配置的命令是:classpathC:没有classpath环境变量就不能运行Java程序D:classpath环境变量可以让虚拟机找到class文件的目录答案:A3.Java属于以下哪种语言?()A:高级语言B:机器语言C:以上都不对D:汇编语言答案:A4.下列目录中,哪一个是用来存放JDK可执行程序的。

()A:jre目录B:lib目录C:bin目录D:db目录答案:C5.下列哪个是Java应用程序主类中正确的main方法?A:static void main (String args[ ])B:public static void Main (String args[])C:public void main (String args[ ])D:public static void main (String args[ ])答案:D6.如果jdk的安装路径为:c:jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项()A:c:jre;B:c:jdk bin;C:c:jre bin;D:c:jdk;答案:B7.下列目录中,哪一个是用来存放JDK核心源代码的?()A:include目录B:src目录C:jre目录D:lib目录答案:B8.JDK安装成功后,可以将bin目录的路径配置在环境变量path中。

()A:对B:错答案:A9.配置classpath环境变量的目的是为了可以查找到java文件。

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。

该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。

做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。

本文库还有其他网核及教学考一体化答案,敬请查看。

《面向对象程序设计》题库及答案一一、单项选择题(每小题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的值分别为( )。

Java语言程序设计(面向对象程序设计)

Java语言程序设计(面向对象程序设计)

1、下列关于类的描述中,错误的是()。

A.可以将所有类成员的访问权限都设为私有权限B.类可认为是一种高级数据类型C.类包含数据成员和函数成员D.用类所定义出的变量称为对象正确答案:A2、下列关于重用代码的描述中,错误的是()。

A.函数是重用算法代码的语法形式B.类是一种数据类型,因此只能重用数据代码C.结构体类型是重用数据代码的语法形式D.类是同时重用算法代码和数据代码的语法形式正确答案:B3、关于程序开发过程中的程序员角色,下列哪种描述是错误的?A.一个程序员可以使用其他程序员提供的代码,即代码使用者B.一个程序员可以既是代码提供者,同时又是代码使用者C.一个程序员不能既是代码提供者,同时又是代码使用者D.一个程序员可以为其他程序员提供代码,即代码提供者正确答案:C4、关于程序设计方法,下列哪种描述是错误的?A.结构化程序设计分解出的函数是一种算法零件B.程序设计方法是研究如何对大型程序设计任务进行分解的方法C.结构化程序设计分解出的结构体类型是一种数据零件D.面向对象程序设计分解出的类是一种数据零件5、下列哪种思想不属于面向对象程序设计?A.继承B.模块化C.抽象D.封装正确答案:B6、下列关于类的描述中,错误的是()。

A.可以用流程图来描述类的设计B.类是描述客观事物的数据模型C.类的数据成员也被称作属性D.类的函数成员也被称作方法正确答案:A7、按照面向对象程序设计的观点,下列关于对象描述中错误的是()。

A.客观世界中的事物被称作客观对象B.类是描述客观对象的数据模型C.程序中用类定义出的对象被称作内存对象D.同一个类所定义出的两个内存对象可以有不同的成员正确答案:D8、关于面向对象程序设计方法,下列哪种描述是错误的?A.面向对象程序设计方法所设计出的类代码不能重用B.面向对象程序设计方法更便于代码分类管理C.面向对象程序设计方法中的类是客观事物抽象后的数据模型D.面向对象程序设计方法是当今程序设计的主流方法9、假设编写一个教务管理系统,通过分析可抽象出若干个类,其中不应当包括下列哪个类?A.宿舍类B.教师类C.课程类D.学生类正确答案:A10、如果将客观世界中的钟表抽象成一个钟表类,其中不应当包含下列哪个成员?A.设置时间B.显示时间C.功率D.时、分、秒正确答案:C11、下列关于字段成员的描述中,错误的是()。

面向对象程序设计教程-答案

面向对象程序设计教程-答案

面向对象程序设计教程-答案(共19页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--面向对象程序设计教程(C++语言描述)题解与课程设计指导第1章面向对象程序设计概论一、名词解释抽象封装消息【问题解答】面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。

面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。

消息是面向对象程序设计用来描述对象之间通信的机制。

一个消息就是一个对象要求另一个对象实施某种操作的一个请求。

二、填空题(1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。

(2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。

(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。

(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。

(5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。

三、选择题(至少选一个,可以多选)(1)面向对象程序设计着重于( B )的设计。

A. 对象B. 类C. 算法D. 数据(2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做( C )。

A. 抽象B. 继承C. 封装D. 多态(3)在面向对象程序设计中,类通过( D )与外界发生关系。

A. 对象B. 类C. 消息D. 接口(4)面向对象程序设计中,对象与对象之间的通信机制是( C )。

A. 对象B. 类C. 消息D. 接口(5)关于C++与C语言的关系的描述中,( D )是错误的。

A. C语言是C++的一个子集B. C语言与C++是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的【结果分析】C语言是面向过程的。

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

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

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

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

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

面向对象程序设计模拟练习题(含答案)一、单选题(共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特有的方法。

面向对象程序设计(C++)智慧树知到答案章节测试2023年泰山学院

面向对象程序设计(C++)智慧树知到答案章节测试2023年泰山学院

第一章测试1.下列说法错误的是()。

A:每一个C++程序都必须有一个main函数B:一般编译系统给出的错误信息有两种,一种是错误,一种是警告C:“#include”,这是C++中的语句D:若一行中出现“//”,则从它开始到本行末尾的全部内容都作为注释答案:C2.若要建立良好的程序设计风格,下面描述正确的是()。

A:程序应简单、清晰、可读性好B:充分考虑程序的执行效率C:符号名的命名只要符合语法就可以D:必要的注释答案:ABD3.编写C++程序一般需经过的几个步骤依次是编辑、编译、连接、调试。

()A:错B:对答案:B4.C++对C语言进行了改进,不仅对C的功能进行了扩充,还增加了面向对象的机制。

()A:对B:错答案:A5.C++只在编译阶段给出错误信息,而在连接阶段不会。

()A:对B:错答案:B第二章测试1.作用域运算符的功能是()。

A:给出的范围B:标识某个成员属于哪一个类C:标识作用域的级别D:指出的大小答案:B2.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为()。

A:publicB:staticC:protected答案:A3.下面关于类的描述中错误的是()。

A:类是具有共同行为的若干对象的统一描述体B:类是抽象数据类型的实现C:类数据成员必须声明为私有D:类是创建对象的样板答案:C4.在C++的面向对象程序设计中,类与类之间的独立性是通过封装实现的。

()A:对B:错答案:A5.如果class类中的所有成员在定义时都没有使用关键字pubilc,private和protected,则所有成员缺省定义为public。

()A:对B:错答案:B第三章测试1.()的功能是对对象进行初始化。

A:构造函数B:析构函数C:数据成员D:静态成员函数答案:A2.下面对构造函数和析构函数的写法形式上正确的是()。

A:max::max (参数), max::~ max (参数)B:max::max (参数), max::~ max ()C:void max:: max (参数), void max::~ max (参数)D:void max::max(), void max::~ max ()答案:B3.假设getData()函数是一个类的常成员函数,且没有返回值,则应表示为()。

面向对象程序设计考试模拟题(附参考答案)

面向对象程序设计考试模拟题(附参考答案)

面向对象程序设计考试模拟题(附参考答案)一、单选题(共10题,每题1分,共10分)1、下面关于javac命令作用的描述中,正确的是()。

A、可以执行java程序B、可以将编写好的Java文件编译成.class文件C、可以把文件压缩D、可以把数据打包正确答案:B答案解析:javac命令将java文件编译成java字节码文件。

2、下列关于构造方法的描述,错误的是()A、在构造方法中不能使用return语句返回一个值,但是可以单独使用return作为方法的结束B、一个类中只能定义一个空参数的构造方法C、构造方法的方法名前面没有返回值类型的声明D、一个类中可以定义多个构造方法正确答案:B3、以下关于成员属性与成员方法的描述中,错误的是()A、成员属性我们也叫成员变量,它就是描述对象的特征。

它可以定义在类中,也可以定义在方法中B、成员方法用于描述对象的行为C、在类中定义的变量,我们称为成员变量D、在类中定义的方法,我们称变成员方法正确答案:A答案解析:类中可以定义成员变量和成员方法,其中成员变量用于描述对象的特征,也被称作属性,成员方法用于描述对象的行为,可简称为方法。

定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。

4、FileWriter类的write(int c)方法的作用是()A、写出单个字符B、写入多个C、写入一个整形数据D、写入单个字符正确答案:D答案解析:write(int c)方法用于写入单个字符。

5、下列关于集合的描述中,哪一个是错误的()A、集合按照存储结构可以分为单列集合Collection和双列集合Map。

B、List集合的特点是元素有序、元素可重复。

C、Set集合的特点是元素无序并且不可重复。

D、集合存储的对象必须是基本数据类型。

正确答案:D答案解析:集合可以存储多种数据类型的数据,包括引用数据类型。

6、下列关键字中,哪个不能修饰接口中的成员变量?()A、publicB、staticC、finalD、private正确答案:D答案解析:接口中的成员变量其实是一个常量,用public static final 修饰,所以,用private修饰是错误的。

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

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

一、判断题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) V ector C) Map D) Integer8、下述哪一组方法,是一个类中方法重载的正确写法?(A)A) int addV alue( int a, int b ){return a+b;}float addV alue ( float a, float b) {return a+b;}B) int addV alue (int a, int b ){value=a+b; }float addV alue ( int a, int b) {return (float)(a+b);}C) int addV alue( int a, int b ){return a+1;}int addV alue ( int a, int b) {return a+b;}D) int addV alue( int a, int b ) {return a+b;}int addV alue ( int x, int y ) {return x+y;}9、下列说法哪个是正确的?( C )A) 子类不能定义和父类同名同参数的方法B) 子类只能继承父类的方法,而不能重载C) 重载就是一个类中有多个同名但有不同形参和方法体的方法D) 子类只能覆盖父类的方法,而不能重载10、对于下列代码:public class Parent {public int addV alue( int a, int b) {int s;s = a+b;return s;}}class Child extends Parent {}下述哪个方法不可以加入类Child? ( B )A) public int addV alue( int a, int b,int c ){// do something...}B) public void addV alue (int a, int b ){// do something...}C) public int addV alue( int a ){// do something...}D) public int addV alue( 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、下述那一个保留字不是类及类成员的访问控制符。

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. 一个设计得好的面向对象系统具有(B)特征。

A 低内聚、低耦合B 高内聚、低耦合C 高内聚、高耦合D 低内聚、高耦合2. 面向对象程序设计的特点主要概括为(C)。

A 可分解性、可组合性、可分类性B 继承性、封装性、多态性C 抽象封装性、继承性、多态性D 封装性、易维护性、可扩展性、可重用性3. 关于C#程序的书写,下列不正确的说法是( D )。

A. 区分大小写B. 一行可以写多条语句C. 一条语句可写成多行D. 一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法4. 关于C#语言的基本语法,下列哪些说法正确的是(C)A. C#语言使用using 来引用需要用到的命名空间;B. 用C#编写的程序中,Main 函数是唯一允许的全局函数;C. C#语言中使用的名称严格区分大小写;D. C#中一条语句必须写在一行内;5 以下标识符中,正确的是(A)。

A._nNameB. typeofC. 6bD. x5#6.字符串连接运算符包括&和(A)。

A. +B. -C. *D. /7.拆箱是关于:(B)A、值类型到引用类型的转换B、引用类型到值类型的转换C、引用类型到引用类型的转换D、值类型到值类型的转换8.装箱是关于:(A)A、值类型到引用类型的转换B、引用类型到值类型的转换C、引用类型到引用类型的转换D、值类型到值类型的转换9.下列引用类型和值类型描述正确的是(A)。

A. 引用类型变量保存内存地址,值类型直接保存变量值B. 引用类型在变量中直接保存变量值,值类型保存内存地址C. 引用类型和值类型保存数据的方式相同D. .NET Framework不支持值类型,因为所有的类型都是引用类型了10.一个类中的静态方法的调用可以:(A)A、通过类名调用B、通过实例化的对象调用C、在主方法中直接调用D、在同一个类中的某一方法中直接调用11.以下数据类型中,属于引用类型的是:(A)A、string类型B、double类型C、int类型D、 char类型12.下列类型中为值类型的是(C)A. 字符串类型B. 树组类型C. 枚举类型D. 接口类型13.decimal类型和浮点类型都可以表示小数,正确说法:(C)A. 两者没有任何区别B. 小数类型比浮点类型取值范围大C.小数类型比浮点类型精度高D. 小数类型比浮点类型精度低14. 有定义语句:int [,]a=new int[5,6]; 则下列正确的数组元素的引用是(C)。

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

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

面向对象程序设计试题及答案一、试题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. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。

面向对象程序设计复习试题(答案)

面向对象程序设计复习试题(答案)

语法扩充选择题在C++中用( D )能够实现将参数值带回。

a)数组 b)指针 c)引用 d)上述ABC都可考虑函数原型void test(int a,int b=7,char *ch="*"),下面的函数调用中,属于不合法调用的是:( C )A)test(5) B)test(5,8) C)test(6,"#")D)test(0,0,"*");已知: int m=10;下列表示引用的方法中,正确的是:( C )A)int &Z; B)int &t=10; C)int &X=m; D)float &f=&m;下列不是函数重载所要求的条件是:( D )A)函数名相同 B)参数个数不同C)参数类型不同 D)函数返回值类型不同在C++中执行以下4条语句后输出rad值为:( C )static int hot=200;int &rad=hot;hot=hot+100;cout<<rad<<endl;A) 0 B) 100 C) 300 D) 200系统在调用重载函数时,不能作为确定哪个重载函数被调用的依据是:( D )A)参数个数 B)参数类型 C)函数名称 D)函数的返回值类型对C++语言和C语言的兼容性,描述正确的是:( A )A)C++兼容C B)C++部分兼容C C)C++不兼容C D)C兼容C++在C++中使用流进行输入输出,其中用于屏幕输出的对象是:( C )A)cerr B)cin C)cout D)cfile对使用关键字new所开辟的动态存储空间,释放时必须使用( C )A)free B)create C)delete D)realse在函数调用时,如某一默认参数要指明一个特定值,则有( A )A)其之前所有参数都必须赋值 B)其之后所有参数都必须赋值C)其前、后所有参数都必须赋值 D)其前、后所有参数都不必赋值下列哪个类型函数不适合声明为内联函数( A )A)函数体语句较多 B)函数体语句较少C)函数执行时间较短 D)函数执行时间过长int Func(int,int);不可与下列哪个函数构成重载( B )A)int Func(int,int,int); B)double Func(int,int);C)double Func(double,double); D)double Func(int,double);下面的哪个保留字不能作为函数的返回类型( C )A)void B)int C)new D)long一个函数功能不太复杂,但要求被频繁调用,选用( A )。

C++面向对象程序设计课后答案(谭浩强)

C++面向对象程序设计课后答案(谭浩强)

C++面向对象程序设计课后答案(1-4章)第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。

这种范型的主要特征是:程序=对象+消息。

面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。

第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。

面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。

这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。

[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。

对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。

类和对象之间的关系是抽象和具体的关系。

类是多个对象进行综合抽象的结果,一个对象是类的一个实例。

在面向对象程序设计中,总是先声明类,再由类生成对象。

类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。

[1_3]现实世界中的对象有哪些特征?请举例说明。

对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。

(2)需要用属性来描述它的某些特性。

(3)有一组操作,每一个操作决定了对象的一种行为。

(4)对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。

例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:1966.10.1 工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。

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

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

实验一熟悉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功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。

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

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

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

学号:姓名:第三章面向对象程序设计作业一、判断题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、下列接口或类不属于.*包的是( D )A) Collection B)Vector C) Map D) 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 ){.}B) public void addValue (int a, int b ){.}C) public int addValue( int a ){.}D) public int addValue( int a, int b ) {.}11、以下程序段输出结果的是( B )public class A implements B {public static void main(String args[]) {int i;A c1 = new A();i= ;"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) {(x);}}A) 5 B) 8 C) 7 D) 编译错误13、下述哪个说法是不正确的( A )A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法D) for语句中定义的变量,当for语句执行完时,该变量就消亡了14、下述那一个保留字不是类及类成员的访问控制符。

(C )A) public B) privateC) static D) protected15、假设有个类已经定义了下述的实例变量:int num1=10;int num2=20;String word = new String(“exam”);double answer=;另外定义了下列方法头:public int stuff(String s, int x, int y)以下哪个选择是正确的方法调用( A )A)num1=stuff(“hello”,num1,num1);B)answer=stuff(word,answer,num2);C)num2=stuff(“hello”,num1,answer);D)num1=stuff(num1,num2,word);16、下哪一项不是构造方法的特点:( C )A 构造方法名必须与类名相同;B 构造方法不具有任何返回类型;C 任何一个类都含有构造方法;D 构造方法修饰词只能是public。

17、定义类B和类C如下,并将其保存为:文件,得到的结果是( B ) class B{int b;B(int i){b=i;}}class C extends B{double c=;}A)代码能够成功编译运行B)代码无法编译因为类B不是一个应用程序或小程序C)代码无法编译,因为类B没有定义不带参数的构造方法D)代码无法编译,因为类B没有定义一个不带参数的构造方法18、设已声明了一个类A的两个对象a1,a2,为了初始化a1和a2,下面语句正确的是( D )A)a1,a2=new A(); B)a1=();a2=();C)a1=new();a2=new(); D)a1=new A();a2=new A();19、下列选项中,用于在定义包时声明包名的关键字是。

( B )A) import B) package C) interface D) protected20、下面关于继承的哪些叙述是正确的( A )A) 在java中只允许单一继承。

B) 在java中一个类只能实现一个接口。

C) 在java中一个类不能同时继承一个类和实现一个接口。

D) java的单一继承使代码更可靠。

21、定义一个类名为""的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:( D )A) private class MyClass extends Object B) class MyClass extends ObjectC) public class MyClass D) public class MyClass extends Object22、指出下列哪个方法与方法public void add(int a){}为合理的重载方法。

( D )A) public int add(int a) B) public long add(long a)C) public void add(int a,int b) D) public void add(float a)23、类Line的定义class Line{private int a,b;public Line (int x,int y){=x;=y;}}其中的this代表( C )A) 类名Line B) 父类的对象C) Line类的当前对象D) this指针24、在Java语言中,类Cat是类Animal的子类,Cat的构造方法中有一句“super()”,该语句表达了什么概念( C )A) 调用类Cat中定义的super()方法B) 调用类Animal中定义的super()方法C) 调用类Animal的构造方法D) 语法错误25、某类的成员方法只能被自己调用,声明该函数恰当修饰符是( C )A) public B) protectedC) private D) 无修饰符26、下面关于变量及其范围的陈述哪些是对的( C )A) 实例变量是类的成员变量。

B) 实例变量用关键字static声明。

C) 在方法中定义的局部变量在该方法被执行时创建。

D) 局部变量在使用前必须被初始化。

27、在java中,哪一个关键字使类不能派生出子类。

( A )A) final B) publicC) private D) volatile28、下列整型的最终属性i 的定义中,正确的是(C )A) final i; B) static int i;C) static final int i=234; D) final float i=3.14f;三、程序阅读题1、阅读下面的程序,程序保存为:1)public class Test2){3)short mValue;4)public static void main(String[] args)5){6)int a = 32;7)int b = 56;8)Test os = new Test(a+b);9)( );10)}11)protected Test(short aValue) { mValue = aValue; }12)public void Show( ) { }13)}上面的程序编译是否成功如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么第8行出错,原因是该类缺少一个具有一个整形形参的构造函数。

相关文档
最新文档