工学java2实用教程试题Word文件下载.docx
《工学java2实用教程试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《工学java2实用教程试题Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
”+123+“大于”+122)等。
上机调试下列程序,注意观察结果,特别注意System.out.print()和System.out.println()的区别。
publicclassOutputData
{intx=234,y=432;
System.out.println(“:
”+x+“<
”+2*x);
System.out.print(“我输出结果后不回车“);
System.out.println(“我输出结果后自动回车到下一行”);
第3章运算符、表达式和语句
3-1分别编写一个应用程序和小应用程序求1!
+2!
+…+20!
。
3-2编写一个小应用程序求100以内的全部素数。
3-3分别用do-while和for循环计算1+1/2!
+1/3!
+1/4!
…的前20项和。
3-4一个数如果恰好等于它的因子之和,这个数就称为“完数”。
分别编写一个应用程序和小应用程序求1000之内的所有完数。
第4章类、对象和接口
4-1举例说明protected方法和友好方法的区别。
4-2举例说明类方法和实例方法以及类变量和实例变量的区别。
4-3子类将继承父类的那些成员变量和方法?
子类在什么情况下隐藏父类的成员变量和方法?
在子类中是否允许有一个方法和父类的方法名字相同,而类型不同?
说明你的理由。
4-4下列程序有什么错误?
publicclassTakecare
{inta=90;
staticfloatb=10.98f
publicstaticvoidmain(stringargs[])
{floatc=a+b;
System.out.println(“=”+c);
4-5使用接口有哪些注意事项?
模仿例子4.28,编写一个类实现两个接口的程序。
4-6上机编译运行下列程序。
class学生
{string书,笔;
int学号,年级;
学生(intnumber,intgrade)
{学号=number;
年级=grade;
void去教室()
{System.out.println(“我带着”+书+“和”+笔+“来到教室,准备听课”);
第5章数组与字符串
5-1使用String类的publicStringtoUpperCase()方法可以将一个字符串中的小写字母变成大写字母;
使用publicStringtoLowerCase()方法可以将一个字符串中的大写字母变成小写字母。
编写一个程序,使用这个两个方法实现大小写的转换。
5-2使用String类的publicStringconcat(Stringstr)方法可以把调用该方法的字符串与参数制定的字符串连接,把str指定的串连接到当前串的尾部获得一个新的串。
编写一个程序通过连接两个串得到一个新串,并输出这个新串。
5-3String类的publiccharcharAt(intindex)方法可以得到当前字符串index位置上的一个字符。
说出下列程序的输出结果。
classE4
{publicstaticvoidmain(Stringargs[])
{Strings=“中国科学技术大学”;
chara=s.charAt
(2),b=s.charAt(6);
System.out.print(a);
System.out.println(b);
5-4使用java.util包中的Arrays类的静态方法:
publicstaticvoidsort(doublea[])可以把参数a指定的double型数组按升序排序。
使用使用java.util包中的Arrays类的静态方法:
publicstaticvoidsort(doublea[],intstart,intend)可以把参数a指定的double型数组中从位置start到end位置的数按升序排序。
importjava.util.*;
classE5
{inta[]={23,67,89,90,-987};
doubleb[]={12.89,90.87,34,678.987,-98.78,0.89};
Arrays.sort(a);
Arrays.sort(b,1,4);
for(inti=0;
=4;
{System.out.print(a[i]+“,”);
b.length;
i++)
{System.out.print(b[i]+“,”);
5-5使用java.lang包中System类的静态方法arraycopy可以实现数组的快速复制,上机实习下列程序,并总结出arraycopy方法参数的使用规则。
classArrayCopy
{publicstaticvoidmain(Stringargs[])
{charal[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’},bl[]={‘1’,‘2’,‘3’,‘4’,‘5’,‘6’};
System.arraycopy(al,0,bl,l,al.length-1);
System.out.println(newString(al));
System.out.println(newString(bl));
bytea2[]={97,98,99,100,101,102},b2[]={65,67,68,69,70,71};
System.arraycopy(b2,0,a2,3,b2.length-3);
System.out.println(newString(a2));
System.out.println(newString(b2));
第6章时间、日期和数字
6-1输出某年某月的日历页,通过main方法的参数将年份和月份时间传递到程序中。
6-2计算某年、某月、某日和某年、某月、某日之间的天数间隔。
要求年、月、日通过main方法的参数传递到程序中。
6-3编写练习Math类的常用方法。
第7章AWT工具集简介
7-1下列程序中,一共有多少个组件,哪些组件既是组件又是容器?
importjava.awt.*;
classE6
{
publicstaticvoidmain(Stringargs[])
Framefra=newFrame(“?
”);
Fra.setVisible(true);
fra.setBounds(120,100,200,180);
Panelp=newPanel();
Buttonb=newButton(“java”);
TextFieldtext=newTextField(10);
Labellabel=newLabel(“howareyou”);
Checkboxbox=newCheckbox(“Wa”);
p.add(box);
p.add(b);
fra.add(lable,“North”);
far.add(p,“Center”);
far.add(text,“South”);
第8章JavaApplet基础
8-1查阅编写网页的有关书籍,总结出在网页中加入小应用程序的更多技术细节。
8-2我们可以在超文本中使用若干个‹Param...›标志把值传递到小程序中,例如:
‹paramname=名字串value=值串›
写出下列小程序的输出结果。
小程序和运行该小程序的超文本文件如下。
E2.html;
‹appletcode=E2.classwidth=200height=200›
‹paramname=“girl”value=“160”›
‹paramname=“boy”value=“175”›
‹/applet›
E2.java:
importjava.awt.*;
importjava.applet.*;
publicclassE2extendsApplet
{intx=8,y=9;
publicvoidinit()
{Stringsl=getParameter(“girl”);
//从html得到girl的值(字符串类型)
Strings2=getParamete(“boy”);
//从html得到boy的值(字符串类型)
x=Integer.parseInt(s1);
y=Integer.parseInt(s2);
publicvoidpaint(Graphicsg)
{g.drawstring(“x=“+x+”,“+”y=”+y,90,120);
第9章文本框和文本区
9-1编写有两个文本区的小应用程序。
当我们在一个文本区中输入若干个数时,另一个文本区同时对你输入的数进行求和运算并求出平均值,也就是说随着你输入的变化,另一个文本区不断地更新求和及平均值。
9-2在下列程序中,当在文本框textl中输入单词Glad后按一次回车键,程序的执行会出现怎样的结果?
按两次回车键会出现怎样的结果?
importjava.awt.event.*;
publicclassE3extendsAppletimplementsActionListener,TextListener
{TextFieldtextl;
TexAreatext2;
{text1=newTextField(12);
text2=newTexArea(6,16)
add(text1);
add(text2);
text1.addActionListener(this);
text2.addTextListener(this);
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==text1)
{text2.append(“\n”+text1.getText());
publicvoidtextValueChanged(textEvente)
{if(e.getSource()==text2)
{text1.setText(“你好!
”);
9-3所谓异常就是程序运行时可能出现一些错误,比如试图打开一个根本不存在的文件等。
我们没有单独列出一章来讲述异常处理,而是将Java程序中出现的异常问题分散到相应的章节中。
当在文本框读取数字时,使用了如下语句:
doublea=Double.valueOf(text_1.getText()).doubleValue();
那么客户如果在文本框text_1中输入了非数字字母,就无法转化成数字。
这时程序的运行就出现NumberFormatException异常。
Java规定,应当把可能出现异常的操作放在
try{}
catch(){}
块语句中。
比如:
try{a=Double.valueof(text_1.getText()).doubleValue();
catch(NumberFormatExceptionevent){}
当出现异常时,就会执行catch块中的语句,如果此块中无语句,就会执行相应的默认处理语句。
实习下列程序,注意观察在text_1中输入25按回车键与输入abc按回车键程序的运行结果。
importjava.apple.*;
publicclassE4extendsAppletimplementsActionListener
{TextFieldtext_1=null,text_2=null;
{text_1=newTextField(18);
text_2=newTextField(18);
text_1.addActionListener(this);
add(newLable(“输入一个数字后,按Enter”));
add(text_1);
add(text_2);
}
publicvoidactionPerformed(ActionEvente)
{doublea=0.0;
text_2.setText(null);
try
{a=Double.valueOf(text_1.getText()).doubleValue();
text_1.setText(“”+Math.sqrt(a));
}
catch(NumberFormatExceptionevent)
{text_2.setText(“请输入数字字符”);
9-4文本区可以使用getSelectedText()方法获取该文本区通过拖动鼠标选中的文本。
上机练习习题4,要求在textl中输入一篇英文短文,,然后用鼠标把英文短文中的动词选出来放入另一个文本区。
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassSelectTextextendsAppletimplementsActionListener
{TextAreatext1,text2;
Buttonb=newButton(“确定”);
{text1=newTextArea(10,10);
text2=newTextArea(10,10);
add(text1);
add(text2);
add(b);
b.addActionListener(this);
text2.setEditable(false);
{text2.append(“\n”+text1.getSelectedText());
第10章按钮与标签
10-1编写一个小应用程序,在小应用程序的容器中有一个按钮和一个文本框。
当单击按钮时,文本框显示按钮的名字。
10-2编写一个有两个文本框和一个按钮的小应用程序,在一个文本框输入单词girl之后按回车键或单击按钮,另一个文本框能显示“女孩”二字。
10-3编写一个小应用程序,设计4个按钮,分别命名为“加”、“差”、“积”、“除”,以及3个文本框。
单击相应的按钮,将两个文本框的数字做算术运算,在第3个文本框中显示结果。
要求处理NumberFormatException.
10-4编写一个竖状的标签。
第11章面板和画布
11-1写一个小应用程序,要求有一个面板,该面板是Panel类的子类的一个对象,面板中有两个画布组件。
11-2写一个小应用程序,要求有一个画布,在画布上绘制一个矩形,用户通过文本框输入矩形的宽和高,以及矩形左上角的位置坐标。
第12章布局设计
12-1在一个BorderLayout布局的东、西、南、北区域分别添加4个使用盒式布局的容器,要求每个容器中有若干个组件,东、西区域的容器使用列型盒布局,南、北区域的容器使用行型和布局。
12-2FlowLayout、GridLayout、BorderLayout布局都可以调用setHgap(inthgap)和setVgap(intvgap)设置组件的垂直间距和水平间距。
编写程序,通过调整组件的间距达到改变组件大小的目的。
12-3编写一个小应用程序。
小应用程序中有一个面板和按钮,将小应用程序和面板的布局设为null,小应用程序添加面板,面板中添加按钮。
第13章选择型组件
13-1编写一个小应用程序,布局为BorderLayout布局,北面添加一个Choice组件,该组件有4个课程名称的选项。
中心添加一个文本区,当选择Choice组件中的某个选项后,文本区显示对该课程的介绍。
13-2编写应用程序,有一个窗口对象,该窗口取它的默认布局:
BorderLayout布局,北面添加一个List组件,该组件有4个商品名称的选项。
中心添加一个文本区,当选择List组件中的某个选项后,文本区显示对该商品的价格和产地;
当用鼠标双击List组件中的某个选项后,文本区显示该商品的明细。
第14章Component类的常用方法
14-1编写程序,观察各种组件设置背景色和前景色的情况。
14-2编写小应用程序,其布局为null,在容器中有两个按钮,单击一个按钮让另一个按钮移动。
14-3编写小应用程序,其布局为null,在容器中有3个按钮和一个画布,3个按钮的颜色分别为红、绿、蓝。
单击相应的按钮,画布绘制相应颜色的圆。
14-4编写程序,测试Cursor类中表示鼠标形状的静态常量。
第15章建立窗口和菜单
15-1Frame类的对象的默认布局是什么布局?
和Panel类对象的默认布局相同吗?
15-2创建Frame窗口对象时可以不设置该窗口的大小吗?
15-3一个容器对象是否可以使用add方法添加一个Frame窗口?
窗口可以嵌套吗?
15-4编写一个应用程序,有一个Frame窗口,窗口的中心添加了一个文本区。
该窗口中有4个菜单。
每个菜单里都有菜单项,每个菜单项都对应有快捷键,选择某个菜单项时窗口中心的文本区显示某些信息。
15-5上机实习下列程序,学会弹出式菜单的使用。
publicclassPopupMenuTestextendsFrameimplementsActionListener
{Buttonb=null;
PopupMenumenu;
PopupMenuTest()
{menu=newPopupMenu(“我是弹出式菜单,是Menu的子类”);
menu.add(newMenuItem(“copy”));
menu.add(newMenuItem(“paste”));
menu.add(newMenuItem(“save”));
add(menu);
b=newButton(“ok”);
add(b,“North”);
b.addActionListener(this);
setSize(200,200);
setVisible(true);
addWindowListener(newWindowAdapter();
{publicvoidwindowClosing(WindowEvente)
{System.exit(0);
});
{menu.show(b,20,5);
//show()显示时,第一个参数必须是一个组件,使得菜单从该//组件的坐标系统的(20,5)位置弹出
publicstaticvoidmain(Stringargs[])
{newPopupMenuTest();
第16章建立对话框
16-1编写一个应用程序,用户可以在一个文本框里输入数字字符,按回车键后将数字放入一个文本区。
当输入的数字大于1000时,弹出一个有模式的对话框,提示用户数字已经大于1000,是否继续将该数字放入文本区。
16-2参考Windows平台的NotePad,编写一个简单的“记事本”程序。
第17章Java与图形
17-1编写一个应用程序,绘制五角形,并打印出来。
17-2用java2D绘制一条抛物线的一部分。
17-3用java2D绘制双曲线的一部分。
17-4利用java2D的平移、缩放、旋转功能绘制一个你喜欢的图形。
17-5利用图形的布尔运算绘制各种样式的“月牙”。
第18章Java中的鼠标事件和键盘事件
18-1完善例子18.5,要求能改变“画笔”的粗细及橡皮擦的大小。
18-2进一步改进例子7,要求一个按钮在移动时,不允许和其他按钮相交。
18-3上机实习下列程序,掌握复合键的使用。