《Java程序设计》试卷三

本试卷涵盖Java基础知识,包括栈特性、输入流类别、多线程实现方式等,并涉及Java Application与Applet的区别、异常处理机制等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

《Java程序设计》试卷三
一、选择题(2*25=50分)
1、下列关于栈的叙述正确的是
 A) 栈是非线性结构
 B) 栈是一种树状结构
 C) 栈具有先进先出的特征
 D) 栈具有后进先出的特征
2、下列不是InputStream子类的是
A) 文件输入流FileInputStream
      B) 对象输入流ObjectInputStream
C) 字符输入流CharInputStream
 D) 压缩文件输入流ZipInputStream
3、下列方法中可以用来创建一个新线程的是
A) 实现java.lang.Runnable接口并重写start()方法
B) 实现java.lang.Runnable接口并重写run()方法
C) 继承java.lang.Thread类并重写run()方法
D) 继承java.lang.Thread类并重写start()方法
4、下列关于Java Application与Java Applet程序的差别描述正确的是
A) 运行方式不同,程序结构相同,运行工具不同,受到的限制相同
B) 运行方式相同,程序结构不同,运行工具不同,受到的限制相同
C) 运行方式相同,程序结构相同,运行工具不同,受到的限制也不同
D) 运行方式不同,程序结构不同,运行工具不同,受到的限制也不同
5、 Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点
A) 安全性
  B) 多线性
  C) 跨平台
  D) 可移植
6哪种循环在条件表达式被计算之前至少执行循环体语句一次
A)do-while循环
B)for循环
C) while循环
D) 以上都不是
7、数组的哪个实例变量可以确定数组的长度
      A) size
      B) length
      C) max_value
      D) Length()
8、 异常包含下列那些内容
    A) 程序中的语法错误
B) 程序的编译错误
C) 程序执行过程中遇到的事先没有预料到的情况
D) 程序事先定义好的可能出现的意外情况
9、 Character流与Byte流的区别是
 A) 每次读入的字节数不同
  B) 前者带有缓冲,后者没有
  C) 前者是块读写,后者是字节读写
D) 二者没有区别,可以互换使用
10、监听事件和处理事件
 A) 都由Listener完成
 B) 都由相应事件Listener处登记过的构件完成
C) 由Listener和构件分别完成
 D) 由Listener和窗口分别完成
11、Applet可以做下列那些操作?
 A) 读取客户端文件
B) 在客户端主机上创建新文件
C) 在客户端装载程序库
D) 读取客户端部分系统变量
12、下列哪个属于容器的构件
 A) JFrame 
B) JButton 
C) Pnel 
D) JApplet
13、如果希望所有的控件在界面上均匀排列,应使用下列那种布局管理器?
A) BoxLayout
B) idLayout
C) BorderLayout
D) lowLouLayout
14、为实现多线程之间的通信,需要使用下列那种流才合适?
A) Filter stream
B) File stream
C) Random access stream
D) Pipde stream
15、下面关于Applet的说法正确的是
A)Applet也需要main方法
BApplet继承自java.awt.Appletjavax.swing.JApplet
C)Applet能访问本地文件
D)Applet程序不需要编译
16、查找随机文件的记录时,应使用的方法是
A)readInt()
B)readBytes(int n)
Cseek(long l)
D)readDouble()
17、下列叙述中,正确的是
A)Reader是一个读取字符文件的接口
B)Reader是一个读取数据文件的抽象类
CReader是一个读取字符文件的抽象类
D)Reader是一个读取字节文件的一般类
18、编译 Java   Applet 源程序文件产生的字节码文件的扩展名为
      A)java
   Bclass
 C)html
  D)exe
19、下列叙述中,错误的是
A) 父类不能替代子类 
B) 子类能够替代父类 
C) 子类继承父类 
D) 父类包含子类
20、在switch(expression)语句中,expression的数据类型不能是
Adouble
B)char
C)byte 
D)short
21、main 方法是 Java   Application 程序执行的入口点,关于 main 方法的方法头以下哪项是合法的
A)public   static   void   main ( )
 Bpublic   static   void    main String   args[]
 C)public static int   main ( String   [] arg )
      D)public   void   main ( String   arg[] )
22、在某个类中定义一个方法:void GetSort(int x),以下关于能否做为这个方法的重载错误的是
      A)void GetSort(float x){x*=x;}
 B)int GetSort(double y){return(int)(s*y);}
C)double GetSort(int x,int y){return x+Y}
D) 都不能
23、 假设有String a="A";char b=’A’;int c=65,下面选项中_____是正确
A)if(a= =b)    {System.out.print("Equal")}
Bif(c= =b)    {System.out.print("Equal")}
C)if(a= =c)    {System.out.print("Equal")}
D)if(c=b)     {System.out.print("Equal")}
24、下列代码中,将引起编译错误的行是
1)public class Exercise{
2)   public static void main(String args[]){
3)     float f=0.0;
4)   f+=1.0;
5)      }
6)  }
A) 第2行   
B) 3    
C) 第4行   
D) 第6行
25下列代码中,将引起一个编译错误的行是
1)public class Test{
2) int m,n;
3) public Test(){}
4) public Test(int a){m=a;}
5) public static void main(String args[]){
6) Test t1,t2;
7) int j,k;
8) j=0;k=0;
9) t1=new Test();
10) t2=new Test(j,k);
11) }
12) }
A) 第3行
B) 第5行
C) 第6行
D) 第10行
二、判断题(2*15=30分)
(T) 1、Java 和 c++都是面向对象的程序设计语言。
(F) 2、字符串 "/'a/'" 的长度是5。
(T) 3、同一个类中定义多个参数列表不同的同名方法,叫做方法的重载。
(T) 4、一个类的定义包括定义类头和定义类体两个部分。
(F) 5、一个程序里可以有多个父类,也可以有多个主类。
(T) 6、子类的对象能直接向其父类对象赋值。
  (T) 7、抽象方法只能存在于抽象类中。
(F) 8、在父类中声明为 final 的方法,也可以在其子类中被重新定义(覆盖)。
(T) 9、接口中所有方法均为抽象方法。
(T) 10、False 是合法的 Java 标识符。
(F) 11、子类的类成员变量不能与其父类的类成员变量同名。
(F) 12、static 变量不能是 private 变量。
(T) 13、保留字 this 代表当前对象。
(T) 14、类的构造函数名必须和类名相同。
  (F) 15、一个子类可以重新定义从父类那里继承来的同名方法,允许它们有不同的返回值。
 
 
 
 
Java学习题》<br><br>据说,如果你能独立完成(不用看资料,不借助调试)回答在60分以上,找个6000元以上的工作由***来给你介绍。<br><br>1.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。(15分)<br>2.下面程序运行会发生什么结果?如果有错误,如何改正? (15分)<br>interface A{<br> int x = 0;<br>}<br>class B{<br> int x =1;<br>}<br>class C<br> extends B implements A {<br> public void pX(){<br> System.out.println(x);<br> }<br> public static void main(String[] args) {<br> new C().pX();<br> }<br>}<br>} <br>3.简述 Java Server Page 和 Servlet 的联系和区别。(20分)<br>4.XML文档定义有几种形式?它们之间有何本质区别?<br>解析XML文档有哪几种方式?(20分)<br>5.简述synchronized和java.util.concurrent.locks.Lock的异同 ?(15分)<br>6.EJB规范规定EJB中禁止的操作有哪些?(15分)<br>最后还有一题考考你的眼力:<br>public String toString(){<br> return this + "@" + this.hashCode();<br>}<br>这个toString()方法实现有无不当的地方?(toString方法其实可以按你想输出的任何内容输出一些该类的信息)<br>以下答案供参考(不一定完全正确),也没有很详细说明.相关知识可以自己参考相关资料加上自己的理解.欢迎拍砖<br>1.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。(15分)<br>区别主要答两点:<br>a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型<br>b.逻辑操作不会产生短路.如:<br>int a = 0;<br>int b = 0;<br>if( (a = 3) > 0 || (b = 3) > 0 ) //操后a =3,b=0.<br>if( (a = 3) > 0 | (b = 3) > 0 ) //操后a =3,b=3.<br> <br>答对第一点得5分,答对第二点得10分.<br>本题考察最最基本的知识,但仍然有很多大牛级开发人员下马,任何语言在开始的部分<br>都会详细介绍这些基本知识,但除了学习第一种语言时,没有人在学习新的语言时愿意<br>花五分钟来复习一下.<br>2.下面程序运行会发生什么结果?如果有错误,如何改正? (15分)<br>interface A{<br> int x = 0;<br>}<br>class B{<br> int x =1;<br>}<br>class C<br> extends B implements A {<br> public void pX(){<br> System.out.println(x);<br> }<br> public static void main(String[] args) {<br> new C().pX();<br> }<br>}<br>}<br>本题在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,<br>两个x都匹配,就象在同时import java.util和java.sql两个包时直接声明Date一样)<br>本题主要考察对接口和类的最最基本的结构的了解.对于父类的变量,可以用super.x来<br>明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确.<br>3.简述 Java Server Page 和 Servlet 的联系和区别。(20分)<br>本题不用多说,在答相同点时应该明确知道jsp编译后是"类servlet"而"不是Servlet",<br>答区别时应该回答出"侧重于(视图/控制逻辑)".其它可根据情况加减分值.知识很简单,<br>但从面试的角度看,被试者不仅要能知道它们的区别,而且要能比较准确地表达出来(以<br>后写文档要能让别人看得懂,不产生歧义),回答"jsp编译后就是servlet"视为错误,回答<br>"jsp用于视图,servlet用于控制逻辑"视为错误,应该用侧重于,主要(多数)用于等词语<br>表达.<br>4.XML文档定义有几种形式?它们之间有何本质区别?<br>解析XML文档有哪几种方式?(20分)<br>本题个答题点:<br>a: 两种形式 dtd,schema<br>b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的<br>根本目的)<br>c: 两种主要方式:dom,sax.答出两种得全分,如能答出saxt,或其它(在答出dom,sax的基<br>础上,如果应试者认为其它方式也可以视为对xml的解析应该允许.但没有答出dom,sax把<br>其它方式说成是对XML的解析不得分)应该加分.<br>5.简述synchronized和java.util.concurrent.locks.Lock的异同 ?(15分)<br>主要相同点:<br>Lock能完成synchronized所实现的所有功能.(其它不重要)<br>主要不同点:<br>Lock有比synchronized更精确的线程语义和更好的性能(在相同点中回答此点也行)<br>synchronized会自动释放锁.而Lock一定要求程序员手工释放.并且必须在finally从句<br>中释放,如果没有答出在finally中释放不得分.就如Connection没有在finally中关闭一<br>样.连最基本的资源释放都做不好,还谈什么多线程编程.<br>6.EJB规范规定EJB中禁止的操作有哪些?(15分)<br>共有8点,答出下列3-4点得满分.<br>1.不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等)<br>2.不能操作awt<br>3.不能实现服务器功能<br>4.不能对静态属生存取.<br>5.不能使用IO操作直接存取文件系统<br>6.不能加载本地库.<br>7.不能将this作为变量和返回.<br>8.不能循环调用.<br>public String toString(){<br> return this + "@" + this.hashCode();<br>}<br>会变成 <br>public String toString(){<br> return String.valueOf(this) + "@" + String.valueOf(this.hashCode());<br>}<br>而valueOf方法又将去调用toString();<br>/**<br> public static String valueOf(Object obj) {<br>return (obj == null) ? "null" : obj.toString();<br> }<br>*/<br>toString唯一就是不要递归其它你可以输出任何内容。<br><br><br>你能做对几道?(如果错了能说出其正确的说法吗)<br>是非题:<br>1.所谓缺省构造函数就是没有参数的构造函数<br>2.Java 的char是8位的<br>3.一个Java类可以有多个父类,这称作多继承.<br>4.对象成员变量在对象创建时会获得一个缺省的初始值.<br>5.Java数组随时可以改变大小.<br>6.InputStream和OutputStream读写的数据是8位的.<br>7.Java是强类型语言.<br>8.Java没有指针,引用不能等同于指针.<br>9.protected的成员只能被继承类成员存取.<br>10. 任何的Applet都完全不能访问本地资源.<br>11. String是基本数据类型吗?<br>12. Anonymous Inner Class (匿名内部类) 可以extends(继承)其它类<br>13 final类是为防止他人从你的类上派生新类,此类是不可继承的。<br>14 super()和this()方法只能在构造函数里调用.<br>15 方法的参数变量不能是final的<br>16 接口的所有方法默认都是public,abstract和non-static的<br>17 接口可以声明成final<br>18 内部类可以访问外层类的任何变量,包括私有的<br>19 匿名类可以有构造器,声明时候不能带参数<br>20 抽象方法可以是static的。<br>21 构造器没有任何返回类型,哪怕是void也不行。<br>22 只要类中显式地定义一个,那么Java不会再为你定义一个默认的构造器<br>23 构造方法可以被继承。<br>
一、选择题(每题1分,共30分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1.下列语句序列执行后,k 的值是( )。 int m=3, n=6, k=0; while( (m++) < ( -- n) ) ++k; A) 0 B) 1 C) 2 D) 3 2.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( )。 A) i = i + 2 B) a[0] = 7; C) i++ - --j; D) a(0) = 66; 3.Java语言的类间的继承关系是( )。 A) 多重的 B) 单重的 C) 线程的 D) 不能继承 4.设有定义 int i = 6 ;,则执行以下语句后,i 的值为( )。 i += i - 1; A) 10 B) 121 C) 11 D) 100 5.下列选项中,用于在定义子类时声明父类名的关键字是( )。 A)interface B) package C) extends D) class 6.若已定义 byte[ ] x= {11,22,33,-66} ; 其中0≤k≤3,则对x数组元素错误的引用是( )。 A) x[5-3] B) x[k] C) x[k+5] D) x[0] 7.下列语句序列执行后,ch1 的值是( )。 char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A) ‘A' B) ‘B' C) ‘C' D) B 8.下列语句序列执行后,i 的值是( )。 int i=8, j=16; if( i-1 > j ) i--; else j--; A) 15 B) 16 C) 7 D) 8 9.下列语句序列执行后,k 的值是( )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A) 31 B) 32 C) 2 D) 33 10.下面语句执行后,i 的值是( )。 for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7 11.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( )。 A) x > y || x > z B) x != y C) z > ( y + x ) D) x < y & ! ( x < z ) 12.下列语句序列执行后,i的值是( )。 int i=16; do { i/=2; } while( i > 3 ); A) 16 B) 8 C) 4 D) 2 13.以下由 for 语句构成的循环执行的次数是( )。 for ( int i = 0; true ; i++) ; A) 有语法错,不能执行 B) 无限次 C) 执行1次 D) 一次也不执行 14.定义类头时能使用的修饰符是( )。 A) private B) static C) abstract D) protected 15.设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值, 正确的switch语句是( )。 A) switch (x + y) B) switch ( ch + 1 ) { ...... } { ...... } C) switch ch D) switch ( a + b ); { ...... } { ...... } 16. 下列最终属性 i 的定义中,正确的是( )。 A) static final int i=100; B) final int i=1.2; C) final i='w'; D) final char i; 17. 下列类定义中,不正确的是( )。 A) class x { .... } B) class x extends y { .... } C) static class x implements y1,y2 { .... } D) public class x extends Applet { .... } 18. 设 x、 y为已定义的类名,下列声明x类的对象x1的语句中正确的是( )。 A) static x x1; B) public x x1=new x(int 123); C) y x1; D) x x1=x( ); 19. 设 i、j、k 为类 x 中定义的 int 型变量名,下列类 x 的构造函数中不正确的是( )。 A) x( int m){ ... } B) void x( int m){ ... } C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... } 20. 下列方法定义中,正确的是( )。 A) int x( ){ char ch='a'; return (int)ch; } B) void x( ){ ...return true; } C) int x( ){ ...return true; } D) int x( int a, b){ return a+b; } 21. 用于定义类成员的访问控制权的一组关键字是( )。 A) class, float, double, public B) float, boolean, int, long C) char, extends, float, double D) public, private, protected 22. 不能构成循环语句是( )。 A) for 语句 B) while 语句 C) switch 语句 D) do__while 语句 23. 下列程序段执行后 b3 的结果是( )。 boolean b1=true, b2, b3; b3= b1 ? b1 : b2; A) 0 B) 1 C) true D) false 24. 下面数据结构中,属于非线性的是( )。 A) 线性表 B) 树 C) 队列 D) 堆栈 25. 设有定义 int i=123; long j=456; 下面赋值不正确的语句是( )。 A) j=i; B) j=(long)i; C) i=(int)j; D) i=j; 26. 现有一整型数组a[4],它的所有数组元素是( )。 A) a0, a1, a2, a3 B) a[0], a[1], a[2], a[3] C) a[1], a[2], a[2], a[4] D) a[0], a[1], a[2], a[3], a[4] 27. 定义 Java Applet程序时,必须有的 import语句是( )。 A) import java.applet.Applet; B) import java.io.*; C) import java.awt.event; D) import java.lang.*; 28.现有两个类A、B,以下描述中表示B继承自A的是( )。 A) class A extends B B) class B implements A C) class A implements B D) class B extends A 29. 下列算法中,不能用来排序的算法是( )。 A) 冒泡法 B) 插入排序 C) 选择排序 D) 对分法 30. 堆栈操作的原则是( )。 A) 先进先出 B) 后进先出 C) 只能进 D) 只能出 二、填空题(每空1分,共15分) 请将正确答案填写在答题纸相应位置上,答在试卷上不得分。 1. 构造函数______有返回值。 2. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 __________两种具体类型。 3. 创建类对象的运算符是___________。 4. 当整型变量n的值不能被13除尽时,其值为 false 的Java语言表达式是_____________ 。 5.Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的__________。 6. 定义类就是定义一种抽象的____________,它是所有具有一定共性的对象的抽象描述。 7.Java语言中,使用_____、______等技术,实现软件重用。 8. Java的复合数据类型有 : 类、数组和_______等。 9. 表达式3/6 * 5的计算结果是________ 。 10.定义初值为10的10次方的长整型变量 lvar 的语句是:__________________________。 11. 顺序结构、分支结构(或称选择结构)、____________是结构化程序设计种基本流程控制结构。 12. 以下方法 m 的功能是求两参数之积的整数部分。 int m ( float x, float y ) { __________________; } 13. Java 源程序文件编译后产生的文件称为________文件,其扩展名为 ___________ 。 、判断题( 每小题1分,共15分 ) 下列各题中,你认为正确的就在其题干后的括号内打"√",错误的打"×"。 1.Java 和 c++都是面向对象的程序设计语言。( ) 2.字符串 "\'a\'" 的长度是5。( ) 3. 同一个类中定义多个参数列表不同的同名方法,叫做方法的重载。( ) 4. 一个类的定义包括定义类头和定义类体两个部分。( ) 5.一个程序里可以有多个父类,也可以有多个主类。( ) 6. 一个子类可以重新定义从父类那里继承来的同名方法,而且允许它们有不同的返回值。( ) 7.抽象方法只能存在于抽象类中。( ) 8. 在父类中声明为 final 的方法,也可以在其子类中被重新定义(覆盖)。( ) 9. 接口中所有方法均为抽象方法。( ) 10. False 是合法的 Java 标识符。( ) 11. 子类的类成员变量不能与其父类的类成员变量同名。( ) 12. static 变量不能是 private 变量。( ) 13. 保留字 this 代表当前对象。( ) 14. 类的构造函数名必须和类名相同。( ) 15. 子类的对象能直接向其父类对象赋值。( ) 四、程序填空( 每空2分,共20分 ) 阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。 1.下面是一个类的定义: public class ____________ { int x, y; Myclass ( int i, _______) // 构造函数 { x=i; y=j; } } 2.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。 public void paint(Graphics ____ ) { int i=689; a.drawString ( ________+ i ,20,60); } 3.下面是一个Java Application 的主类的定义,其功能是输出所有命令行参数。 import java.io.*; public class MyClass { public static void main(String args[ ]) { if( args.length !=___) for(int i=0; i < args.length; i++) System.out.println(___________); else System.out.println("没有命令行参数"); } } 4.下面是一个小程序的主类myprogram的定义, 其中A、B是该主类所在源程序中已定义的另两个类的类名: import java awt.*; import java applet.*; public class myprogram extends Applet//定义小程序的主类 { A a; B b; public ________ init( ) { a=new A( ); b=_____ B( ); } } 5.下面程序的功能是输出数组各元素的和。 import java.awt.Graphics; import java.applet.Applet; public class SumArray extends Applet { float[] a; a= new _______[6]; float sum=0.0f; public void init( ) { for ( int j = 0; j < a.length; j++ ) a[j] = j+1; for ( int i = 0 ; i < a.length; i++ ) sum+= a[i]; } public void paint( Graphics g ) { g.drawString( "Total of array elements: " + ________ , 25, 25 ); } } 五、简答题( 每1问2分,共20分 ) 阅读程序(或程序片段)并回答问题 。 1. import java.awt.*; import java.applet.*; public class Test51` extends Applet { float[ ] x = {1.2, 3.4, 5.6, 7.8}; public void paint(Graphics g) { int s=0; for( int i = 0; i < x.length; i++ ) s += (int)x[i]; g.drawString(" " + s, 30, 60); } } 问题: 1)程序的输出结果是什么? 2)方法paint()中的循环体 s += (int)x[i]; 能写为 s +=x[i]; 吗? 为什么? 2. public class Test52 { String str1="Hello, Java world! \t"; String str2="Hello, students! "; public static void main(String args[]) { System.out.print(str1); System.out.println(str2); } } 问题:1)这是哪种形式的 Java 程序 ? 2)程序的输出是什么?输出的结果在 Applet 窗口中吗? 3. 设ch1, ch2是 char 型变量: if ( ch1 == ‘a' ) { if ( ch2 == ‘b' ) System.out.print(" ch1=\'a\' , ch2=\'b\' "); } else System.out.print(" ch1!=\'a\' "); System.out.println(" end "); 问题: 1)若执行前 ch1 的值为 ‘a', ch2 的值为 'c' 该程序段输出是什么? 2)若执行前 ch1 的值为 'w', ch2 的值为 'b' 该程序段输出是什么? 3)若执行前 ch1 的值为 'a', ch2 的值为 'b' 该程序段输出是什么? 4.有如下源程序: import java.awt.*; import java.applet.*; public class Test54 extends Applet { B b; public void init( ) { b=new B( 'f', 87.6f, 69.1f); } public void paint(Graphics g) { g.drawString("序号 "+"性别 "+"成绩1 " +"成绩2 ",20,50); b.Print(g); } } class A { static int n=100; char ch; A( ) { n++; } A( char c){ this( ); ch=c; } void Print(Graphics g) { g.drawString(" "+n+" "+ch,20,70); } } class B extends A { float s1, s2; B(float r1,float r2){ s1=r1; s2=r2; } B( char c, float r1, float r2) { super(c); s1=r1; s2=r2; } void Print(Graphics g) { super.Print(g); g.drawString(" "+s1+" "+s2,40,70); } } 问题: 该程序的输出是什么? 5.已知菲波那契数列的数学表达式为: fibonacci(n)=n, n=0,1; fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), n≥2; 设 m 是 long 型变量,下面是用递归算法求菲波那契数列的方法: long fibonacci(long n) { if(n==0||n==1) return n; else return (fibonacci(n-1)+fibonacci(n-2)); } 问题: 当语句 m=fibonacci(3); 执行时,方法 fibonacci( )被调用了几次? 6. 下面是一个排序的程序: import java.io.*; public class Test56_Sort { public static void main(String args[ ]) { int[] a={42,99,5,63,95,36,2,69,200,96}; System.out.println("排序前的数据序列:"); ShowArray(a); Sort(a); System.out.println("排序后的数据序列:"); ShowArray(a); } public static void Sort(int[] x) { int w; for(int i=1; i<x.length; i++) { for(int j=0; j<x.length-1; j++) if(x[j]>x[j+1]) { w=x[j]; x[j]=x[j+1]; x[j+1]=w; } /* if(i==1||i==2) ShowArray(x); if(i==2) break; */ } } public static void ShowArray(int b[]) { for(int i=0; i<b.length; i++) System.out.print(" "+b[i]); System.out.println(" "); } } 问题: 如果将方法Sort( )中的一对注释符(/* */)去掉,程序输出的结果是什么?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值