《面向对象程序设计》习题四答案
国家开放大学《面向对象程序设计(本)》形考任务1-4参考答案

国家开放大学《面向对象程序设计(本)》形考任务1-4参考答案形考任务1一、单项选择题(每题1分,共20分)1.Java是一门()语言。
a. 汇编b. 面向对象的高级c. 面向过程的高级d. 机器2.机器语言中的指令编码为()编码。
a. 符号b. 数字c. 十进制d. 二进制3.更接近人类自然语言的计算机语言是()语言。
a. 高级b. 机器c. 数字d. 汇编4.对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。
a. 重量b. 颜色c. 状态d. 动态5.类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。
a. 成分b. 元素c. 产品d. 实例6.Java语言的主要特点不包括()。
a. 可移植性b. 处理文件c. 面向对象d. 自动垃圾回收7.Java语言的主要特点不包括()。
a. 解释执行b. 处理字符串c. 多线程d. 安全性8.具有相同属性和服务的一组对象的模板称为()。
a. 代码b. 概念c. 类d. 程序9.把对象的属性和服务组合成一个独立的整体,尽可能隐蔽其内部的细节,这称为对象的()。
a. 继承性b. 封装性c. 开放性d. 多态性10.使用JDK编译Java程序时使用的命令是()。
a. javadocb. javacc. appletviewerd. java11.组成Java程序的最小单位是()。
a. 方法b. 常量d. 类12.在Java程序中包含主方法的类被称为主类,主方法名为()。
a. voidb. mainc. Maind. args13.在Java程序中包含主方法的类被称为主类,主方法的访问控制修饰符为()。
a. privateb. staticc. publicd. protected14.在Java程序中包含主方法的类被称为主类,主方法的存储控制属性应定义为()。
a. staticb. shortc. finald. abstract15.Java语言中的基本数据类型有9种,其中属于数值型的数据类型有()种。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案4

《面向对象程序设计JA V A语言程序设计》期末考试试题及部分答案1一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。
1.下列语句序列执行后,k 的值是( B )。
int m=3, n=6, k=0;while( (m++) < ( -- n) ) ++k;A) 0 B) 1 C) 2 D) 32.设i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( B )。
A) i = i + 2 B) a[0] = 7;C) i++ - --j; D) a(0) = 66;3.Java语言的类间的继承关系是( B )。
A) 多重的B) 单重的C) 线程的D) 不能继承4.设有定义int i = 6 ;,则执行以下语句后,i 的值为( C )。
i += i - 1;A) 10 B) 121 C) 11 D) 1005.下列选项中,用于在定义子类时声明父类名的关键字是( C )。
A)interface B) package C) extends D) class6.若已定义byte[ ] x= {11,22,33,-66} ;其中0≤k≤3,则对x数组元素错误的引用是( C )。
A) x[5-3] B) x[k] C) x[k+5] D) x[0]7.下列语句序列执行后,ch1 的值是( B )。
char ch1='A',ch2='W';if(ch1 + 2 < ch2 ) ++ch1;A) ‘A' B) ‘B' C) ‘C' D) B8.下列语句序列执行后,i 的值是( D )。
int i=8, j=16;if( i-1 > j ) i--; else j--;A) 15 B) 16 C) 7 D) 89.下列语句序列执行后,k 的值是( C )。
软件工程专业《面向对象技术》课程的课后作业参考答案(第4部分)

}
public void run(){ //结束条件设定为,当卡内资金大于 100 元时,线程 OVER while(this.mycard.getMoney()<=100){ AddSystem.addMoney(this.mycard); } System.out.println("资金大于 100 元,该线程 OVER"); System.out.println("");
}
public void addMoney(float addmoney){
money=money+addmoney;
//金额累加:
System.out.println("充值完毕,增加了"+addmoney+"元钱lass Student extends Thread{
money=0; id=0; name="No"; }
Card(int id, String name){ money=0;
this.id=id;
=name; }
public float getMoney(){
return money; }
public void dispInformation() { System.out.println("该一卡通考号为:"+id+"号");
}
public void dispInformation() { System.out.println("******************************"); System.out.println("该学生的基本信息如下:"); System.out.println("姓名-------:"+name);
面向对象程序设计C++答案4

第3章函数和函数模板习题答案教材:C++程序设计[2008年版]--4737作者:刘振安出版社:机械工业出版社一、填空题1. 函数abc的原型说明,即函数abc具有double和char两个参数,返回值的类型为double2. inline3. 传值和传引用4. 函数func具有char和int两个参数,返回值的类型为char&5. char* fun(char,int&);二、单项选择题1-3 ACC//三、改错题//说明:程序中的注释是题目的参考答案//1.下面程序错在何处?template<class T>T fun(T x){T y;y=x*x-T;//error T是虚拟参数类型,不能做算术运算return y;}//2.找出下面程序中的错误并改正之。
#include<iostream.h>template<class Type>Type max(T x,y)//error 可改为:Type max(Type x,Type y){ return (x>y)?(x):(y); }//3.找出下面程序中的错误并改正之。
void change(const string&s)//error1:可改为:void change(string&s){ s=s+"pig!";}}//error2:去掉这个多余的“}”void main(){string str(" it is a ");change(str);}//说明:错误在const修饰形参s,含义是该函数只能使用形参得到的值,而不能改变形参的值,//但结合下一条语句看,函数体中改变了对象s的值,故将函数头改为:void change(string&s)//另外,如果读者要上机调试的话,程序还应包含iostream和string两个头文件//1、编写一个求方程ax 2+bx+c=0的根的程序,用3个函数分别求当b2-4ac 大于0、等于0和小于0时的方程的根。
(完整版)《面向对象程序设计》答案

实验一熟悉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功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。
Java面向对象程序设计_习题解答(耿祥义)

书后习题参考答案习题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面向对象程序设计课后习题参考答案

public class San_4 {// 编写一个应用程序求1!+2!+ (20)/*** @param args//本题考查对循环的运用和对算法的编写*/public static void main(String[] args) {// TODO Auto-generated method stubint a;double b = 1, sum = 0;// 定义变量for (a = 1; a <= 20; a++) {// for循环实现该功能b = b * a;// 当a=1时,b=b*a=1,依此类推sum = sum + b;// 当a=1时,sum=sum+b=1,依次类推}for (int w = 1; w <= 19; w++) {// for循环打印出阶乘之和的形式来System.out.print(w + "!" + "+");}System.out.println("20!" + "=" + sum);// 最终输出阶乘之和double sum1 = 0, a1 = 1;int i = 1;while (i <= 20)// 用while循环实现该功能{sum1 = sum1 + a1;i++;a1 = a1 * i;}System.out.println("sum1=" + sum1);}}输出结果:1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+19!+20!=2.18203E18sum1=2.18203E18习题3_5public class San_5 {// 求100以内的素数/*** @param args//本题考查对for循环、break语句、if语句的运用*/public static void main(String[] args) {// TODO Auto-generated method stubint i, j;for (i = 2; i <= 100; i++) {// for循环从2开始,逐渐增1for (j = 2; j <= i / 2; j++) {// for循环从2开始,逐步增1if (i % j == 0) {// 如果i除以j的余数为0,则终止本次for循环break;}}if (j > i / 2) {// 如果j>i/2,输出iSystem.out.print(" " + i);}}}}2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 8389 97习题3_6public class San_6 {// 分别用while和for循环计算1+1/2!+1/3!+1/4!...的前20项和/*** @param args//本题考查同学们对while循环、for循环以及对输出字符串格式的运用 */public static void main(String[] args) {// TODO Auto-generated method stubint i = 1, k;double j = 1, m = 1, sum1 = 0, sum2 = 0;while (i <= 20) {// 用while循环实现sum1 = sum1 + j;i++;j = j * (1.0 / i);}System.out.print("1+");for (int r = 2; r <= 19; r++) {System.out.print("1/" + r + "!" + "+");}System.out.print("1/20!" + "=" + sum1);System.out.println();System.out.print("1+");for (int r = 2; r <= 19; r++) {System.out.print("1/" + r + "!" + "+");}for (k = 1; k <= 20; k++) {// 用for循环实现m *= (1.0 / k);sum2 += m;}System.out.println("1/20!" + "=" + sum2);}}计算结果:1+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.904551+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.90455习题3_7public class San_7 {// 一个数如果恰好等于它的因子之和,这个数就成为”完数“。
面向对象程序设计形成性考核及解答作业四

2011春面向对象程序设计单元复习指导(4)一、填空题:1. 设px是指向一个类对象的指针变量,则执行“delete px;”语句时,将自动调用该类的( )。
A. 无参构造函数B. 带参构造函数C. 析构函数D. 拷贝构造函数2. 假定AB为一个类,则执行“AB a[10];”语句时调用该类无参构造函数的次数为( )。
A. 0B. 1C. 9D. 103. 假定AB为一个类,则执行“AB a(2), b[3], *p[4];”语句时共调用该类构造函数的次数为( )。
A. 3B. 4C. 5D. 94. 假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为( )。
A. 0B. 1C. nD. n+15. 对类中引用成员的初始化是通过构造函数中给出的( )实现的。
A. 函数体B. 参数表C. 初始化表D. 初始化表或函数体6. 一个类的静态数据成员所表示属性 ( )。
A. 是类的或对象的属性B. 只是对象的属性C. 只是类的属性D. 类和友元的属性7. 被非静态成员函数访问的类的数据成员( )。
A. 可以是非静态数据成员或静态数据成员B. 不可能是类的静态数据成员C. 只能是类的非静态数据成员D. 只能是类的静态数据成员8. 引入友元的主要目的是为了()。
A. 增强数据安全性B. 提高程序的可靠性C. 提高程序的效率和灵活性D. 保证类的封装性9. 在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是()。
A. 作为友元函数重载的1元运算符B. 作为成员函数重载的1元运算符C. 作为友元函数重载的2元运算符D. 作为成员函数重载的2元运算符10. 如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()。
A. a.operator+(b)B. b.operator+(a)C. operator+(a,b)D. operator(a+b)11.如果表达式a++中的“++”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{cout<<n1<<k1<<endl;cout<<n2<<k2<<endl; cout<<n3<<k3<<endl;} }; {cout<<n1<<k1<<endl;cout<<n2<<k2<<endl; cout<<n3<<k3<<endl;} };
面向对象程序设计习题4
ቤተ መጻሕፍቲ ባይዱ
习题4
4-1 填空题 (1) 派生新类的过程经历三个过程:吸收基类成员、改造基类成员和添加 新的成员。 (2) 在类族中,直接参与派生出某类的基类称为直接基类;基类的基类甚 至更高层的基类称为间接基类。 (3) 在继承中,如果只有一个基类,则这种继承方式称为 单继承 ;如果 基类名有多个,则这种继承方式称为 多继承 。 (4) C++中的运算符除了类属关系运算符“.”、作用域分辨符“::”、成员指 针运算符“*”、sizeof运算符和三目运算符“?:” 之外,全部可以重 载,而且只能重载C++中已有的运算符,不能臆造新的运算符。 (5) 如果用普通函数重载双目运算符,需要 1 个操作数;重载单目运算 符,需要 0 个操作数。如果用友员函数重载双目运算符,需要 2个 操作数;重载单目运算符,需要 1 个操作数。 (6) 当基类中的某个成员函数被声明为虚函数后,此虚函数就可以在一个 或多个派生类中被重新定义,在派生类中重新定义时,其函数原型, 包括返回类型、函数名和参数个数,以及参数类型和参数的顺序都必 须与基类中的原型完全相同。
面向对象程序设计习题4
class Level22:virtual public Level1 //Level1为虚基类,派生类Level22 class Level22:virtual public Level1 //Level1为虚基类,派生类Level22 {{public: public: int n22; int n22; Level22(int a):Level1(a) Level22(int a):Level1(a) {n22=a;cout<<"This is Level22,n22="<<n22<<endl;} {n22=a;cout<<"This is Level22,n22="<<n22<<endl;} }; }; class Level3:public Level21,public Level22 //声明派生类Level3 class Level3:public Level21,public Level22 //声明派生类Level3 {{public: public: int n3; int n3; Level3(int a):Level1(a),Level21(a),Level22(a) Level3(int a):Level1(a),Level21(a),Level22(a) {n3=a;cout<<"This is Level3,n3="<<n3<<endl;} {n3=a;cout<<"This is Level3,n3="<<n3<<endl;} }; }; void main() void main() {{ Level3 obj(3); }}//定义Level3类对象obj Level3 obj(3); //定义Level3类对象obj
面向对象程序设计习题4
4-3 阅读程序题 分析下列程序,写出运行结果 (1) 程序代码如下: 考察:继承关系
#include <iostream.h> #include <iostream.h> class B class B {{ int x1,x2; int x1,x2; public: public: void Init(int n1,int n2) {x1=n1;x2=n2;} void Init(int n1,int n2) {x1=n1;x2=n2;} int inc1() {return ++x1;} int inc1() {return ++x1;} int inc2() {return ++x2;} int inc2() {return ++x2;} void disp() {cout<<"B,x1="<<x1<<",x2="<<x2<<endl;} void disp() {cout<<"B,x1="<<x1<<",x2="<<x2<<endl;} }; };
程序运行结果为:
This is Level1,n1=3 This is Level1,n1=3 This is Level21,n21=3 This is Level21,n21=3 This is Level22,n22=3 This is Level22,n22=3 This is Level3,n3=3 This is Level3,n3=3
B,x1=-2,x2=-2 B,x1=-2,x2=-2 D1,x3=3 D1,x3=3 B,x1=-4,x2=-4 B,x1=-4,x2=-4 B,x1=-2,x2=-2 B,x1=-2,x2=-2 D2,x4=6 D2,x4=6 D1,x3=3 B,x1=0,x2=-3 D1,x3=3 B,x1=0,x2=-3 D2,x4=6 D2,x4=6 D2,x4=6 D2,x4=6 D2,x4=6 B,x1=1,x2=-3 D2,x4=6 B,x1=1,x2=-3 D2,x4=6 D2,x4=6 D2,x4=6 D2,x4=6
面向对象程序设计习题4
(2) 程序代码如下(课件例题): 考察:虚拟派生中构造函数的执行顺序
#include<iostream.h> #include<iostream.h> class Level1 //声明基类Level1 class Level1 //声明基类Level1 {{public: public: int n1; int n1; Level1(int in_n1) Level1(int in_n1) {n1=in_n1;cout<<"This is Level1,n1="<<n1<<endl; }} {n1=in_n1;cout<<"This is Level1,n1="<<n1<<endl; }; }; class Level21:virtual public Level1 //Level1为虚基类,派生类Level21 class Level21:virtual public Level1 //Level1为虚基类,派生类Level21 {{public: public: intn21; intn21; Level21(int a):Level1(a) Level21(int a):Level1(a) {n21=a;cout<<"This is Level21,n21="<<n21<<endl;} {n21=a;cout<<"This is Level21,n21="<<n21<<endl;} }; };
{{int temp=B::inc1(); temp=B::inc1(); temp=B::inc1();return B::inc1();} int temp=B::inc1(); temp=B::inc1(); temp=B::inc1();return B::inc1();}
}; };
面向对象程序设计习题4
面向对象程序设计习题4
class D1:B class D1:B {{ int x3; int x3; public: public: D1(int n3){x3=n3;} D1(int n3){x3=n3;} void Init(int n1,int n2) {B::Init(n1,n2);} void Init(int n1,int n2) {B::Init(n1,n2);} int inc1() {return B::inc1();} int inc1() {return B::inc1();} int inc2() {return B::inc2();} int inc2() {return B::inc2();} int inc3() {return ++x3;} int inc3() {return ++x3;} void disp() void disp() {cout<<"D1,x3="<<x3<<endl;} {cout<<"D1,x3="<<x3<<endl;} }; }; class D2:public B class D2:public B {{ int x4; int x4; public: public: D2(int n4) {x4=n4;} D2(int n4) {x4=n4;} int inc1() int inc1() int inc4() {return ++x4;} int inc4() {return ++x4;} void disp() {cout<<"D2,x4="<<x4<<endl;} void disp() {cout<<"D2,x4="<<x4<<endl;}