第一章 JAVA概述
1、 Java语言采用面向对象的思想编程,具有跨平台、分布式、多线程等优点。( )
2.Java语言是基于__________________计算的计算机语言;TCP/IP协议的编程接口叫做________________________类。 3、Java语言是( ) A、面向问题的解释型高级编程语言 B、面向机器的低级编程语言
C、面向过程的编译型高级编程语言 D、面向对象的解释型高级编程语言 1. Java语言有什么特点?
第二章 基本语法
1、以下哪个不是Java的关键字?( ) A.do B.try C.final D.While 2、以下哪项标识符是不合法的。( ) A.String B.$1 C.x D.3_a
3、以下哪个修饰符可用于定义成员常量?( ) A.final B.static C.abstract D.const 4.以下选项中,合法的赋值语句是( )。 A) a = = 1; B) ++ i;
C) a=a + 1= 5; D) y = int ( i );
5.若所用变量都已正确定义,以下选项中,非法的表达式是( )。 A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 32
6.若a和b均是整型变量并已正确赋值,正确的switch语句是( )。 A) switch(a+b); B) switch( a+b*3.0 ) { ?? } { ?? } C) switch a D) switch ( a%b )
{ ?? } { ?? } 7.下列语句序列执行后,j 的值是( )。 int j=9, i=6; while( i-- >3 ) --j;
A) 5 B) 6 C) 7 D) 8
8.现有一变量声明为boolean aa;下面赋值语句中正确的是( )。 A)aa=false; B)aa=False; C)aa=\
9.设 i,j 为类 x 中定义的 double 型变量名,下列 x 类的构造函数中不正确的是( )。 A) double x(double k ){ i=k; return i; } B) x(double m, double n ){ i=m; j=n; } C) x( ){i=0;j=0 }
D) x(double k ){ i=k; }
10. 设 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){ ... } 11、对于下列代码: public class Example{ String str=new String(\ char ch[]={'d','b','c'}; public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.println(ex.str+\ } public void change(String str,char ch[]){ str=\ } }
输出结果是: ( ) A) hello and d B) hello and a C) world and d D) world and a 12、某个main()方法中有以下代码: String s1,s2; int[] numbers; int num; num=15;
boolean switcher = false;
下列哪个说法是正确的? ( ) A)声明了1个基本类型变量和2个引用变量
B)声明了2个基本类型变量和2个引用变量 C)声明了2个基本类型变量和3个引用变量 D)声明了3个基本类型变量和3个引用变量 13、某个main()方法中有以下代码: double[] num1; double num3=2.0; int num2=5;
num1=new double[num2+1]; num1[num2]=num3;
请问以上程序编译运行后的结果是 ( ) A) num1指向一个有5个元素的double型数组 B) num2指向一个有5个元素的int型数组 C) num1数组的最后一个元素的值为2.0 D) num1数组的第3个元素的值为5 14、考察下列程序代码: final int BASE=10; int nubmer;
下列哪个表达式可以求出number的最后一位数字? ( ) A) number - BASE B) BASE / number C) BASE % number D) number % BASE
15、某个main()方法中有以下的声明: final int MIN=0; final int MAX=10; int num=5;
下列哪个语句可以用来表示”num的值大于等于MIN并且小于等于MAX” ( ) A)!(num public void myMethod1(int num1, char letter) 下列哪个描述是正确的? ( ) A)这个方法有个int型的参数,它的形式参数是letter B)这个方法有个int型的参数,它的形式参数是num1 C)这个方法有个char型的参数,它的实际参数是myMethod1 这个方法是一个构造方法 17.有以下方法的定义,请选择该方法的返回类型( D )。 ReturnType method(byte x, float y) { return (short)x/y*2; } A、byte B、short C、int D、float 18、以下由do-while语句构成的循环执行的次数是( ) int k = 0; do { ++k; }while ( k < 1 ); A、一次也不执行 B、执行1次 C、无限次 D、有语法错,不能执行 19.下面是一个类的定义。 class ____________ // 定义名为myclass的类 { __________ var=666; int getvar() { return var; } } 20、阅读下面的程序,程序保存为Test.java: 1) public class Test 2) { 3) public static void main(String[] args) 4) { 5) System.out.println(args[2]); 6) } 7) } 以上程序经编译后用java Test 1 2 3 运行得到的输出结果是什么? 21、以下程序段的输出结果为 Message Four 。 int x=0,y=4, z=5; if ( x>2){ if (y<5){ System.out.println(“Message one”); } else { System.out.println(“Message two”); } } else if(z>5){ System.out.println(“Message three”); } else { System.out.println(“Message four”); } 22、设x,y,z的值分别为ture、false和false,试计算下列逻辑表达式的值: (1) x &&y||!z&&ture (2) !x||!y&&!z (3) (!x&&!y)||(!y&&!z) (4) x&&y||true&&!z 23、阅读下面的程序,程序保存为Test.java: 8) public class Test 9) { 10) public static void main(String[] args) 11) { 12) System.out.println(args[2]); 13) } 14) } 以上程序经编译后用java Test 1 2 3 运行得到的输出结果是什么? 24、阅读下面的程序: ① public class Test{ ② public static void main(String[] a){ ③ int i = Integer.parseInt(a[0]); ④ switch (i) { ⑤ case 1:System.out.println(\⑥ case 2:System.out.println(\⑦ case 3:System.out.println(\⑧ case 4:System.out.println(\⑨ } ⑩ } ? } 上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,用java Test 2 运行得到的输出结果是什么? 25.设int类型变量x和y分别初始化为3和100,下列语句的循环体共执行几次?执行完下列语句后x和y的值分别是多少? (1) while(x<=y) x=2*x; (2) while(y/x>5) if(y-x>25) x=x+1; else y=y/x; (3) do{x=2*x;} while(x (4) do{x=y/x;y=y-x;}while(x>=y); (5) do{y=y/x-1; if(y>=x) y=x;} while(y>=1); 26、编写一个Java应用程序,在屏幕上输出“Welcome to Java”。 27、根据以下的设计要求编写java源代码。 类名: Circle 实例数据(均为private): radius(double) //圆的半径 方法: 构造方法(没有参数,设置radius的值为10.0) setRadius(有一个double参数,将radius的值设为这个新值), getRadius (没有参数,返回radius的值) sameSize(有一个参数,是另一个Circle对象的引用,如果两个Circle对象的radius的差小于0.001,则返回true) 28、分别利用for、while、do~while编写计算正整数n1到n2的累加和。 11、编写一个编程,给定一个t的值(t的值也可通过命令行输入),按下式计算y值并输出,要求分别写作if语句和switch语句。 t2-1 0≤t<1 t3-2·t-2 1≤t<3 y= t2-t·sint 3≤t<5 t+1 5≤t<7 t-1 其它 29、编写一个java程序Suansu.java,定义两个整型变量a和b,使用构造函数初始化a为10,b为5,并定义求出a与b的和(方法名为AddAB)、差(方法名为SubAB)、积(方法名为MultiAB)、商 (方法名为DivAB)的方法。 用另一个java程序TestSuansu.java测试Suansu.java定义的方法,并在屏幕上输出结果。 30.水仙花数是指其个位、十位、百位三个数的立方和等于这个数本身,求出所有水仙花数。 31.试利用for循环,计算1+2+3+4+5+?+100的总和。 32.利用do?while循环,计算1!+2!+3!+?+100!的总和。 33.使用循环嵌套,编写一个输出如下图形的程序: * * * * * * * * * * * * * * * 第三章 类和对象 1、在编写实现文件读写功能的Java程序时,需要在程序的开头写上语句( A.import java.applet.* ; B.import java.awt.* ; C.import java.io.* ; D.import java.awt.event.* ; 2.有一个类A,以下为其构造函数的声明,其中正确的是( )。 A)void A(int x){...} B)A(int x){...} C)a(int x){...} D)void a(int x){...} 3.下列方法定义中,正确的是( )。 A) int x( int a,b ) B) double x( int a,int b) { return (a-b); } { int w; w=a-b; } C) double x( a,b ) D) int x( int a,int b) { return b; } { return a-b; } 4. 下列类定义中,不正确的是( )。 A) class x { .... } B) class x extends y { .... } C) static class x implements y1,y2 { .... } D) public class x extends Applet { .... } 5、对于下列代码: public class Parent { public int addValue( int a, int b) { int s; s = a+b; return s; } } class Child extends Parent { } 下述哪些方法可以加入类Child? ( ) A) int addValue( int a, int b ){// do something...} B) public void addValue (int a, int b ){// do something...} C) public int addValue( int a ){// do something...} D) public int addValue( int a, int b ) {//do something...} 6、阅读下面的程序,程序保存为Test.java: 1) public class Test 2) { 3) short mValue; 4) public static void main(String[] args) 5) { 6) int a = 32; 7) int b = 56; 8) Test os = new Test(a+b); 9) os.Show( ); 10) } )。 11) protected Test(short aValue) { mValue = aValue; } 12) public void Show( ) { System.out.println(mValue); } 13) } 上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么? 7、在编写实现文件读写功能的Java程序时,需要在程序的开头写上语句( C )。 A.import java.applet.* ; B.import java.awt.* ; C.import java.io.* ; D.import java.awt.event.* ; 8、以下关于构造函数的描述错误的是( A )。 A、构造函数的返回类型只能是void型。 B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 9、关于修饰符static以下叙述错误的是( B )。 A.static方法不可被覆盖 B.static可以用来修饰类 C.static方法不可以直接访问非静态的方法,否则编译出错 D.static方法只能访问类变量或方法参数,不可直接访问成员变量 10.设有下面两个类的定义: class Person { class Student extends Person { long id; // 身份证号 int score; // 入学总分 String name; // 姓名 int getScore(){ } return score; } } 则类Person和类Student的关系是( B )。 A、包含关系 B、继承关系 C、关联关系 D、上述类定义有语法错误 11、给出如下代码: class Test{ //定义成员a public static void fun() { // some code... } } 要在函数fun()中直接访问a,以下成员变量a定义正确的是( B )。 A.public int a; B.static int a; C.int a; D. protected int a; 12、编译并运行以下程序,以下描述哪个选项是正确的( C )。 class ATestOftoString{ protected String toString(){ return super.toString();} } A、编译通过运行无异常 B、编译通过但运行时出错 C、行2出错,不能成功编译 D、不能成功编译,行3出错 13、有以下程序片段,下列哪个选项不能插入到行1。( A ) 1. 2.public class A{ 3.//do sth 4. } A、public class MainClass{ } B、package mine; 14、关于以下application的说明,正确的是( C )。 1. class StaticStuff 2. { 3. static int x; 4. static { x+=5;} 5. public static void main(String args[ ]) 6. { 7. System.out.println(“x=” + x); 8. } 9. static { x/=5;} 10.} A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=1 D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化 C、class ANotherClass{ } D、import java.util.*;