习题一(第1章)
1.James Gosling
2.需3个步骤:
1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.set classpath=D:\jdk\jre\lib\rt.jar;.;
4. B
5. Java源文件的扩展名是.java,Java字节码的扩展名是.class。
6.D。
习题二(第2章)
1.
2.
Teacher.java
public class Teacher {
double add(double a,double b) {
return a+b;
}
double sub(double a,double b) {
return a-b;
}
}
Student.java
public class Student {
public void speak() {
System.out.println("老师好");
}
}
MainClass.java
public class MainClass {
public static void main(String args[]) {
Teacher zhang=new Teacher();
System.out.println(zhang.add(12,236));
System.out.println(zhang.add(234,120));
Student jiang=new Student();
jiang.speak();
}
}
3. 如果源文件中有多个类,但没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名是.java就可以了,如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是.java。
4.行尾风格。
习题三(第3章)
1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。true不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。不是关键字。class implements interface enum extends abstract。
3.boolean,char,byte,short,int,long,float,double。
4.属于操作题,解答略。
5.属于操作题,解答略。
6. public class E {
public static void main (String args[ ]) {
char cStart='A',cEnd='Z';
for(char c=cStart;c<=cEnd;c++)
System.out.print(" "+c);
}
}
7.不可以。
习题四(第4章)
1.110。不规范。
2.新亲亲斤!!。
3.
public class JudgeAward {
void giveMess(int number) {
if(number==9||number==131||number==12) {
System.out.println(number+"是三等奖");
}
else if(number==209||number==596||number==27) {
System.out.println(number+"是二等奖");
}
else if(number==875||number==316||number==59) {
System.out.println(number+"是一等奖");
}
else{
System.out.println("未中奖");
}
}
}
4.
import java.util.Scanner;
public class Computer {
public static void main(String args[]) {
Scanner reader=new Scanner(System.in);
double amount = 0; //存放电量
double price = 0; //用户需要交纳的电费
System.out.print("输入电量:");
amount =reader.nextDouble();
if(amount <= 90 && amount>=1){
price = amount*0.6;//计算price的值
}
else if(amount <= 150 && amount>=91){
price = 90*0.6+(amount-90)*1.1;//计算price的值
}
else if(amount>150){
price = 90*0.6+(150-90)*1.1+(amount-150)*1.7;//计算price的值
}
else {
System.out.println("输入电量:"+amount+"不合理");
}
System.out.printf("电费:%5.2f",price);
}
}
5.public class E {
public static void main (String args[ ]) {
char cStart='A',cEnd='Z';
for(char c=cStart;c<=cEnd;c++)
System.out.printf("%2c",c);
System.out.println();
for(char c=cStart;c<=cEnd;c++)
System.out.printf("%2c",(c+32));
}
}
6.public class Xiti5 {
public static void main(String args[]) {
int sum=0,i,j;
for(i=1;i<=1000;i++) {
for(j=1,sum=0;j<i;j++) {
if(i%j==0)
sum=sum+j;
}
if(sum==i)
System.out.println("完数:"+i);
}
}
}
7
public class E {
public static void main(String args[]) {
int n=1,i=1,jiecheng=1;
long sum=0;
while(true) {
jiecheng=1;
for(i=1;i<=n;i++){
jiecheng=jiecheng*i;
}
sum=sum+jiecheng;
if(sum>9876)
break;
n++;
}
System.out.println("满足条件的最大整数:"+(n-1));
}
}
习题五(第5章)
1.用类创建对象时。
2.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。可以。
3.可以。不可以。
4.不可以。
5.一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。所有对象的类变量都分配给相同的一处内存,对象共享类变量。
6.CD。
7.【代码1】【代码4】。
8.sum=-100。
9. 27。
10.100和20.0。
习题六(第6章)
1.如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法, 继承的成员或方法的访问权限保持不变。当子类和父类不在同一个包中时,父类中的private和友好访问权限的成员变量不会被子类继承,也就是说,子类只继承父类中的protected和public访问权限的成员变量作为子类的成员变量;同样,子类只继承父类中的protected和public访问权限的方法作为子类的方法。如果所声明的成员的变量的名字和从父类继承来的成员变量的名字相同(声明的类型可以不同),在这种情况下,子类就会隐藏掉所继承的成员变量。
2.不可以。
3.abstract类。
4.A类是B类的父类,当用子类创建一个对象b,并把这个对象b的引用放到父类的对象a中时,称a是b的上转型对象。
5.AD。
6. 15.0
8.0。
7. 98.0
12。
习题七(第7章)
1.不能。
2.不能。
3.可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。
4. 15.0
8。
5. 18
15。
习题八(第8章)
1.有效。
2.可以。
3.不可以。
4.大家好,祝工作顺利!
习题九(第9章)
1.ABD。
2.Love:Game。
3. 15
abc我们。
4.13579。
5.9javaHello。
6.public class E {
public static void main (String args[ ]) {
String s1,s2,t1="ABCDabcd";
s1=t1.toUpperCase();
s2=t1.toLowerCase();
System.out.println(s1);
System.out.println(s2);
String s3=s1.concat(s2);
System.out.println(s3);
}
}
7. public class E {
public static void main (String args[ ]) {
String s="ABCDabcd";
char cStart=s.charAt(0);
char cEnd = s.charAt(s.length()-1);
System.out.println(cStart);
System.out.println(cEnd);
}
}
8.
import java.util.*;
public class E {
public static void main(String args[]) {
Scanner read=new Scanner(System.in);
CalendarBean cb=new CalendarBean();
int year=2000,month=1;
System.out.println("输入年:");
year=read.nextInt();
System.out.println("输入月:");
month=read.nextInt();
cb.setYear(year);
cb.setMonth(month);
String [] a= cb.getCalendar();//返回号码的一维数组
char [] str="日一二三四五六".toCharArray();
for(char c:str) {
System.out.printf("%3c",c);
}
for(int i=0;i<a.length;i++) { //输出数组a
if(i%7==0)
System.out.println(""); //换行
System.out.printf("%4s",a[i]);
}
}
}
class CalendarBean {
String [] day;
int year=0,month=0;
public void setYear(int year) {
this.year=year;
}
public void setMonth(int month) {
this.month=month;
}
public String [] getCalendar() {
String [] a=new String[42];
Calendar rili=Calendar.getInstance();
rili.set(year,month-1,1);
int weekDay=rili.get(Calendar.DAY_OF_WEEK)-1; //计算出1号的星期
int day=0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
day=31;
if(month==4||month==6||month==9||month==11)
day=30;
if(month==2) {
if(((year%4==0)&&(year%100!=0))||(year%400==0))
day=29;
else
day=28;
}
for(int i=0;i<weekDay;i++)
a[i]=" ";
for(int i=weekDay,n=1;i<weekDay+day;i++) {
a[i]=String.valueOf(n) ;
n++;
}
for(int i=weekDay+day;i<a.length;i++)
a[i]=" ";
return a;
}
}
9. import java.util.*;
public class E {
public static void main (String args[ ]) {
Scanner read=new Scanner(System.in);
int year1,month1,day1,year2,month2,day2;
System.out.println("输入第一个日期的年、月、日(用空格或回车分隔):");
year1=read.nextInt();
month1=read.nextInt();
day1=read.nextInt();
System.out.println("输入第二个日期的年月日(用空格或回车分隔):");
year2=read.nextInt();
month2=read.nextInt();
day2=read.nextInt();
Calendar calendar=Calendar.getInstance();
calendar.set(year1,month1-1,day1);
long timeYear1=calendar.getTimeInMillis();
calendar.set(year2,month2-1,day2);
long timeYear2=calendar.getTimeInMillis();
long 相隔天数=Math.abs((timeYear1-timeYear2)/(1000*60*60*24));
System.out.println(""+year1+"年"+month1+"月"+day1+"日和"+
year2+"年"+month2+"月"+day2+"日相隔"+相隔天数+"天");
}
}
10. import java.util.*;
public class E {
public static void main (String args[ ]) {
double a=0,b=0,c=0;
a=12;
b=24;
c=Math.asin(0.56);
System.out.println(c);
c=Math.cos(3.14);
System.out.println(c);
c=Math.exp(1);
System.out.println(c);
c=Math.log(8);
System.out.println(c);
}
}
11.public class E {
public static void main (String args[ ]) {
String str = "ab123you你是谁?";
String regex = "\\D+";
str = str.replaceAll(regex,"");
System.out.println(str);
}
}
12. import java.util.*;
public class E {
public static void main(String args[]) {
String cost = "数学87分,物理76分,英语96分";
Scanner scanner = new Scanner(cost);
scanner.useDelimiter("[^0123456789.]+");
double sum=0;
int count =0;
while(scanner.hasNext()){
try{ double score = scanner.nextDouble();
count++;
sum = sum+score;
System.out.println(score);
}
catch(InputMismatchException exp){
String t = scanner.next();
}
}
System.out.println("总分:"+sum+"分");
System.out.println("平均分:"+sum/count+"分");
}
}