第1-7章习题解答
习题1
1.Java语言特点是什么?
Ja va语言具有如下特性:简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。
2.什么叫Ja va虚拟机?什么叫J ava平台?Java虚拟机与J ava平台的关系如何?
Jav a虚拟机(JavaVirtu al Ma chine) 简称J VM 。J ava虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。J ava虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
3.J ava程序是由什么组成的?一个程序中必须有publ ic类吗?Java源文件的命名规则是怎样的?
一个Java源程序是由若干个类组成。一个Ja va程序不一定需要有publi c类:如果源文件中有多个类时,则只能有一个类是pu blic类;如果源文件中只有一个类,则不将该类写成publi c也将默认它为主类。源文件命名时要求源文件主名应与主类(即用publi c修饰的类)的类名相同,扩展名为.jav a。如
果没有定义pu blic类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。另外,对Ap plet小应用程序来说,其主类必须为pu blic,否则虽然在一些编译编译平台下可以通过(在BlueJ下无法通过)但运行时无法显示结果。
4.开发与运行Java程序需要经过哪些主要步骤和过程?
(1)下载、安装J2SD K;
(2) 设置运行环境参数:JAVA_HOME、PATH、CLAS SPATH;
(3)使用文本编辑器编写原代码如H elloW orld.java;
(4)运行命令“javac Hell oWorl d.jav a” 编译Hello World.java为Hell oWorl d.cla ss;
(5) 运行“java Hell oWorl d”生成H elloW orld.exe。
5.怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用pub lic修饰吗?
Ja va Ap plica tion是完整的程序,需要独立的解释器来解释运行;而Java Appl et则是嵌在HTML编写的We b页面中的非独立运行程序,由W eb浏览器内部包含的Java解释器来解释运行。
两者的主要区别是:任何一个Jav a App licat ion应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个Ap plet小应用程序要求程序中有且必须有一个类是系统类Appl et的子类,即该类头部分以ex tends Appl et结尾。
应用程序的主类当源文件中只有一个类时不必用pub lic修饰,但当有多于一个类时则主类必须用publ ic修饰。小应用程序的主类在任何时候都需要用pub lic来修饰。
6.安装JD K之后如何设置JDK系统的PA TH,CL ASSPA TH?他们的作用是什么?
(1)PATH环境变量。设置环境变量path是因为wi ndowxp是多用户操作系统,支持不同用户的个性化系统定制,这里设置的信息只影响当前用户,而不会影响其他用户。假如只有一个用户,只是运行.class文件,则也不需要设置path环境,因为J DK安装之后会把ja va.ex e等几个关键文件复制到c:\w indow s\sys tem32目录中,而此目录已经存在于pa th变量,所以说用户变量pat h随不同用户而设置的,设置路径:“D:\jdk1.5\bin ”。P ATH环境变量作用是指定命令搜索路径,在命令行下面执行命令如javac编译jav a程序时,它会到PA TH变量所指定的路径中查看是否能到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的
PAT H变量中,bin目录中包含经常要用到的可执行文件如javac/java/java doc等待,设置好P ATH变量后,就可以在任何目录下执行ja vac/j ava等工具了。
(2)CLA SSPAT H环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够到它们了,JVM就是通过CL ASSPT H来寻类的。我们需要把jdk安装目录下的lib子目录中的d t.jar和tool s.jar设置到CL ASSPA TH中,当然,当前目录“.”也必须加入到该变量中。设置cla sspat h环境变量是为了运行一些特殊的java程序,如以.jar为后缀的文件或者是jav ac运行j ava程序,假如不运行这类程序,也就不必要设置cl asspa th环境变量了,设置方法是:(安装jdk是的目录为:d:\j dk1.5) 那么就在“变量值”文本框中键入:
“.;D:\j dk1.\lib\d t.jar;D:\j dk1.5\lib\tools.jar”;
习题2
1.试分析基本数据类型和引用数据类型的基本特点。
Ja va的基本数据类型都有固定的数据位,不随运行平台的变化而变化。
基本数据类型包括byte、int、c har、l ong、f loat、doubl e、boo lean和short。
引用类型都是用类或对象实现的,引用数据类型包括:类,数组,接口。
基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的。
不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存,对于基本类型来说,这块区域包含的是基本类型的内容;而对于对象类型来说,这块区域包含的是指向真正内容的指针,真正的内容被手动的分配在堆
上。
2.分析以下程序段,得到什么打印结果: 0 -1 1 2
Sys tem.o ut.pr intln( 1 >>> 1);
Sys tem.o ut.pr intln( -1>> 31);
Sy stem.out.p rintl n( 2>> 1);
Sys tem.o ut.pr intln( 1 << 1);
3.以下temp变量的最终取值是: 1
longtemp= (in t)3.9;
tem p %=2;
4.以下代码运行后得到的输出结果: No t equ al! 10
i nt ou tput=10;
b oolea n b1= fal se;
i f((b1==tru e) && ((ou tput+=10)==20)){
Sys tem.o ut.pr intln("Weare e qual"+out put);
}
el se{
S ystem.out.print ln("N ot eq ual!"+out put);
}
5.以下代码运行后的输出结果: We ar e equ al 20
int outp ut=10;
boo leanb1 =false;
if((b1=t rue)&& ((outpu t+=10)==20)){
S ystem.out.print ln("W e are equa l "+o utput);
}
else{
Syst em.ou t.pri ntln("Notequal! "+o utput);
}
6.运行以下程序,将得到的输出结果: 17 9 17 9
publi c cla ss Ab s{
st aticint a=0x11;
sta tic i nt b=0011;
stat ic in t c='\u0011';
s tatic intd=011;
pub lic s tatic void main(Stri ng ar gs[]){
Sys tem.o ut.pr intln(a);
Syste m.out.prin tln(b);
Sy stem.out.p rintl n(c);
Syst em.ou t.pri ntln(d);
}
}
7.分析下列代码段,i、count变量的最终取值是: 6 12
int i=3;
intcount=(i++)+(i++)+(i++);
8.字符…A‟的Un icode编码为65。下面代码正确定义了一个代表字符…A‟的选项是:a c d
A) c har c h = 65; B) ch ar ch = '\65';C) ch ar ch = '\u0041';
D) char ch = 'A'; E)charch ="A";
9.下面哪些是jav a关键字: a de g h
A) f inal B) Abst ract C) Long D) s tatic
E) c lass F) main G)priva te H) S ystem
10.下面哪些是不合法的标识符 c e f h
A) do_it_no w B) _Subst itute C) 9thMet hod D) $add Money
E) %getPa th F) 2var iable G) vari able2 H) #myvar
11.字节型数据的取值范围是: -128到127
12.请问下面哪些变量定义语句编译时会出错: a c f h
A) fl oat f = 1.3; B) doub le D=4096.0; C) byte b =257;
D) St rings = "1"; E) inti = 10; F) ch ar c= "a";
G)charC=4096; H)boole an b= nul l;
13.如果调用下面方法且参数值为67,那么方法的返回值是: 64
publ ic in t mas koff(int N){
re turnN^3;
}
14.编写程序将34.5和68.4两个数相加,并将结果显示成以下形式:
x+y=34.5+68.4=***.*
pu blicclass test {
pu blicstati c voi d mai n(Str ing[] args) {
flo at x=34.5f, y=68.4f;
S ystem.out.print ln( "x+y="+x+"+"+y+"="+(x+y));
习题3
1.结构化程序设计有哪三种流程?他们分别对应Ja va中那些语句。
结构化程序设计有三种基本流程:循环、分支和顺序。Ja va程序中的分支语句包含if语句、swi tch语句;循环语句包括了wh ile语句,do-w hile语句、for语句;其他语句如变量、对象定义、赋值语句、方法调用语句、以及上面的循环结构、分支结构等按照上下文排列都是顺序语句。
2.在一个循环中使用b reak、conti nue和r eturn有什么不同?
bre ak用于跳出整个循环语句,在循环结构中一旦遇到br eak语句,不管循环条件如何,程序立即退出所在的循环体。
c ontin ue用于跳过本次循环中尚未执行的语句,但是仍然继续执行下一次循环中的语句。
在循环中使用r eturn语句,将终止当前方法调用,同时终止循环,使流程返回到调用语句的下一个语句执行。
3.面代码将输出:________
a=9;b=18;c=4;d=14;e=-14;f=-2
g=18.4;h=2.3999999999999986;i=5;j=3;k=5
publ ic cl ass t est3{
publ ic st aticvoidmain(Strin g arg s[]){
int a=5+4;
int b=a*2;
in t c=b/4;
int d=b-c;
int e=-d;
i nt f=e%4;
dou ble g=18.4;
do ubleh=g%4;
i nt i=3;
i nt j=i++;
intk=++i;
Sys tem.o ut.pr intln("a="+a+";b="+b+";c="+c+";d="+d+";e="+e+";f="+f);Syst em.ou t.pri ntln("g="+g+";h="+h+";i="+i+";j="+j+";k="+k);
}
}
4.下面代码将输出:________
25<3=false
3!=0&&25/3>5=t rue
0!=0&&25/0>5=fal se
p ublic clas s Log icTes t{
pu blicstati c voi d mai n(Str ing a rgs[]){
int a=25,b=3;
bool ean d=a<b; //d=fals e
Sys tem.o ut.pr intln(a+"<"+b+"="+d);//=;
inte=3;
d=(e!=0&&a/e>5);
Sys tem.o ut.pr intln(e+"!=0&&"+a+"/"+e+">5="+d);java安装完整教程
i nt f=0;
d=(f!=0&&a/f>5);
Syste m.out.prin tln(f+"!=0&&"+a+"/"+f+">5="+d);
}
}
5.编写程序,求两个整数的最大公约数。
impo rt ja va.ut il.Sc anner;
pub lic c lassGcd_L cm{
publi c sta tic v oid m ain(S tring args[]){
Sc anner sc = newScann er(Sy stem.in);
Syst em.ou t.pri ntln("输入2个数:以',' 隔开");
Stri ng []str = sc.n ext().spli t(",");
intm = I ntege r.par seInt(str[0]);
in t n = Inte ger.p arseI nt(st r[1]);
int m in =m>n?n:m;
int max= m>n?m:n;
i nt nu m1 =1;
int n um2 = max;
f or (i nt i= min; i>0; i--) {
if (m%i==0&&n%i==0) {
num1 = i;brea k;
}
}
wh ile (true) {
if (num2%m==0&&num2%n==0) {
bre ak;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论