是一个完整的程
序,需要独立的Java解释器来解释执行;而Java小应用程序则是嵌在Web页面中的非
独立应用程序,由Web浏览器内部所包含的Java解释器来解释执行,为Web页面增加
交互性和动态性。
习 题 二
1. Java语言对标识符命名有何规定,下面这些标识符哪些是合法的,哪些是不合法的。
1)Myname 2) JavaLanguage 3) 2Person 4) _is_Has 5) $12345。
【答】:
合法的标识符有:Myname、JavaLanguage、_is_Has
非法的标识符有:2Person、$12345
2.Java有哪些基本数据类型,与C/C++相比有何特点?复合数据类型是哪几种?
【答】:
基本数据类型有:整型数据类型(字节整型、短整型、整型、长整型),实数数据类型
(单精度实数、双精度实数),字符数据类型和布尔数据类型。
与C/C++相比,Java的数据类型与C++相似,但有两点不同:①在Java语言中所有的数
据类型是确定的,与平台无关,所以在Java中无sizeof操作符;②Java中每种数据类型都对
应一个默认值。这两点体现了Java语言的跨平台性和完全稳定性。
Java的复合类型是由用户根据需要自己定义并实现其运算的数据类型,主要有类类型、
接口和数组等。
3. Java的字符类型采用何种编码方案?有何
特点?
【答】:
Java的字符类型采用16位Unicode(全球文字共享编码)方式,用16位来表示东西方
字符。由于采用Unicode编码
方案,使得Java在处理多语种的能力方面得到大大提高,从
而为Java程序在基于不同语种之间实现平滑移植铺平了道路。
4. Java有哪些运算符和表达式?请写出下面这些表达式的运算结果(设a =2,b = – 3,
f = true)。
1)– –a%b++ 2) (a>=1)&;&;a<=12?a:b) 3) f^(a>b) 4) (– –a)<
【答】:
Java的运算符主要由算术运算符、关系运算符、条件运算符、位运算符、逻辑运算符
以及赋值运算符。表达式由运算符、操作数和方法调用,按照语言的语法规则构造
而成的符号序列。
表达式的结构是:
1)– –a%b++的结果是:1
2)(a>=1)&;&;a<=12?a:b)的结果是:1
3)f^(a>b)的结果是:false
4)(– –a)<
5.Java中标准输入输出使用哪种系统类、使用哪个对象和方法?
【答】:
通过系统类java.lang.System达到访问标准输入输出的功能。System类管理标准输入输
出流和错误流,有以下三个对象:
1)System.out:把输出送到默认的显示(通常是显示器)。常使用输出的方法有print()、
println()等。
2)System.in:从标准输入获取输入(通常是键盘)。常实现输入处理的方法有read()、
skip()等;
3)System.err:把错误信息送到默认的显示。常见方法有print()、println()、write()等。
6.阅读下列程序,写出运行结果。
(1).
public class Example0401{
public static void main(String[] args){
for(int x=0;x<10;x++){
int y=x*x+x+41';
System.out.println("\t"+x+"\t"+y);
}
}
}
(2).菲波拉契数列:
public class Example02{
public static void main(String[] args){
System.out.print(0)
int fib0=0;
int fib1=1;
int fib2=fib0+fib1
while(fib2<100){
fib0=fib1;
fib1=fib2;
fib2=fib1+fib0;
System.out.print(","+fib1);
}
}
}
(3).产生0~20的随机整型,然后计算并打印它的结果:
import java.util.Random;
public class Example03{
public static void main(String[] args){
Random random=new Random();
float x=random.nextFloat();
int n=Math.round(21*x);
long f=1;
int k=1;
do
f*=k++;
while(k<=n);
System.out.println(n+"!="+f);
}
}
(4).三重循环:
public class Example05{
public static void main(String[] args){
for(int i=0;i<3;i++){
resume:
for(int j=0;j<3;j++){
for(int k=0;k<3;k++){
System.out.println("\n"+i+" "+j+' "+k);
if (i==1&;&; k==0) break resume;
}
System.out.println("\tEnd of k loop;j="+j);
}
System.out.println("\tEnd of j loop;i="+i);
}
System.o
ut.println("\tEnd of i loop.")
}
}
【答】:
(1)的运行结果如下:
0 41
1 43
2 47
3 53
4 61
5 71
6 83
7 97
8 113
9 131
(2)的运行结果如下:
0,1,2,3,5,8,13,21,34,55,89
(3)的运行结果如下:
运行结果取决于随机数。求随机数的阶乘,其中的一个运行结果如下:
3!=6
(4)的运行结果如下:
0 0 0
0 0 1
0 0 2
End of k loop;j=0
0 1 0
0 1 1
0 1 2
End of k loop;j=1
0 2 0
0 2 1
0 2 2
End of k loop;j=2
End of j loop;i=0
1 0 0
End of j loop;i=1
2 0 0
2 0 1
2 0 2
End of k loop;j=0
2 1 0
2 1 1
2 1 2
End of k loop;j=1
2 2 0
2 2 1
2 2 2
End of k loop;j=2
End of j loop;i=2
End of i loop.
7.分析下面两个三重循环程序之间的差别,写出结果,然后上机进行检验。
(1).三重循环1:
public class Example01{
public static void main(String[] args){
int count=0;
for(int i=0;i<3;i++)
resume:
for(int j=0;j<4;j++)
for(int k=0;k<5;k++){
++count;
if (i==1&;&;j==2&;&; k==3) break resume;
}
System.out.println("\tcount="+count)