2023年Java核心技术习题超详细解析超详细解析答案.pdf
《2023年Java核心技术习题超详细解析超详细解析答案.pdf》由会员分享,可在线阅读,更多相关《2023年Java核心技术习题超详细解析超详细解析答案.pdf(83页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java 核心技术习题答案 Java 核心技术 习题答案 马志强 张然 李雷孝 编 清华大学出版社 目 录 第一章 Java 语言概述.2 第二章 Java 语法基础.3 第三章 面向对象编程.14 第四章 数组.36 第五章 高级类特性.42 第六章 GUI 编程.48 第七章 集合框架.58 第九章 集合框架.71 第十章 IO 流.75 第十一章 JDBC 访问数据库.77 第十二章 线程.78 第十三章 网络编程.83 Java 核心技术习题答案 第一章 Java 语言概述 一、选择题 1-5 ABBBB 6-8 AAB 二、填空题 1、MyClass MyClass、class 2、
2、String 数组(String)一 3、javac A、java java A 三、程序设计题 1、搭建 Java 运行环境,并写一个 Java 程序打印输出“开始学习 Java 程序设计!”。1)首先安装JDK;2)配置环境变量path,classpath 可配可不配;3)FirstJava、java public class HelloWorld public static void main(String args)System、out、println(开始学习 Java 程序设计!);2、修改下面四个 Java 源文件中的错误,使其能够编译与运行。Test1、java:TestAno
3、ther1 类不能再使用 public 修饰,一个源文件中只能有一个类或者接口用 public 修饰;Test2、java:源文件中 public 修饰的类的名字为 Testing2,与源文件名字不一致;Test3、java:Test3 类的 main 方法的形参类型为 String;Test4、java:Test4 类的 main 方法必须使用 static 关键字修饰。Java 核心技术习题答案 第二章 Java 语法基础 一、选择题 1-5 BCADB 6-9 DCCC 二、填空题 1、abc,a1,_abc,_1a,ab123#a,const,$abc,1abc,if,$#1sa,$_
4、a,_$q1 2.题目出现问题:代码修改为 ch=(char)(ch+1);结果为B;如果直接System、out、println(ch+1);结果为 98。3、true(真)false(假)4、4 5、2 2 false 2 6、m*20/100(double)m*20/100 三、编程题 1、由命令行输入一个成绩,使用 switch 结构求出成绩的等级。A:90100;B:8089;C:7079;D:6069;E:059。import java、util、Scanner;public class IfElseTest public static void main(String args)
5、Scanner sc=new Scanner(System、in);int grade=sc、nextInt();if(grade100)System、out、println(aaaa);System、exit(0);int temp=(int)Math、floor(grade/10);Java 核心技术习题答案 switch(temp)case 10:System、out、println(A);break;case 9:System、out、println(A);break;case 8:System、out、println(B);break;case 7:System、out、printl
6、n(C);break;case 6:System、out、println(D);break;default:System、out、println(E);break;2、计算圆周率:PI44/3+4/5-4/7、;打印出第一个大于 3、1415 小于 3、1416的值。public class PITest Java 核心技术习题答案 public static void main(String args)double result=0、0;for(int i=1;i+)double m=4、0/(2*i-1);if(i%2)=0)result-=m;else result+=m;if(resu
7、lt3、1415&result3、1416)System、out、println(result:+result);break;3、输入一个数据 n,计算斐波那契数列(Fibonacci)的第 n 个值。斐波那契数列:1、1、2、3、5、8、13、21、34、。import java、util、Scanner;public class FibonacciTest public static void main(String args)Scanner sn=new Scanner(System、in);int num=sn、nextInt();int i=1;int n1=1,n2=1;while
8、(i=num)if(i=1|i=2)n2=1;else int temp=n2;n2=n1+n2;Java 核心技术习题答案 n1=temp;i+;System、out、println(n2);System、out、println(第+num+个值为:+n2);4、计算多项式 1-1/3+1/5-1/7+1/9、的值。1)要求出前 50 项与值。2)要求出最后一项绝对值小于 1e-5的与值。public class SumTest public static void main(String args)double sum=0、0;for(int i=1;i=50;i+)if(i%2=0)su
9、m=sum-1、0/(2*i-1);else sum=sum+1、0/(2*i-1);System、out、println(前 50 项与值:+sum);double item=0、0;int j=1;sum=0、0;while(item0、00001)item=1、0/(2*j-1);if(j%2=0)sum-=item;else sum+=item;Java 核心技术习题答案 j+;System、out、println(最后一项绝对值小于 1e-5的与值:+sum);5、产生 100 个 0-999之间的随机整数,然后判断这 100 个随机整数哪些就是素数,哪些不就是?public cla
10、ss PrimeTest public static void main(String args)PrimeTest t=new PrimeTest();for(int i=0;i100;i+)int num=(int)(Math、random()*1000);if(t、isPrime(num)System、out、println(num+就是素数!);else System、out、println(num+不就是素数!);System、out、println();public boolean isPrime(int num)for(int i=2;i=num/2;i+)if(num%i=0)
11、System、out、println(num+第一个被+i+整除!);return false;return true;Java 核心技术习题答案 6、在屏幕上打印出 n 行的金字塔图案,如,若 n=3,则图案如下:*import java、util、Scanner;public class PrintStar public static void main(String args)Scanner sn=new Scanner(System、in);int rows=sn、nextInt();for(int i=1;i=rows;i+)for(int j=1;j=rows-i;j+)Syste
12、m、out、print();for(int k=1;k=2*i-1;k+)System、out、print(*);System、out、println();7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的与,打印出所有的可能。如输入10,结果为:10=5+5;10=3+7。public class Gede public static void main(String args)int n=Integer、parseInt(args0);if(n=6|n%2!=0)System、out、println(错误的参数!);return;Gede g=new Gede();/因为 1 不就
13、是素数,n-2就是偶数,所以从 3 开始循环 Java 核心技术习题答案 for(int i=3;i=n/2;i+)if(i%2=0)continue;if(g、isPrime(i)&g、isPrime(n-i)System、out、println(i+(n-i)+=+n);/*判断 num 就是否就是素数 */public boolean isPrime(int num)for(int i=2;i=num/2;i+)if(num%i=0)return false;return true;四、实训题 万年历的设计与实现。本程序包含两个类 CalenderModelA 与 TestCalende
14、rModelA。CalenderModelA实 现 了 赛 事 日 期 设 置 等 主 要 功 能,程 序 文 件CalenderModelA、java。public class CalenderModelA /计算从公元始的天数 public int getNumberOfDay(int year,int month,int day)Java 核心技术习题答案 int total=0;int limit=getTotalDaysOfMonth(year,month);if(day=limit)for(int y=1;y year;y+)total+=(this、isLeapYear(year
15、)?366:365);for(int m=1;m month;m+)total+=(this、getTotalDaysOfMonth(year,month);total+=day;return total;else System、out、println(您输入的日期非法);return-1;/打印万年历 public void show(int year,int month)int total=0;/计算从公元始到今年之前的总天数 for(int y=1;y year;y+)Java 核心技术习题答案 total+=(this、isLeapYear(y)?366:365);/计算今年到本月前的
16、总天数 for(int m=1;m month;m+)total+=(this、getTotalDaysOfMonth(year,m);/计算本月 1 日就是星期几 total=total%7;int d1=(total+1)%7;int d2=this、getTotalDaysOfMonth(year,month);System、out、println(ttt+year+年+month+月);System、out、println(-);String s=日,一,二,三,四,五,六;for(int i=0;i 7;i+)System、out、print(si+t);System、out、pri
17、ntln();for(int i=0;id1;i+)System、out、print(t);/打印本月日历 for(int i=d1,j=1;i d1+d2;i+,j+)System、out、print(j+t);if(i+1)%7=0)Java 核心技术习题答案 System、out、println();System、out、println();/判断就是否为闰年 public boolean isLeapYear(int year)return(year%4=0)&(year%100!=0)|(year%400=0);/计算某年某月天数 public int getTotalDaysOfM
18、onth(int year,int month)int total=0;switch(month)case 1:case 3:case 5:case 7:case 8:case 10:case 12:total=31;break;case 2:total=this、isLeapYear(year)?29:28;break;case 4:Java 核心技术习题答案 case 6:case 9:case 11:total=30;break;return total;TestCalenderModelA 实现 main 方法,具有输入大赛起始与终止日期,输出日历,并计算大赛周期的功能。程序文件Tes
19、tCalenderModelA、java。import java、util、Scanner;public class TestCalenderModelA public static void main(String args)Scanner scan=new Scanner(System、in);System、out、print(请输入年份:);int year=scan、nextInt();System、out、print(请输入月份:);int month=scan、nextInt();System、out、println(月历如下);CalenderModelA testBegin=n
20、ew CalenderModelA();testBegin、show(year,month);Java 核心技术习题答案 第三章 面向对象编程 一、选择题 1-5 CABDD 2-10 DCCBC 11-12 CC 二、填空题 1.Package mypackage;2.final 3.Object 4.package import class 5.c 三、程序设计题 2、按下列要求编写程序:创建 Teacher 类 要求:Teacher 类要描述姓名、年龄、薪水,类型分别为 String、int、double 创建 TeacherTest 类 要求:在 TeacherTest 类中创建 Te
21、acher 的对象;为该对象的属性(姓名、性别、年龄)赋值;将该对象的属性(姓名、性别、年龄)输出;为 Teacher 类添加一个方法,用于在教师原有薪水的基础上增加 5000;修改 TeacherTest 类,增加对教师增加薪水方法的调用,并将增加后的薪水值输出。Teacher、java:public class Teacher public String name;public int age;public double salary;public String getName()return name;Java 核心技术习题答案 public void setName(String na
22、me)this、name=name;public int getAge()return age;public void setAge(int age)this、age=age;public double getSalary()return salary;public void setSalary(double salary)this、salary=salary;public Teacher()public Teacher(String name,int age,double salary)this、name=name;this、age=age;this、salary=salary;public
23、 void addSalary()this、salary=this、salary+5000;TeacherTest、java:public class TeacherTest public static void main(String args)Teacher teacher=new Teacher();teacher、age=35;Java 核心技术习题答案 teacher、name=zhangsan;teacher、salary=1234、5;System、out、println(teacher、age);System、out、println(teacher、name);System、o
24、ut、println(teacher、salary);teacher、addSalary();System、out、println(teacher、salary);3、定义一个 Person 类。包含以下属性:String name;int age;boolean gender;Person partner。定义 marry(Person p)方法,代表当前对象与 p 结婚,如若可以结婚,则输出恭贺信息,否则输出不能结婚原因。下列情况不能结婚:结婚年龄,男24,女22;3,某一方已婚。定义测试类,来测试以上程序。public class Person private String name;p
25、rivate int age;private boolean gender;Person partner;public Person(String name,int age,boolean gender,Person partner)this、name=name;this、age=age;this、gender=gender;this、partner=partner;public void marry(Person p)if(this、gender=p、gender)System、out、println(同性不能结婚!);return;Java 核心技术习题答案 if(this、gender=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 Java 核心技术 习题 详细 解析 答案
限制150内