第2章 简单的Java程序
- 格式:ppt
- 大小:612.50 KB
- 文档页数:32
Java语⾔程序设计(第三版)第⼆章课后习题答案(仅供参考)2.1 注意不同类型转换1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6double f = sc.nextDouble();7double t = (5.0/9)*(f-32); // 注意 (5/9) 结果为整形要写成 (5.0/9)8 System.out.println(t)9 }2.21import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6 System.out.println("请输⼊圆柱体半径和⾼:");7double r = sc.nextDouble();8double h = sc.nextDouble();9double v = Math.PI * r * r * h; //圆周率⽅法 Math.PI10 System.out.println(v);11 }2.31import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6 System.out.println("请输⼊体重和⾝⾼:");7double g = sc.nextDouble();8double h = sc.nextDouble();9double BMI = g / (h * h);10 System.out.println(BMI);11 }2.4 使⽤循环每次对个位取数相加取数后除以10 使前⼀位变为个位继续判断⼩于等于0时停⽌1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5int sum = 0;6 Scanner sc = new Scanner(System.in);7int num1 = sc.nextInt();8while (num1 > 0) // 与 0 ⽐较判断是否需要取数9 {10 sum += (num1%10); // 通过取余获得个位数字11 num1 /= 10; // 每次取余后除以1012 }13 System.out.println(sum);14 }2.5 注意 System.currentTimeMillis()⽅法返回long形需要转换为int形1public class Ch02 {2public static void main(String[] args) {3// 通过 System.currentTimeMillis() ⽅法获得从1970年1⽉1⽇ 00:00:00 到现在的毫秒数4// 28800000 是格林时间与我们时区的时间差值5// 对 86400000 取余是把满⼀天的时间都去掉获取多出来的不⾜⼀天的时间6int t = (int)((System.currentTimeMillis()+28800000)%86400000);7int hour = t/3600000; // 除 3600000 获取满⼩时的个数即求⼩时为⼏点8int mine = t%3600000/60000; // 计算不⾜⼀⼩时的时间⾥有多少分钟9int s = t%3600000%60000/1000; // 计算不⾜⼀分钟的时间⾥有多少秒不要忘记除以 1000 (因为单位为毫秒)10 System.out.println("当前时间: "+hour+":"+mine+":"+s+" GMT");11 }2.6 a 不能为 0 b2 - 4 * a * c 不能为 01import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5double sum,a,b,c,t;6 Scanner sc = new Scanner(System.in);7while (true) {8 a = sc.nextDouble();9 b = sc.nextDouble();10 c = sc.nextDouble();11 t = b*b-4*a*c;12if (a == 0) {13 System.out.println("a 不能为 0,请重新测试 ^_^");14 } else if (t < 0) {15 System.out.println("b*b-4*a*c不能为0,请重新测试");16 }17else18 {19break;20 }21 }22 sum = ((-b+Math.sqrt(t)/(2*a))); //( 2*a ) 注意加括号23 System.out.println(sum);2.7 注意计算公式先后顺序多使⽤⼩括号1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6double yrate = sc.nextDouble();7double amount = sc.nextDouble();8double year = sc.nextDouble();9double month = (amount * (yrate/12))/(1-(1/Math.pow(1+yrate/12,year*12)));10double sumamount = month*12*year;11 System.out.println("⽉⽀付⾦额:"+month+"\n总偿还⾦额:"+sumamount);12 }。
第1章 Java语言面与向对象的程序设计1. Java语言有哪些主要特点?答:〔要点〕:1.简单易学2.面向对象3.平台无关性4.安全稳定5.支持多线程6.很好地支持网络编程7.Java丰富的类库使得Java可以广泛地应用2.简述面向过程问题求解和面向对象问题求解的异同。
试列举出面向对象和面向过程的编程语言各两种。
答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更接近于电脑;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世界的实体或概念在电脑逻辑中的抽象表示,更接近于人的思维特点。
面向过程的编程语言:C,Pascal,Foratn。
面向对象的编程语言:C++,Java,C#。
3.简述对象、类和实体及它们之间的相互关系。
尝试从日常接触到的人或物中抽象出对象的概念。
答:面向对象技术中的对象就是现实世界中某个具体的物理实体在电脑逻辑中的映射和表达。
类是同种对象的集合与抽象。
类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。
如果类是抽象的概念,如“电视机”,那么对象就是某一个具体的电视机,如“我家那台电视机”。
4.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学生”,试为这个对象设计状态与行为。
答:对象都具有状态和行为。
对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。
每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。
行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。
学生的状态:、性别、年龄、所在学校、所在系别、通讯地址、号码、入学成绩等;学生的行为:自我介绍、入学注册、选课、参加比赛等。
5.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生”与对象“大学生”是什么关系?答:对象间可能存在的关系有三种:包含、继承和关联。
第二章java基本语法§。
1 java程序的构成前言:java语言源程序采用有效的16bit双字节字符编码标准(uni code)。
Java程序构成分物理构成和逻辑构成。
逻辑构成是基于信息组织的角度,而物理构成是基于程序组成的角度•§2.1。
1逻辑构成程序头包的引用:主要是指引用jdk软件包自带的包,也可以java源程序逻辑构成是自己定义的类。
引用后程序体中就可以自由应用包中的类的方法和属性等。
类的定义:java语言源程序中可以有多个类的定义,但必须有一个主类,此主类是java程序运行的入口点.在应用程序中,主类为包含main方法的类;在applet中,主类为用户自定义的系统applet类的扩展类•在java语言源程序中,主类的名字同文件名一致。
注:类的定义有包括类头声明和类体定义。
类体中包括属性(成员变量)声明和方法(行为)描述。
【例2.1】下面是一个应用程序,也是一个applet,既可以在命令行下运行,也可以嵌到html网页中用appletviewer 命令运行。
程序如下:// 程序文件名为welcomeapplet.java 注释语句import java 。
applet。
* ;import java.awt 。
*; 卜引入包import java.awt 。
event.* ;public class welcomeapplet exte nds applet impleme nts action listener {主类类头public void action performed (actionevent e) {txtdisp.settext (txtname 。
gettext() + "欢迎你来到 java 世界!”; }public static void main (string args[]){frame f=new frame( 欢迎");f.addwindowlistener(new windowadapter()) {public void wi ndowclosi ng(wi ndoweve nt ev {system o exit (0);} }welcomeapplet a=new welcomeapplet ();a 。
【2_1】//计算二个数的和class Example2_1 {public static void main(String args[]) {int x,y,s;x = 3;y = 5;s =x+y; //求和System.out.println("二数之和为:" + s);}}【2_2】//计算圆的面积class Example2_2 {public static void main(String args[]) {double pi,r,s;r = 10.8; //圆的半径pi = 3.1416;s = pi * r * r; //计算面积System.out.println("圆的面积为:" + s);}}【2_3】/* char 变量的用法*/class Example2_3 {public static void main(String args[]) {char ch1,ch2;ch1 = 88; // code for Xch2 = 'Y';System.out.print("ch1 and ch2:");System.out.println(ch1 + " " + ch2);}}【2_4】/* 布尔类型的用法*/class Example2_4 {public static void main(String args[]) {boolean b;b = false;System.out.println("b is " + b);b = true;System.out.println("b is " + b);// outcome of a relational operator is a boolean valueSystem.out.println("10 > 9 is " + (10 > 9));}}【2_5】public class Example2_5{public static void main(String[] agrs){//定义几个变量并赋值int a=41;int b=21;double x=6.4;double y=3.22;System.out.println("变量数值:");System.out.println("a="+a);System.out.println("b="+b);System.out.println("x="+x);System.out.println("y="+y);//加法System.out.println("加:");System.out.println("a+b="+(a+b));System.out.println("x+y="+(x+y));//减法System.out.println("减:");System.out.println("a-b="+(a-b));System.out.println("x-y="+(x-y));//乘法System.out.println("乘:");System.out.println("a*b="+(a*b));System.out.println("x*y="+(x*y));//除法System.out.println("除:");System.out.println("a/b="+(a/b));System.out.println("x/y="+(x/y));//从除法中求得余数System.out.println("计算余数:");System.out.println("a%b="+(a%b));System.out.println("x%y="+(x%y));//混合类型System.out.println("混合类型:");System.out.println("b+y="+(b+y));System.out.println("a*x="+(a*x));}}public class Example2_6{public static void main(String[] args){//定义若干整型数int i=37;int j=42;int k=42;System.out.println("变量数值");System.out.println("i="+i);System.out.println("j="+j);System.out.println("k="+k);//大于System.out.println("大于:");System.out.println("i>j="+(i>j));//falseSystem.out.println("j>i="+(j>i));//trueSystem.out.println("k>j="+(k>j));//false//大于等于System.out.println("大于等于:");System.out.println("i>=j="+(i>=j));//falseSystem.out.println("j>=i="+(j>=i));//trueSystem.out.println("k>=j="+(k>=j));//true//小于System.out.println("小于:");System.out.println("i<j="+(i<j));//trueSystem.out.println("j<i="+(j<i));//falseSystem.out.println("k<j="+(k<j));//false//小于等于System.out.println("小于等于:");System.out.println("i<=j="+(i<=j));//trueSystem.out.println("j<=i="+(j<=i));//falseSystem.out.println("k<=j="+(k<=j));//false//等于System.out.println("等于:");System.out.println("i==j="+(i==j));//falseSystem.out.println("k==j="+(k==j));//true//不等于System.out.println("不等于:");System.out.println("i!=j="+(i!=j));//trueSystem.out.println("k!=j="+(k!=j));//false}}class Example2_7{public static void main(String args[]){//字符char a1='银',a2='行',a3='帐',a4='号';//密鈅char secret='x';//异或运算加密a1=(char)(a1^secret); a2=(char)(a2^secret);a3=(char)(a3^secret); a4=(char)(a4^secret);System.out.println("密文:"+a1+a2+a3+a4);//再一次异或运算解密a1=(char)(a1^secret); a2=(char)(a2^secret);a3=(char)(a3^secret); a4=(char)(a4^secret);System.out.println("原文:"+a1+a2+a3+a4);}}【2_8】/* if结构*/public class Example2_8{public static void main(String args[]){int a=9,b=5,c=7,t;if(a>b){t=a; a=b; b=t;}if(a>c){t=a; a=c; c=t;}if(b>c){t=b; b=c; c=t;}System.out.println("a="+a+",b="+b+",c="+c);}}/* if-else-if 结构. */class Example2_9 {public static void main(String args[]) {int month = 4; // 4月份String season;if(month == 12 || month == 1 || month == 2){season = "冬天";}else if(month == 3 || month == 4 || month == 5){season = "春天"; }else if(month == 6 || month == 7 || month == 8){season = "夏天"; }else if(month == 9 || month == 10 || month == 11){season = "秋天"; }else{ season = "不合法的月份"; }System.out.println("4月是" + season + ".");}}【2_10】/* switch开关语句*/import java.applet.*;import java.awt.*;public class Example2_10 extends Applet{public void paint(Graphics g){int x=1,y=1;switch(x+y){case 1 :g.setColor(Color.red);g.drawString("i am 1",5,10);break;case 2:g.setColor(Color.blue);g.drawString("i am 2",5,10);// break;case 3:g.setColor(Color.green);g.drawString("i am 3",5,10);break;default:g.drawString("没有般配的",5,10);}}/*<APPLET CODE="Example2_10.class" WIDTH="200" HEIGHT="300"></APPLET>*/【2_11】/* for循环*/import javax.swing.JOptionPane;public class Example2_11{public static void main(String[] args){ int sum=0;for(int i=1;i<=100;i++){sum=sum+i;}JOptionPane.showMessageDialog(null,"1+2+3+...+100= "+sum);System.exit(0); //退出程序}}【2_12】/* while循环*/import javax.swing.JOptionPane;public class Example2_12{public static void main(String[] args){int s=1, i=1;while(i<=10){s=s*i;i++;}JOptionPane.showMessageDialog(null,"1*2*3*...*10= "+s);System.exit(0); //退出程序}}/* do-while循环*/import java.applet.*;import java.awt.*;public class Example2_13 extends Applet{public void paint(Graphics g){int i=1;do{g.drawOval(110-i*10,110-i*10,i*20,i*20);i++;}while(i<=10);}}/*<APPLET CODE="Example2_13.class" WIDTH="300" HEIGHT="300"></APPLET>*/【2_14】/* 使用break语句跳出循环 */import javax.swing.JOptionPane;class Example2_14{public static void main(String args[]){for(int i=0; i<100; i++){if(i == 10) break; // i=10时跳出循环JOptionPane.showMessageDialog(null,"i="+i);}JOptionPane.showMessageDialog(null,"循环已经结束!");System.exit(0); //退出程序}}/* 使用break语句跳出内循环 */class Example2_15{public static void main(String args[]){for(int i=1; i<6; i++){for(int j=1;j<3; j++){if(i == 3) break; // i=5时跳出循环int sum=i+j;System.out.println(i+"+"+j+"="+sum);}}System.out.println("循环已经结束!");}}【2_16】/* 使用"标签化中断"的break语句跳出循环 */class Example2_16{public static void main(String args[]){out: for(int i=1; i<6; i++) //设置标号{for(int j=1;j<3; j++){if(i == 3) break out; // i=3时跳出循环int sum=i+j;System.out.println(i+"+"+j+"="+sum);}}System.out.println("循环已经结束!");}}【2_17】/*continue语句打印三角形*/import javax.swing.JOptionPane;class Example2_17 {public static void main(String args[]) {String output="";for(int i=0; i<5; i++) {for(int j=0; j<5; j++) {if(j > i) {continue ;}output= output +"*"+" ";}output=output+"\n";}JOptionPane.showMessageDialog(null,output);System.exit(0);}}【2_18】/* 求一组数字的平均值*/import javax.swing.JOptionPane;class Example2_18 {public static void main(String args[]) {double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5};double result = 0;for(int i=0; i<5; i++){result = result + nums[i]; }JOptionPane.showMessageDialog(null,"平均值为:" + result / 5);System.exit(0);}}【2_19】// 二维数组赋值class Example2_19{public static void main(String args[]) {int twoD[][]= new int[4][5];int i, j, k = 0;for(i=0; i<4; i++)for(j=0; j<5; j++) {twoD[i][j] = k;k++;}for(i=0; i<4; i++) {for(j=0; j<5; j++)System.out.print(twoD[i][j] + " ");System.out.println();}}}【2_20】import java.util.*;class Example2_20{public static void main(String[] args){Vector v1 =new Vector();for (int i=1;i<10;i++){v1.addElement(" " + i);System.out.println(v1.toString());}v1.insertElementAt("abc",5);System.out.println("\n插入元素:"+v1.toString());}}【2_21】import java.util.*;public class Example2_21{ public static void main(String args[]){ String s="boy,java,Applet girl,Hat";StringTokenizer st=new StringTokenizer(s," ,"); //空格和逗号做分int number=st.countTokens();while(st.hasMoreTokens()){ String str=st.nextToken();System.out.println(str);}System.out.println("s共有单词:"+number+"个");}}。