一、选择题
1.下列说法,哪个是正确的( )。
A. Java是不区分大小写的,源文件名与程序类名不允许相同 B.Java语言以方法作为程序的基本单位
C.Applet是Java的一类特殊应用程序,它嵌入到HTML中,随主页发布到互联网上 D. 以//开始的为多行注释语句
2.下列特点中,哪个是Java虚拟机执行的特点之一( )。 A.字节代码 B. 多进程 C. 静态连接 D. 编译 3.Java语言的许多特点中,( )是C++语言不具备的。 A.高性能 B. 跨平台 C. 面向对象 D. 有类库
4.Java 虚拟机的执行有多个特点,下列哪个特点不是JVM的执行特点( )。 A.多线程 B. 动态连接 C. 异常处理 D. 异步处理
5.Java语言有多种实现的机制,下列( )技术属于垃圾回收机制。 A. 字节编译 B. 内存跟踪 C. 语法检查 D. 堆栈上下溢出检查 6.下列( )是合法标识符号。
A._BOOK B. 5files C. +static D. -3.14159 7. 下列( )数代表8进制整数。
A. OXA6 B. 0144 C. 1840 D. -1E3 8. 下列( )数代表单精度浮点数。
A. 0652 B. 3.4457 C. 0.298F D. 4.76D 9. 下列( )数代表16进制整数。
A. 0123 B. 1900 C. fa00 D. 0xa2 10. 下列( )是反斜杠字符的正确表示。
A. \\\\ B. *\\\\ C. \\ D. \\’\\’ 11.下列程序的执行结果是( )。 public class Test{
public static void main(String args[]){ float t=9.0f; int q=5;
System.out.println((t++)*(--q)); }}
A. 40 B. 40.0 C. 36 D. 36.0 12. 下列程序的执行结果是( )。 public class Test{
public static void main(String args[]){ System.out.println(5/2); }}
A. 2.5 B. 2.0 C. 2.50 D. 2 13. 下列程序的执行结果是( )。 public class Test{
public static void main(String args[]){ System.out.println(100%3); System.out.println(100%3.0);
}}
A. 1 1 B. 1 1.0 C. 1.0 1 D. 1.0 1.0 14. 下列程序的执行结果是( )。 public class Test{
public static void main(String args[]){ int a=4,b=6,c=8; String s=”abc”;
System.out.println(a+b+s+c); }}
A. ababcc B. 464688 C. 46abc8 D. 10abc8 15. 下列代码的执行结果是( )。 public class Test{
public static void main(String args[]){ String s1=new String(“Hello”); String s2=new String(“Hello”); System.out.println(s1==s2);
System.out.println(s1.equals(s2)); }} A. true false B. true true C. false true D. false false 16. 下列程序的哪个m值将引起default的输出( )。 public class Test{
public static void main(String args[]){ int m; switch(m);
case 0: System.out.println(“case 0”);
case 1: System.out.println(“case 1”); break; case 2:
default: System.out.println(“default!”); break; }}
A. 0 B. 1 C. 2 D. 前3个数都不行 17. main方法的返回类型是( )。
A. int B. void C. Boolean D. static 18. 对于下列代码片断,下列选择中,( )会被输出到屏幕。 int i=3, j;
outer: while(i>0) { j=3;
inner: while(j>0) { if(j<2) break outer;
System.out.println(j+”and ”+i); j--; } i--; }
3and3 2and3
A. 3 and 3 B. 3 and 2 C. 3 and 1 D. 3 and 0
19. 对于代码片断,问x处于什么范围时将打印字符串“second”( )。 if(x>0) System.out.println(”First”);
else if(x>-3) System.out.println(”second ”); else System.out.println(”Third ”);
A. X>0 B. x>-3 C. x<=-3 D. x<=0且x>-3 20. Switch语句不能用于下列哪种数据类型( )。
A. double B. byte C. short D. char 21.下列说法,哪个是正确的( )。
A. 类是变量和方法的集合体; B. 数组是无序数据的集合; C. 抽象类可以被实例化 D. 类成员数据必须是公有的 22.下列对形参的说法,哪个是正确的( )。
A. 必须有多个 ; B. 至少有一个; C. 可以没有 D. 只能是简单变量 23.构造方法( )被调用。
A. 类定义时 ; B. 创建对象时;
C. 调用对象方法时 D. 使用对象的变量时 24.下列对继承的说法,哪个是正确的( )。 A. 子类能够继承父类的所有状态和方法; B. 子类能够继承父类的非私有状态和方法; C. 子类只能继承父类的public状态和方法; D. 子类只能继承父类的方法,而不能继承状态; 25.下列关于接口的说法,正确的是( )。 A. 接口与抽象类是相同的概念;
B. 实现一个接口,必须实现接口的所有方法; C. 接口之间不能有继承关系; D. 一个类只能实现一个接口;
二、填空题
1.多线程是Java程序的( )机制,它能同步共享数据、处理不同事件。
2.每个Java应用程序可以包括许多方法,但必须有且只能有一个( )方法。 3.每个Java源文件中只能有一个( )类,其他类的个数不限。
4.Java语言通过接口支持( )继承,使类继承具有更灵活的扩展性。 5.Java语言中( )是所有类的根。 6. 按作用域分,变量有局部变量、( ),方法参数和异常处理参数。 7.Java语言的各种数据类型之间提供两种转换:( )和强制转换。 8.字符变量以char类型表示,它在内存中占据( )bits.
9. Java语言的给中数据类型之间提供自动转换,如第1操作数为byte型,第2操作数为float型,其结果为( )型。
10.在Java语言中,如果一个小数的后面没有任何字母标记,计算机默认为( )型。
11. A++和++A在语句中是否相同( )。
12. 移位运算符可以起到对操作数乘以2或者除以2的作用。那么对操作数实现除以2
运算的运算符号是( )。
13.在对一个复杂的表达式进行运算时,要按照运算符的优先级顺序从高到低进行,同级的运算符则按照( )进行。
14.算术运算符按照下面的级别次序排列:++和――的级别最高,然后是( )和/以及%,而加号和减号的运算级别最低。
15.赋值表达式的组成规则是:在赋值运算符的左边是( ),右边是一个表达式。 16. Java下的循环语句包括( )( )和( )。
17.Else子句不能单独作为语句使用,它必须和if子句配对使用。那么else与if的配对原则是:else子句总是与离它( )的if子句配对使用。 18.Java的跳转语句中( )【有/没有】goto语句。 19.递归的基本思想是“自己调用自己”,一个使用递归技术的方法将直接或间接地调用( )的方法。
20.Break语句的最常用方法是在switch语句中,通过break语句退出switch语句,使程序从( )处继续执行。
21.Java语言中,调用方法时,参数传递是( )调用,而不是引用调用。 22.接口是一种只含有抽象方法或( )的一种特殊抽象类; 23.Object类是Java所有类的( )。 24.new是( )对象的操作符。
25.在一个类的内部,嵌套定义的类称为( )。
三、简答与操作题
1.简述什么是继承?继承在面向对象的程序设计中有什么意义? 2.简述什么是多态性,它有哪几种常见的形式? 3.简述下列语句的含义:
~(~0>>>21)&(x+y-z)
首先计算出x+y-z的值,然后把低21位清0。 4.阅读程序,改正错误: public class Test{
public static void main(string args[]){ int a=0,b=100; if((a!=0)&(b/a=1))
System.out.println(‘Success!’); }}
5.阅读程序,改正错误: public class Test{
public static void main(String args[]){ float f=1.0; f+=1.0;
System.out.println(f); }}
四、程序填空题
1.阅读程序,完善补充程序:
程序的功能是验证6~1000之内的所有偶数都能表示为两个素数之和(歌德巴赫猜
想)。请把程序补充完整。 public class Test{
public static void main(String args[]){ for(int i=6; i<=1000; i+=2){ for(int j=2;j<1000;j++) {
_____________________________________
System.out.println(i+”=”+j+”+”+(i-j)); break; } } }
public static boolean zhishu(int n){ int i;
for(i=2;i<=n/2;i++)
if(n%i==0) return __false___________; return true; } }
2.阅读程序,完善补充程序:
程序的功能是对输入的年份判定一下是不是闰年。请把程序补充完整。 import javax.swing.*; public class Test{
public static void main(String args[]){ String cc; int x;
cc=JOptionPane.(showInputDailog)(“请输入一个整数:”); x=Integer.(parseInt)(cc);
if(x%4==0&&x%100!=0||x%400==0)
System.out.println(x+”年是闰年!”); else
System.out.println(x+”年不是闰年!”); } }
3.阅读程序,完善补充程序:
程序的功能是对数组中的数据逆序输出。请把程序补充完整。 import java.io.*; public class Test{
public static void main(String args[]){ int i;
int a[]=new int[5];
for(i=0;i<5;i++) a[i]=(i+100)/2; for(i=4;i>=0;i--)
System.out.println(a[i]);
} }
4.程序的功能是单击按钮【求平方】,就能够输出文本框中输入数据的平方,请把程序补充完整。
import java.awt.*; import java.applet.*; import java.awt.event.*;
public class Tuxing extends Applet {
public TextField in=new TextField(10); Button btn=new Button(\"求平方\");
public Label out=new Label(\"结果是 \"); public void init() {
setLayout(new FlowLayout()); add(in); add(btn); add(out);
btn.addActionListener(new btnAction()); }
public void paint(Graphics g) {
g.drawString(\"Welcome to Java!!\ }
class btnAction implements ActionListener{ public void actionPerformed(ActionEvent e){ String s=in.getText();
double d=Double.parseDouble(s); double sq=d*d;
out.setText(d+\"的平方是\"+sq); } } }
5.程序的功能是单击按钮【求平方】,就能够输出文本框中输入数据的平方,请把程序补充完整。
import java.awt.*; import java.applet.*; import java.awt.event.*;
public class Tuxing extends Applet {
public TextField in=new TextField(10); Button btn = new Button(“求平方”);
public Label out=new Label(\"结果是 \");
public void init() {
setLayout(new FlowLayout()); add(in); add(btn); add(out);
btn.addActionListener(new ActionListener (){
public void actionPerformed(ActionEvent e){ String s=in.getText();
double d=Double.parseDouble(s); double sq=d*d;
out.setText(d+\"的平方是\"+sq); } }); }
public void paint(Graphics g) {
g.drawString(\"Welcome to Java!!\ } }
五、程序设计题
已知斐波那蛪数列的含义是:F(0)=0; F(1)=1; F(N)=F(N-1)+F(N-2),请编写程序求出该数列的前100项。
2008年 Java模拟试卷二
一、单选题:(每题1分)下列各题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. 不能构成循环的语句是( C )。
A) for 语句 B) while 语句 C) switch 语句 D) do__while 语句 23. 下列程序段执行后 b3 的结果是( )。
boolean b1=true, b2, b3; 24= b1 ? b1 : b2;
A) 0 B) 1 C) true D) false 25 下面数据结构中,属于非线性的是( )。
A) 线性表 B) 树 C) 队列 D) 堆栈 二、填空题:(每空1分)
1. 构造函数_______没有_____________(没有/有)返回值。
2. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 _____double_____两种具体类型。
3. 创建类对象的运算符是_new___________________。
4. 当整型变量n的值不能被13除尽时,其值为 false 的Java语言表达式是_____n%13==0________ 。
5. 在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的_元素________个数。
6. 定义类就是定义一种抽象的___数据类型_________,它是所有具有一定共性的对象的抽象描述。
7. 在Java语言中,使用_____继承_______、__重载_________等技术,实现软件重用。 8. 表达式3/6 * 5的计算结果是________0______ 。 9.下面是一个类的定义:
public class __Myclass__________ {
int x, y;
Myclass ( int i, ___int j____) // 构造函数 {
x=i; y=j; } }
10.下面是一个Java Application 的主类的定义,其功能是输出所有命令行参数。 import java.io.*;
public class MyClass {
public static void main(String args[ ]) { if( args.length !=_0__)
for(int i=0; i < args.length; i++)
System.out.println(_args[i]__________); else System.out.println(“没有命令行参数”); } }
11下面是一个小程序的主类myprogram的定义, 其中A、B是该主类所在源程序中已定义的另两个类的类名:
import java awt.*; import java applet.*;
public class myprogram extends Applet//定义小程序的主类 { A a; B b;
public __void______ init( )
{ a=new A( ); b=___new__ B( ); }
}
12. Java的复合数据类型有: 类、数组和___字符串____等。 13. 表达式23/6 * 5的计算结果是__15______ 。
14.定义初值为10的10次方的长整型变量 lvar 的语句是:long lvar = 10E10_。
15. 顺序结构、分支结构(或称选择结构)、__循环结构__________是结构化程序设计的三种基本流程控制结构。
16. 以下方法 m 的功能是求两参数之积的整数部分。 int m ( float x, float y )
{ ________return (int)( x*y)__________; }
17. Java 源程序文件编译后产生的文件称为_字节码文件_______文件,其扩展名为 _________.class__ 。
18.Java 和 c++都是面向对象的程序设计语言。其中具有跨平台特点的语言是__java ______。 三、程序分析:(每题4分) 1. 下面是一个排序的程序: 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 { 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 public class Test52 { String str1=”Hello, Java world! \”; String str2=”Hello, students!”; public static void main(String args[]) { System.out.print(str1); System.out.println(str2); } } 输出结果: 3. 请写下程序的输出结果: public class T2_4 { public static void main(String[] args) { int i,j; char c='*'; for(i=0;i<5;i++) { for(j=0;j<=i;j++) System.out.print(\"* \"); System.out.println(); } } } 输出结果: 4、请写下程序的输出结果: public class ex2_2 { public static void main (String args[ ] ) { int x , y ; byte b = 6; float z = 1.234f ; double w = 1.23; boolean flag; x = 12 ; y = 300; flag=x>y; System.out.println(\"x>y==\"+flag); flag=z>w; System.out.println(\"z>w==\"+flag); } } 四、问答题: 1. Java的接口和C++的虚类的相同和不同处。 2. 垃圾回收的优点和原理。并考虑2种回收机制。 3. 谈谈final, finally, finalize的区别。 4. 数组有没有length()这个方法? String有没有length()这个方法?举例说明使用方法? 5. Java中的异常处理机制的简单原理和应用。 6. 请说出你所知道的线程同步的方法。 五、程序设计:(每题11分,共33分) 1、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 2、编程求解:所有两位整数能被3整除的数的和,以及不能被3整除的数的各位数字之和。 3、设计一个程序求解e的值。精度达到1.0e-6, 4、请设计一个对N个数进行排序的程序 因篇幅问题不能全部显示,请点此查看更多更全内容