Java简明教程习题参考答案.docx
- 文档编号:23926820
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:81
- 大小:145.53KB
Java简明教程习题参考答案.docx
《Java简明教程习题参考答案.docx》由会员分享,可在线阅读,更多相关《Java简明教程习题参考答案.docx(81页珍藏版)》请在冰豆网上搜索。
Java简明教程习题参考答案
参考答案
第1章
1.Java语言有哪些主要特点。
平台独立性
安全性
多线程
网络化
面向对象
2.目前美国Sun公司提供的适用不同开发规模的JDK有哪些。
目前Sun共提供了三种不同的版本:
微平台版J2ME(Java2PlatformMicroEdition),标准版J2SE(Java2PlatformStandardEdition)和企业版J2EE(Java2PlatformEnterpriseEdition),这三种版本分别适用于不同的开发规模和类型,对于普通Java开发人员和一般学习者来说,选用标准版J2SE就可以了,学会了J2SE,再学J2ME或J2EE就比较容易上手,因为它们之间虽有所侧重,但相似之处很多,尤其是语言本身是一样的,都是Java。
3.JavaApplication的开发步骤有哪些。
JavaApplication的开发步骤:
(1)下载JDK软件并安装;
(2)配置相应的环境变量(path和classpath);
(3)编写Java源程序(文本编辑器或集成开发环境IDE);
(4)编译Java源程序,得到字节码文件(javac*.java);
(5)执行字节码文件(java字节码文件名)。
4.什么是环境变量,设置环境变量的主要目的是什么。
环境变量的配置主要是为了进行“寻径”,也即让程序能找到它需要的文件,所以设置的内容就是一些路径。
5.不参考书本,试着编写一个简单的JavaApplication程序,实现在Dos窗口输出“WelcometoNanjingCity!
”字符串。
并对该程序进行编译和运行。
publicclassHello{
publicstaticvoidmain(Stringargs[])
{
"WelcometoNanjingCity!
");
}
}
6.编写一个JavaApplication程序,实现分行显示字符串“WelcometoNanjingCity”中的四个单词。
publicclassHello{
publicstaticvoidmain(Stringargs[])
{
"Welcome");
"to");
"Nanjing");
"City!
");
}
}
第2章
1.Java语言对于合法标识符的规定是什么指出以下哪些为合法标识符。
aa23a*a_a$ainta%
在Java语言中,标识符必须以字母、美元符号或者下划线打头,后接字母、数字、下划线或美元符号串。
另外,Java语言对标识符的有效字符个数不做限定。
合法的标识符:
aa2_a$a
2.变量的涵义是什么变量名与变量值的关系
在程序执行过程中其值可以改变的数据,称为变量,它本质上代表了内存中的一小块空间。
每个变量都必须有对应的名称来标识它,即变量名,而变量空间所存放的数据则称为变量值。
3.Java语言提供哪些基本的数据类型,为什么要提供这些不同的数据类型
布尔型:
boolean
整型:
byte、short、int以及long
浮点型(实型):
float以及double
字符型:
char
数据类型代表了数据的存储格式和处理方式,虽然严格来说计算机只能识别“0”和“1”,但是,有了数据类型以后,计算机的识别能力就被人为扩展了,它能够识别整数、实数以及字符等。
4.赋值语句的涵义是什么
数据传递。
5.数据类型强制转换的原则是什么如何转换
对于变窄转换,如long到short、double到float,或者不兼容转换:
float到short、char到short等,则需要进行强制转换。
floatf=;
shortb;
b=(short)f;(强制转换)
6.每一条程序语句都应以分号来结束,这个分号能否用中文输入模式下输入的分号,为什么
不能。
首先中英文输入模式下输入的分号是不同的,不但外观不同,其存储所需的空间也是不同的,Java编译器只能识别英文的分号,对于中文分号,将会报错。
第3章
1.假定乘坐飞机时,每位顾客可以免费托运20kg以内的行李,超过部分按每公斤收费元,以下是相应的计算收费程序。
该程序存在错误,请找出。
publicclassTest
{
publicstaticvoidmain(String[]args)throwsIOException
{
floatw,fee;
;语句
2.有一条长的阶梯,如果每步2阶,则最后剩1阶,每步3阶则剩2阶,每步5阶则剩4阶,每步6阶则剩5阶,只有每步7阶的最后才刚好走完,一阶不剩,问这条阶梯最少共有多少阶找出以下求解程序的错误所在。
publicclassTest
{publicstaticvoidmain(String[]args)
{
inti;
while(i%2==1&&i%3==2&&i%5==4&&i%6==5&&i%7==0)
{
i++;
}
"这条阶梯最少有:
"+i+"阶");
}
}
1)变量i应进行初始化。
2)while循环的条件表达式应再加上“非”,这样才符合逻辑。
3.试用单分支结构设计一判断用户输入值X,当X大于零时求X值平方根,否则不执行任何操作的程序。
import.*;
import.*;
publicclassTest
{publicstaticvoidmain(String[]args)throwsIOException
{
floatx;
InputStreamReaderreader=newInputStreamReader;
BufferedReaderinput=newBufferedReader(reader);
"请输入x:
");
Stringtemp=();
x=(temp);;
publicclassTest
{publicstaticvoidmain(String[]args)throwsIOException
{
charA,B,c1,c2;
c1=(char)
c2=(char)
if(c1>c2)
{
A=c2;
B=c1;
}else
{
A=c1;
B=c2;
}
"A="+A+"B="+B);
}
}
5.用穷举法求出3位数中百、十、个位数的立方和就是该数的数。
publicclassTest
{publicstaticvoidmain(String[]args)
{
inta,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)
x+=1;
}
}
}
6.编程实现打印以下图案:
***********
*********
*******
*****
***
*
publicclassTest
{publicstaticvoidmain(String[]args)
{
inti,j,k;;
publicclassTest
{
publicstaticvoidmain(String[]args)throwsIOException
{
charsex='f';
switch(sex)
{
case'm':
"男性");
break;
case'f':
"女性");
case'u':
"未知");
}
}
}
女性
未知
10.读程序,写结果。
publicclassTest
{publicstaticvoidmain(String[]args)
{
inti,s=0;
for(i=1;i<=100;i++)
{
if(i%3==0)
continue;
s+=i;
}
"s="+s);
}
}
s=3367
11.读程序,写结果。
publicclassTest
{publicstaticvoidmain(String[]args)
{
inti,s=0;
for(i=1;i<=100;i++)
{
s+=i;
if(s>100)
break;
}
"s="+s);
}
}
s=105
12.个位数是6,且能被3整除的5位数有多少
publicclassTest
{publicstaticvoidmain(String[]args)
{
inti=10006,count=0;
while(i<)
{if(i%3==0)
count++;
i+=10;
}
"符合条件的数共有"+count+"个");
}
}
13.用嵌套循环结构,设计一模拟电子钟的程序。
提示:
定义三个变量分别代表“小时”、“分”和“秒”,根据电子钟分、秒、小时之间的关系,采用三重循环来控制各量的增加,并由输出语句将变化中的三个量分别予以输出显示,即为一模拟数字电子钟。
此外,Java语言提供的延时方法为(1000);1000的单位为毫秒,即延时1秒。
import.*;
publicclassTest
{publicstaticvoidmain(String[]args)throwsInterruptedException
{
inthour=12,min=0,sec=0;
while(hour<24)
{
while(min<60)
{
while(sec<60)
{sec++;
(1000);
"时-"+min+"分-"+sec+"秒");
}
sec=0;
min++;
}
min=0;
hour++;
}
}
}
第4章
1.以下叙述中不正确的是______。
A、在方法中,通过return语句传回方法值
B、在一个方法中,可以执行有多条return语句,并返回多个值
C、在Java中,主方法main()后的一对圆括号中也可以带有参数
D、在Java中,调用方法可以在语句中完成
B
2.以下正确的描述是______。
A、方法的定义不可以嵌套,但方法的调用可以嵌套
B、方法的定义可以嵌套,但方法的调用不可以嵌套
C、方法的定义和方法的调用均不可以嵌套
D、方法的定义和方法的调用均可以嵌套
A
3.以下正确的说法为______。
A、在不同方法中不可以使用相同名字的变量
B、实际参数可以在被调方法中直接使用
C、在方法内定义的任何变量只在本方法范围内有效
D、在方法内的复合语句中定义的变量只在本方法语句范围内有效
C
4.按Java语言的规定,以下正确的说法是______。
A、实参不可以是常量,变量或表达式
B、形参不可以是常量,变量或表达式
C、实参与其对应的形参占用同一个存储单元
D、形参是虚拟的,不占用存储单元
D
5.一个JavaApplication程序中有且只有一个方法,它是整个程序的执行入口。
main()方法
6.方法通常可以认为由两部分组成,它们是和。
方法头和方法体
7.读程序写结果。
publicclassTest{
staticvoidm(intx,inty,intz)
{x=111;y=222;z=333;
}
publicstaticvoidmain(Stringargs[])
{intx=100,y=200,z=300;
m(x,y,z);
}
}
x=100y=200z=300
8.编写一个判断某个整数是否为素数的方法。
publicbooleanprime(intx)
{
for(intj=2;j publicclassTest {publicstaticvoidmain(String[]args) {inta=0; "请输入数a: "); try{ BufferedReaderbr=newBufferedReader(newInputStreamReader); a=()); }catch(IOExceptione){} intb=0; "请输入数b: "); try {BufferedReaderbr=newBufferedReader(newInputStreamReader); b=()); }catch(IOExceptione){} if(a<=0||b<=0) "输入不合法! "); "最大公约数为: "+Gys(a,b)); "最小公倍数为: "+Gbs(a,b)); } publicstaticintGys(inta,intb) { intr=0; if(a {r=a; b=a; a=r;} inti=1; while(i! =0) {i=a%b; a=b; b=i; } returna; } publicstaticintGbs(inta,intb) { intab=a*b; intr=0; if(a {r=a; b=a; a=r;} inti=1; while(i! =0) {i=a%b; a=b; b=i; } returnab/a; } } 10.以下程序执行后的输出为。 publicclassTest { staticintm1(inta,intb) { intc; a+=a; b+=b; c=m2(a,b); return(c*c); } staticintm2(inta,intb) { intc; c=a*b%3; return(c); } publicstaticvoidmain(String[]args) { intx=1,y=3,z; z=m1(x,y); "z="+z); } } z=0 11.编写一个方法,实现求某整数的各位数字之和的功能。 import.*; publicclassTest {publicstaticvoidmain(String[]args) {inti,a=0,s=0; "请输入数a: "); try{ BufferedReaderbr=newBufferedReader(newInputStreamReader); a=()); }catch(IOExceptione){} for(i=10;a%i! =a;i*=10) { s+=(a%i)/(i/10); } s+=a/(i/10); "各位数之和为"+s); } } 12.编写完成十进制整数到八进制的转换方法。 import.*; publicclassTest {publicstaticvoidmain(String[]args) {inti,k,a=0,d,s=0; "请输入数: "); try{ BufferedReaderbr=newBufferedReader(newInputStreamReader); a=()); }catch(IOExceptione){} d=a%8; s+=d; k=10; for(i=64;a-d! =0;i*=8) { s+=(a-d)%i*8/i*k; k*=10; d=a%i; } "八进制数为"+s); } } 13.用于指出数组中某个元素的数字被叫做;数组元素之所以相关,是因为它们具有相同的和。 下标;数组名和数据类型。 14.数组intresults[]=newint[6]所占存储空间是字节。 24 15.使用两个下标的数组被称为数组,假定有如下语句: floatscores[][]={{1,2,3},{4,5},{6,7,8,9}}; 则的值为: ,scores[1].length的值为: , scores[1][1]的值为: 。 二维;3;2;5。 16.从键盘上输入10个双精度浮点数后,求出这10个数的和以及它们的平均值。 要求分别编写相应求和及求平均值的方法。 import.*; publicclassTest { publicstaticvoidmain(String[]args)throwsIOException { InputStreamReaderreader=newInputStreamReader; BufferedReaderinput=newBufferedReader(reader); Stringtemp; doublex[]=newdouble[10]; for(inti=0;i<10;i++) { temp=(); x[i]=(temp); } S(x); Avg(x); } publicstaticvoidS(doublex[]) { ; publicclassScores { publicstaticvoidmain(String[]args)throwsIOException { intsum=0;; publicclassTest { publicstaticvoidmain(String[]args)throwsIOException { charc[]={'O','l','y','m','p','i','c','','G','a','m','e','s'}; rever(c); } publicstaticvoidrever(charc[]) { chart; for(inti=0,j=;i { t=c[i]; c[i]=c[j]; c[j]=t; } } } 19.Java语言为什么要引入方法这种编程结构 提高复用度,减少程序代码量 促进程序结构化,提高可读性和可维护性 20.为什么要引入数组结构,数组有哪些特点,Java语言创建数组的方式有哪些 为了便于处理一批同类型的数据,Java语言引入了数组类型; 首先,数组中的每个元素都是相同数据类型的;其次,数组中的这些相同数据类型元素是通过数组下标来标识的,并且该下标是从0开始的;最后,数组元素在内存中的存放是连续的。 Java语言规定,创建数组可以有两种方式: 初始化方式和new操作符方式。 初始化方式是指直接给数组的每一个元素指定一个初始值,系统自动根据所给出的数据个数为数组分配相应的存储空间,通常这样创建数组的方式适用于数组元素较少的情形。 对于数组比较大的情形,即数组元素过多,用初始化方式显然不妥,这时应采用第二种方式,即new操作符方式。 第5章 1.实现类MyClass的源码如下: classMyClassextendsObject{ privateintx; privateinty; publicMyClass(){ x=0; y=0; } publicMyClass(intx,inty){ ......... } publicvoidshow(){ "\nx="+x+"y="+y); } publicvoidshow(booleanflag){ if(flag)"\nx="+x+"y="+y); else"\ny="+y+"x="+x); } protectedvoidfinalize()throwsthrowable{ (); } } 在以上的源代码中,类MyClass的成员变量是____;构造方法是____;对该类的一个实例对象进行释放时将调用的方法是____。 (多选) (A)privateintx; (B)privateinty; (C)publicMyClass() (D)publicMyClass(intx,inty) (E)publicvoidshow() (F)publicvoidshow(booleanflag) (G)protectedvoidfinalize()throwsthrowable 答案: ABCDG 2.上题所声明的类MyClass的构造方法MyClass(intx,inty)的目的是使MyClass的成员变量privateintx,privateinty的值分别等于方法参数表中所给的值intx,inty。 请写出MyClass(intx,inty)的方法体(用两条语句): __________________________; __________________________; 答案: =x=y 3.MyClass声明同第一题。 设publicstaticvoidmain(Stringargs[])方法体如下: { MyClassmyclass; (); } 编译运行该程序将会有何结果 (A)x=0y=0 (B)y=0x=0 (C)x=...y=...(x,y具体为何值是随机的) (D)源程序有错 答案: D 4.MyClass声明同第一题。 设publicstaticvoidmain(Stringargs[])方法体如下: { MyClassmyclass=newMyClass(5,10); (false); } 编译运行该程序将会有何结果 (A)x=0y=0 (B)x=5y=10 (C)y=10x=5 (D)y=0x=0 答案: C 5.MyClass声明同第一题。 设publicstaticv
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 简明 教程 习题 参考答案