1、第一章习题及思考题第一章 习题及思考题1、 Java程序是由什么组成的?一个程序中必须有public类吗?Java源文件的命名规则是怎样的?2、怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用public修饰吗?3、开发与运行Java程序需要经过哪些主要步骤和过程?4、安装JDK之后如何设置JDK系统的PATH,CLASSPATH?他们的作用是什么?5、Java语言特点是什么?6、简述面向过程问题求解和面向对象问题求解的异同。试列举出面向对象和面向过程的编程语言各两种。第二章 习题及思考题1. 试分析基本数据类型和引用数据类型的基本特点?2. 请使用异或运算符, 实现两个整
2、数的交换。3. 下列哪个是合法的标识符:( )。A、a=bB、_HelloC、2ndD、Chong qing 4. 下列哪些是合法的标识符()。 A、newB、classC、intD、const2 5. 如果定义有变量double d1, d2=4.0则下列说法正确的是:A、变量d1,d2均初始化为4.0B、变量d1没有初始化,d2初始化为4.0C、变量d1,d2均未初始化D、变量d2没有初始化,d1初始化为4.06. 判断题:所有的变量在使用前都必须进行初始化。( ) 7. 内部数据类型byte的取值范围是:( ) A、065, 535B、(-128)127C、(-32,768)32,767
3、D、(-256)2558. 下列哪些是不能通过编译的语句:( ) A、int i = 32;B、float f = 45.0;C、double d = 45.0;D、char a=c;9. 判断题:Java中数据类型的长度与具体使用的机器相关。( ) 10. 如果定义有double x;float y;int m,则表达式x*y-m的类型为( ):A、doubleB、floatC、intD、short11. 如果定义有short s;byte b;char c,则表达式s*b+c的类型为( ):A、charB、shortC、intD、byte12. 已知int i= ; +i; 则i的值等于多
4、少( ) A - B C 13. 已知byte i= 127; +i; 则i的值等于多少( ) A -128 B 127 C 12814. 已知byte i= 127; i=i+1;这两行语句能否编译成功?( )15. 执行以下程序段int a=5,b; b=+a*3后b的值为:( )A、17B、18C、16D、1516. 如果x=3,y=5,则表达式x|y的值为:( )A、15B、8C、1D、717. 如果int a=3,b=2,则执行a*=b+8后a的值为:( )A、20B、14C、30D、1618. 若所用变量都已正确定义,以下选项中,非法的表达式是:( )A、a!=4|b=1B、a%3
5、C、a=1/2D、A+3219. 设有定义语句int a=1,1,2; 则以下对此语句的叙述错误的是( )。 A、定义了一个名为a的一维数组 B、a数组有3个元素 C、a数组的下标为13 D、数组中的每个元素是整型20. 以下数组初始化形式正确的是:( ) A、int t1=1,2,3,4,5,6 B、int t2=1,2,3,4,5,6 C、int t332=1,2,3,4,5,6 D、int t4;t4=1,2,3,4,5,6第三章 习题及思考题1、编写一个程序,用选择法对数组a=20,10,55,40,30,70,60,80,90,100进行从大到小的排序2、求两个整数的最大公约数3、请
6、打印出如下九九乘法表* | 1 2 3 4 5 6 7 8 9-|- 1 | 1 2 | 2 4 3 | 3 6 9 4 | 4 8 12 16 5 | 5 10 15 20 25 6 | 6 12 18 24 30 36 7 | 7 14 21 28 35 42 49 8 | 8 16 24 32 40 48 56 64 9 | 9 18 27 36 45 54 63 72 814、求一元二次方程ax2+bx+c=0的根,要求a、b、c从控制台输入。5、求前40个Fibonacci数列。 Fibonacci数列:1,1,2,3,5,8,13,21,34, 从数列看到:F1=1 (n=1) F
7、2=1 (n=2) Fn=Fn-1+Fn-2 (n3) 6、已知公鸡5元1只,母鸡3元一只,小鸡1元3只,要求用100元刚好买100只鸡,问有多少种采购方案。7、判断一个字符串是否是回文,例如“rotor“反转之后还是”rotor“,所以是回文。需查阅String类的一些方法。8、求2-1000内的所有素数9、在一个循环中使用break,continue和return有什么不同?10、结构化程序设计有哪三种流程?他们分别对应Java中那些语句第四章 习题及思考题1.什么是类?什么是对象?对象和类是什么关系?2、 什么是方法?方法的结构是怎样的?设计方法应考虑哪些因素?3.创建一个有两个方法的类
8、,其中第一个方法两次调用第二个方法,第一次不使用this,第二个使用this。 4、创建一个类,该类还有int和char类型的成员变量且未被初始化,然后编程输出这些成员变量的值,查看java是否执行了默认的初始化操作。 5、创建一个类,该类含有的成员变量和成员方法,创建一个该类的对象,察看当时图访问这些成员时,编译程序会给出那些信息(注意:在同一目录下的类都属于一个默认的包)。 6、下面给出了一个矩形类Rectangle,其中含有多个构造方法。上机编译并运行此程序,观察运行结果,体会其中不同构造方法的设计和使用。import java.io.*; class Rectangle /矩形类 pr
9、ivate int width; /矩形的宽度 private int length; /矩形的长度 Rectangle() /矩形的不带参数的构造函数,缺省的给出长(30)和宽(20) length=30;width=20; Rectangle(int l,int w) /矩形的带参数的构造函数 length=l;width=w; Rectangle(Rectangle r) /此构造方法以另一个Rectangle作为参数 width=r.width(); /通过对象调用函数并附值给相应变量 length=r.length(); int width() /返回宽度 return width;
10、 int length() /返回长度 return length; public class CRctngle public static void main (String args ) Rectangle x1=new Rectangle(); /声明类的对象并实例化 Rectangle x2=new Rectangle(50,40); /声明类的对象并初始化 Rectangle x3=new Rectangle(x1); System.out.println(x1.length(); System.out.println(x1.width(); System.out.println(x
11、2.length(); System.out.println(x2.width(); System.out.println(x3.length(); System.out.println(x3.width(); 运行结果:3020504030207、下面给出了一个计算阶乘的类Fact和使用该类计算阶乘的程序Check1。编译并运行该程序,观察运行结果,体会方法的参数的传递和返回值的用法。在调用时改变参数的个数和类型,看看编译时会得到什么信息。 class Fact float fact (int n) /定义计算n!的方法 int i; float x =1; for(i=1;in;i+) x
12、=x*n; return x; public class Check1 public static void main (String args ) Fact x =new Fact( ); System.out.println(x.fact(10); /计算10! System.out.println(x.fact(15); /计算15! 运行结果: 1.0E9 2.E168、编译并运行下面的程序,观察分析运行结果,体会程序中super和this的用法,进一步理解变量隐藏和方法重写的概念。import java.io.*;class SuperClss /定义父类 int x; SuperC
13、lss( ) /父类的构造方法 x=10; void doClss( ) System.out.println(SuperClss.doClass(); class SubClss extends SuperClss /定义子类 int x; SubClss( ) /子类的构造方法 super( ) ; /调用父类的构造方法 x =100; void doClss( ) /重写父类的doClss方法 System.out.println(SubClss.doClss(); void doDemo( ) /演示super和this的方法 int x; x=1000; super.doClss(
14、); /调用父类的doClss方法 doClss( ); /调用本类的doClss方法 System.out.println(super.x=+super.x); /父类的x System.out.println(this.x=+this.x); /本类的x System.out.println(x=+x); /本方法的x public class SuperDemo public static void main(String args ) /主方法 SubClss s = new SubClss(); s.doDemo(); 运行结果:SuperClss.doClass()SubClss.
15、doClss()super.x=10this.x=100x=10009、编译并运行下面的程序,分析运行结果,体会其中方法重载的用法,进一步理解方法重载的概念。 class Father /本类中的speak方法重载了两次 void speak( ) /无参数的speak方法 System.out.println(I am Father! ); void speak(String s) /有参数的speak方法 System.out.println(I like+s+. ); public class OverLoadingDemo public static void main (String
16、 args ) Father x = new Father( ); x.speak(); /调用无参的speak方法 x.speak(music) /调用有参的speak方法 运行结果: I am Father!I like music.第五章 习题及思考题1、 什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来什么好处?什么是单重继承?什么是多重继承?2、 “子类的域和方法的数目一定大于等于父类的域和方法的数目”,这种说法是否 正确?为什么? 3、什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?与方法的重载有何不同? 4、 什么是多态?面向对象程序设计为什么要引人多态的特性?
17、使用多态有什么优点? 5、 父类对象与子类对象相互转化的条件是什么?如何实现它们的相互转化? 6、什么是包?它的作用是什么? 7、 CLASSPATH是有关什么的环境变量?它如何影响程序的运行?如何设置和修改这个环境变量?8、 一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象方法?9、 为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。现有两种工具:Car007 和Plane,其中Car007 的速度运算公式为:A*B/C,Plane 的速度运算公式为:A+B+C。需要编写三类:ComputeT
18、ime.java,Plane.java,Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。其运行过程如下,从命令行输入ComputeTime的四个参数,第一个是交通工具的类型,第二、三、四个参数分别时整数A、B、C,举例如下: 计算Plane的时间:java ComputeTime Plane 20 30 40 计算Car007的时间:java ComputeTime Car007 23 34 45 如果第3种交通工具为Ship,则只需要编写Ship.java,运行时输入:java ComputeT
19、ime Ship 22 33 44 提示:充分利用接口的概念,接口对象充当参数。 实例化一个对象的另外一种办法:Class.forName(str).newInstance();例如需要实例化一个Plane对象的话,则只要调用Class.forName(Plane).newInstance()便可。 10、编写求解几何图形(如直线、三角形,矩型,圆,多边型)的周长,面积的应用程序,要求用到继承和接口等技术。 第六章 习题及思考题a) 找出以下有问题的代码 pulic int searchAccount(int25 number) number =new int15; for(int i=0;i
20、=3 计算f(28)的结果,并测试计算该公式所花的时间数。(提示:可以用System类的静态方法public long currentTimeMillis()获取系统当前时间,也可以根据currentTimeMillis()方法得到的数字,用Date 的构造方法)解:3、 利用Vector类,实现一个先进先出队列。4、将从小到大的素数30个放入数组中。5、编写生成100个1-6之间的随机数,统计16每个出现的概率。6、 在所有的Java系统类中,Object类有什么特殊之处?它在什么情况下使用?7、 试列举你使用过的数据类型类,数据类型类与基本数据类型有什么关系?8 Math类用来实现什么功能
21、?设x,y是整型变量,d是双精度型变量,试书写表达式完成下面的操作: (1)求x的y次方。 (2)求x和y的最小值。 (3)求d取整后的结果。 (4)求d四舍五人后的结果。 (5)求atan(d)的数值。 9、向量与数组有何不同?它们分别适合于什么场合?10、什么是排序?你了解几种排序算法?它们各自有什么优缺点?分别适合在什么情况下使用? 第八章 习题及思考题1.什么是异常?简述Java的异常处理机制。2. 系统定义的异常与用户自定义的异常有何不同?如何使用这两类异常?3输入并运行下面的程序:4编写从键盘读入10个字符放入一个字符数组,并在屏幕上显示它们的程序。请处理数组越界异常. 第九章 习
22、题及思考题1、编一个应用程序,按行顺序地读取一个可读文件的内容。2、把Hashtable存放的信息输出到磁盘文件中,并再从中读进Hashtable.3、利用StringBuffer类编写从键盘读入字符串、整数、实型数,并在屏幕上输出。4、什么叫流?简述流的分类?5、编写一个测试文件一般属性(如显示文件的路径、绝对路径、显示文件是否可写、显示文件是否可读、显示文件的大小等属性)的程序。 6、利用RandomAccessFile类编写应用程序,要求输入10组数据到文件中,每组数据为1个整形数和一个双精度数,然后随机修改文件的某组数,并显示修改的结果。7、将如下三组不同类型的数据利用DataInpu
23、tStream和DataOutputStream写入文件,然后从文件中读出。三组数据如下 19.99, 9.99, 15.99,3.99, 4.99 ; 12, 8, 13, 29, 50 ; Java T-shirt, Java Mug, Duke Juggling Dolls, Java Pin,Java Key Chain8、利用BufferedReader和BufferedWriter在文件中实现输入输出字符串。9、什么是过滤流,并举例10、什么是串行化,并举例第十章 习题及思考题1什么是线程?它产生的背景是什么?线程有几种状态?说明状态变化调用的方法。2、 实现两个定时线程,一个线程
24、每隔1秒显示一次,一个线程每隔3秒显示一次。3、创建两个线程,每个线程打印出线程名字后再睡眠,给其它线程以执行的机会,主线程也要打印出线程名字后再睡眠,每个线程前后共睡眠5次。要求分别采用从Thread中继承和实现Runnable接口两种方式来实现程序。(即写两个程序)第十一章 习题及思考题1、什么是AWT,什么是Swing?2、AWT中包含了那些常用的组件,有什么用途?3、什么是事件?什么是委托事件处理模型?4、编程包含一个标签和一个按钮,单击按钮时,标签的内容在你好和再见之间切换。5、编程包含一个复选按钮和一个普通按钮,复选按钮选中时,普通按钮的背景色为青色,未选中时为灰色。6、编程包含一
25、个下拉列表和一个按钮,下拉列表中有10、14、18三个选项。选择10时,按钮中文字的字号为10,选择14时,按钮中文字的字号为14,选择18时,按钮中文字的字号为18。7、编程包含一个列表和两个标签,在第一个标签中显示列表中被双击的选项的内容,在第二个标签中显示列表中被选中的所有选项的内容。8、编程确定当前鼠标的位置坐标。9、编程创建一个Frame,实现窗口的监听器接口。10、使用组件,制作一元二次方程求根的系统。要求:(1) 一元二次方程三个系数a,b,c输入界面(2) 显示检查b*b-4*a*c 的值(3) 显示求出的根第十二章 习题及思考题1 以在屏幕上显示“您好!”为例,简述Java
26、小应用程序Applet 的开发的步骤。2、浏览器采取哪些办法,保证Applet安全运行。3、 实现一个Applet, 使其可以用用三个按钮控制: (1)从服务器下载音乐播放 (2)不停地运行一个动画;使上述动画和音乐协调播放。第十三章 习题及思考题1如何建立数据库的连接? 2、有哪写方法可以发送访问、操作数据库的SQL语句? 3如何处理对数据库访问操作的结果? 4、如何获得关于数据库的信息? 第十四章 习题及思考题1 组建模型提供哪些服务?2 简单回答JavaBean的5个特性?3 JavaBean属性类型?4 编写一个表示银行账户的JavaBean,名称叫AccountBean,分别设计一个
27、绑定属性和限制属性;取款时,如果账户余额不足,不能取款;存款时,自动通知用户现在新的存款余额。第十五章 习题及思考题1套接口作用是什么?端口有什么意义?2.什么是URL?一个URL由哪此部分组成? 3.编程读出中国矿业大学主页的html文件,判断主页的html文件有无关于“教学改革”的内容。上面的程序中用到了哪些有关URL操作的方法?各起什么作用?中国矿业大学URL为:. 4、顾客和服务者通过套接口通讯,描述基于有连接和无连接通讯时的流程图。5、利用Java网络包java.io中套接口类Socket和服务者套接口类(ServerSocket)分别实现有连接和无连接的通讯。第十六章 习题及思考题 1. (简答题) 简单回答对计算机系统的攻击方法?2. 什么是对称密码技术和非对称密码技术?3
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1