(0837)《面向对象程序设计》网上作业题及答案_第1页
(0837)《面向对象程序设计》网上作业题及答案_第2页
(0837)《面向对象程序设计》网上作业题及答案_第3页
(0837)《面向对象程序设计》网上作业题及答案_第4页
(0837)《面向对象程序设计》网上作业题及答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(0837)面向对象程序设计网上作业题及答案1:单选题执行下列语句后,变量x的值是:(      )    int x = 7, y = 10;    switch (x / y)     case 0:            x+;    case 7:     &#

2、160;      x *= y;    case 14:            x += y;            break;    default:         

3、60;  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' 下面赋值语句中不正确是:(    &#

4、160; )  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语言的叙述错误的是:(      ) 

5、0;a:java是最纯粹的面向对象语言,对面向对象方法学的支持也最全面b:java是解释执行的语言,由java解释器负责将java源文件解释为机器码执行c:java是平台无关的,即java程序不用修改就可以在不同类型的计算机平台上运行d:java提供了大量功能丰富的可重用类库,有效减少了编程的工作量参考答案:b6:单选题下列选项中,用于声明实现一个接口关键字是:(      )  a:interfaceb:implementsc:importd:abstract参考答案:b7:单选题java语言具有许多优点和特点,下列选项中

6、,哪个反映了java程序“一次编写,到处运行”的特点:(      )  a:多线程b:与平台无关c:面向对象d:分布式参考答案:b8:单选题下列不属于java语言关键字的是:(      )  a:repeatb:tryc:breakd:new参考答案:a9:单选题下列字符序列中可以作为java语言标识符的是:(      )  a:trueb:123_xyzc:x.yd:_x123参

7、考答案:d10:单选题下列字符序列中不能作为java语言标识符的是:(      )  a:abc_123b:圆周率pic:falsed:_123abc参考答案:c1:单选题下列语句序列给出了k,myarr和mymethod()的声明。当调用方法mymethod(myarr,k)之后,存储在k和myarr里的值分别是:(      )        int k = 7;   &

8、#160;    string myarr = "love", "peace", "and" ;        void mymethod(string a, int m)                 string temp = a1;    &

9、#160;           a1 = a2;                a2 = temp;                m = a2.length();   

10、       a:"peace","love","and",4b:"peace","love","and",7c:"love","and","peace",5d:"love","and","peace",7参考答案:d2:单选题下列语句序列执行之后,b1,b2,b3,b4的值分别是:( &

11、#160;    )        string s1 = "peace"        string s2 = new string(s1);        string s3 = s2;        string s4 = new string("pea

12、ce");        boolean b1 = (s1 = s2);        boolean b2 = s1.equals(s2);        boolean b3 = (s3 = s2);        boolean b4 = s4.equals(s3);  a:true

13、,true,false,falseb:false,true,true,truec:false,true,true,falsed:false,true,false,false参考答案:c3:单选题下列构造string的语句中,不正确的是:(      )  a:string str2 = "" ;b:string str1 = new string( );c:string str4 = "" + 123;d:string str3 = new string(123);参考答案:d4:单选

14、题下列关于构造方法的说法中,不正确的是:(      )  a:构造方法用于创建类的实例b:构造方法不可以重载c:构造方法不具有返回值类型d:构造方法名必须和类名相同参考答案:b5:单选题既能作为类的修饰符, 也能作为类成员的修饰符的是(    )  a:publicb:extendsc:voidd:static参考答案:a6:论述题下面程序的执行结果是什么?class test  public static void main(string args)  

15、; int sum = 0;  outer:  for(int i=1; i<10; i+)    inner:   for(int j=1; j<3; j+)     sum += j;    if (i+j > 6)      continue inner;      

16、0;system.out.println("sum=" + sum);      参考答案:答:sum=277:论述题写出下面程序的执行结果。public class intern     public static void main(string args)         string s1 = "123456" / 字符串直接量     &

17、#160;  string s2 = "123456" / 字符串直接量        string s3 = "123" + "456"         string a0 = "123"        string s4 = a0 + "456" / 这不是字符串直接量

18、60;       string s5 = new string("123456"); / 这不是字符串直接量        string s6 = ern( );        system.out.println("s2" + (s2=s1) ? "=" : "!=") +"s1")

19、;        system.out.println("s3" + (s3=s1) ? "=" : "!=") +"s1");        system.out.println("s4" + (s4=s1) ? "=" : "!=") +"s1");    

20、;    system.out.println("s5" + (s5=s1) ? "=" : "!=") +"s1");        system.out.println("s6" + (s6=s1) ? "=" : "!=") +"s1");      参考答案:答:输出为s2=s1s

21、3=s1s4!=s1s5!=s1s6=s11:单选题从开始执行到执行结束,小应用程序经历的3个状态分别是:(      )  a:初始态、就绪态,结束态b:就绪态、运行态,停止态c:初始态、运行态,停止态d:就绪态、运行态,休眠态参考答案:c2:单选题下列关于java小应用程序(applet)的说法中,正确的是:(      )  a:java.applet.applet类是所有java小应用程序的基类b:java小应用程序不需要编译c:java小应用程序

22、也需要main()方法d:java小应用程序必须实现actionlistener接口参考答案:a3:单选题swing的三个顶层容器分别是:(      )  a:japplet,jpanel,jwindowb:jdialog,japplet,jframec:japplet,jframe, jmenud:jframe,jpanel,jtextarea参考答案:b4:单选题把容器划分为东、西、南、北、中5个区域的布局管理器是:(      )  a:boxla

23、youtb:flowlayoutc:cardlayoutd:borderlayout参考答案:d5:论述题阅读下面的程序,写出输出结果。class parent        / 静态变量       public static string p_staticfield = "父类-静态变量"       / 变量       public string p_field = &

24、quot;父类-变量"         / 静态初始化块       static            system.out.println(p_staticfield);           system.out.println("父类-静态初始化块"); 

25、0;              / 初始化块                  system.out.println(p_field);           system.out.println("父类-初始化块");    &#

26、160;           / 构造器       public parent()            system.out.println("父类-构造器");               public class subclass extends parent

27、       / 静态变量       public static string s_staticfield = "子类-静态变量"       / 变量       public string s_field = "子类-变量"       / 静态初始化块     

28、  static            system.out.println(s_staticfield);           system.out.println("子类-静态初始化块");              / 初始化块     

29、60;            system.out.println(s_field);           system.out.println("子类-初始化块");                / 构造器       public s

30、ubclass()            system.out.println("子类-构造器");                / 程序入口       public static void main(string args)          

31、  new subclass();            参考答案:1、父类-静态变量2、父类-静态初始化块3、子类-静态变量4、子类-静态初始化块5、父类-变量6、父类-初始化块7、父类-构造器8、子类-变量9、子类-初始化块10、子类-构造器6:论述题下面语句中的错误都是在java数据类型转换中的易错点。分析语句的错误原因并改正。(1) float f1 = 0.1;(2) long l1 = 12345678, l2 = 8888888888;(3) byte b1 = 1, b2 = 2

32、, b3 = 129;(4) byte b = b1 - b2;(5) int i = 1; i = i * 0.1;    / 有错(6)  char c1 = 'a', c2 = 125; char c = c1 + c2 - 1;    / 有错(7) float f1 = 0.1f, f2 = 123;  float f3 = f1+f2*0.1;    / 有错  参考答案:答:(1)

33、60;float f1 = 0.1; 错误原因:  0.1缺省为double类型 改正:  float f1 = (float)0.1; 或改为  float f1=0.1f; (2)  long l1 = 12345678, l2 = 8888888888; 错误原因:  8888888888已经超出缺省int型的最大表示范围,必须加字母l。 改正:  long l1 = 12345678, l2 = 888888

34、8888l; (3)  byte b1 = 1, b2 = 2, b3 = 129; 错误原因:  129在自动转换中超出范围  改正:  byte b1 = 1, b2 = 2, b3 = 127; (4) byte b = b1 - b2;  错误原因:  b1、b2在作运算前首先转换为int型,因此减法结果就是int型,不能直接赋值给byte型的b来保存,需要强制类型转换      改正: 

35、 byte b = (byte)(b1-b2);     (5)  int i = 1; i = i*0.1; 错误原因:  0.1是double型,i在乘法前会自动转换为double型,乘法结果也是double型,不能直接赋值为int型的i来保存,需要强制类型转换 改正:  i = (int)(i*0.1);(6)  char c1='a', c2=125; char c = c1 + c2 - 1;

36、0;错误原因:  c1、c2在作运算前首先转换为int型,因此计算结果就是int型,不能直接赋值给char型的c来保存,需要强制类型转换 改正:  char c = (char)(c1 + c2 - 1);       (7)  float f1 = 0.1f, f2 = 123;  float f3 = f1+f2*0.1; 错误原因:  由于0.1是double型,在运算前首先全部要转换为double型,因此计算结果就是d

37、ouble型,不能直接赋值给float型的f4来保存,需要强制类型转换 改正:  float f4 = (float)(f1+f2*0.1);7:论述题阅读下面的程序,写出输出结果,并说明原因。  string str1 = new string("wangke");  string str2 = new string("wangke");  system.out.println(str1 = str2);  system.out.println

38、(str1.equals(str2);  参考答案:答:system.out.println(str1 = str2); 这一句输出flase。因为=比较的是对象句柄,显然对象str1,str2是完全独立的两个对象,它们的句柄是不同的。system.out.println(str1.equals(str2);这一句输出true。因为string类已经重写了object中的equals方法,只要两个string对象的字符数组内容相同,就认为两个对象相等。8:论述题阅读下面的程序,写出输出结果。public class myexception    

39、; public static void throwexception()         system.out.println("产生并抛出arithmeticexception类型的异常");        throw new arithmeticexception();        public static void catcharrayexception() 

40、60;       try             throwexception();            system.out.println("在try语句块中的多余语句");          

41、0;     catch(arrayindexoutofboundsexception e)             system.err.println("方法catcharrayexception捕捉到异常");        finally          &#

42、160;  system.out.println("方法catcharrayexception的finally语句块");                system.out.println("方法catcharrayexception运行结束");         public static void main(string args) 

43、0;       try             catcharrayexception();        catch(arithmeticexception e)             system.err.println("方法ma

44、in捕捉到异常");        finally             system.out.println("方法main的finally语句块");                system.out.println("异常处理结束

45、");       参考答案:答:输出为产生并抛出arithmeticexception类型的异常方法catcharrayexception的finally语句块方法main捕捉到异常方法main的finally语句块异常处理结束9:论述题下面的程序错在哪里?如何修改?class superclass class subclass extends superclass class test  public static void main(string args)   superclass a = new

46、 superclass();  subclass b = new subclass();  b = (subclass)a;    参考答案:答:b = (subclass)a;这一句无法通过编译。报错信息为:exception in thread "main" java.lang.classcastexception: superclass cannot be cast to subclass原因在于向下转型(downcasting)是有前提的。改正: 将superclass a =

47、 new superclass();改为superclass a = new subclass();就可以了。s10:论述题下面程序的执行结果是什么?class superclass  void method()   system.out.println("superclass:method");  void fun()   system.out.println("superclass:fun");  this.method(); class subcla

48、ss extends superclass  void method()   system.out.println("subclass:method: begin");  super.fun();  system.out.println("subclass:method: end"); class test  public static void main(string args)   subclass a = new subclass();&#

49、160; a.method();    参考答案:答:会陷入死循环,直到栈溢出报错!subclass:method: beginsuperclass:fun1:单选题阅读下面的程序:该程序运行的输出结果是:(      )  a:peaceb:peacec:ecaepd:ecaep参考答案:c2:单选题阅读下面的程序:该程序运行的输出结果是:(      )  a:0123456789abcdefb:abc

50、def0123456789c:0123456789abcdefd:fedcba9876543210参考答案:d3:单选题阅读下面程序:该程序运行的输出结果是:(      )  a:sum = 6b:sum = 12c:sum = 32d:sum = 64参考答案:c4:单选题阅读下面的程序:该程序运行的输出结果是:(      )  a:1 2 2 4 8b:2 2 4 8 32c:1 4 4 16 64d:1 2 6 24 120参考答案:d1:论述题

51、阅读下面程序,并回答问题。(1)try块中包含的哪些语句或表达式可能抛出异常?(2)流dataoutputstream和datainputstream常被用于何种操作?(3)假定文件out.txt中原本没有任何数据,这段程序执行完成后,文件out.txt的内容是什么?程序在控制台窗口输出什么?import java.io.*;public class test4         public static void main(string args)       &

52、#160;         try                         dataoutputstream dout = new dataoutputstream(         

53、0;                              new fileoutputstream("out.txt");             

54、60;          for (int i = 0; i < 10; i+)                                dout.writeint('0'

55、 + i);                        dout.close();                        dat

56、ainputstream din = new datainputstream(                                        new fileinputstream("

57、out.txt");                        for (int i = 0; i < 10; i+)                   &#

58、160;            system.out.print(din.readint() - '0' + ", ");                        din.close();  

59、60;             catch (ioexception e)                         system.err.println("发生异常:" + e);   

60、60;                    e.printstacktrace();                          参考答案:问题(1):try块中

61、下面的语句可能抛出异常:                            new  fileoutputstream("out.txt");             

62、;               dout.writeint( '0' + i);                             dout.close( );

63、0;                           new  fileinputstream("out.txt");               

64、0;           din.readint( )                             din.close( );问题(2):常被用于读取与存储(读写或输入/输出)基本数据类型的数据。问

65、题(3):                      文件out.txt的内容是:0 1 2 3 4 5 6 7 8 9                       程序在控制台窗

66、口输出:0,1,2,3,4,5,6,7,8,9,2:论述题阅读下面程序,并回答问题。(1)java程序分为哪两种类型,这段程序是哪一类java程序?(2)这个图形用户界面上包含那几类组件?点击按钮后程序显示什么?(3)actionlistener是什么?程序中哪个方法是actionlistener中的方法?其功能是什么?import javax.swing.*;import java.awt.*;                

67、0;          import java.awt.event.*;public class test4 extends japplet implements actionlistener        private container cp = getcontentpane();        private jlabel prompt = new jlabe

68、l("请点击按钮");                private jbutton  start = new jbutton("开始");        private jtextfield output = new jtextfield(20);        pu

69、blic void init( )                cp.setlayout(new flowlayout();                cp.add(start);         

70、60;      cp.add(prompt);                cp.add(output);                output.seteditable(false);    

71、0;   start.addactionlistener(this);            public void actionperformed(actionevent e)                if (jbutton)e.getsource( ) = start )    

72、                    output.settext("好好学习,天天向上");       参考答案:问题(1):java程序分为java应用程序(或java application)和java小应用程序(或java applet);这段程序是java小应用程序。问题(2):界面上包含一个标签(jlabel),

73、一个按钮(jbutton)和一个文本框(jtextfield);点击按钮后,文本框内显示“好好学习,天天向上”。 问题(3):actionlistener是动作事件监听器接口;方法actionperformed()是actionlistener中的方法;其功能是处理applet界面里发生的动作事件。3:论述题java awt程序设计:在窗口中画出三个textfield(前两个用于接收用户输入的两个整数,第三个用于显示相加和),一个加号label,一个等于号button. 当按下button时,将相加之和放到第三个textfield中。注意:不允许使用内部类。  参考答案:i

74、mport java.awt.*;import java.awt.event.*;public class tfmath  public static void main(string args)   new tfframe().launchframe(); class tfframe extends frame  textfield num1, num2, num3; public void launchframe()   num1 = new textfield(10);  num2 = n

75、ew textfield(10);  num3 = new textfield(15);  label lblplus = new label("+");  button btnequal = new button("=");  btnequal.addactionlistener(new mymonitor(this);  setlayout(new flowlayout();  add(num1);  add(l

76、blplus);  add(num2);  add(btnequal);  add(num3);  pack();  setvisible(true); class mymonitor implements actionlistener  tfframe tf = null;  public mymonitor(tfframe tf)   this.tf = tf;   public void action

77、performed(actionevent e)   int n1 = integer.parseint(tf.num1.gettext();  int n2 = integer.parseint(tf.num2.gettext();  tf.num3.settext("" + (n1+n2);    4:论述题阅读下面程序,并回答问题。(1)类child和类parent之间是什么关系?(2)关键字super和this分别是什么含义?(3)这段程序的输出是什么?class p

78、arent        public void printme( )                system.out.println("parent");        class child extends parent     &

79、#160;  public void printme( )                system.out.println("child");                public void printall( )    

80、0;   super.printme( );        this.printme( );    public class test3        public static void main(string  args )              &#

81、160; child  myc = new child( );                myc.printall( );          参考答案:问题(1):child是parent的子类(或parent是child的父类,或继承关系)。问题(2):super指对象的父类(或超类);this指使用它的对象本身(或对对象自己的引用)。问题(

82、3):程序的输出是:         parent        child5:论述题阅读下面程序,并回答问题。(1)类test3和类supertest之间是什么关系?(2)关键字super和this分别是什么含义?(3)这段程序的输出是什么?class supertest         public int age;     

83、0;  public supertest(string s)                 system.out.println("hi, i am " + s);                age = 35;    

84、60;   public class test3 extends supertest         public int age;        public test3(string s)                 super(s);    

85、;            system.out.println("nice to meet you!");                age = 7;              

86、0; public void print()                 system.out.println("age is " + age);                system.out.println("my age is " + this.

87、age);                system.out.println("my parent's age is " + super.age);                public static void main(string args)   &

88、#160;             test3 test = new test3("olive");                test.print();          参考答案:问题(1):test3是supe

89、rtest的子类(或supertest是test3的父类,或继承关系)。问题(2):super指对象的父类(或超类);this指使用它的对象本身(或对对象自己的引用)。问题(3):程序的输出是:        hi, i am olive        nice to meet you!        age is 7      

90、;  my age is 7        my parent's age is 356:论述题阅读下面程序,写出程序的输出结果。class superclass      int data;      superclass()          system.out.println("superclass:constructor

91、: data=" + data);         add(1);         system.out.println("superclass:constructor: data=" + data);          public void add(int i)      &

92、#160;   data += i;       public void print()         system.out.println(data);   class subclass extends superclass      subclass()            system.out.pr

93、intln("subclass:constructor: data=" + data);           add(2);           system.out.println("subclass:constructor: data=" + data);          publi

94、c void add(int i)            data += i*2;     class test       public static void method(superclass a)             a.add(6);    &#

95、160;       a.print();            public static void main(string args)             method(new subclass();          参考答案:s

96、uperclass:constructor: data=0superclass:constructor: data=2subclass:constructor: data=2subclass:constructor: data=6181:论述题编写一个程序,要求随机生成61个学生的成绩(从0到100的整数),在将成绩排序(由高到低)后保存到文件“score.txt”中。  参考答案:import java.io.dataoutputstream;import java.io.fileoutputstream;import java.io.ioexception;public

97、 class testsort         public static int maxsize = 61;        public static void sortint(int arr) / 采用选择法对一维数组进行排序                for (int i = 0; i < a

98、rr.length - 1; i+)                         int k = i;                      

99、  for (int j = i + 1; j < arr.length; j+)                                if (arrj < arrk)       

100、60;                                k = j; / 用k记录最小值的下标               &

101、#160;        if (k > i) / 在外循环中实施交换                                arri = arri + arrk;   

102、60;                            arrk = arri - arrk;                   &

103、#160;            arri = arri - arrk;                                   

104、0;                    public static void main(string args)                 int score = new intmaxsize;      &#

105、160;         try                         for (int i = 0; i < maxsize; i+)           

106、60;                    scorei = (int) (math.random() * 100 + 0.5);                       &

107、#160;                        sortint(score);                        da

108、taoutputstream dout = new dataoutputstream(                                        new fileoutputstream(&

109、quot;score.txt");                        for (int i = 0; i < maxsize; i+)                  &

110、#160;              dout.writeint(scorei);                                system.

111、out.println(scorei);                                                dout.close();    &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论