Java期末练习题和答案.docx
- 文档编号:10539216
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:15
- 大小:17.55KB
Java期末练习题和答案.docx
《Java期末练习题和答案.docx》由会员分享,可在线阅读,更多相关《Java期末练习题和答案.docx(15页珍藏版)》请在冰豆网上搜索。
Java期末练习题和答案
1、已知数组a={4,67,32,78,56,13,90,48,22},编程实现求该数组最大值并输出的方法。
Answer:
publicclassCone{
publicstaticvoidmain(String[]args){
int[]a={4,67,32,78,56,13,90,48,22};
intmax=a[0];
for(inttemp:
a){
if(temp>max){
max=temp;
}}
System.out.println("Themaxis:
"+max);
}}
2、编写程序实现求0~150之间的奇数的乘积;
Answer:
publicclassCone{
publicstaticvoidmain(String[]args){
longresult=1;
for(inti=1;i<150;i=i+2){
result=result*i;
}
System.out.println("Theresultis:
"+result);
}}
3、已知类People里含有属性money初值是20,方法voidwork(intm)实现增加m到money里,定义它的子类ChinaPeople,重写方法voidwork(intm)实现把增加m到money里(体现汇率变化)。
classPeople{
doublemoney=20;
voidwork(intm){
money=money+m;
System.out.println("Themoneyofpeopleis:
"+money);}
}
classChinaPeopleextendsPeople{
doublemoney=20;
voidwork(intm){
money=money+m*0.6;
System.out.println("Themoneyofpeopleis:
"+money);}
}
publicclassCone{
publicstaticvoidmain(String[]args){
Peoplep=newPeople();
ChinaPeoplecp=newChinaPeople();
p.work(200);
cp.work(200);
}
}
4、定义接口Worker,有一个方法login()实现打卡功能。
定义该接口实现类ChinaWorker,给出login()的具体实现,只需输出“我来了!
!
”即可。
interfaceWorker{
voidlogin();
}
classChinaWorkerimplementsWorker{
publicvoidlogin(){
System.out.println("我来啦!
");
}
}
publicclassCone{
publicstaticvoidmain(String[]args){
Workercw=newChinaWorker();
cw.login();
}
}
5、使用Scanner类实现从键盘输入一句英文,主程序实现把这句英文的单词按照字典顺序排序输出。
Answer:
importjava.util.*;
publicclassCone{
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);
Stringstr=scan.nextLine();
String[]temp=str.split("");
SortString.sort(temp);
for(Strings:
temp){
System.out.print(""+s);}}
}
classSortString{
publicstaticvoidsort(Stringa[]){
intcount=0;
for(inti=0;i for(intj=i+1;j if(a[j].compareTo(a[i])<0){ Stringtemp=a[i]; a[i]=a[j]; a[j]=temp; } } } } } 6、使用Scanner类实现从键盘输入若干个双精度数,主程序实现把这些数求和输出。 Answer: importjava.util.*; publicclassCone{ publicstaticvoidmain(String[]args){ System.out.println("请输入需要计算的数,每个数以Enter结束,输入完成后以任意非数字结束输入"); Scannerscan=newScanner(System.in); doublesum=0; while(scan.hasNextDouble()){ sum=sum+scan.nextDouble(); } System.out.println("Thesumofinputis"+sum); }} 7、定义窗体,窗体上含有两个文本区,一个按钮,实现一个文本区内输入若干个整数,单击按钮后在另一个文本区内显示这些整数中奇数的个数,并输出所有奇数。 Answer: importjava.util.*; importjavax.swing.*; importjava.awt.*; importjava.awt.event.*; classframeextendsJFrameimplementsActionListener{ JTextAreat1,t2; JButtonbutton; frame(){ setLayout(newFlowLayout()); t1=newJTextArea(20,20); t2=newJTextArea(20,20); button=newJButton("Submit"); button.addActionListener(this); add(t1); add(t2); add(button); setVisible(true); setBounds(100,200,100,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicvoidactionPerformed(ActionEvente){ Stringstr=t1.getText(); Scannerscan=newScanner(str); intsum=0,temp; intcount=0; while(scan.hasNext()){ try{ temp=scan.nextInt(); if(temp%2==1){ t2.append(""+temp); sum=sum+temp; count++; }} catch(InputMismatchExceptionexp){ Strings=scan.next(); }} t2.append("\nAllhas"+count+"andthesumis"+sum); }} publicclassCone{ publicstaticvoidmain(String[]args){ newframe(); }} 8、编写类比如Circle实现模拟圆形,类中封装与圆有关的数据和方法(比如半径和获取面积),在主方法中定义一个对象,让这个对象操作自己的数据和方法输出相应结果。 Answer: publicclassCone{ publicstaticvoidmain(String[]args){ Circlec=newCircle(2.0); System.out.println("Theinitialcircle: Radius="+c.get_r()+";Area="+c.getArea()); c.set_r(3.0); System.out.println("Thechangedcircle: Radius="+c.get_r()+";Area="+c.getArea()); }} classCircle{ doubler; Circle(doubler){ this.r=r; } voidset_r(doublem){ r=m; } doubleget_r(){ returnr; } doublegetArea(){ returnMath.PI*r*r; }} 9、编写一个类People,含有两个属性String类型的name和int类型的age,定义一个方法speak()输出这两个属性。 如“我是zhanghua,我今年12了”。 编写People的子类Boy,重写方法speak(),输出“我是男孩,我今年***”。 编写People的子类Girl,重写方法speak(),输出“我是女孩,我叫****“。 编写主类,声明一个People的对象p。 再依次创建Boy和Girl的对象Tom和Rose,分别给各自的属性赋值,最后使P成为Tom和Rose的上转型对象,分别调用speak()。 publicclassCone{ publicstaticvoidmain(String[]args){ Peoplep; BoyTom=newBoy("Tom",12); GirlRose=newGirl("Rose",13); p=Tom; p.speak(); p=Rose; p.speak(); }} classPeople{ Stringname="zhanghua"; intage=12; voidspeak(){ System.out.println("我是"+name+",我今年"+age+"了。 "); } } classBoyextendsPeople{ Stringname; intage; Boy(Stringname,intage){ this.name=name; this.age=age;} voidspeak(){ System.out.println("我是男孩,我今年"+age+"了。 "); } } classGirlextendsPeople{ Stringname; intage; Girl(Stringname,intage){ this.name=name; this.age=age;} voidspeak(){ System.out.println("我是女孩,我今年"+age+"了。 ");} } 10、编写程序实现,创建一个窗体,里面依次有一个标签,一个文本框,一个文本区,一个按钮。 标签里面给提示信息如“请输入您的成绩: “,单击按钮实现在文本框里输入成绩后,在文本区给出及格与否的判断。 Answer: importjavax.swing.*; importjava.awt.event.*; importjava.awt.*; classframeextendsJFrameimplementsActionListener{ JButtonbutton; JTextFieldtext; JTextAreaarea; frame(){ setLayout(newFlowLayout()); button=newJButton("Submit"); text=newJTextField(20); area=newJTextArea(10,10); button.addActionListener(this); add(newJLabel("请输入您的成绩: ")); add(text); add(area); add(button); setVisible(true); setBounds(100,200,100,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicvoidactionPerformed(ActionEvente){ Stringstr=text.getText().trim(); Doublemark=Double.parseDouble(str); if(mark>=60) area.setText("及格! "); elsearea.setText("不及格! "); } } publicclassCone{ publicstaticvoidmain(String[]args){ newframe(); } } 11、编写一个应用程序,该程序的窗口依次有一个标签(“请输入打开的文件名,含扩展名”),一个用于输入的文本框,一个文本区,一个按钮。 用户在文本框输入一个文件的名字(包含扩展名),单击按钮,程序在文本区显示文件的内容。 Answer: importjavax.swing.*; importjava.awt.event.*; importjava.awt.*; importjava.io.*; classframeextendsJFrameimplementsActionListener{ JButtonbutton; JTextFieldtext; JTextAreaarea; frame(){ setLayout(newFlowLayout()); button=newJButton("Submit"); text=newJTextField(20); area=newJTextArea(10,10); button.addActionListener(this); add(newJLabel("请输入打开的文件名,含扩展名")); add(text); add(area); add(button); setVisible(true); setBounds(100,200,100,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicvoidactionPerformed(ActionEvente){ Stringstr=text.getText().trim(); Fileinput=newFile(str); if(! input.exists()){ text.setText("Inputagain! "); } else{ try{FileInputStreamin=newFileInputStream(input); BufferedReaderreader=newBufferedReader(newInputStreamReader(in)); Stringline=reader.readLine(); while(line! =null){ area.append(line+"\n"); line=reader.readLine(); } } catch(IOExceptionex){System.out.println(ex);} }}} publicclassCone{ publicstaticvoidmain(String[]args){ newframe(); } } 12、编写一个应用程序,该程序的窗口依次有一个标签(“请输入字符串”),一个用于输入的文本框,一个按钮。 用户在文本框输入一个字符串,单击按钮,程序在控制台输出字符串的长度。 Answer: importjavax.swing.*; importjava.awt.event.*; importjava.awt.*; classframeextendsJFrameimplementsActionListener{ JButtonbutton; JTextFieldtext; frame(){ setLayout(newFlowLayout()); button=newJButton("Submit"); text=newJTextField(20); button.addActionListener(this); add(newJLabel("请输入字符串")); add(text); add(button); setVisible(true); setBounds(100,200,100,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicvoidactionPerformed(ActionEvente){ Stringstr=text.getText(); System.out.println("thelengthof"+str+"is"+str.length()); } } publicclassCone{ publicstaticvoidmain(String[]args){ newframe(); } } 13、假设工资单由基础工资、岗位津贴、绩效津贴、医疗补助、独生子女补助等组成,比如一个典型的工资单如下: “基础工资: 1500.00,岗位津贴: 1000,绩效津贴: 500,医疗补助: 130.45,独生子女费: 5。 ” 编写一个应用程,要求使用StringTokenizer类编写算法输出该工资单的各项数值,并计算求工资总和。 Answer: importjava.util.*; publicclassCone{ publicstaticvoidmain(String[]args){ Stringstr="基础工资: 1500.00,岗位津贴: 1000,绩效津贴: 500,医疗补助: 130.45,独生子女费: 5。 "; StringTokenizereach=newStringTokenizer(str,","); while(each.hasMoreTokens()){ System.out.println(each.nextToken()); } StringTokenizerpay=newStringTokenizer(str,"基础工资: ,岗位津贴: ,绩效津贴: ,医疗补助: ,独生子女费: 。 "); doublesum=0; Stringtemp; while(pay.hasMoreTokens()){ temp=pay.nextToken(); sum+=Double.parseDouble(temp); } System.out.println("Thesumofpayis"+sum); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 期末 练习题 答案