第一章习题及思考题Word文件下载.docx
《第一章习题及思考题Word文件下载.docx》由会员分享,可在线阅读,更多相关《第一章习题及思考题Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。
A、double B、float C、int D、short
11.如果定义有shorts;
byteb;
charc,则表达式s*b+c的类型为():
A、char B、short C、int D、byte
12.已知inti=;
++i;
则i的值等于多少()
A-BC
13.已知bytei=127;
A-128B127C128
14.已知bytei=127;
i=i+1;
这两行语句能否编译成功?
15.执行以下程序段inta=5,b;
b=++a*3后b的值为:
A、17 B、18 C、16 D、15
16.如果x=3,y=5,则表达式x|y的值为:
A、15 B、8 C、1 D、7
17.如果inta=3,b=2,则执行a*=b+8后a的值为:
A、20 B、14 C、30 D、16
18.若所用变量都已正确定义,以下选项中,非法的表达式是:
A、a!
=4||b==1 B、'
a'
%3 C、'
=1/2 D、'
A'
+32
19.设有定义语句inta[]={1,1,2};
则以下对此语句的叙述错误的是()。
A、定义了一个名为a的一维数组B、a数组有3个元素
C、a数组的下标为1~3D、数组中的每个元素是整型
20.以下数组初始化形式正确的是:
A、intt1[][]={{1,2},{3,4},{5,6}}B、intt2[][]={1,2,3,4,5,6}
C、intt3[3][2]={1,2,3,4,5,6}D、intt4[][];
t4={1,2,3,4,5,6}
第三章习题及思考题
1、编写一个程序,用选择法对数组a[]={20,10,55,40,30,70,60,80,90,100}进行从大到小的排序
2、求两个整数的最大公约数
3、请打印出如下九九乘法表
*|123456789
-------|------------------------------------
1|1
2|24
3|369
4|481216
5|510152025
6|61218243036
7|7142128354249
8|816243240485664
9|91827364554637281
4、求一元二次方程ax2+bx+c=0的根,要求a、b、c从控制台输入。
5、求前40个Fibonacci数列。
Fibonacci数列:
1,1,2,3,5,8,13,21,34,…
从数列看到:
F1=1(n=1)
F2=1(n=2)
Fn=Fn-1+Fn-2(n≥3)
6、已知公鸡5元1只,母鸡3元一只,小鸡1元3只,要求用100元刚好买100只鸡,问有多少种采购方案。
7、判断一个字符串是否是回文,例如“rotor“反转之后还是”rotor“,所以是回文。
需查阅String类的一些方法。
8、求2-1000内的所有素数
9、在一个循环中使用break,continue和return有什么不同?
10、结构化程序设计有哪三种流程?
他们分别对应Java中那些语句
第四章习题及思考题
1.什么是类?
什么是对象?
对象和类是什么关系?
2、什么是方法?
方法的结构是怎样的?
设计方法应考虑哪些因素?
3.创建一个有两个方法的类,其中第一个方法两次调用第二个方法,第一次不使用this,第二个使用this。
4、创建一个类,该类还有int和char类型的成员变量且未被初始化,然后编程输出这些成员变量的值,查看java是否执行了默认的初始化操作。
5、创建一个类,该类含有的成员变量和成员方法,创建一个该类的对象,察看当时图访问这些成员时,编译程序会给出那些信息(注意:
在同一目录下的类都属于一个默认的包)。
6、下面给出了一个矩形类Rectangle,其中含有多个构造方法。
上机编译并运行此程序,观察运行结果,体会其中不同构造方法的设计和使用。
importjava.io.*;
classRectangle//矩形类
{
privateintwidth;
//矩形的宽度
privateintlength;
//矩形的长度
Rectangle()//矩形的不带参数的构造函数,缺省的给出长(30)和宽(20)
{
length=30;
width=20;
}
Rectangle(intl,intw)//矩形的带参数的构造函数
{
length=l;
width=w;
Rectangle(Rectangler)//此构造方法以另一个Rectangle作为参数
width=r.width();
//通过对象调用函数并附值给相应变量
length=r.length();
intwidth()//返回宽度
returnwidth;
intlength()//返回长度
returnlength;
}
publicclassCRctngle
publicstaticvoidmain(Stringargs[])
Rectanglex1=newRectangle();
//声明类的对象并实例化
Rectanglex2=newRectangle(50,40);
//声明类的对象并初始化
Rectanglex3=newRectangle(x1);
System.out.println(x1.length());
System.out.println(x1.width());
System.out.println(x2.length());
System.out.println(x2.width());
System.out.println(x3.length());
System.out.println(x3.width());
运行结果:
30
20
50
40
7、下面给出了一个计算阶乘的类Fact和使用该类计算阶乘的程序Check1。
编译并运行该程序,观察运行结果,体会方法的参数的传递和返回值的用法。
在调用时改变参数的个数和类型,看看编译时会得到什么信息。
classFact
floatfact(intn)//定义计算n!
的方法
{
inti;
floatx=1;
for(i=1;
i<
n;
i++)
x=x*n;
returnx;
publicclassCheck1
publicstaticvoidmain(Stringargs[])
Factx=newFact();
System.out.println(x.fact(10));
//计算10!
System.out.println(x.fact(15));
//计算15!
}
1.0E9
2.E16
8、编译并运行下面的程序,观察分析运行结果,体会程序中super和this的用法,进一步理解变量隐藏和方法重写的概念。
classSuperClss//定义父类
intx;
SuperClss()//父类的构造方法
x=10;
voiddoClss()
System.out.println("
SuperClss.doClass()"
);
classSubClssextendsSuperClss//定义子类
SubClss()//子类的构造方法
super();
//调用父类的构造方法
x=100;
voiddoClss()//重写父类的doClss方法
SubClss.doClss()"
voiddoDemo()//演示super和this的方法
x=1000;
super.doClss();
//调用父类的doClss方法
doClss();
//调用本类的doClss方法
super.x="
+super.x);
//父类的x
this.x="
+this.x);
//本类的x
x="
+x);
//本方法的x
publicclassSuperDemo
publicstaticvoidmain(Stringargs[])//主方法
SubClsss=newSubClss();
s.doDemo();
SuperClss.doClass()
SubClss.doClss()
super.x=10
this.x=100
x=1000
9、编译并运行下面的程序,分析运行结果,体会其中方法重载的用法,进一步理解方法重载的概念。
classFather
//本类中的speak方法重载了两次
voidspeak()
//无参数的speak方法
System.out.println(″IamFather!
″);
voidspeak(Strings)
//有参数的speak方法
{
System.out.println(″Ilike″+″″+s+″.″);
}
publicclassOverLoadingDemo
Fatherx=newFather();
x.speak();
//调用无参的speak方法
x.speak(″music″)
//调用有参的speak方法
}
IamFather!
Ilikemusic.
第五章习题及思考题
1、什么是继承?
什么是父类?
什么是子类?
继承的特性可给面向对象编程带来
什么好处?
什么是单重继承?
什么是多重继承?
2、“子类的域和方法的数目一定大于等于父类的域和方法的数目”,这种说法是否
正确?
为什么?
3、什么是方法的覆盖?
方法的覆盖与域的隐藏有何不同?
与方法的重载有何不同?
4、什么是多态?
面向对象程序设计为什么要引人多态的特性?
使用多态有什么优点?
5、父类对象与子类对象相互转化的条件是什么?
如何实现它们的相互转化?
6、什么是包?
它的作用是什么?
7、CLASSPATH是有关什么的环境变量?
它如何影响程序的运行?
如何设置
和修改这个环境变量?
8、一个类如何实现接口?
实现某接口的类是否一定要重载该接口中的所有抽象方法?
9、为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。
现有两种工具:
Car007和Plane,其中Car007的速度运算公式为:
A*B/C,Plane的速度运算公式为:
A+B+C。
需要编写三类:
ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。
其运行过程如下,从命令行输入ComputeTime的四个参数,第一个是交通工具的类型,第二、三、四个参数分别时整数A、B、C,举例如下:
计算Plane的时间:
"
javaComputeTimePlane203040"
计算Car007的时间:
javaComputeTimeCar007233445"
如果第3种交通工具为Ship,则只需要编写Ship.java,运行时输入:
javaComputeTimeShip223344"
提示:
充分利用接口的概念,接口对象充当参数。
实例化一个对象的另外一种办法:
Class.forName(str).newInstance();
例如需要实例化一个Plane对象的话,则只要调用Class.forName("
Plane"
).newInstance()便可。
10、编写求解几何图形(如直线、三角形,矩型,圆,多边型)的周长,面积的应用程序,要求用到继承和接口等技术。
第六章习题及思考题
a)找出以下有问题的代码
pulicintsearchAccount(int[25]number){
number=newint[15];
for(inti=0;
number.length;
number[i]=number[i-1]+number[i+1];
returnnumber;
2、将一个字符串中的小写字母变成大写字母,并将大写字母变成小写字母.
3、求若干个数的平均数,若干个数从键盘输入.
4、将一个字符串数组按字典序重新排列.
5、编写应用程序,分析字符串,分别输出字符串的单词,并统计出单词个数.
6、使用java.lang包中System类的静态方法arraycopy可以实现数组的快速拷贝
7、运行下面程序,给出结果
publicclassExample4{
publicstaticvoidmain(Stringargs[]){
byted[]="
你我他"
.getBytes();
System.out.println("
数组d的长度是(一个汉字占两个字节):
+d.length);
Strings=newString(d,0,2);
System.out.println(s);
第七章习题及思考题
1、编写判断某年是否是闰年的Java程序。
2、已知f(n)公式如下:
f
(1)=f
(2)=1当n=1,2
f(n)=f(n-1)+f(n-2)当n>
=3
计算f(28)的结果,并测试计算该公式所花的时间数。
(提示:
可以用System类的静态方法publiclongcurrentTimeMillis()获取系统当前时间,也可以根据currentTimeMillis()方法得到的数字,用Date的构造方法)
解:
3、利用Vector类,实现一个先进先出队列。
4、将从小到大的素数30个放入数组中。
5、编写生成100个1-6之间的随机数,统计1—6每个出现的概率。
6、在所有的Java系统类中,Object类有什么特殊之处?
它在什么情况下使用?
7、试列举你使用过的数据类型类,数据类型类与基本数据类型有什么关系?
8Math类用来实现什么功能?
设x,y是整型变量,d是双精度型变量,试书写表
达式完成下面的操作:
(1)求x的y次方。
(2)求x和y的最小值。
(3)求d取整后的结果。
(4)求d四舍五人后的结果。
(5)求atan(d)的数值。
9、向量与数组有何不同?
它们分别适合于什么场合?
10、什么是排序?
你了解几种排序算法?
它们各自有什么优缺点?
分别适合在什么情况下使用?
第八章习题及思考题
1.
什么是异常?
简述Java的异常处理机制。
2.系统定义的异常与用户自定义的异常有何不同?
如何使用这两类异常?
3.输入并运行下面的程序:
4.编写从键盘读入10个字符放入一个字符数组,并在屏幕上显示它们的程序。
请处理数组越界异常.
第九章习题及思考题
1、编一个应用程序,按行顺序地读取一个可读文件的内容。
2、把Hashtable存放的信息输出到磁盘文件中,并再从中读进Hashtable.
3、利用StringBuffer类编写从键盘读入字符串、整数、实型数,并在屏幕上输出。
4、什么叫流?
简述流的分类?
5、编写一个测试文件一般属性(如显示文件的路径、绝对路径、显示文件是否可写、显示文件是否可读、显示文件的大小等属性)的程序。
6、利用RandomAccessFile类编写应用程序,要求输入10组数据到文件中,每组数据为1个整形数和一个双精度数,然后随机修改文件的某组数,并显示修改的结果。
7、将如下三组不同类型的数据利用DataInputStream和DataOutputStream写入文件,然后从文件中读出。
三组数据如下
{19.99,9.99,15.99,3.99,4.99};
{12,8,13,29,50};
{"
JavaT-shirt"
"
JavaMug"
DukeJugglingDolls"
JavaPin"
"
JavaKeyChain"
8、利用BufferedReader和BufferedWriter在文件中实现输入输出字符串。
9、什么是过滤流,并举例
10、什么是串行化,并举例
第十章习题及思考题
1.什么是线程?
它产生的背景是什么?
线程有几种状态?
说明状态变化调用的方法。
2、实现两个定时线程,一个线程每隔1秒显示一次,一个线程每隔3秒显示一次。
3、创建两个线程,每个线程打印出线程名字后再睡眠,给其它线程以执行的机会,主线程也要打印出线程名字后再睡眠,每个线程前后共睡眠5次。
要求分别采用从Thread中继承和实现Runnable接口两种方式来实现程序。
(即写两个程序)
第十一章习题及思考题
1、什么是AWT,什么是Swing?
2、AWT中包含了那些常用的组件,有什么用途?
3、什么是事件?
什么是委托事件处理模型?
4、编程包含一个标签和一个按钮,单击按钮时,标签的内容在"
你好"
和"
再见"
之间切换。
5、编程包含一个复选按钮和一个普通按钮,复选按钮选中时,普通按钮的背景色为青色,未选中时为灰色。
6、编程包含一个下拉列表和一个按钮,下拉列表中有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小应用程序Applet的开发的步骤。
2、浏览器采取哪些办法,保证Applet安全运行。
3、实现一个Applet,使其可以用用三个按钮控制:
(1)从服务器下载音乐播放
(2)不停地运行一个动画;
使上述动画和音乐协调播放。
第十三章习题及思考题
1.如何建立数据库的连接?
2、有哪写方法可以发送访问、操作数据库的SQL语句?
3.如何处理对数据库访问操作的结果?
4、如何获得关于数据库的信息?
第十四章习题及思考题
1.组建模型提供哪些服务?
2.简单回答JavaBean的5个特性?
3.JavaBean属性类型?
4.编写一个表示银行账户的JavaBean,名称叫AccountBean,分别设计一个绑定属性和限制属性;
取款时,如果账户余额不足,不能取款;
存款时,自动通知用户现在新的存款余额。
第十五章习题及思考题
1.套接口作用是什么?
端口有什么意义?
2.什么是URL?
一个URL由哪此部分组成?
3.编程读出中国矿业大学主页的html文件,判断主页的html文件有无关于“教学改革”的内容。
上面的程序中用到了哪些有关URL操作的方法?
各起什么作用?
中国矿业大学URL为:
.
4、顾客和服务者通过套接口通讯,描述基于有连接和无连接通讯时的流程图。
5、利用Java网络包java.io中套接口类Socket和服务者套接口类(ServerSocket)分别实现有连接和无连接的通讯。
第十六章习题及思考题
1.(简答题)简单回答对计算机系统的攻击方法?
2.什么是对称密码技术和非对称密码技术?
3.简述数字签名的基本原理?