这些题目对我的笔试帮助很大,有需要的朋友都可以来看看,在笔试中能遇到的题目基本上下面都会出现,虽然形式不同,当考察的基本的知识点还是相同的。

在分析中肯定有不足和谬误的地方还请大虾们能够给予及时的纠正,特此感谢。

1.

public class ReturnIt{
returnType methodA(byte x, double y){ //line 2
return (short)x/y*2;
}
} what is valid returnType for methodA in line 2?

答案:返回double类型,因为(short)x将byte类型强制转换为short类型,与double类型运算,将会提升为double类型.

2.

 1)  class Super{
2) public float getNum(){return 3.0f;}
3) }
4)
5) public class Sub extends Super{
6)
7) }

which method, placed at line 6, will cause a compiler error? 
A. public float getNum(){return 4.0f;} 
B. public void getNum(){} 
C. public void getNum(double d){} 
D. public double getNum(float d){return 4.0d;} 
Answer:B

A属于方法的重写(重写只存在于继承关系中),因为修饰符和参数列表都一样.B出现编译错误,如下:

Sub.java:6: Sub 中的 getNum() 无法覆盖 Super 中的 getNum();正在尝试使用不
兼容的返回类型
找到: void
需要: float
   public void getNum(){}
               ^
1 错误

B既不是重写也不是重载,重写需要一样的返回值类型和参数列表,访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private);

重载:必须具有不同的参数列表;
  可以有不同的返回类型,只要参数列表不同就可以了;
  可以有不同的访问修饰符;

把其看做是重载,那么在java中是不能以返回值来区分重载方法的,所以b不对.

3.

public class IfTest{
public static void main(String args[]){
int x=3;
int y=1;
if(x=y)
System.out.println("Not equal");
else
System.out.println("Equal");
}
}

what is the result? 
Answer:compile error 错误在与if(x=y) 中,应该是x==y;  =是赋值符号,==是比较操作符

4.

public class Foo{
public static void main(String args[]){
try{return;}
finally{ System.out.println("Finally");}
}
}

what is the result? 
 A. print out nothing 
 B. print out "Finally" 
 C. compile error 
Answer:B   java的finally块会在return之前执行,无论是否抛出异常且一定执行.

5.

public class Test{
public static String output="";
public static void foo(int i){
try {
if(i==1){
throw new Exception();
}
output +="1";
}
catch(Exception e){
output+="2";
return;
}
finally{
output+="3";
}
output+="4";
}
public static void main(String args[]){
foo(0);
foo(1);
24)
}
}

what is the value of output at line 24? Answer:13423 如果你想出的答案是134234,那么说明对return的理解有了混淆,return是强制函数返回,本题就是针对foo(),那么当执行到return的话,output+="4"; 就不再执行拉,这个函数就算结束拉.

6.

public class IfElse{
public static void main(String args[]){
if(odd(5))
System.out.println("odd");
else
System.out.println("even");
}
public static int odd(int x){return x%2;}
}

what is output? 
     Answer:Compile Error

7.

class ExceptionTest{
public static void main(String args[]){
try{
methodA();
}
catch(IOException e){
System.out.println("caught IOException");
}
catch(Exception e){
System.out.println("caught Exception");
}
}
}

If methodA() throws a IOException, what is the result? (其实还应该加上:import java.io.*;)
Answer:caught IOException 异常的匹配问题,如果2个catch语句换个位置,那就会报错,catch只能是越来越大,意思就是说:catch的从上到下的顺序应该是:孙子异常->孩子异常->父亲异常->老祖先异常.这么个顺序.

8.

int i=1,j=10;
do{
if(i++>--j) continue;
}while(i<5); (注意不要丢了这个分号呦)

After Execution, what are the value for i and j?

A. i=6 j=5 
B. i=5 j=5 
C. i=6 j=4 
D. i=5 j=6 
E. i=6 j=6 
Answer:D

9.

    1)public class X{
2) public Object m(){
3) Object o=new Float(3.14F);
4) Object[] oa=new Object[1];
5) oa[0]=o;
6) o=null;
7) oa[0]=null;
8) System.out.println(oa[0]);
9) }
10) }

which line is the earliest point the object a refered is definitely elibile 
 to be garbage collectioned? 
 A.After line 4   B. After line 5  C.After line 6   
 D.After line 7   E.After line 9(that is,as the method returns) 
 Answer:D

如果 6) o=null 变成 o=9f  ,并且把7)去掉,那么8)将会输出什么呢?

10.

        1)  interface Foo{
2) int k=0;
3) }
4) public class Test implements Foo{
5) public static void main(String args[]){
6) int i;
7) Test test = new Test();
8) i = test.k;
9) i = Test.k;
10) i = Foo.k;
11) }
12) }

what is the result? Answer:compile successed and i=0 接口中的int k=0虽然没有访问修饰符,但在接口中默认是static和final的

11. what is reserved words in java? 
      A. run 
      B. default 
      C. implement 
      D. import 
      Answer:B,D

12.

public class Test{
public static void main(String[] args){
String foo=args[1];
Sring bar=args[2];
String baz=args[3];
}

java Test Red Green Blue 
  what is the value of baz? 
  A. baz has value of ""
  B. baz has value of null 
  C. baz has value of Red 
  D. baz has value of Blue 
  E. baz has value of Green 
  F. the code does not compile 
  G. the program throw an exception 
  Answer:G

分析:感觉原应该多一些语句吧,至少应该有红绿蓝的赋值语句之类的,才能叫java Test Red Green Blue 才能有后面的选项,所以现在感觉很奇怪,不过就这个样子吧.这个问题在于:数组参数的理解,编译程序没有问题,但是运行这个程序就会出现问题,因为参数args没有给他分配空间那么他的长度应该是0,下面却用拉args[1]........等等的语句,那么定会出现越界错误.

错误如下:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Test.main(Test.java:4)

13.

       int index=1;
int foo[]=new int[3];
int bar=foo[index];
int baz=bar+index;

what is the result? 
  A. baz has a value of 0 
  B. baz has value of 1 
  C. baz has value of 2 
  D. an exception is thrown 
  E. the code will not compile 
  Answer:B 

分析:《thinking in java》中的原话:若类的某个成员是基本数据类型,即使没有进行初始化,java也会确保它获得一个默认值,如下表所示:

基本类型 默认值
boolean false
char '/u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d

千万要小心:当变量作为类的成员使用时,java才确保给定其默认值,。。。。。(后面还有很多话,也很重要,大家一定要看完成,要不然还是不清楚)

14. which three are valid declaraction of a float? 
   A. float foo=-1; 
   B. float foo=1.0; 
   C. float foo=42e1; 
   D. float foo=2.02f; 
   E. float foo=3.03d; 
   F. float foo=0x0123; 
Answer:A,D,F 分析:B错误,因为1.0在java中是double类型的,C,E错误同样道理,都是double类型的

15.

public class Foo{
public static void main(String args[]){
String s;
System.out.println("s="+s);
}
}

what is the result? 
Answer:compile error 分析:需要对s进行初始化,和13题是不是矛盾呢:不矛盾,因为它不是基本类型,也不是类的成员,所以不能套用上述的确保初始化的方法。

16.

         1) public class Test{
2) public static void main(String args[]){
3) int i =0xFFFFFFF1;
4) int j=~i;
5)
6) }
7) }

which is decimal value of j at line 5? 
A. 0      B.1    C.14    D.-15    E. compile error at line 3  F. compile error at line 4 
Answer:C  分析:int是32位的(范围应该在-231~231-1),按位取反后,后4位是1110,前面的全部是0,所以肯定是14

17.

      float f=4.2F;
Float g=new Float(4.2F);
Double d=new Double(4.2);

Which are true? 
A. f==g   B. g==g   C. d==f   D. d.equals(f)  E d.equals(g)  F. g.equals(4.2); 
Answer:B,E(网上的答案是B,E;我测试的结果是:true,true,false,false,fasle,fasle,所以答案是:A,B,还请各位大虾明示)

分析:以下是我从网络上找到的,但是感觉应用到这个题目上反而不对拉,郁闷中,希望能给大家有所提示,要是你们明白拉,记得给我留言啊!:~

1.基本类型、对象引用都在栈中; 而对象本身在堆中;

2.“==“比的是两个变量在栈内存中的值,而即使变量引用的是两个对象,“==”比的依旧是变量所拥有的“栈内存地址值”;

3.equals()是每个对象与生俱来的方法,因为所有类的最终基类就是Object(除去Object本身);而equals()是Object的方法之一,也就是说equals()方法来自Object类。 观察一下Object中equals()的source code:

public boolean equals(Object obj) { return (this == obj); }

注意:“return (this == obj)” this与obj都是对象引用,而不是对象本身。所以equals()的缺省实现就是比较“对象引用”是否一致,所以要比较两个对象本身是否一致,须自己编写代码覆盖Object类里的equals()的方法。来看一下String类的equals方法代码:

public boolean equals(Object anObject){
if(this == anObject){
return true;
}
if(anObject instanceof String){
String anotherString = (String)anObject;
int n = count;
if(n == anotherString.count){
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while(n-- != 0){
if(v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}

18.

public class Equals{
public static void add3(Integer i){
int val = i.intValue();
val += 3;
i = new Integer(val);
}
public static void main(String args[]){
Integer i=new Integer(0);
add3(i);
System.out.println(i.intValue());
}
}

what is the result?

A. compile fail       B.print out "0"      C.print out "3"   
D.compile succeded but exception at line 3 
Answer:B   分析:java只有一种参数传递方式,那就是值传递.(大家可以看我转载的另一个同名文章,会让大家豁然开朗)

19.

public class Test{
  public static void main(String[] args){
   System.out.println(6^3);
   }
  }

  what is output? Answer:5 分析: ^ is yi huo(计算机器上是Xor) ;异或的逻辑定义:真^真=假 真^假=真 假^真=真 假^假=假

20.

public class Test{
  public static void stringReplace(String text){
   text=text.replace('j','l');
  }
  public static void bufferReplace(StringBuffer text){
   text=text.append("c");
   }
  public static void main(String args[]){ 
   String textString=new String("java");
   StringBuffer textBuffer=new StringBuffer("java");
   stringReplace(textString);
   bufferReplace(textBuffer);
  System.out.println(textString+textBuffer);
   }
   }

what is the output? 
Answer:javajavac

分析:根据我转载的一篇文章<Java只有一种参数传递方式,那就是传值>可以得出答案,不过还有几个类似的题目,用该文章解释不通,因为本人对java传递参数也一直没有弄明白,所以,还请大虾多多指教.

21.

 public class ConstOver{
     public ConstOver(int x, int y, int z){}
  }

  which two overload the ConstOver constructor? 
  A.ConstOver(){} 
  B.protected int ConstOver(){}  //not overload ,but no a error 
  C.private ConstOver(int z, int y, byte x){} 
  D.public void ConstOver(byte x, byte y, byte z){} 
  E.public Object ConstOver(int x, int y, int z){} 
Answer:A,C

分析:测试不通过的首先是B,E,因为要求有返回值,这2个选项没有,要想通过编译那么需要加上返回值,请注意如果加上返回值,单纯看选项是没有问题拉,可以针对题目来说,那就是错之又错拉,对于构造器来说是一种特殊类型的方法,因为它没有返回值.对于D选项在<java编程思想 第3版>91页有详细的介绍,空返回值,经管方法本身不会自动返回什么,但可以选择返回别的东西的,而构造器是不会返回任何东西的,否则就不叫构造器拉.

22.

public class MethodOver{
  public void setVar(int a, int b, float c){}
  }

  which overload the setVar? 
  A.private void setVar(int a, float c, int b){} 
  B.protected void setVar(int a, int b, float c){} 
  C.public int setVar(int a, float c, int b){return a;} 
  D.public int setVar(int a, float c){return a;} 
Answer:A,C,D 分析:方法的重载,根据概念选择,B是错误的,因为他们有相同的参数列表,所以不属于重载范围.

23.

 class EnclosingOne{
public class InsideOne{}
  }
public class InnerTest{
  public static void main(String args[]){
  EnclosingOne eo=new EnclosingOne();
  //insert code here
  }
}

A.InsideOne ei=eo.new InsideOne(); 
        B.eo.InsideOne ei=eo.new InsideOne(); 
        C.InsideOne ei=EnclosingOne.new InsideOne(); 
        D.InsideOne ei=eo.new InsideOne(); 
        E.EnclosingOne.InsideOne ei=eo.new InsideOne(); 
Answer:E

24. What is "is a" relation? 
  A.public interface Color{} 
   public class Shape{private Color color;} 
  B.interface Component{} 
   class Container implements Component{ private Component[] children; } 
  C.public class Species{} 
  public class Animal{private Species species;}  
  D.interface A{} 
      interface B{} 
      interface C implements A,B{}  //syntex error 
Answer:B 我没有明白这个题目的意思,有人能告诉我嘛?

25.

      1)package foo;
2)
3)public class Outer{
4) public static class Inner{
5) }
6)}

which is true to instantiated Inner class inside Outer? 
  A. new Outer.Inner() 
  B. new Inner() 
Answer:B 
if out of outerclass A is correct  分析:在Outer内部,B方式实例化内部类的方法是正确的,如果在Outer外部进行inner的实例化,那么A方法是正确的.

26.

class BaseClass{
  private float x=1.0f;
  private float getVar(){return x;}
  }
class SubClass extends BaseClass{
  private float x=2.0f;
  //insert code
  }

what are true to override getVar()? 
  A.float getVar(){
  B.public float getVar(){
  C.public double getVar(){
  D.protected float getVar(){
  E.public float getVar(float f){
Answer:A,B,D 分析:返回类型和参数列表必须完全一致,且访问修饰符必须大于被重写方法的访问修饰符.

27.

public class SychTest{
private int x;
private int y;
public void setX(int i){ x=i;}
public void setY(int i){y=i;}
public Synchronized void setXY(int i){
setX(i);
setY(i);
}
public Synchronized boolean check(){
return x!=y;
}
}

Under which conditions will  check() return true when called from a different class? 
A.check() can never return true. 
B.check() can return true when setXY is callled by multiple threads. 
C.check() can return true when multiple threads call setX and setY separately. 
D.check() can only return true if SychTest is changed allow x and y to be set separately. 
Answer:C

分析:答案是C,但是我想不出来一个测试程序来验证C答案.希望高手们给我一个测试的例子吧,万分感谢..........

28.

       1) public class X implements Runnable{
2) private int x;
3) private int y;
4) public static void main(String[] args){
5) X that =new X();
6) (new Thread(that)).start();
7) (new Thread(that)).start();
}
9) public synchronized void run(){
10) for(;;){
11) x++;
12) y++;
13) System.out.println("x="+x+",y="+y);
14) }
15) }
16) }

what is the result? 
      A.compile error at line 6 
      B.the program prints pairs of values for x and y that are always the same on the same time 
      Answer:B 分析:我感觉会出现不相等的情况,但是我说不出为什么会相等。线程方面,还有好多路要走啊,咳

29.

class A implements Runnable{
int i;
public void run(){
try{
Thread.sleep(5000);
i=10;
}catch(InterruptedException e){}
}
public static void main(String[] args){
try{
A a=new A();
Thread t=new Thread(a);
t.start();
17)
int j=a.i;
19)
}catch(Exception e){}
}
}

what be added at line line 17, ensure j=10 at line 19? 
A. a.wait();   B.  t.wait();   C. t.join();   D.t.yield();    E.t.notify();    F. a.notify();     G.t.interrupt(); 
Answer:C

30. Given an ActionEvent, how to indentify the affected component? 
    A.getTarget(); 
    B.getClass(); 
    C.getSource();   //public object 
    D.getActionCommand(); 
Answer:C

31.

 import java.awt.*;
public class X extends Frame{
public static void main(String[] args){
X x=new X();
x.pack();
x.setVisible(true);
}
public X(){
setLayout(new GridLayout(2,2)); Panel p1=new Panel();
add(p1);
Button b1=new Button("One");
p1.add(b1); Panel p2=new Panel();
add(p2);
Button b2=new Button("Two");
p2.add(b2); Button b3=new Button("Three");
p2.add(b3); Button b4=new Button("Four");
add(b4);
}
}

when the frame is resized, 
 A.all change height    B.all change width   C.Button "One" change height 
 D.Button "Two" change height  E.Button "Three" change width 
 F.Button "Four" change height and width 
Answer:F

32.

  1) public class X{
2) public static void main(String[] args){
3) String foo="ABCDE";
4) foo.substring(3);
5) foo.concat("XYZ");
6) }
7) }

what is the value of foo at line 6? 
Answer:ABCDE

33. How to calculate cosine 42 degree? 
  A.double d=Math.cos(42); 
  B.double d=Math.cosine(42); 
  C.double d=Math.cos(Math.toRadians(42)); 
  D.double d=Math.cos(Math.toDegrees(42)); 
  E.double d=Math.toRadious(42); 
Answer:C

34.

public class Test{
public static void main(String[] args){
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
operate(a,b);
System.out.pintln(a+","+b);
}
public static void operate(StringBuffer x, StringBuffer y){
x.append(y);
y=x;
}
}

what is the output? 
Answer:AB,B 分析:这道题的答案是AB,B,网上有很多答案给错啦,大家注意啊。

35.

1) public class Test{
2) public static void main(String[] args){
3) class Foo{
4) public int i=3;
5) }
6) Object o=(Object)new Foo();
7) Foo foo=(Foo)o;
System.out.println(foo.i);
9) }
10) }

what is result? 
  A.compile error at line 6 
  B.compile error at line 7 
  C.print out 3 
Answer:C

36.

 public class FooBar{
public static void main(String[] args){
int i=0,j=5;
4) tp: for(;;i++){
for(;;--j)
if(i>j)break tp;
}
System.out.println("i="+i+",j="+j);
}
}

what is the result? 
  A.i=1,j=-1    B. i=0,j=-1  C.i=1,j=4    D.i=0,j=4   
  E.compile error at line 4 
Answer:B

37.

public class Foo{
public static void main(String[] args){
try{System.exit(0);}
finally{System.out.println("Finally");}
}
}

what is the result? 
   A.print out nothing 
   B.print out "Finally" 
 Answer:A 
 system.exit(0) has exit

38. which four types of objects can be thrown use "throws"? 
  A.Error 
  B.Event 
  C.Object 
  D.Excption 
  E.Throwable 
  F.RuntimeException 
Answer:A,D,E,F

分析:throw,例如:throw new IllegalAccessException("demo");是一个动作。
而throws则是异常块儿的声明。所以感觉题目应该是“throw”

39.

       1)public class Test{
2) public static void main(String[] args){
3) unsigned byte b=0;
4) b--;
5)
6) }
7) }

what is the value of b at line 5? 
 A.-1   B.255  C.127  D.compile fail  E.compile succeeded but run error 
Answer:D

40.

public class ExceptionTest{
class TestException extends Exception{}
public void runTest() throws TestException{}
public void test() /* point x */ {
runTest();
}
}

At point x, which code can be add on to make the code compile? 
A.throws Exception   B.catch (Exception e) 
Answer:A

41.

String foo="blue";
boolean[] bar=new boolean[1];
if(bar[0]){
foo="green";
}

what is the value of foo? 
A.""  B.null  C.blue   D.green 
Answer:C

42.

public class X{
public static void main(String args[]){
Object o1=new Object();
Object o2=o1;
if(o1.equals(o2)){
System.out.prinln("Equal");
}
}

what is result? 
Answer:Equal

Java 经典笔试题的更多相关文章

  1. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

  2. 【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)

    经典10道c/c++语言经典笔试题(含全部所有参考答案) 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n ...

  3. 2019年19道java经典面试题(附答案)

    1.不可变对象 指对象一旦被创建状态不能再改变.任何修改都会创建一个新的对象,如 String.Integer及其它包装类. 2.能否创建一个包含可变对象的不可变对象? 可以.不要共享可变对象的引用就 ...

  4. 115道Java经典面试题(面中率最高、最全)

    115道Java经典面试题(面中率最高.最全) Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可 ...

  5. Java 面试/笔试题神整理 [Java web and android]

    Java 面试/笔试题神整理 一.Java web 相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并 ...

  6. Java工程师笔试题整理[校招篇]

    Java工程师笔试题整理[校招篇]     隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...

  7. Java基础&笔试题

    这些题目是近期我参加过的笔试题和一些我在网上选的部分题,在这里做笔记,认真去学习,更好的应对后面的招聘.有错误欢迎指出. 一.Java基础部分 1.指针在任何情况下都可进行>,<,> ...

  8. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  9. 经典笔试题:用C写一个函数测试当前机器大小端模式

    “用C语言写一个函数测试当前机器的大小端模式”是一个经典的笔试题,如下使用两种方式进行解答: 1. 用union来测试机器的大小端 #include <stdio.h> union tes ...

随机推荐

  1. Java-JFrame开发汇总整理

    Java-JFrame开发汇总整理 在CS框架下,可以通过java代码开发JFrame弹窗体的功能,即类似于QQ登录等安装在计算机中的程序,通过java开发CS中C即客户端的一般用到的知识点如下: 一 ...

  2. 基于Centos7.2搭建Cobbler自动化批量部署操作系统服务

    1       Cobbler服务器端系统环境配置 1.1     系统基本环境准备 [root@cobbler-server ~]# cat /etc/redhat-release CentOS L ...

  3. PHP四种序列化方案

    原文地址:https://t.ti-node.com/thread/... 数据的序列化是一个非常有用的功能,然而目测很多人跟我一样,在刚接触这玩意的时候压根就不理解这货色到底是干啥用的,反正老师说了 ...

  4. thinkcmf5增加微信管理app笔记

    simplewind/extend/目录下增加 EasyWeChat Monolog   //是PHP的一个日志类库  https://segmentfault.com/a/1190000002775 ...

  5. 多线程辅助类之CountDownLatch(三)

    CountDownLatch信号灯是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待.它可以实现多线程的同步互斥功能,和wait和notify方法实现功能类似,具体 ...

  6. sqli-labs less1 &&less3&&less4学习心得

    0x01.less1 id=1/ id=1 and 1=1结果正常 id=1 and 1=2结果正常,不合理 id=1'提示:

  7. 同一条sql在mysql5.6和5.7版本遇到的问题。

    之前用的是mysql 5.6版本,执行select * from table group by colunm 是可以出结果的, 但是切换的5.7版本,这条sql就报错, Expression #1 o ...

  8. 如何锁定Android系统CPU的频率

    接触到了Android系统的Performance测试,所以有锁定CPU的需求: 由于要首先读取到此系统所支持的CPU频率,之后再所支持的频率中选取你想要的频率,之后进行锁定. 这个过程,手动也是可以 ...

  9. WPF触控程序的开发(一)——有用的资源

    迟来的一篇博文,每次都要撞到月末,这个月实在太忙了,除了在公司上班,还接了个单子,用wpf做一个触屏软件,类似iphone的相册功能.先说搭建开发环境吧,我是不可能去买个平板来的,再说基于win7的程 ...

  10. delphi xe7 多线程调用CMD,使用管道,临界区技术,实现指定用户名,多线程,异步返回CMD命令结果到memo

    第一次发这个,发现格式很乱,不好看,可以用XE7的project--format project sources命令格式化一下代码. 后面我会上传此次修改函数用的源代码到云盘 链接: http://p ...