当前位置:文档之家› JAVA课后的答案第四章

JAVA课后的答案第四章

JAVA课后的答案第四章
JAVA课后的答案第四章

第4章

1.假定乘坐飞机时,每位顾客可以免费托运20kg以内的行李,超过部分按每公斤收费1.2元,以下是相应的计算收费程序。该程序存在错误,请找出。

public class Test

{

public static void main(String[] args) throws IOException

{

float w,fee;

//以下代码为通过控制台交互输入行李重量

InputStreamReader reader=new InputStreamReader(System.in);

BufferedReader input=new BufferedReader(reader);

System.out.println("请输入旅客的行李重量:");

String temp=input.readLine();

w = Float.parseFloat(temp); //字符串转换为单精度浮点型

fee = 0;

if ( w > 20);

fee = (float)1.2 * (w-20);

System.out.println("该旅客需交纳的托运费用:"+fee+"元");

}

}

缺少import java.io.*; 语句

2.有一条长的阶梯,如果每步2阶,则最后剩1阶,每步3阶则剩2阶,每步5阶则剩4阶,每步6阶则剩5阶,只有每步7阶的最后才刚好走完,一阶不剩,问这条阶梯最少共有多少阶?找出以下求解程序的错误所在。

public class Test

{ public static void main(String[] args)

{

int i;

while(i%2==1&&i%3==2&&i%5==4&&i%6==5&&i%7==0) {

i++;

}

System.out.println("这条阶梯最少有:"+i+"阶");

}

}

1)变量i应进行初始化。

2)while循环的条件表达式应再加上“非”,这样才符合逻辑。

3.试用单分支结构设计一判断用户输入值X,当X大于零时求X值平方根,否则不执行任何操作的程序。

import java.io.*;

import https://www.doczj.com/doc/3d123810.html,ng.*;

public class Test

{ public static void main(String[] args) throws IOException {

float x;

InputStreamReader reader=new InputStreamReader(System.in);

BufferedReader input=new BufferedReader(reader);

System.out.println("请输入x:");

String temp=input.readLine();

x = Float.parseFloat(temp); //字符串转换为单精度浮点型

if(x>0)

System.out.println("平方根值"+Math.sqrt(x));

}

}

4.从键盘读入两个字符,按照字母表排序顺序,将前面的字符置于A,排后面的字符置于B。请设计实现该程序。

import java.io.*;

public class Test

{ public static void main(String[] args) throws IOException {

char A,B,c1,c2;

c1 = (char)System.in.read();;

c2 = (char)System.in.read();;

if(c1>c2)

{

A=c2;

B=c1;

}else

{

A=c1;

B=c2;

}

System.out.println("A="+A+" B="+B);

}

}

5.用穷举法求出3位数中百、十、个位数的立方和就是该数的数。

public class Test

{ public static void main(String[] args)

{

int a,b,c,x=100;

while(x<1000){

a=x%10;

b=(x%100-a)/10;

c=(x-x%100)/100;

if(a*a*a+b*b*b+c*c*c==x)

System.out.println(x);

x+=1;

}

}

}

6.编程实现打印以下图案:

***********

*********

*******

*****

***

*

public class Test

{ public static void main(String[] args)

{

int i,j,k; // i控制行数, k控制*的个数,j控制空格数

for(i=1;i<=6;i++)

{

for(j=1;j<=i-1;j++)

System.out.print(" "); //打印空格

for(k=1;k<=13-i*2;k++)

System.out.print("*"); //打印*号

System.out.println(); //换行

}

}

}

7.统计1至1万共有多少个数是素数。

public class Test

{ public static void main(String[] args)

{ int i,j,count=0;

label:

for(i=1;i<=10000;i++) //查找1到10000以内的素数

{ for(j=2;j

if (i%j==0) //不满足

continue label; //跳过后面不必要的检验

count++; //计数

}

System.out.println("个数:"+count);

}

}

8.打印输出斐波纳契数列的前12项。

斐波纳契数列的前12项如下:

第1项:0

第2项:1

第3项:1

第4项:2

第5项:3

第6项:5

第7项:8

第8项:13

第9项:21

第10项:34

第11项:55

第12项:89

public class Test

{ public static void main(String[] args)

{ int i=0,j=1;

for (int k=0;k<6;k++)

{

System.out.print(i+" "+j+" ");

i=i+j;

j=i+j;

}

}

}

9.读程序,写结果。

import java.io.*;

public class Test

{

public static void main(String[] args) throws IOException

{

char sex= 'f';

switch (sex)

{

case 'm': System.out.println("男性"); break;

case 'f': System.out.println("女性"); case 'u': System.out.println("未知"); }

}

}

10.读程序,写结果。

public class Test

{ public static void main(String[] args)

{

int i ,s=0;

for(i=1;i<=100;i++)

{

if(i%3==0)

continue;

s+=i;

}

System.out.println("s="+s);

}

}

s=3367

11.读程序,写结果。

public class Test

{ public static void main(String[] args)

{

int i ,s=0;

for(i=1;i<=100;i++)

{

s+=i;

if(s>100)

break;

}

System.out.println("s="+s);

}

}

s=105

12.个位数是6,且能被3整除的5位数有多少?

public class Test

{ public static void main(String[] args)

{

int i=10006,count=0;

while(i<100000)

{ if (i%3==0)

count++;

i+=10;

}

System.out.println("符合条件的数共有"+count+"个");

}

}

13.用嵌套循环结构,设计一模拟电子钟的程序。

提示:定义三个变量分别代表“小时”、“分”和“秒”,根据电子钟分、秒、小时之间的关系,采用三重循环来控制各量的增加,并由输出语句将变化中的三个量分别予以输出显示,即为一模拟数字电子钟。此外,Java语言提供的延时方法为Thread.sleep(1000);1000的单位为毫秒,即延时1秒。

import java.util.*;

public class Test

{ public static void main(String[] args) throws

InterruptedException

{

int hour=12,min=0,sec=0;

while(hour<24)

{

while(min<60)

{

while(sec<60)

{ sec++;

Thread.sleep(1000);

System.out.println(hour+"时-"+min+"分-"+sec+"秒");

}

sec=0;

min++;

}

min=0;

hour++;

}

}

}

java课后题答案

第1章Java概述 1.编译java application源程序文件将产生相应的字节码文件,这些字节码文件别 的扩展名为、java 2.执行一个java程序fristapp的方法就是运行java fristapp 3.main()方法的返回类型就是void 4.在java代码中,public static void main方法的参数描述正确的就是string args 【】,string【】args 5.内存的回收程序负责释放无用内存√ 6.java体系主要分为java ME,Java SE,JavaEE三大块 第2章Java基础 1.Java语言中,下列标识符错误的就是40name 2.java变量中,以下不属于引用类型的数据类型就是字符型 3.double d=5、3E12 × 4.C 5.A 6.for循环的一般形式为;for(初值;终值;增量),以下对for循环的叙述,正确 的就是初值与增量都就是赋值语句,终值就是条件判断语句 7.当输入下面选项中3值时,将会输出default 8.下面哪种方法能够支持javadoc命令/**…*/ 9.下面声明一个string类型的数组正确的就是string str[] 10.下面定义一个整型数组,不合法的就是int[][]array=new int[][4]; 11.给定代码;。。。。。下面叙述正确的就是输出的结果为:0 12.java语言规定,标示符只能由字母,数字美元符$与下划线租成,并且第一个 字符不能就是数字;java就是区分大小写的。 13.表达式1/2*3的计算结果就是0;设x=2,则表达式(x++)/3的值就是0 14.数组的长度可以用其属性lengt h获得;创建一个数组对象可以使用new关键 字创建 第3章面向对象基础 1.在java中引用对象变量与对象间有什么关系?引用变量就是指向对象的一个指针 2.对象就是面向对象技术的核心所在,在面向对象程序设计中,对象就是累的抽象× 3.构造方法何时被调用?创建对象时 4.A,B,D 5.在java语言中在包p1中包含包p2,类A直接隶属于p1,类B直接隶属于包p2、在类c中 要使用类a的方法与类b的方法b,需要选择import p1、*; import p1、p2,*;

JAVA练习题含答案-answers to practice 2

Multiple Choice 1)Which operator is used to concatenate two strings? (a)+ (b)– (c)* (d)/ Answer: A (see page 35) 2)Which operator returns the remainder of integer division? (a)% (b)/ (c)* (d)none of the above Answer: A (see page 26) 3)What is the value of the variable c in the statements that follow? String phrase = "Make hay while the sun is shining."; char c = phrase.charAt(10); (a)w (b)h (c)i (d)None of the above Answer: B (see page 40) 4)The escape sequence the represents the new-line character is: (a)\r (b)\t (c)\n (d)\\ Answer: C (see page 43) 5)The syntax that declares a Java named constant named SALES_TAX is: (a)double SALES_TAX = 7.50; (b)public double SALES_TAX = 7.50; (c)public static double SALES_TAX = 7.50; (d)public static final double SALES_TAX = 7.50; Answer: D (see page 47)

第4章-Java语言与面向对象作业习题与答案

第4章 Java语言与面向对象作业习题与答案 一、简答题 1.什么是对象?什么是类? 对象是一种抽象数据类型。它包含了事物的静态特征(属性)和动态特征(行为)两大特征。 类是一组同种对象的集合与抽象。即是具有相同属性和方法的一组对象集合。 2.Java语言的单继承是指什么? 一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。 3.在一个共有类中的数据成员及方法成员的访问控制符为缺省,则这个类可供什么样的包引用? 当一个类的访问控制符为public共有时,表明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类(含当前类)引用。 4.抽象类的用途 (1)设计在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性; (2)设计出的类也具有更加良好的可扩展性。 5.什么是非静态的成员变量? 非静态成员即为实例成员变量(没有加static修饰的变量)。 6.异常Exception和错误Error有什么不同?Java如何处理它们? 答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成系统崩溃、虚拟机粗错、动态失败等,这一类错误无法恢复或不可能捕获,并将导致应用程序中断。 异常表示另外一种“非同寻常”的错误。这种错误通常是不可预测,但可以被捕获且可以恢复。常见的异常情况包括存不足、找不到所需文件等。 对于错误,编程人员可以通过对程序进行更仔细的检查,以避免这种错误。 对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。 7.简单述Java的异常处理机制。 答:Java采取“抛出—捕获”的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个程序运行的安全性。 8.简单述throw语句和throws关键字之间的差别。 答:throw语句是在一个方法中用来直接抛出异常对象,其格式是: throw 异常对象; throws关键字是用一个方法声明首部,用来指出这个方法中可能产生若干种异常,其格式:[方法修饰符] 返回类型方法名(参数表)throws 异常类型表 { /*方法体*/ } 二、填空题 1.所有Java应用程序都必须包含的一个类方法是 main() 。 2.面向对象程序设计语言的三种重要特性是封装性、继承性和多态性。

Java大学基础教程(英文第六版)课后第六章自测题答案

//test the 'Math' class //Math class is a part of https://www.doczj.com/doc/3d123810.html,ng package, so no need to import it public class p217_6$3 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.printf( "Math.abs( 23.7 ) = %s\n", Math.abs( 23.7 ) ); System.out.printf( "Math.abs( 23.7 ) = %f\n", Math.abs( 23.7 ) ); System.out.printf( "Math.abs( 0.0 ) = %f\n", Math.abs( 0.0 ) ); System.out.printf( "Math.abs( -23.7 ) = %f\n", Math.abs( -23.7 ) ); System.out.printf( "Math.ceil( 9.2 ) = %f\n", Math.ceil( 9.2 ) ); System.out.printf( "Math.ceil( -9.8 ) = %f\n", Math.ceil( -9.8 ) ); System.out.printf( "Math.cos( 0.0 ) = %f\n", Math.cos( 0.0 ) ); System.out.printf( "Math.exp( 1.0 ) = %f\n", Math.exp( 1.0 ) ); System.out.printf( "Math.exp( 2.0 ) = %f\n", Math.exp( 2.0 ) ); System.out.printf( "Math.floor( 9.2 ) = %f\n", Math.floor( 9.2 ) ); System.out.printf( "Math.floor( -9.8 ) = %f\n", Math.floor( -9.8 ) ); System.out.printf( "Math.log( Math.E ) = %f\n", Math.log( Math.E ) ); System.out.printf( "Math.log( Math.E * Math.E ) = %f\n", Math.log( Math.E * Math.E ) ); System.out.printf( "Math.max( 2.3, 12.7 ) = %f\n", Math.max( 2.3, 12.7 ) ); System.out.printf( "Math.max( -2.3, -12.7 ) = %f\n", Math.max( -2.3, -12.7 ) ); System.out.printf( "Math.min( 2.3, 12.7 ) = %f\n", Math.min( 2.3, 12.7 ) ); System.out.printf( "Math.min( -2.3, -12.7 ) = %f\n", Math.min( -2.3, -12.7 ) ); System.out.printf( "Math.pow( 2.0, 7.0 ) = %f\n", Math.pow( 2.0, 7.0 ) ); System.out.printf( "Math.pow( 9.0, 0.5 ) = %f\n", Math.pow( 9.0, 0.5 ) ); System.out.printf( "Math.sin( 0.0 ) = %f\n", Math.sin( 0.0 ) ); System.out.printf( "Math.sqrt( 900.0 ) = %f\n", Math.sqrt( 900.0 ) ); System.out.printf( "Math.tan( 0.0 ) = %f\n", Math.tan( 0.0 ) ); } }

Java基础入门课后习题及答案

《Java基础入门》课后习题 第1章Java开发入门 一、填空题 1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。 4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。 5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用 来保存保存Java虚拟机要运行的“.class”文件路径。 二、选择题 1、以下选项中,哪些属于JDK工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D A、.java B、.jre C、.exe D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器 5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java 命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;

java第四章课后习题答案

4-1 class Y{ int a,b,y,i; int sum=0; public void f() { while(i>1){ y=b*(i-1)+a; sum=sum+y; i--; } System.out.println("等差数列的和为:"+sum); } } public class XIN41{ public static void main(String args[]){ Y y1=new Y(); y1.sum=0; java.util.Scanner sc =new java.util.Scanner(System.in); System.out.println("请输入首项的值a:"); y1.a =sc.nextInt(); System.out.println("请输入公差的值b:");

y1.b = sc.nextInt(); System.out.println("请输入项数i:"); y1.i = sc.nextInt(); y1.f(); } } 4-2 class A { double a, b; static double c; double root1, root2; boolean boo; public A(double a, double b, double c) { this.a = a; this.b = b; A.c = c; if (a != 0) { boo = true;

else { boo = false; } } public void getRoots() { if (boo) { System.out.println("是一元次方程"); double disk = b * b - 4 * a * c; if (disk >= 0) { root1 = (-b + Math.sqrt(disk)) / (2 * a); root2 = (-b - Math.sqrt(disk)) / (2 * a); System.out.printf("方程的根:%f,%f\n", root1, root2); } else { System.out.printf("方程没有实根\n"); }

最新Java-how-to-program(第六版)答案第六章--1

第六章方法的深入剖析 6.7结果如下: a)7.5 b)7.0 c)0.0 d)0.0 e)6.4 f)6.0 g)-14.0 6.8程序代码为: import java.util.Scanner; public class Exercise1_2 { public static void main( String args[]) { Exercise1_2 e = new Exercise1_2(); Scanner input = new Scanner( System.in ); int time; double account = 0.0; System.out.println("Enter the park time or end with -1:"); time = input.nextInt(); while ( time != -1 ) { System.out.printf("Charge with $%.3f\n", e.calculateCharge( time )); account += e.calculateCharge( time ); System.out.println("Enter the park time or end with -1:"); time = input.nextInt(); } System.out.printf("The total park money is $%.3f.", account); } public double calculateCharge( int time ) { double charge; if ( time <= 3 ) charge = 2.00; else if ( time <= 24 ) charge = 2.00+(time-3)*0.50;

JAVA实用教程(第三版)课后习题答案

第一章Java语言概述 2.“java编译器将源文件编译为的字节码文件是机器码”这句话正确吗? 答:不正确 3.java应用程序的主类必须含有怎样的方法? 答:含有main方法 4。“java应用程序必须有一个类是public类”这句话正确吗? 答;不正确,只能有一个public类 5。“java Applet程序的主类必须是public类”这句话正确吗? 答:正确,因为java Applet主类必须是Applet类的子类并且是public 的类 6。请叙述java源程序的命名规则。 答:与public的类同名。 7。源文件生成的字节码文件在运行时都加载到内存中吗? 答:非也,动态随需要运行才加载。 8.面向对象的程序设计语言有那些基本特征? 答:封装;继承;多态性。 9.在Java程序中有多个类文件时,用Java命令应该运行那个类?答:具有main方法的类 第二章基本数据类型和数组 4。下列哪些语句是错的?

Int x=120; Byte b=120; b=x; 答:B=x;错应为b=(byte)x 5。下列哪些语句是错的? 答:y=d;错,应y=(float)d 6。下列两个语句是等价的吗? Char x=97; Char x=…a?; 答:是等价的。 7。下列system.out.printf语句输出结果是什么? Int a=97; Byte b1=(byte)128; Byte b2=(byte)(-129); System.out.printf(“%c,%d,%d”,a,b1,b2); 如果输出语句改为: System.out.printf(“%d,%d,%d”,a,b1,b2); 输出什么? 答:输出a ,-128,127 修改后输出97,-128,127 8.数组是基本数据类型吗?怎样获取数组的长度? 答:不是基本数据类型,是复合数据类型。可以通过:数组名.length

软件工程实践者的研究方法(中文版第七版)课后习题答案

作业答案。 2.1 a.设计者对于用户要问的问题: 项目的目标是什么?做到什么程度就成功了?谁会对项目的成功做最后的评判?项目的使用者包括那些? b. 用户对设计者应该问的问题: 目前问题有哪些解决方案,项目完成有哪些难点,在时间范围内能否完成? c. 软件问题用户自问? 还有其他解决方案吗?哪些功能是必须的?乙方资质和能力够吗? d. 软件过程问题自问? 用敏捷还是用瀑布?质量检查点分别有哪些?有几个MileStone? 2.2 为沟通活动设计一系列动作,选定其一并设计任务集。 (批作业的时候,以合理为目标,不一定要一样) 需求获取、需求规范说明(建模)、需求协商、需求确认等。 例如,书上page 23。 2.7 详细描述三个适合用于瀑布模型的软件项目。 (要求学生不仅仅列出项目的名称,而要说明为什么适合) 瀑布模型适合于项目开发而不是产品开发。信息管理系统一般适合于用瀑布模型。因为这类系统业务功能较为明确,架构比较单一,技术难点较少。图书馆系统、销售管理系统都是。 3.11 重构:已经写好的正确的代码,不断修正,使得代码更加精简并易读。 结对编程:两个人同时编写一段代码,一般一个人负责实现,一个人负责检查代码质量。 3.16 利用FDD,为“Web浏览器”定义一系列特征集合与特征。 特征集合模板: an 如:出售一件商品 特征定义模板: the a(n) 特征集合:展示Web页面内容。 特征: 1)本地解析HTML页面 2)展示HTML页面 3)从网络上下载页面相关图片 4)在浏览器上展示图片 附加:统一过程模型的图。 (要求有图有说明)

JAVA WEB程序设计第4章

《Java Web程序设计》课程第4章章节检测 一、选择题:(每题4分,共40分) 1、假设myObj是一个对象的引用,ml()是该对象上一个合法的方法。下面的JSP结构哪个是合法的?(B) A.<%myObj.ml()%> B.<%=myObj.ml()%> C.<%myObj.ml();%> D.<%=myObj.ml();%> 2、说明下面代码哪些是合法的JSP结构?(BC) A.<%=myObj.ml();%> B.<%int x=4,y=5;%> C.<%!Int getI(int i){return i;}%> D.<%myObj.ml();%> 3、下面哪个page指令是合法的?(A) A.<%@page pageEncoding="utf-8"%> B.<%!page pageEncoding="utf-8"%> C.<%page pageEncoding="utf-8"%> D.<%@Page pageEncoding="utf-8"%> 4、下面哪个page指令是合法的?(B) A.<%@page import="java.util.*java.text.*"%> B.<%@page import="java.util.*,java.text.*"%> C.<%@page import="java.util.*","java.text.*"%> D.<%@page buffer="true"%> 5、下面哪些是合法的JSP隐含变量?(CD) A.stream B.context C.exception D.application 6、下面关于JSP生命周期方法,哪个是正确的?(A) A.只有jspInit()可以被覆盖 B.只有jspDestroy()可以被覆盖 C.jspInit()和jspDestroy()都可以被覆盖 D.jspInit()、_jspService()和jspDestroy()都可以被覆盖 7、下面哪个JSP标签可以再请求时把另一个JSP页面的结果包含到当前页面中?(B) A.<%@page import%> B. C. D.<%@include%> 8、在一个JSP页面中要把请求转发到view.jsp页面,下面哪个是正确的?(B) A. B. C. D. 9、下面哪个说法是正确的?(A) A.<%@include file="right.jsp?name=hacker"%>语法结构是正确的 B.<%@include file="<%=str%>"%>语句是合法的 C.<%@include file="right.jsp"%>属于动态包含 D.以上都不正确 10、对于,下面哪个说法是正确的?(A) https://www.doczj.com/doc/3d123810.html,值必须与中的id值一致 https://www.doczj.com/doc/3d123810.html,值必须与中的name值一致 C.property值必须与类UserInfo中的属性username一致 D.property值不必与类UserInfo中的属性username一致

java课后习题及答案

第一章JA V A语言概论 一、选择题 1. 下列不属于java语言特点的是:B A. java能检查程序在变异和运行时的错误 B. java 能运行虚拟机实现跨平台 C. java 自己操纵内存减少了内存出错的可能性 D. java 还实现了真数组,避免了覆盖数据的可能 2. java语言的执行模式是:C A. 全编译型 B. 全解释型 C. 半编译和半解释型 D. 同脚本语言的解释模式 3. 下列关于虚拟机说法错误的是:B A. 虚拟机可以用软件实现 B. 虚拟机部可以用硬件实现 C. 字节码是虚拟机的机器码 D. 虚拟机把代码程序与各操作系统和硬件分开 4. java语言是1995年由()公司发布的A A. Sun B. Microsoft C. Borland D. Fox Software 5. 下列不是虚拟机执行过程特点的是A A. 双线程 B. 多线程 C. 动态链接 D. 异常处理 6. java以JVM为基础,最下层是移植接口,由适配器和()组成B A. 网卡 B. Java os C. Java基本类 D. Java 应用程序和applet小程序 7. java程序的执行过程中用到一套JDK工具,其中javac.exe指A A. java语言编译器 B. java字节码解释器 C. java文档生成器 D. java类分解器 8. java的API结构中,不属于类库主要包括的核心包的是C A. java包 B. javax C. javadoc包 D. org扩展包 9. 每个java的编译单元可包含多个类或界面,但是每个编译单元最多只能有()类或者界面是公共的A

《Java语言程序设计(基础篇)》(第10版 梁勇 著)第十七章练习题答案

《Java语言程序设计(基础篇)》(第10版梁勇著) 第十七章练习题答案 17.1 import java.io.*; import java.util.*; public class Exercise17_01 { public static void main(String[] args) throws IOException { try ( Formatter output = new Formatter(new FileOutputStream("Exercise17_01.txt", true)); ) { for (int i = 0; i < 100; i++) output.format("%d", (int)(Math.random() * 100000)); } } } 17.2 import java.io.*; public class Exercise17_02 { public static void main(String[] args) throws IOException { try ( DataOutputStream output = new DataOutputStream(new FileOutputStream("Exercise17_02.dat", true)); ) { for (int i = 0; i < 100; i++) output.writeInt((int)(Math.random() * 100000)); } System.out.println("Done"); } } 17.3 import java.io.*;

Java核心技术习题答案

Java核心技术 习题答案 马志强张然李雷孝编 清华大学出版社 目录 第一章Java语言概述 (3) 第二章 Java语法基础 (4) 第三章面向对象编程 (15) 第四章数组 (38) 第五章高级类特性 (45) 第六章 GUI编程 (51) 第七章集合框架 (62) 第九章集合框架 (77) 第十章 IO流 (81) 第十一章 JDBC访问数据库 (84) 第十二章线程 (85) 第十三章网络编程 (90)

第一章Java语言概述 一、选择题 1-5 ABBBB 6-8 AAB 二、填空题 1. MyClass MyClass.class 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){ 开始学习Java程序设计!"); } } 2、修改下面四个Java源文件中的错误,使其能够编译和运行。 Test1.java:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰; Test2.java:源文件中public修饰的类的名字为Testing2,和源文件名字不一致; Test3.java:Test3类的main方法的形参类型为String[]; Test4.java:Test4类的main方法必须使用static关键字修饰。

java练习题答案

第1章java语言概述习题 一、填空题 1、面向对象程序的主要特征:继承,__封装___,___多态 _____。 2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是 因为它使代码可以__重用或复用___. 3、java语言中,为将源代码翻译成 __字节码__文件时产生的错误称为编译错误, 而将程序在运行中产生的错误称为运行错误。 4、javac是java语言中的编译器,基本语法是:javac[选项] __文件名__,java 是java语言中的解释执行器,基本语法是:java[选项]___类名___. 5、java语言的主要贡献者是谁James gosling 二、[ 三、单选题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文 件的扩展名为( B)。 A、java B、.class C、html D、.exe 2、main方法是Java Application程序执行的入口点,关于main方法的方法首 部, 以下(B)项是合法的。 A、public static void main() B、public static void main(String args[]) C、public static int main(String[] arg) ) D、public void main(String arg[]) 三、判断 1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√ 2、Java语言的源程序不是编译型的,而是编译解释型的。√ 四、问答题 1、编写、运行java程序需要经过哪些主要步骤 答:1.编写源文件,扩展名必须是.java 2.编写java源程序,使用java编译器编写源文件,得到字节码文件 ~ 3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字 节码文件。 2、阅读下列java源代码文件,并回答问题 public class Speak{ void speakHello(){ "I'm glad to meet you"); } } … class Xiti8{

操作系统概念第七版习题答案(中文版)完整版

1.1 在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。a. 列出此类的问题b.在一个分时机器中,能否确保像在专用机器上一样的安全度?并解释之。 Answer:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源(CPU,内存,磁盘空间,外围设备)b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事。 1.2 资源的利用问题在各种各样的操作系统中出现。试例举在下列的环境中哪种资源必须被严格的管理。(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑 Answer: (a)大型电脑或迷你电脑系统:内存和CPU 资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU 资源(c)手持电脑:功率消耗,内存资源 1.3 在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好? Answer:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义。充分利用该系统可以对用户的问题产生影响。比起个人电脑,问题可以被更快的解决。还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源。当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,。 1.4 在下面举出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时 Answer:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。批处理程序在两种环境中都是非必需的。 1.5 描述对称多处理(SMP)和非对称多处理之间的区别。多处理系统的三个优点和一个缺点? Answer:SMP意味着所以处理器都对等,而且I/O 可以在任何处理器上运行。非对称多处理有一个主处理器控制系统,与剩下的处理器是随从关系。主处理器为从处理器安排工作,而且I/O 也只在主处理器上运行。多处理器系统能比单处理器系统节省资金,这是因为他们能共享外设,大容量存储和电源供给。它们可以更快速的运行程序和增加可靠性。多处理器系统能比单处理器系统在软、硬件上也更复杂(增加计算量、规模经济、增加可靠性) 1.6 集群系统与多道程序系统的区别是什么?两台机器属于一个集群来协作提供一个高可靠性的服务器的要求是什么? Answer:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务。另一方面,多道程序系统可以被看做是一个有多个CPU 组成的单一的物理实体。集群系统的耦合度比多道程序系统的要低。集群系统通过消息进行通信,而多道程序系统是通过共享的存储空间。为了两台处理器提供较高的可靠性服务,两台机器上的状态必须被复制,并且要持续的更新。当一台处理器出现故障时,另一台处理器能够接管故障处理的功能。

Java语言程序设计(郑莉)第六章课后习题答案

Java语言程序设计 第六章课后习题答案 1.将本章例6-1至6-18中出现的文件的构造方法均改为使用File类对象作为参数实现。 个人理解:File类只能对整文件性质进行处理,而没法通过自己直接使用file.Read()或者是file.write()类似方法对文件内容进行写或者读取。注意:是直接;下面只提供一个例2变化,其他的你自己做,10几道啊,出这题的人真他妈有病。 import java.io.*; public class test6_2{ public static void main(String[] args) throws IOException { String fileName = "D:\\Hello.txt"; File writer=new File(fileName); writer.createNewFile(); BufferedWriter input = new BufferedWriter(new FileWriter(writer)); input.write("Hello !\n"); input.write("this is my first text file,\n"); input.write("你还好吗?\n"); input.close(); } } 运行结果:(电脑系统问题,没法换行,所以一般使用BuffereWriter中newLine()实现换行) 2.模仿文本文件复制的例题,编写对二进制文件进行复制的程序. // CopyMaker类 import java.io.*; class CopyMaker { String sourceName, destName; BufferedInputStream source; BufferedOutputStream dest; int line; //打开源文件和目标文件,无异常返回true private boolean openFiles() {

java语言程序设计课后习题答案解析

习题2 3.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String("abc"); String str = "abc"; 使用“= =”会因为创建的形式不同而产生不同的结果: String str1 = "abc"; String str2 = "abc"; System.out.println(str1= =str2); //true String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1= =str2); //false String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1= =str2); //false 因此自符串如果是对内容进行比较,使用equals方法比较可靠。 String str1 = "abc"; String str2 = "abc"; System.out.println(str1= =str2); //true String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1.equals(str2)); //true String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2)); //true 5.编写一个程序,把变量n的初始值设置为1678,然后利用除法运算和取余运算把变量的每位数字都提出来并打印,输出结果为:n=1678。n的每位数字是1,6,7,8。若n为任意值呢? 法一: public class Exercise5{ public static void main(String[] args){ int n=1678; int unit; int decimal; int hundred; int thousand; int count; thousand=n/1000; count=n%1000; hundred=count/100; count=count%100; decimal=count/10; count=count%10; unit=count; System.out.println("1678包含的数 字分别是: "+thousand+','+hundred+','+decimal+', '+unit); } } //如果n为任意值 import java.io.*; public class Exercise51{ public static void main(String[] args) throws IOException{ System.out.print("请输入一个整数:"); InputStreamReader isStream=new InputStreamReader(System.in); BufferedReader bfReader=new BufferedReader(isStream); String input=bfReader.readLine(); int length=input.length()-1; int n=new

java第四章课后习题解答

第4章图形用户界面设计 【1】什么是图形用户界面?试列举出图形用户界面中你使用过的组件。 [解答]:图形用户界面或图形用户接口(Graphical User Interface,GUI)是指采用图形方式显示的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。(比如你用windowsXP和使用DOS操作系统的差别)。GUI是事件驱动的,也就是说,一旦用户与GUI交互,GUI组件就会生成”事件“(动作)。常见交互包括移动鼠标、单击鼠标按钮、在文字段输入、从菜单选择一个选项以及关闭一个窗口等等。 在windwosXP的GUI中,使用过窗口,菜单条,按钮等# 【2】简述Java的事件处理机制。什么是事件源?什么是监听者?在Java的图形用户界面中,谁可以充当事件源?谁可以充当监听者? [解答]:java的事件处理机制就是,事件源允许监听器注册的事件对象,在事件发生的时候想相关的注册对象发送一个,事件对象,监听器便根据相关的信息来选择运行相关的代码。 事件源:英文名为event source,是指事件发生的地方,也就是引起事件的组件,按钮Button,文本组件等都可以当做事件源。比如说,你点击一个button,那么button就是事件源,要想使button对某些事件进行响应,你就需要注册特定的监听者。(具体请看第5章的事件处理) 监听者:英文名为event handler事件处理者,又叫监听器。具体的对监听的事件类,当它监听到event object产生的时候,它就调用相应的方法,进行处理。 在java中,AWT组件和swing组件都可以当做事件源;java.awt.event.*,里面各种类都可以为监听者。 【3】动作事件的事件源可以有哪些?如何响应动作事件? [解答]:动作事件的事件源可以有:Button,JButton,MenuItem,等。 响应动作事件的过程一般为: 声明和实例化事件源,如:Button btn=new Button(“确定”); 注册监听:btn.addActionListener(this); //this指明是在当前类实现处理 实现接口:public void actionPerformed(ActionEvent e){//具体代码}; 【4】说明文本框与标签之间的区别。 [解答]:文本框(TextField)和标签(Label)都可以进行文字表达。TextField允许用户编辑单行文本的文本组件,他可以添加相应的监听事件;而Label 对象是一个可在容器中放置文本的组件。一个标签只显示一行只读文本。文本可由应用程序更改,但是用户不能直接对其进行编辑。 【5】编写程序包含一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容复制到标签中。 [解答]:Test4_5.java import java.awt.*; import java.awt.event.*;

文本预览