java程序设计题库
选择题
答题要求:单选题,每题只有一个正确答案,选择正确给分,不正确不给分。
1、 下面( A )数据类型可用于main()方法中传递的参数
A、String B、Integer C、Boolean D、Variant
2、以下的选项中能正确表示Java语言中的一个整型常量的是( B )
A、12. B、-20 C、1,000 D、4 5 6
3、下列的变量定义中,正确的是( D )
A、boolean b1="true"; B、float x=6.6;
C、byte i=200; D、double y;
4、在屏幕上显示的消息正确的语句是( A )
A、System.out.println("I am Java Expert");
B、system.out.println("I am Java Expert");
C、System.Out.Println("I am Java Expert");
D、System.out.println('I am Java Expert');
5、下面( B )命令可用于编译Java程序
A、java B、javac C、appletviewer D、javadoc
6、Java编译器会将Java程序转换为( A )
A、字节码 B、可执行代码
C、机器代码 D、以上所有选项都不正确
7、以下字符常量中不合法的是( C )
A、'@' B、'&' C、"k" D、'整'
8、以下的选项中能正确表示Java语言中的一个double型常量的是( C )
A、Float.MIN_VALUE B、1.8e-6F
C、2.0 D、'abc'
9、以下的变量定义语句中,合法的是( C )。
A、float $_*5= 3.4F; B、byte b1= 15678;
C、int $abc=5; D、int class="5";
10、在一个类中定义的成员变量和成员方法时,不允许( A )。
A. 两个成员变量名相同.
B. 成员变量与成员方法名相同.
C. 两个成员方法名相同
D. 成员方法中的参数与成员变量名相同
11、下列叙述正确的是 ( B )
A. 在类中的构造方法的名字与类的名字相同, 而且不能重载
B. 在类中的构造方法的名字与类的名字相同,但没有返回类型.
C. 在类中的构造方法的名字与类的名字相同,而且有返回类型.
D. 在类中的构造方法的名字与类的名字相同,而且不能初始化.
12、Java application中的主类需包含main方法,main方法的返回类型是什么?( D )
A、int B、float C、double D、void
13、给出如下代码:
class Test{
private int m;
public static void fun() {
// some code...
}
}
如何使成员变量m 被函数fun()直接访问?( C )
A、将private int m 改为protected int m
B、将private int m 改为 public int m
C、将private int m 改为 static int m
D、将private int m 改为 int m
14、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为(C )。
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
15、执行下面的程序,输出结果是( B )。
public class Test {
int x= 12;
public void method(int x) {
x+=x;
System.out.println(x);
}
public static void main(String[] args){
Test t = new Test();
t.method(5);
}}
A. 5 B. 10 C. 12 D. 17 E. 24
16、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );
则该方法属于( C)。 。
A. 本地方法. B. 解态方法. C. 最终方法 D. 抽象方法
17、下列叙述正确的是 ( D )
A. 子类可以继承父类的所有成员。
B.. 除了继承父类的成员以外,子类不可以创建自己的成员。
C. 当实例化子类时,父类的构造方法不被调用。
D. 子类只能继承父类的非私有成员。.
18、某java程序的类定义如下: public class MyClass extends BaseClass{ }
则该java源文件在存盘时的源文件名应为如下哪一种:( D )
A. myclass.java B. Myclass.java C. MYCLASS.java D. MyClass.java
19、给出如下代码:
class A{
public A(){
System.out.print("A");
}
}
public class B extends A{
public B(){
System.out.print("B");
}
public static void main(String[ ] args){
new B( );
}
}
程序的输出结果( A )
A、AB B、A C、B D、BA
20、以下哪个接口的定义是正确的?( D )。
A、 interface A
{ void print() { } ;}
B、 abstract interface A
{ void print() ;}
C、 abstract interface A extends I1, I2 //I1、I2为已定义的接口
{ abstract void print(){ };}
D、 interface A
{ void print();}
21、下面选项中能把字符串转换成float类型的是?(B)
A. float value = new Float(str);
B. float value = Float.parseFloat(str);
C. float value = Float.floatValue(str);
D. float value = (new Float()).parseFloat(str)
22、在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是( C )
A. public get (float x)
B. int getSort(int y)
C. double getSort(int x,int y)
D. void get(int x,int y)
23、下边程序运行的输出结果是( B )
class Base{
Base(){System.out.print("Base");}
}
public class Alpha extends Base {
public static void main(String[] args){
new Alpha();
new Base();
}
}
A、Base B、BaseBase C、程序编译失败 D、程序运行但没有任何输出
24、下列说法正确的是( C )。
A. 一个子类可以有多个父类,一个父类也可以有多个子类
B. 一个子类可以有多个父类,但一个父类只可以有一个子类
C. 一个子类可以有一个父类,但一个父类可以有多个子类
D. 上述说法都不对
25、关于下面程序片段,(B )的结论是正确的。
String a = "Java"; String b = "Java";
String x = "Ja"; String y = "va";
String c = x + y;
A、a和b指向同一个实例对象,a和c指向同一个实例对象
B、a和b指向同一个实例对象,a和c不指向同一个实例对象
C、a和b不指向同一个实例对象,a和c指向同一个实例对象
D、a和b不指向同一个实例对象,a和c不指向同一个实例对象
26、下面这段代码会产生(C )个String对象。
String s1 = "hello"; String s2 = s1.substring(2, 3);
String s3 = s1.toString(); String s4 = new StringBuffer(s1).toString();
A、1 B、2 C、3 D、4
27、设有定义:String s=”World”;,下列语句错误的是( D )。
A、int m=s.indexOf(‘r’); B、char c=s.charAt(0); C、int n=s.length(); D、String str=s.append();
28、已知int i = 2147483647; ++i; 则i的值等于( A )。
A、-2147483648 B、2147483647 C、2147483648 D、-1
29、若x = 5,y = 8,则表达式x|y的值为( B )。
A、3 B、13 C、0 D、5
30、执行String[ ] s=new String[10];语句后,哪个结论是正确的?(B )
A、s[0] 为 未定义 B、s.length 为10 C、s.length 为11 D、s[10] 为 ""
31、下列说法不正确的是( D )。
A、表达式“1+2>3”的值是false B、表达式“1+2||3”是非法的表达式
C、表达式“i+j=1”是非法的表达式 D、表达式“1+2>3”的值是true
32、若String s = "hello"; String t = "hello"; char c[] = {'h','e','l','l','o'} ; 则下列哪个表达式返回false?( C )
A、s.equals(t); B、t.equals(new String("hello")); C、t.equals(c); D、s==t;
33、执行完下面程序片段后,( B)的结论是正确的。
int a, b, c; a = 1; b = 2; c = (a + b > 3 ? a++ : b++);
A、a的值是2,b的值是3 B、a的值是1,b的值是3
C、a的值是1,b的值是2 D、c的值是false
34、下面程序片段输出的是( D )。
int i = 0, j = 9;
do {
if(i++ > --j) break;
} while(i < 4);
System.out.println("i = " + i + " and j = " + j);
A、i = 4 and j = 4 B、i = 5 and j = 5 C、i = 5 and j = 4 D、i = 4 and j = 5
35、设有定义“int k=3;”,语法正确且值为true的表达式是(D )。
A、k=3; B、k++>3; C、k--==3&&k++==3; D、k++==3||++k>3;
36、若有定义int a = 2;则执行完语句 a -= a * a; 后,a的值是(C )。
A、 0 B)、4 C、 -2 D、 –4
37、下列语句序列执行后,j 的值是(A )。 int j=1;
for( int i=5; i>0; i-=2 ) j*=i;
A、 15 B、1 C、 60 D、 0
38、以下由 for 语句构成的循环执行的次数是( B )。
for ( int i = 0; true ; i++) ;
A、有语法错,不能执行 B、无限次 C、执行1次 D、一次也不执行
39、下列语句序列执行后,j 的值是(B )。
int j=9, i=6;
while( i-- >3 ) --j;
A) 5 B) 6 C) 7 D) 8
40. 若有循环:
int x=5,y=20;
do { y-=x; x+=2; }while(x<y);
则循环体将被执行(A )。
A) 2次 B) 1次 C) 0次 D) 3次
41. 下列语句序列执行后,i的值是( A)。
int i=10;
do { i/=2; } while( i>1 );
A) 1 B) 5 C) 2 D) 0
42. 以下语句中能构成多分支的语句是( C )。
A) for 语句 B) while 语句
C) switch 语句 D) do - while 语句
43. 能从循环语句的循环体中跳出的语句是(B )。
A)for语句 B)break语句 C) continue语句 D)return语句
44.字符流与字节流的区别是( A )。
A、每次读入的字节数不同 B、前者带有缓冲,后者没有
C、前者是块读写,后者是字节读写 D、二者没有区别,可以互换使用
45.下面关于使用throw关键字抛出的对象说法正确的是( A )。
A、它必须被声明为Throwable类型 B、它必须被声明为error类型
C、它必须被声明为Exception类型 D、它必须被声明为String类型
46.在oneMethod()方法运行正常的情况下,程序段将输出什么? ( D)
public void test(){
try{
oneMethod();
System.out.println("condition1");
} catch (ArrayIndexOutOfBoundsExceptione){
System.out.println("condition2");
} catch(Exceptione){
System.out.println("condition3");
} finally{
System.out.println("finally");
}
}
A、condition1 B、condition2 C、condition3 D、condition1finally
47.下列常见的系统定义的异常中,哪个是输入、输出异常? (B )
A、ClassNotFoundException B、IOException
C、NumberFormatException D、UnknownHostException
48.下列InputStream类中哪个方法可以用于关闭流? (B )
A、skip() B、close() C、mark() D、reset()
49.下面关于try-catch-finally语句块中有关finally说法正确的是( C )
A、它只会在catch语句块执行结束后才会执行
B、它只有在catch语句块不被执行的情况下才会被执行
C、不管有没有异常产生它总会被执行
D、只有在有异常产生的情况下它才会被执行
50.关于异常的应用,下列说法恰当的是( B )
A、在java中,使用异常很方便、很有效,因而,只要能使用异常的地方应尽量使用异常
B、在程序中过多的使用异常,会使程序的执行效率降低
C、异常产生后,我们只需捕获它,至于是否对异常给与处理,无所谓
D、Java中的异常全部都被预先定义好了,程序员无需自行定义异常类
51.如果一个程序段中有多个catch,则程序会按如下哪种情况执行( C )
A.找到适合的例外类型后继续执行后面的catch
B.找到每个符合条件的catch都执行一次
C.找到适合的例外类型后就不再执行后面的catch
D.对每个catch都执行一次
52.属于Java输入输出流的、且处理的是char类型的类是( A )
A、Reader类 B、InputStream类 C、OutputStream类 D、File类
53. 下列不属于面向对象编程的三个特征的是( B )。
A. 封装 B. 指针操作 C. 多态 D. 继承
54. 以下字符串常量中不合法的是( B )。
A. "q" B. ‘&’ C. "k" D. "整数"
55. public int getGameScore(),getGameScore这个方法的返回值类型是( A )。
A. int B. void C. INT D. short
56. 在java中语句:37.2%10的运算结果为( C )。
A. 37 B. 2 C. 7.2 D. "0"
57. 若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是( C ) 。
A. 1 B. 2 C. 2.0 D. 2.5
58. 关于while和do-while循环,下列说法正确的是:( D ) 。
A. 两种循环除了格式不同外,功能完全相同
B. 与do-while语句不通的是,while语句的循环至少执行一次
C. do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句
D. 以上都不对
59. 下面( C )表达式是声明一个含有10个String对象的数组。
A. char str[ ]; B. char str[ ][ ];
C. String str[ ]=new String[10]; D. String str[10];
60. 多分支语句switch(表达式){}中,表达式可以返回哪种类型的值( B )。
A. 实型 B. 字符型 C. 数组 D. 布尔型
61. 下列不属于条件语句关键字的是: ( A )。
A. for B. if C.else D. switch
62. 下列类的定义,错误的是( D )。
A. public class test extends Object{
…… }
B. final class operators{
……}
C. class Point{
…… }
D. void class Point{
…… }
63. 下面表达式中,用来访问数组a中第一个元素的是( A )。
A. a[0] B. a[1] C. a.0 D. a.1
64. a为true时,值为“真”的表达式是( A )。
A. a B.!(++a) C. a=true D. a==0
65. 下面命令中( A )可用于解释Java程序。
A. java B. javac C. javaapplview D. javadoc
66. 方法的形参是( A )。
A. 可以没有 B. 至少有一个
C. 方法必须都含有 D. 一个方法中可以有多个return
67. 有一个类A,对于其构造函数的声明正确的是( B )。
A. void A(int x){…} B. public A(int x){…}
C. A A(int x) {…} D. int A(int x) {…}
68. 设Test为已定义的类,下面声明类Test对象a的语句正确的是( C )。
A. Test a=Test(); B. public Test a;
C. Test a=new Test(); D. public Test a=new Test();
69. 如下哪个是Java中的正确的标识符( D )。
A. public B. super C. 3number D. width
70. 定义一个类,必须使用的关键字是( B )。
A. public B. class C. interface D. static
71. 下列数组声明语句错误的是:( C )。
A. int [] a; B. int a[]; C. int a[5]; D. int[]a=new int[5];
72. Java语言属于下列哪一种语言( B )。
A. 面向过程语言 B.面向对象语言
C. 面向机器语言 D. 面向操作系统语言
73. 现有一个整型数组a [4],它的所有元素是( B )。
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]
填空题
答题要求:每空只有一个正确答案,填对给分,填不对不给分。
1. 若有定义 int[ ] a = new int[8]; 则a的数组元素中第7个元素和第8个元素的下标分别是( 6 )和( 7 )。
2. Scanner类在( java.util )包下面。
3. JVM是指( java虚拟机)。
4. 假设有一个JAVA应用程序,其源程序文件名是Morning.java,则编译该源程序时应该在命令提示符窗口中输( javac Morning.java )命令,运行该程序时应该在命令提示符窗口中输入(java Morning)命令。
5. 要声明整型数组a,应该用语句( int a[ ]; )。
6. 要定义x为int类型的数组,并且数组元素的初值是1、2、3、4、5,则可以用一条语句( int[ ]x={1,2,3,4,5}; )。
7. 在Java语言中,所有的数组都有一个( length )属性,这个属性存储了该数组的元素的个数或者说数组长度。
8. 面向对象程序设计的四个特性是:抽象性、(继承性)、(封装性)、(多态性)。
9. Java中类成员的限定词有以下几种:private 缺省, ( public ), (protected )。其中(public)的限定的范围最大。
10. 用于创建类实例对象的运算符是(new), Java中所有类都是类(Object)的子类。
11. 构造方法的方法名与(类名)相同,若类中没有定义任何的构造方法,则运行时系统会自动为该类生成一个没有参数的构造的方法。
12. java中用关键字(extends)指明继承关系、用关键字(implements)指明接口实现。
13. this代表了(当前对象 )的引用,super表示的是当前对象的(父类)对象。
14. java中提供了两种用于多态的机制( 重载)、( 覆盖)。
15.关键字(final)表示一个对象或变量在初始化后不能被修改。
16. 下面方法的功能是判断一个整数是否为偶数,将程序补充完整。
public( boolean ) isEven(int a)
{ if(a%2==0)
return ( true );
else
return false;
}
17. this和super 关键字只能在(非静态)方法中使用。
18. java中用关键字(abstract)指明抽象类,用关键字( interface )指明接口。
19. 执行下列代码后的结果是什么? int x,a=8,b=4,c=5; x=++a+b+++c++;
x = ( 18 ), a = (9 ),b = ( 5 ), c = ( 6 )
20. 在Java语言中,字符串直接量是用双引号括起来的字符序列,字符串不是字符数组,而是类 ( String ) 的实例对象。
21. 当String对象用= = 比较时,如果String包括相同的地址,则结果为( true ) 。
22. 对于下列描述,各写出一条语句完成要求的任务
(1)比较s1中的串和s2中的串的内容的相等性; ( s1.equals(s2) ; )
(2)用+=向串s1附加串; ( s1+=s2; )
(3)判断s1中串的长度; (s1.length(); )
23. 设x,y,max,min均为int型变量,x、y已赋值。用三目条件运算符求x、y的最大值和
最小值,并分别赋给变量max和min,这两个赋值语句分别是(max=a>b?a:b)和( min=a<b?a:b)。
24. “当整型变量n的值不能被13除尽时其值为 false” 的Java语言表达式是(n%13==0)。
25. 执行以下程序段后:x = ( 6 ), y =( 24 )。
int x = 5, y=5;
y = ++x * - -y;
26. 在Java程序运行时,系统自动通过System类创建三个静态的I/O对象,它们是标准输入流对象( System.in )、标准输出流对象( System.out ) 和标准错误流对象( System.err )。
27. java中的异常处理通过5个关键字来实现:它们是try、catch、throw、throws和finally。进行异常监测的代码要放在try子句内:捕获异常需要使 ( catch )子句;在方法中宣布可能产生的异常应使用( throw)关键字。
28. 异常是一种运行时错误,在java中,异常是以对象的方法表示的,任何异常对象都是(Throwable)类或其子类的对象。
29. Java中,InputStream和OutputStream是以( 字节 )为数据读写单位的输入输出流的基类;Reader和Writer是以( 字符 )为数据读写单位的输入输出流的基类。
30. Java的异常处理模型以3种操作为基础:声明异常、抛出异常和捕捉异常。当程序语句导致错误时,包含语句的方法将创建异常对象并把它传递到系统,这个过程称为( 抛出异常 ),查找异常处理程序的过程称为( 捕捉异常 )。
31.一般用( System.in)创建InputStream对象,表示从标准输入中获取数据。用( System.out)创建OutputStream对象,表示输出到标准输出设备中。
32.java把它能够识别的异常分为两大类:检查的和非检查的异常。非检查的异常是(Error)类和RuntimeException类的实例,它代表程序不必处理严重系统错误;检查异常是(Exception)类的子类,它代表程序应该而且能够处理的错误。
33. 将以( .java )为扩展名的Java源文件编译成字节码文件,字节码文件的扩展名为 (.class) 。
34. Java语言中的浮点数默认类型是(double或者双精度浮点型)。
35. Java语言以(类)为程序的基本单位,它是具有某些共同特性实体的集合,是一种抽象的概念。
36. 代码System.out.println(076)的输出结果是(62)。
37. 数组初始化分为(动态数组)和(静态数组)两种。
39. 类中的(构造)方法是一个特殊的方法,其名称与类名相同。
40. 在面向对象方法中,类的实例被称为(对象)。
问答题
答题要求:按采分点给分,语言能符合采分点表达的含义。
1. 什么是变量?什么是常量?变量名和变量的数据类型各有什么意义?
答:常量是一个某种基本数据类型的数值(1分),变量是内存中一个存放数据的存储单元(1分)。变量名表示存放该变量的存储单元地址(1分),变量的数据类型表示该变量占用内存的大小(2分)。
2. 怎样构成一个合法的Java变量名?
答:Java要求变量名只能由英文字母、美元符号$或下划线_构成,且不能以数字开头,中间也不能有空格。(3分)不能以关键字作为变量名(1分)区分大小写(1分)。
3、简述构造方法的特殊性以及它的主要作用
答:构造方法的特殊性在于:该方法没有返回数据类型,创建对象时系统自动调用。该方法的作用(3分):为创建的对象分配存储空间,为对象的属性赋初始值。(2分)
4、类的主要修饰符有哪些?类的成员变量的修饰符有哪些?
答:类的修饰符有缺省、public、abstract、final等;(2分)成员变量的修饰符有public、private、缺省、protected、static、final等。(3分)
5、类包括哪些部分?类体包括哪些部分?方法定义包括哪些部分?方法声明包括哪些部分?
答:类包括类声明和类体两部分(2分)。类体包括变量定义和方法定义两部分(1分)。
方法定义包括方法声明和方法体两部分(1分)。方法声明包括方法名和返回类型两部分(1分)。
6.类和接口有什么不同
答:一个类只能有一个父类,但是可以有多个接口。接口中只能声明方法,不允许给出方法体,方法体要在实现接口的类中给出。(3分)在默认状态下接口中所有变量和方法都是public。所以当一个类实现了某个接口以后,便可以使用接口的所有变量和方法。(2分)
7.能不能将一个类既声明为abstract又声明为final?
答:不能。abstract类可能包含抽象方法,抽象方法只有方面声明,没有方法体。所以抽象类不能直接使用,只能通过继承,在子类中给出抽象方法的方法体。final类不能被继承,没有子类。所以,他们是矛盾的。
8.如果某子类和它的父类不在同一个包中,采用什么权限修饰符才能访问父类的成员?不加任何修饰符行不行?
答:需要用public或protected修饰(3分)。不行,不加任何修饰符的成员只能在同一个包中访问(2分)。
9.Java 是否支持多重继承,如何实现多重继承关系?
答:在Java程序中,通过类的定义只能实现单重继承(3分),但通过接口的定义可以实现多重继承关系。(2分)
10、字符串类String 和StringBuffer类有何不同?
答:从根本上来说应该是stringBuffer在做字符长度变动的时候将继续使用原来的内存空间,不新分配.(2分)而String的长度一旦变动,就如上面的例子一样,其内部将分配新的内存空间。(3分)
11.流是指数据的流动。输入流的数据从哪里流到哪里?输出流中的数据从哪里流到哪里?
答:对于输入流,数据从文件或输入设备流动到程序。(2分)对于输出流,数据从程序流动到文件或输出设备。(3分)
程序分析题
1. 如果程序代码为:
public class Demo{
public static void main (String[ ] args){
String a=args[1];
System.out.println(a);
}
}
进行编译后,执行以下命令将得到什么结果?java Demo a1 a2 a3
答:a2 (5分)
2、现有一个类定义如下,请回答问题:
class Employee{
String name;
int age;
double wage;
static int No=0;
Employee(String a1,int a2,double a3){
name=a1; age=a2; wage=a3;
No++;
}
}
在使用该类时,已使用下面语句生成了该类的对象:
Employee e1,e2;
e1=new Employee("王劲",26,6300);
e2=new Employee("张山",30,3800);
问题:
1)e2.name,e2.age,e2.wage的值各是什么 ?
2)生成对象e1,e2后,e1.No值为多少 能否通过类名做前缀引用属性No和age?
答:1)(张山;30;3800.0) ;(3分)
2)(2; 可以访问No,不能访问age)(2分)
3、阅读以下程序,写出运行结果 。
class Q1{
public static void main(String args[ ]){
double d=1.23;
Dec dec=new Dec( );
dec.decrement(d);
System.out.println(d);
}
classs Dec{
public void decrement(double decMe){
decMe = decMe - 0.1;
}
}
答:1.23 (5分)
4、分析下列程序的执行结果:
class Value{
public int i = 15;
}
public class Test{
public static void main(String argv[]){
Test t = new Test(); t.first();
}
public void first(){
int i = 5;
Value v = new Value();
v.i = 25; second(v, i);
System.out.println(v.i);
}
public void second(Value v, int i){
i = 0; v.i = 20;
Value val = new Value();
v = val;
System.out.println(v.i + " " + i);
}
}
答: 15 0 20
5、分析下列程序的执行结果:
public class Test{
public static void main(){
int i = 1, j = 10;
do{
if(i++ > --j)
continue;
}while(i < 5);
System.out.println("i=" + i + " j=" + j);
}
}
结果是:
答:i=5,j=6
6、阅读程序后回答问题 。
public class ContinueTest
{
public static void main( String args[])
{
char c='i';
for (int n=6; n < 11; n++ )
{
if ( n == 8 ) continue;
System.out.print("\t"+(c++));
}
}
}
问题:1)程序的输出结果是什么?
2)若将if中的continue语句替换为break语句,输出结果是什么?
答:1)i j k l;(2分)
2)i j(3分)
7.分析下列程序的功能是:
import java.io.File;
public class FileExercise{
public static void main(String[] args){
File fileObject = new File("Sally.txt");
if(fileObject.exists()){
System.out.println("There is a file named Sally.txt");
}else{
System.out.println("There is no file named Sally.txt");
}
}
}
答:测试程序所在的目录是否包含一个名为Sally.txt的文件。如果存在则输出There is a file named Sally.txt;如果不存在则输出There is no file named Sally.txt。
8. 下面程序输出结果为:
姓名:张三 性别:女 年龄:20
姓名:李四 性别:女 年龄:33
class Person{
String name;
char sex;
int age;
Person(String pName,char pSex,int pAge){//以下代码完成类属性赋值
;
;
;
}
public String toString(){
String s = ("姓名:" + name + " 性别:" + sex + " 年龄:" +age);
; /返回s的值
}
}
public class CreatePerson{
public static void main(String[] args){
Person p1 = new Person("张三",'男',20);
以下代码完成定义对象p2,各参数值分别为:李四,女,28
;
p1.sex = '女'; //将p1的sex属性改为女
System.out.println(p1.toString()); //输出p1的各个属性
//以下代码将p2的age改为33
;
//以下代码输出p2的各个属性
;
}
}
答:1、name=pName(2分)
sex=pSex(2分)
age=pAge(2分)
2、return s(2分)
3、Person p2=new Person(“李四”,’女’,28) (2分)
4、p2.age=33(2分)
5、p2.toString( ) (2分)
9.分析程序的运行结果
public class Course{
private String cNumber;
private String cName;
private int cUnit;
public Course(String number,String name,int unit){
cNumber=number;cName=name;cUnit=unit;
}
public void printCourseInfo(){
System.out.println ("课程号:"+cNumber+" 课程名:"+cName+" 学分:"+cUnit);
}
}
class CourseTest{
public static void main(String[]args){
Course c;
c=new Course("001","Java",3);
c.printCourseInfo();
}
}
答:课程号:001 课程名:Java 学分:3(5分)
10. 下面的程序运行结果如下,请将代码填充完整:
name:Tom
salary:5000
name:Jerry
salary:3000
public class Employee{
String name;
int salary;
Employee(String n,int s){
__ __; //给变量name赋值
__ __; //给变量salary赋值
}
Employee(String n){
name = n; //给变量name赋值
}
void print(){
System.out.println("name:" + name);
System.out.println("salary:" + salary);
}
void setSalary(int s){
__ __; 给变量salary赋值
}
public static void main(String[] args){
Employee e1 = new Employee("Tom",5000);
Employee e2 = new Employee("Jerry");
e1.print();
e2.setSalary(3000);
e2.print();
}
}
答: 1、 name=n; //给变量name赋值
salary=s;
2、 salary=s;
11.分析程序的运行结果
public class Father{
String name,address,tel;
int age;
public Father(String name,int age){
this.name=name;this.age=age;
}
void out(){
System.out.print("姓名:"+name);
System.out.print(" 年龄:"+age);
}
void outOther(){
System.out.print(" 家庭住址:"+address);
System.out.print(" 电话:"+tel);
}
}
class Son extends Father{
String school;
public Son(String name,int age){
super(name,age);
}
void out(){
super.out();
super.outOther();
System.out.println (" 学校:"+school);
}
public static void main(String args[]){
Son son=new Son("Tom",15);
son.address="金水区";
son.school="九中";
son.tel="66123456";
son.out();
}
}
答:姓名:Tom 年龄:15 家庭住址:金水区 电话:66123456 学校:九中 (5分)
12.阅读如下所示的3个JAVA类,分析它们之间的关系,写出运行结果。
class SuperClass{
int x;
SuperClass(){
x = 3;
System.out.println("in SuperClass:x=" + x);
}
void doSomething(){
System.out.println("in SuperClass.doSomething()");
}
}
class SubClass extends SuperClass{
int x;
SubClass(){
super();
x = 5;
System.out.println("in SubClass:x=" + x);
}
void doSomething(){
super.doSomething();
System.out.println("in SubClass.doSomething()");
System.out.println("super.x=" + super.x + " sub.x=" + x);
}
}
public class Inheritance{
public static void main(String[] args){
SubClass subC = new SubClass();
subC.doSomething();
}
}
答:运行结果:
in SuperClass:x=3(2分)
in SubClass:x=5(2分)
in SuperClass.doSomething()(2分)
in SubClass.doSomething()(2分)
super.x=3 sub.x=5(2分)
13.阅读如下程序,写出运行结果。
class StaticDemo
{
static int x;
int y;
public static int getX()
{ return x; }
public static void setX(int newX)
{ x=newX; }
public int getY()
{return y;}
public void setY(int newY)
{y=newY; }
}
public class MainDemo {
public static void main(String[] args)
{
System.out.println("静态变量x="+StaticDemo.getX());
StaticDemo a=new StaticDemo();
StaticDemo b=new StaticDemo();
a.setX(1);
a.setY(2);
b.setX(3);
b.setY(4);
System.out.println("静态变量a.x="+a.getX());
System.out.println("实例变量a.y="+a.getY());
System.out.println("静态变量a.x="+b.getX());
System.out.println("实例变量a.y="+b.getY());
}
}
答:运行结果:
静态变量x=0(2分)
静态变量a.x=3(2分)
实例变量a.y=2(2分)
静态变量a.x=3(2分)
实例变量a.y=4(2分)
14. 观察下面程序的运行结果,注意try语句中产生的异常与catch参数的匹配。
public class Test2{
static int a = 3,b = 0;
static String c[] = {"数组元素c[0]"};
public static void main(String[] args){
try{
System.out.println(a);
System.out.println(a/b);
System.out.println(c[b]);//若上条语句产生异常,本语句将不被运行
}
catch(ArithmeticException e){
System.out.println("捕捉到一个算术异常");
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("捕捉到一个数组下标越界异常");
}
catch(Exception e){
System.out.println("捕捉到一个系统异常");
}
finally{
System.out.println("程序结束");
}
}
}
答:运行结果:
3(2分)
捕捉到一个算术异常(2分)
程序结束(2分)
编程题
答题要求:按采分点给分,要求代码编写有一定的规范性,完成采分点功能区代码则给分,未完成该采分点的,不给分。
1. 编写出一个程序,其中创建了数组abc,该数组的五个元素分别为“北京奥运会”五个汉字。要求程序运行后,能将五个元素显示在同一行上,并显示该数组的长度。(共10分)
编码规范2分;类和主方法的定义2分;数组的声明和赋值2分,汉字输出2分(注意:字符输出时一定要转为字符串后输出,没有转换的扣1分),数组长度输出2分。
答:
public class ShowChar{
public static void main (String[ ] args){
char abc[] = {'北','京','奥','运','会'};
System.out.println("" + ch[0] + ch[1] + ch[2] + ch[3] + ch[4]);
System.out.println(abc.length);
}
}
2. 设计一个动物类,它包含动物的基本属性。例如名称、大小、重量等,并设计相应的动作,例如跑、跳、走等。
编码规范2分;类定义2分;成员变量定义3分,成员函数定义3分。
答:public class Animal{
private String name;
private double weight;
private int length;
privateString sex;
public void run(){
System.out.println("the animal is running!");来源:考试大
}
public void jump(){
System.out.println("the animal is jumping!");
}
public void walk(){
System.out.println("the animal is walking!");
}
}
3. 定义一个环形类Ring,包含属性外半径outerRadius,内半径innerRadius,颜色,生成Get和Set方法,并定义一个方法求环形的面积getArea,定义一个含有三个参数的构造方法和一个参数为0的构造方法。
编码规范2分;类的成员变量的定义3分;类的成员函数的定义5分;
答:public class Ring {
private double outerRaduis;
private double innerRaduis;
private String Color;
public double getArea()
{
return Math.PI*this.outerRaduis*this.outerRaduis-
Math.PI*this.innerRaduis*this.innerRaduis;
}
public Ring(double r1,double r2,String c)
{
this.outerRaduis=r1;
this.innerRaduis=r2;
this.Color=c;
}
public Ring()
{
this.outerRaduis=50;
this.innerRaduis=40;
this.Color="green";
}
}
4. 设计一个三角形类,它包含三角形基本属性底和高,以及求三角形面积的方法。要求从键盘接收三角形的底和高的值,然后输出三角形的面积。(提示:可以使用键盘扫描类Scanner或命令行参数接收三角形的底和高的值)
编码规范2分;类的成员变量的定义2分;类的成员函数的定义3分;主方法的实现3分。
答:import java.util.*;
class Reta {
private double di;
private double high;
public Reta(double di, double high) {
this.di = di;
this.high = high;
}
public double area() {
try {
return 0.5 * this.di * this.high;
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
}
public class Ret{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
double x = sc.nextDouble();
double y = sc.nextDouble();
Reta reta = new Reta(x,y);
double area = reta.area() ;
System.out.print(area);
}
}
5. 有三个字符串String s1= "Hello Java"; String s2= "Java Applet"; String s3= "Java";,编写程序找出其中最大者。
编码规范2分;类定义2分;主方法的实现6分。
答:
public class max1
{
public static void main(String args[])
{
String s1= "Hello Java";
String s2= "Java Applet";
String s3= "Java";
String s;
if(s1.compareTo(s2)<0)
s=s2;
else s=s1;
if(s.compareTo(s3)<0)
s=s3;
Systrm.out.println("big="+s);
}
}
6. 编写一个程序,设定一个有大小写字母的字符串String s1= "Hello Java";,先将字符串的大写字符输出,再将字符串中的小写字符输出。注:利用StringBuffer完成。
编码规范2分;类定义2分;主方法的实现6分。
答:
public class out
{
public static void main(String args[])
{
String str="Hello Java";
StringBuffer bufup=new StringBuffer();
StringBuffer buflow=new StringBuffer();
for(int i=0; i<str.length();i++)
{
if(str.charAt(i)<97)
{
bufup.append(str.charAt(i));
bufup.append(' ');
}
else
{
buflow.append(str.charAt(i));
buflow.append(' ');
}
}
System.out.println("str= "+str);
System.out.println("uppercase="+bufup);
System.out.println(" lowercase= "+buflow);
}
}
7. 设定一个有大小写字母的字符串String s1="abcdefghi";和一个查找字符,使用类 String方法IndexOf()来判断在该字符串中该字符出现的次数。
编码规范2分;类定义2分;主方法的实现6分。
答:
import java.util.*;
public class StringNum{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s1 = input.nextLine();
System.out.println("请输入一个字符:");
String c1 = input.nextLine();
char[] cArr = c1.toCharArray();
char c = cArr[0];
int num = 0;
int index;
int i = 0;
while(i < s1.length()){
index = s1.indexOf(c, i);
if(index == -1){
break;
}else{
i = index+1;
num++;
}
}
System.out.print("字符" + c + "的个数为" + num );
}
}
8. 编写一个程序,要求:
1)在当前目录下创建目录Personal
2)将自己的学号、姓名、性别写入到目录Personal下的文件Info.txt中
3)将文件中的数据显示在屏幕上
编码规范2分;类定义2分;主方法的实现6分(其中题目要求的每个功能实现各2分)。
答:
import java.io.*;
import java.util.*;
public class FileExercise3{
public static void main(String[] args){
//create folder
String folderName = "Personal";
String fileName = "Info.txt";
File f=new File(folderName);
f.mkdir();
//write file
PrintWriter outputStream = null;
try{
outputStream = new PrintWriter(new FileOutputStream(folderName + "\\" + fileName));
}catch(FileNotFoundException e){
System.out.println("Error opening the file Info.txt.");
System.exit(0);
}
outputStream.println("学号:0921404");
outputStream.println("姓名:安文琪");
outputStream.println("性别:男");
outputStream.close( );
//read file
Scanner inputStream = null;
try{
inputStream = new Scanner(new FileInputStream(folderName + "\\" + fileName));
}catch(FileNotFoundException e){
System.out.println("File " + fileName + " was not found");
System.out.println("or could not be opened.");
System.exit(0);
}
while(inputStream.hasNextLine()){
System.out.println(inputStream.nextLine());
}
inputStream.close( );
}
}
9. 编写一个程序,将一维数组中元素顺序倒置。例如:若数组元素的顺序原来是1、2、3,则倒置后的顺序变为3、2、1。(要求使用循环语句)
编码规范2分;类定义2分;主方法的实现6分。
public class LianXi {
public static void main(String[] args) {
int a[]={1,2,3,4};
int temp;
for(int i=0;i<=(a.length/2);i++){
temp=a[i];
a[i]=a[a.length-1-i];
a[a.length-1-i]=temp;
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+",");
}
}
}
10. 设计一个矩形类,包括属性:长、宽及方法,再通过主类调用其矩形类输出相应的面积。(注:长宽自己给定任意的值就可以)
编码规范2分;类定义2分;主方法的实现6分。
class JuXing{
private double length;
private double weight;
public JuXing(double length,double weight){
this.length=length;
this.weight=weight;
}
public double Area(){
double area=length*weight;
return area;
}
}
public class LianXi {
public static void main(String[] args) {
JuXing ju=new JuXing(1.2,3.4);
System.out.print(ju.Area());
}
}
11. 创建一个Table类,该类中有桌子名称(name)、重量(weight)、桌面宽度(width)、长度(length)和桌子高度(height)等私有的属性,以及以下几个方法
构造方法:初始化所有成员变量
area():计算桌面的面积。
display():在屏幕上输出所有成员变量的值
changeWeight(int w):改变桌子的重量
在MainTable类main()方法中实现创建一个桌子对象,计算机桌面的面积,改变桌子的重量,并在屏幕上输出桌子属性的值。
编码规范2分;类定义2分;主方法的实现6分(其中题目要求的每个功能实现各1分)。
12. 定义一个人类(Person),包括属性:姓名(name)、性别(sex)、年龄(age);包括方法:吃饭(eat)、睡觉(sleep)、工作(work)。
(1)根据人类,派生一个学生类(Student),增加属性:学校(school)、学号(s_number);重写工作方法(学生的工作是学习)。
(2)根据人类,派生一个工人类(Worker),增加属性:单位,工龄;重写工作方法(工人的工作是……自己想想吧)。
(3)根据学生类,派生一个学生干部类(StudentLeading),增加属性:职务(job);增加方法:开会(meeting)。
(4)编写主类分别对上述3类具体人物进行测试。
编码规范2分;类定义2分;其他8分(其中题目要求的每个功能实现各2分)。
java程序设计题库的更多相关文章
- Java异常题库
一.填空题 __异常处理__机制是一种非常有用的辅助性程序设计方法.采用这种方法可以使得在程序设计时将程序的正常流程与错误处理分开,有利于代码的编写和维护. 在Java异常处理中可以使用多个catch ...
- Java容器题库
一. 填空题 Java集合框架提供了一套性能优良.使用方便的接口和类,包括Collection和Map两大类,它们都位于 java.util 包中 队列和堆栈有些相似,不同之处在于栈是先进后 ...
- Java多线程题库
一. 填空题 处于运行状态的线程在某些情况下,如执行了sleep(睡眠)方法,或等待I/O设备等资源,将让出CPU并暂时停止自己的运行,进入____阻塞_____状态. 处于新建状态的线程被启动 ...
- 20165237 2017-2018-2 《Java程序设计》第十周考试补做及编程题
20165237 2017-2018-2 <Java程序设计>第十周考试补做及编程题 知识点 1.链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节点的引用 . ...
- 20165237 2017-2018-2 《Java程序设计》第四周考试补做及2-3章编程题
20165237 2017-2018-2 <Java程序设计>第四周考试补做及2-3章编程题 测试JDB: 用JDB调试上一个程序,输入1.2.3: 2-3章编程题代码托管 (程序的运行结 ...
- 20175316盛茂淞 《java程序设计》第三周课堂测试错题总结
20175316盛茂淞 <java程序设计>第三周课堂测试错题总结 出现问题 错题总结 题目1 在Ubuntu中用自己的有位学号建一个文件,教材p87 Example4_15 1. 修改代 ...
- 基于java开发的在线题库系统tamguo
简介 探果网(简称tamguo)是基于java开发的在线题库系统,包括 在线访问 后台运营 会员中心 书籍中心 管理员账号:system 密码:123456 因为线上数据和测试数据没有做到隔离,作者已 ...
- Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解
Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 第一章选择题 1.1 Java与面向对象程 ...
- Java程序设计(2021春)——第二章课后题(选择题+编程题)答案与详解
Java程序设计(2021春)--第二章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第二章课后题(选择题+编程题)答案与详解 第二章选择题 2.1 面向对象方法的特性 ...
随机推荐
- bzoj 2733: [HNOI2012]永无乡 -- 线段树
2733: [HNOI2012]永无乡 Time Limit: 10 Sec Memory Limit: 128 MB Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自 ...
- PHP 登录DEMO
logintest.php 页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- asp.net mvc中DropDownList
asp.net mvc中DropDownList的使用. 下拉列表框 以分为两个部分组成:下拉列表和默认选项 DropDownList扩展方法的各个重载版本基本上都会传递到这个方法上: publi ...
- Codeforces Round #346 (Div. 2) A. Round House 水题
A. Round House 题目连接: http://www.codeforces.com/contest/659/problem/A Description Vasya lives in a ro ...
- HDU 5295 Unstable 计算几何
Unstable 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5295 Description Rasen had lost in labyrint ...
- Codeforces Round #245 (Div. 2) B. Balls Game 并查集
B. Balls Game Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/430/problem ...
- spring ioc 理解
springIOC 作用 springIOC 是sprig的特性.称作控制反转.将对象的创建,初始化,销毁,交给spring容器管理. 原理 在spring容器启动的时候,通过反射的方式,主动加载(或 ...
- JDK及JRE中bin工具说明
jre/bin工具说明:javac:Java编译器,将Java源代码换成字节代 java:Java解释器,直接从类文件执行Java应用程序代码 appletviewer(小程序浏览器):一种执行HTM ...
- [置顶] linux学习之静态库和动态库的制作与使用
linux中静态库和动态库的制作与使用 一.静态链接库 1.首先编写模块程序example.c.example.h 2.使用gcc -c example.c -o example.o编译example ...
- gcc连接脚本lds详解
转载:blog.chinaunix.net/uid-28685940-id-3889918.html 我们对每个c或者汇编文件进行单独编译,但是不去连接,生成很多.o 的文件,这些.o文件首先是分散的 ...