Java基础练习题_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java基础练习题

Java基础练习题

 2011/10/27 8:15:57  CB-13  http://cb-13.iteye.com  我要评论(0)
  • 摘要:第一章1:简述Java从代码到运行的全过程2:简述虚拟机的工作机制3:简述java的垃圾回收机制4:简述java的安全机制5:简述path、classpath、JAVA_HOME各自的含义和配置方式第二章1:叙述标识符的定义规则,指出下面的标识符中那些是不正确的,并说明理由here,_there,this,it,2to1,_it2:Java中共有那些基本数据类型?分别用什么符号来表示,各自的取值范围是多少?3:复习所有的Java关键字4:指出正确的表达式Abyteb=128
  • 标签:Java

第一章
1:简述Java 从代码到运行的全过程
?
2:简述虚拟机的工作机制
?
3:简述java的垃圾回收机制
?
4:简述java的安全机制
?
5:简述path、classpath、JAVA_HOME各自的含义和配置方式
?
第二章

1:叙述标识符的定义规则,指出下面的标识符中那些是不正确的,并说明理由
? here , _there, this, it, 2to1, _it

2:Java中共有那些基本数据类型?分别用什么符号来表示,各自的取值范围是多少?

3:复习所有的Java关键字

4:指出正确的表达式
? A byte b=128; ??
? B char c=65536;??
? C long len=0xfffL; ??
? D double dd=0.9239d;

5:下面哪几个语句将引起编译错?
? A. float f=4096.0;??
? B. double d=4096.0;??
? C. byte b=4096;??
? D. char c=4096;

6:简述Java 中的运算符,以及他们的运算次序。

7:创建一个switch 语句,为每一种case 都显示一条消息。并将switch 置入一个for循环里,令其尝试每一种case。在每个case后面都放置一个break,并对其进行测试。然后,删除break,看看会有什么情况出现。

8:执行下列代码后的x 和y 的结果分别是什么?
? int x,y,a=2; ??
? x=a++; ??
? y=++a; ??

9:下面的程序输出结果是:a=6 b=5
? 请将程序补充完整。
? public class A{
? public static void main(String args[]){
? int a=5,b=6;
? a= _a+b_____;
? b=a-b;
? a=__a-b_____;
? System.out.println("a="+a+" b="+b);
? }
? }
?
10:下面哪个语句序列没有错误,能够通过编译?
? A.
? int i=0;
? if (i) {
? System.out.println(“Hi”);
? }
? B.
? boolean b=true;
? boolean b2=true;
? if(b==b2) {
? System.out.println(“So true”);
? }
? C.
? int i=1;
? int j=2;
? if(i==1|| j==2)
? System.out.println(“OK”);
? D.
? int i=1;
? int j=2;
? if (i==1 &| j==2)
? System.out.println(“OK”);

11:阅读以下代码行:
? boolean a=false;
? boolean b=true;
? boolean c=(a&&b)&&(!b);
? int result=c==false?1:2;
? 这段程序执行完后,c与result的值是:
? A c=false; result=1;
? B c=true; result=2;
? C c=true; result=1;
? D c=false; result=2;

12:下列代码哪行会出错?
1) public void modify() { ??
2) int i, j, k; ??
3) i = 100; ??
4) while ( i > 0 ) { ??
5) j = i * 2; ??
6) System.out.println (" The value of j is " + j ); ??
7) k = k + 1; ??
8) i--; ??
9) } ??
10) } ??

? A 第 4行 ??
? B 第 6行??
? C 第 7行 ??
? D 第 8行??
?
13:指出下列程序的运行结果。
? int i = 9;
? switch (i) {
? default:
? System.out.print("default");
? case 0:
? System.out.print("zero"); break;
? case 1:
? System.out.print("one");
? case 2:
? System.out.print("two");
? }

? A default
? B defaultzero
? C 编译错
? D 没有任何输出

14: 将1 到1000 之间的奇数打印出来。
?
15: 判断一个数能否同时被3和5 整除。
?
16: 输入10个数,找出最大一个数,并打印出来。
?
17: 给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90 分以上为’A’,80~89 分为’B’,70~79 分为’C’,60~69 分为’D’,60分以下为’E’。
?
18: 输出图案:
*
**
***
****
*
**
***
****
?
19: 使用for 语句打印显示下列数字形式:n=4
? 1
? 1 2 1
? 1 2 3 2 1
1 2 3 4 3 2 1
?
第三章

1:写一个MyPoint 完全封装类,其中含有私有的int类型的x 和y 属性,分别用公有的getX 和setX、getY 和setY 方法访问,定义一个toString 方法用来显示这个对象的x、y 的值,如显示(1,2),最后用main 方法测试。

2:在MyPoint 类中增加equals()、toString()方法,根据命令行参数个数测试:若不传参数,则显示(0,0);若传一个参数,则打印(此参数值,0);若传两个参数,则打印(第一个参数值,第二个参数值)。

3: 有一个序列,首两项为0,1,以后各项值为前两项值之和。写一个方法来实现求这个序列的和

4:请编写一个方法实现如下功能:将1至7 的数字转换为星期日到星期六的字符串。

5:请编写一个方法实现如下功能:有任意三个整数a,b,c,请输出其中最大的

6:请编写一个方法实现如下功能:将任意三个整数a,b,c按从小到大的顺序输出。

7:请编写一个方法实现如下功能:用程序找出每位数的立方和等于该数本身值的所有的3 位数。(水仙花数)

8:请编写一个方法实现如下功能:计算1 加到n ( n>=2的整数)的总和。

9:请编写一个方法实现如下功能:得到一个整数的绝对值。

第四章

1:创建一个构造方法重载的类,并用另一个类调用

2:创建Rodent(啮齿动物):Mouse(老鼠),Gerbil(鼹鼠),Hamster(大颊鼠)等的一个继承分级结构。在基础类中,提供适用于所有Rodent 的方法,并在衍生类中覆盖它们,从而根据不同类型的Rodent 采取不同的行动。创建一个Rodent 数组,在其中填充不同类型的Rodent,然后调用自己的基础类方法,看看会有什么情况发生。

3:编写MyPoint的一个子类MyXYZ,表示三维坐标点,重写toString方法用来显示这个对象的x、y、z 的值,如显示(1,2,3),最后用main方法测试

4:当你试图编译和执行下面的程序时会发生什么?
class Mystery{
? String s;
? public static void main(String[] args){
? Mystery m=new Mystery();
? m.go();
? }
? voidMystery(){
? s="constructor";
? }
? void go(){
? System.out.println(s);
? }
}
选择下面的正确答案:??
A 编译不通过
B 编译通过但运行时产生异常
C 代码运行但屏幕上看不到任何东西
D 代码运行,屏幕上看到constructor
E 代码运行,屏幕上看到null
?
5:当编译和运行下列程序段时,会发生什么???
class Person {}
class Woman extends Person {}
class Man extends Person {}
public class Test{
? public static void main(String argv[]){
? Man m=new Man();
? Woman w=(Woman) new Man();
? }
}
A 通过编译和并正常运行。
B 编译时出现例外。
C 编译通过,运行时出现例外。
D 编译不通过
?
6:对于下列代码:
1 class Person {
2 public void printValue(int i, int j) {//... }
3 public void printValue(int i){//... }
4 }
5 public class Teacher extends Person {
6 public void printValue() {//... }
7 public void printValue(int i) {//...}
8 public static void main(String args[]){
9 Person t = new Teacher();
10 t.printValue(10);
11 }
12}
第10 行语句将调用哪行语句?
A line 2
B line 3
C line 6
D line 7

7:下列代码运行结果是什么???
public class Bool{
? static boolean b;
? public static void main(String []args){
? int x=0;
? if(b){
? x=1;
? }
? else if(b=false){
? x=2;
? }
? else if(b){
? x=3;
? }
? else{
? x=4;
? }
? System.out.println(“x= ”+x);
? }
}
?
8:在命令行输入java X Y的结果是:
public class X{
? public void main(String []args){
? System.out.println(“Hello ”+args[0]);
? }
}
A. Hello X Y
B. HelloX
C. HelloY
D. 不能编译
E. 运行时有异常
?
9:下列代码编译并运行的结果是:??
public class Test{
? public static void main(String []args){
? class T1 extends java.lang.Thread{}
? class T2 extends T1{}
? class T3 implements java.lang.Runnable{}
? new T1().start();
? new T2().start();
? new Thread(new T3()).start();
? System.out.println(“Executing”);
? }
}
A. 编译失败
B. 程序能运行但永远永不终止
C. 能运行并输出“Executing”
D. 运行时有异常
?
10:代码运行结果是什么?
public class Test{
? public static void main(String []args){
? double num=7.4;
? int a=(int)Math.abs(num+0.5);
? int b=(int)Math.ceil(num+0.5);
? int c=(int)Math.floor(num+0.5);
? int d=(int)Math.round(num+0.5);
? int e=(int)Math.round(num-0.5);
? int f=(int)Math.floor(num-0.5);
? int g=(int)Math.ceil(num-0.5);
? int h=(int)Math.abs(num-0.5);
? System.out.println("a="+a);
? System.out.println("b="+b);
? System.out.println("c="+c);
? System.out.println("d="+d);
? System.out.println("e="+e);
? System.out.println("f="+f);
? System.out.println("g="+g);
? System.out.println("h="+h);
? }
}
???
11:完成此段代码可以分别添加哪两个选项?
1. public class Test{
2.
3. public static void main(String []args){
4.
5. System.out.println(“c=”+c);
6. }
7.}
a)在第2行加上语句static char c;
b) 在第2 行加上语句char c;
c) 在第4 行加上语句static char c;
d) 在第4 行加上语句char c=’f’;
???
12:下列代码运行结果是什么?
public class A{
? puvlic static void main(Stirng []args){
? int m=2;
? int p=1;
? int t=0;
? for(;p<5;p++){
? if(t++>m){
? m=p+t;
? }
? }
? System.out.println(“t equals ”+t);
? }
}
A. 2
B. 4
C. 6
D. 7
?
13:已知如下的命令执行java MyTest a b c 请问哪个是正确的?
A、args[0] = "MyTest a b c"
B、args[0] = "MyTest"
C、args[0] = "a"
D、args[1]= 'b'
?
14:将下面类中的变量和方法改为静态的,使程序能正确编译执行。如果保持用实例变量和方法就必须创建对象,请创建A的对象并通过该对象来引用实例变量和方法。
public classA{
? int a=9;
? public void show(int a){
? System.out.println(a*10);
? }
? public static void main(String args[]){
? a+=a;
? show(a);
? }
}
?
15:设计个Circle类,其属性为圆心点(类型为前面设计的类MyPoint)和半径,并为此类
? 编写以下三个方法:
? 一是计算圆面积的calArea()方法;
? 二是计算周长的calLength();
? 三是boolean inCircle(MyPoint mp)方法,功能是测试作为参数的某个点是否在当前对象圆内(圆内,包括圆上返回true;在圆外,返回false)


第五章

1:写一个方法,在方法内部定义一个一维的int 数组,然后为这个数组赋上初始值,最后再循环取值并打印出来

2:下面的数组定义那些是正确的

? A: int a[][] = new int[3,3];
? B: int a[3][3] = new int[][];
? C: int a[][] = new int[3][3];
? D: int []a[] = new int[3][3];
? E: int [][]a = new int[3][3];

3:定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”

4:请在下面语句中找出一个正确的。??
? A. int arr1[2][3];
? B. int[][] a2 = new int[2][];
? C. int[][] arr2=new int [][4];
? D. int arr3[][4]= new int [3][4];

5:用二重循环求出二维数组b所有元素的和:int[][] b={{11},{21,22},{31,32,33}}

6:编写一个方法实现将班级同学的名单存放在数组中,并利用随机数(Math.random())随机输出一位同学的姓名。

7:生成一百个随机数,放到数组中,然后排序输出。

8:统计字符串中英文字母、空格、数字和其它字符的个数。

第六章

1:设计一个银行帐户类,具有户名,帐号,余额等属性,以及存款、取款等方法,并对此类进行测试

2:写一个方法,功能:定义一个一维的int 数组,长度为3,把任意三个整数a,b,c赋值给数组,然后将它们按从小到大的顺序输出(使用冒泡排序

3:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 (不使用数学公式,要求用递归)

4:输出一个字符数组中的所有字符的所有组合。比如有字符集str={A,B,C}。应输出:
A B C AB AC BA BC CA CB ABC ACB BAC BCA CAB CBA

5:已知两个对像String s1,String s2,已用ASC码排序好了,编写程序将两个String 合并,得到的结果。例如:s1="abc" s2="abc" 得s="aabbcc";结果也是排序的

6:两个乒乓球队进行比赛,各出三人。甲队为a,b,c 三人,乙队为x,y,z 三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a 说他不和x 比,c 说他不和x,z 比,请编程序找出三队赛手的名单。

7:编程:编写一个截取字符串的方法,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6, 应该输出为"我ABC"而不是"我ABC+汉的半个"。

8:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10 的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。请编写一个方法来实现上述加密算法

9:企业发放的奖金根据利润提成。利润低于或等于10 万元时,奖金可提10%;利润高于10 万元,低于20 万元时,低于10 万元的部分按10%提成,高于10 万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40 万到60 万之间时高于40万元的部分,可提成3%;60 万到100 万之间时,高于60 万元的部分,可提成1.5%,高于100 万元时,超过100 万元的部分按1%提成,请编写程序,输入当月利润,求应发放奖金总数?

10: 老伯伯要带鱼、狗、猫过河到对岸.,有一条船,只能坐一个人,老伯每次只能带一样动物过河,当老伯不在的时侯狗会咬猫,猫会吃鱼.,请问怎么顺序过河呢?要求:编写程序,由程序来推出过河的顺序

第七章

1:定义一个对象“交通工具”,并定义接口,说明交通工具可以移动。继承交通工具而产生汽车、飞机、轮船,并定义类来实现其移动的方法。

2:定义一个类来使用上面的接口

第八章

1:用extends 关键字创建自己的例外类;

2:用main()创建一个类,令其掷出try 块内的Exception 类的一个对象。为Exception 的构建器赋予一个字串参数。在catch从句内捕获异常,并打印出字串参数。添加一个finally从句,并打印一条消息,证明自己真正到达那里。

3:给定下面代码:??
public void example(){
? try {
? unsafe();
? System.out.println("Test 1");
? }catch(Exception e){
? System.out.println("Test 2");
? }
? finally{
? System.out.println("Test 3");
? }
? System.out.println("Test 4");
}
如果方法unsafe()运行正常,哪个结果不会被显示出来?
? A. Test 1 B. Test 2 C. Test3 D. Test 4

4:编写应用程序,从命令行传入两个整型数作为除数和被除数。要求程序中捕获NumberFormatException 异常和ArithmeticException 异常在命令行输入不同的参数时能输出如下各种结果:??
? java A??
? 总是被执行??
? Exception in thread "main" java.lang.ArrayIndexOutofBoundsException at??
? A.main(A.java:7)??
?
? java A 1 2??
? 0??
? 总是被执行??
?
? java A 1 3a??
? java.lang.NumberFormatException: 3a??
? at java.lang.Integer.parseInt(Integer.java:435)??
? at java.lang.Integer.parseInt(Integer.java:476)??
? at A.main(A.java:8)??
? 总是被执行??
?
? java A 1 0??
? java.lang.ArithmeticException: / by zero at A.main(A.java:9)??
? 总是被执行??

第九章

1:定义一个类,类里面有一个属性col,类型是集合类型 Collection,实现下列方法:可以向col 里面添加数据、修改数据、查询数据、删除数据。也就是把这个 col当作一个数据存储的容器,对其实现数据的增删改查的方法。??
?
2:把上题的Collection改成使用Map实现??
?
第十章
?
1、 构建一个地址本的应用,画出增、删、改、查、列表的界面??
?
第十一章
?
1:完成地址本的应用,为已经画出的增、删、改、查、列表界面添加动态功能的实现。要求数据存储使用第九章集合完成的作业。也就是使用 Swing 做表现层,集合做逻辑层来实现可以增删改查的地址本的功能。??
?
第十二章
?
1:利用输入输出流编写一个程序,可以实现文件复制的功能,程序的命令行参数的形式及操作功能均类似于DOS中的 copy命令??
?
2:为前面完成的地址本程序添加文件的操作,把存放在内存集合中的数据存放到文件中,形成用Swing完成表现层,集合完成逻辑层,I/O 完成数据存储的结构。??
?
第十三章
?
1、 从Thread继承一个类,并覆盖 run()方法。在run()内,打印出一条消息,然后调用sleep()。重复三遍这些操作,然后从run()返回。在构建器中放置一条启动消息,并覆盖 finalize(),打印一条关闭消息。创建一个独立的线程类,使它在 run()内调用System.gc()和System.runFinalization(),并打印一条消息,表明调用成功。创建这两种类型的几个线程,然后运行它们,看看会发生什么。??
?
第十四章
?
1:修改程序 1,删去为输入和输出设计的所有缓冲机制,然后再次编译和运行,观察一下结果。??
?
2:修改程序2JabberClient,禁止输出刷新,并观察结果。??
?
3:可以尝试做一个类似QQ 的聊天通讯工具??
?
第十五章
?
1:准备工作:??
定义一个 Model 类,里面所有的属性都是 private 的,然后为每个属性提供 getter和setter 方法;??
再准备一个Map,map的key值都是类里面的属性字段的字符串表示,值任意。??
?
2:真正的工作:??
设计一个方法Object getModel(Map map,Class cls),传入一个包含所有值的 Map,然后再传入 Model 类的 class,那么返回 Model 类的实例,这个实例里面已经包含好了所有相关的数据。也就是把Map中的数据通过反射,设置回到 Model类实例中。??


转自http://topic.csdn.net/u/20110720/11/1b0917e0-f23b-43a3-8569-5a4bb0c40eaa.html

发表评论
用户名: 匿名