1、Java程序设计习题集第一单元 试题一、选择题1编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。A.java B.class C.html D.exe2.Java程序的执行过程中用到一套JDK工具,其中java.exe 是指( )A.Java文档生成器 B.Java解释器C.Java编译器 D.Java类分解器3Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点( )A.安全性 B. 多线程 C. 跨平台 D. 可移植4. Java编程所必须的默认引用包为( )A.java.sys包 B.java.lang包
2、 C.java.new包 D.以上都不是二、判断题1. J2EE(Java 2 Platform Enterprise Edition)企业版是以企业为环境而开发应用程序的解决方案。()2. J2ME(Java 2 Platform Micro Edition)小型版是致力于消费产品和嵌入式设备的最佳解决方案。()3. J2SE(Java 2 Platform Standard Edition)标准版为桌面开发和低端商务应用提供了可行的解决方案。()4. Java是区分大小写的语言,关键字的大小写不能搞错,如果把类class写成Class或者CLASS,都是错误的。()5. Java源程序编写
3、好之后,以文件的形式保存在硬盘或U盘上,源文件的名字可以随便取的,它不一定与程序的主类名一致。()6. 在JDK命令行开发工具中,用编译程序javac.Exe编译生成的文件是二进制可执行文件。()7. Java程序可以分为Java Application和Java Applet两类,这两类程序的运行方式是相同的。()8.操作系统Microsoft Wndows9598/2000XP/2003、Linux、UNIX、Mao OS等都是支持Java虚拟机的操作系统。()9. Javac是Java编译器,用来将Java源程序编译成Java字节码的程序。字节码文件名和源文件名相同,扩展名是class。
4、()10. appletviewer 是Java小程序浏览器,可以执行HTML文件中的 Java小程序, Applet。它是个模拟浏览器,可以显示Applet的运行结果。()三、简述题1简述Java语言的主要特点。2. 简述Java程序的可移植性。答案:一、1.B 2.B 3.B 4.D二、1. 对 2. 对 3. 对 4. 对 5. 错 6. 错 7. 错 8. 对 9. 对 10. 对三、1.答:Java语言有下面一些特点:简单、面向对象、分布式、解释执行、健壮、安全、体系结构中立、可移植、高性能、多线程以及动态性。2. 答:与平台无关的特性使Java程序可以方便地被移植到网络上的不同机器
5、。同时,Java的类库中也实现了了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时系统由标准C实现,这使得Java系统本身也具有可移植性。 Writeonce, run everywhere也许是Java最诱人的特点。用 Java开发成的系统其移植工作几乎为零,一般情况下只需对配置文件、批处理文件作相应修改即可实现平滑移植。第二单元 试题一、选择题1.在Java中,属于整数类型变量的是 ( )A. single B. double C. byte D. char2.下列语句片段int a=10,b=4,c=20,d=6;System.out.pr
6、intln(a+*b+c*-d);结果为( )A. 144 B. 28 C. 140 D. 不能执行3.下列语句片段:int a=-67,b=116,c=78;int d=abSystem.out.println(d); 的结果为( )A. 70 B. 67 C. 78 D. 564.给出下面代码:public class teststatic int a = new a10;public static void main(String args) System.out.println(arr10);那个选项是正确的? ( )A. 编译时将产生错误 B. 编译时正确,运行时将产生错误;C. 输
7、出零; D. 输出空。5.下面哪些选项是正确的main方法说明? ( )A. public main(String args)B. public static void main(String args)C. private static void main(String args)D. void main()6.System类在哪个包中 ( )A. javA.util B. java.io C. java.awt D. java.lang7.下列代码哪几行会出错: ( )1) public void modify() 2) int I, j, k;3) I=100;4) while(I0)5
8、) j= I * 2;6) System.out.println (“ The value of j is “ + j );7) k=k + 1;8) I-;9) 10)A. line 1 B. line 6 C. line 7 D. line 8二、编程题1. 在JBuilder 9集成开发环境建立你的工程文件名myjava.jpx,把myfirstapp.java添加到myjava.jpx,并运行看结果。2. 在你的D盘或E盘建立子文件夹myjava,用写字板编辑一个 Java程序myfirstapp.java,保存在myjava目录下。程序实现在屏幕显示“你好,这是我的第一个Java程序
9、。 ”分别用Java Application和Java Applet 2种形式实现。三、简述题1简述保留字。2. 简述标识符。答案:一、1.B 2.C 3.A 4.A 5.B 6.D 7.C二、略三、1. 答:保留字(关键字)是Java语言本身使用的标识符,它有其特定的语法含义。所有的Java关键字将不能被当作一般的标识符使用。如:for、while、boolean等都是Java语言的保留字关键字。2. 答:在Java源程序代码中程序员需要标识和使用的各种元素如变量、函数、类和对象的名称就是标识符(identifier)。包括:包名称、类名、变量名、常量名、标号、方法名等。标识符要符合下面的规
10、则。第三单元 试题一、选择题1.判断下列标识符是正确,答案写在()。(多选)A. Java_proc B. 科学家 C. _bit D. 5jobE. t.45 F. %tools G. 100.8 H. name2. Math类是标准的数学类,它提供了一些基本数学运算的方法()。(多选)A. 绝对值abs() B. 指数运算 exp()C. 对数运算log() D. 平方根 sqrt()E. 三角函数sin(),cos(),tan() F. 求最大值max()、求最小值min()G. 求乘方pow()3.下列关于for循环和while循环的说法中哪个是正确的( )A. while循环能实现的
11、操作,for循环也都能实现B. while循环判断条件一般是程序结果,for 循环判断条件一般是非程序结果C. 两种循环任何时候都可替换D. 两种循环结构中都必须有循环体,循环体不能为空4.在Java中,不属于整数类型变量的是 ( )A. double B. long C. int D. byte5.Java变量中,以下不属于复合类型的数据类型是( )A. 类 B. 字符型 C. 数组型 D. 接口6.JAVA程序经常用到“递归”,“ 递归”的基本思想是( )A. “让别人反复调用自己” B. “自己反复调用别人”C. “自己反复调用自己” D. 以上说法都不对二、判断题1.若循环变量在for
12、语句前面已经有定义并具有循环初值,则初始语句可以为空(分号不可省略)。()2.dowhile循环的执行过程是无条件执行循环体一次,在根据判断条件决定是否继续执行循环体。()3. Java语言的任何类型,包括整型、浮点型、字符和布尔型都可以使用运算符“”来比较是否相等,用运算符“!”来判断是否不等。()4.Java语言提供了三个专门的循环控制语句:for语句、 while语句和dowhile语句。()5.Java语言提供了三个专门的循环控制语句:for语句、 while语句和dowhile语句。()6.程序中的break语句是用于退出switch 的,若无则程序将不再比较而是依次执行所有语句。(
13、)三、简述题1简述Java的基本数据类型。2. 简述Java的表达式和运算符。3. 简述Java的方法(method)。答案:一、1. ABCH 2. ABCDEFG 3.D 4.D 5.B 6.B 7. D二、1. 对2. 对 3. 对 4. 对 5. 对 6. 对 7. 对三、1. 答:基本数据类型包括: integer(整数),floating (浮点数) , Boolean (布尔变量),Character or String(字符或字符串)。2. 答:表达式是由标示符、常量、变量和运算符组成,是程序的基本组成部分。运算符指明对各种操作数所进行的运算,Java提供了丰富的运算符, Ja
14、va语言的基本运算符分为算术运算符、逻辑运算符、关系运算符和位运算符4大类。同时也可以使用圆括号将一个表达式的几个部分组合到一起,并根据标准的代数规则建立优先地位。3答:方法(method)是类的一个成员,它和面向过程程序设计中的函数有很多类似之处。由于它是类的一个重要组成部分。第四单元 试题一、判断题1.若循环变量在for语句前面已经有定义并具有循环初值,则初始语句可以为空(分号不可省略)。()2.dowhile循环的执行过程是无条件执行循环体一次,在根据判断条件决定是否继续执行循环体。()3.标号提供了一种简单的break语句所不能实现的控制循环的方法,当在循环语句中遇到break 后面有
15、标号时,不管其它控制变量如何,都会终止标号的循环体。()4.Java的类库是系统提供的已实现的标准类的集合,是Java 编程的API,它可以帮助开发者方便、快捷地开发Java程序。()5.Java的基础类库包java.Lang也要经过import 语句引用。()6.Java程序中使用 import java.io.*;表示要引入带*的类。()7.Java.awt包是 Java语言用来构建图形用户界面(GUI)的类库,它包括了许多界面元素和资源,主要在 3个方面提供界面设计支持:低级绘图操作;图形界面组件和布局管理和界面用户交互控制和事件响应。( )8.Vector the Vecto =new
16、 Vector(100,100);这个语句创建了名称为the Vector的向量类对象,它的每个成员的容量为100,共有10个元素。()二、编程题1. 编写一个程序,随机产生10个小写字母,并判断是元音字母、半元音字母还是复音字母。2. 编写程序,找出50100之间的所有素数。三、简述题1.什么是类?什么是对象?类和对象有何联系?2.方法的重载和方法的覆盖有什么不同?3.类变量和实例变量有何区别?4. 抽象类和抽象方法有什么特点?答案:一、1. 对2. 对 3. 对 4. 对 5. 错 6. 错 7. 对 8. 错二、1. 算法设计:应用:char c= (char)(Math.random(
17、)*26+a)随机产生一个小写的英文字母。元音字母:a、e 、i、o、u五个,半元音字母y、w二个其他19个都是复音字母。使用for 循环。使用 switch case 方式。参考源程序如下:(javajcch02 Vowels Consonants.java):package ch02;public class VowelsConsonants public static void main(String args) for (int i = 0 ;iTitle:求素数* Description: 一个数字的因子是1和本身,则这个数是素数* Company: 学院信息技术系* Address
18、:杭州下沙4号大街* Email:* Postcode:310018* version 1.0*/public class FindPrime public static void main(String args) next:for( int i=50;i 0; i-)System.out.print(char)bi);A)abcd B) dcba C) abc D) dcb4.以下程序段的结果是:( )String str = “abcdefghijk“;String s = “bcde“;int index = 0;index = str.indexOf(s, index);str =
19、str.substring(0, index) + str.substring(index+4);System.out.println(str);A)abcdefghijk B) afghijk C) abcde D) bcdefghijk二、编程题1.已知整数数组a 有六个元素,其值分别为25、36、47、32、21、16,(11) 请设计一个程序求它的总和及平均值。2.编写一个程序,用选择法对数组a=20,10,50,40,30,70,60,80,90,100进行从大到小的排序。3.编程将字符串“Mary was a“改为“Mary had a book.“。答案:一、1. 120 2.
20、B 3.D 4.B二、答: 一个空数组是指不包括任何Object 引用的数组对象。而一个长度为0的数组是指有0个元素的数组对象。答:一个Vector对象的大小是包含的Object 引用的实际数量。而容量是指为 Object引用分配的存储空间的数量。答:String 类:用于比较两个字符串,查找和抽取串中的字符或子串,字符串与其他类型的转换等,String类对象的内容一旦被初始化就不能再改变。StringBuffer类:用于内容可以改变的字符串,可以将其他各种类型的数据增加、插入到字符串中,也可以翻转字符串中原来的内容。三、1算法设计:将6个元素放在一个数组中,通过循环求总和,最后再计算平均值。
21、public class SumAverage public static void main(String args) int sum=0;int average=0;int a=25,36,47,32,21,16;for(int i=0;i6;i+)sum+=ai;average=sum/6;System.out.println(“sum=“+sum+“,average=“+average);运行结果:sum=177,average=292算法分析:关于选择法排序请参考例5.2,注意这里是从大到小的排序。public class Sort public static void main(S
22、tring args)int min,temp;int a=20,10,50,40,30,70,60,80,90,100;for(int i=0;ia.length-1;i+)min=i;for (int m = i + 1; m a.length; m+)if (amin am)min = m;if(min!=i)temp = ai;ai = amin;amin = temp;for(int x=0;xa.length ;x+)System.out.print(“ “+ax);运行结果:100 90 80 70 60 50 40 30 20 103算法分析:这是一个关于字符串的替换问题,因为要对原字符串进行改变,所以使用StringBuffer,函数使用replace函数。import java.util.*;public class String1 public static void main(String args) StringBuffer str1=new StringBuffer(“Mary was a“);StringBuffer str2=str1.replace(5,10,“had a book.“);System.out.println(str2);运行结果:Mary had a book.