《Java语言程序设计基础教程》习题解答.docx
《《Java语言程序设计基础教程》习题解答.docx》由会员分享,可在线阅读,更多相关《《Java语言程序设计基础教程》习题解答.docx(23页珍藏版)》请在冰豆网上搜索。
《Java语言程序设计基础教程》习题解答
《Java语言程序设计基础教程》
练习思考题参考答案
第1章Java程序设计概述
1、9练习思考题
1、Java运行平台包括三个版本,请选择正确的三项:
()
A、J2EEB、J2ME
C、J2SED、J2E
解答:
A,B,C
2、JavaJDK中反编译工具就是:
()
A、javacB、java
C、jdbD、javap
解答:
D
3、publicstaticvoidmain方法的参数描述就是:
()
A、Stringargs[]B、String[]args
C、Stringsargs[]D、Stringargs
解答:
A,B
4、在Java中,关于CLASSPATH环境变量的说法不正确的就是:
()
A、CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。
B、编译器用它来搜索各自的类文件。
C、CLASSPATH就是一个目录列表。
D、解释器用它来搜索各自的类文件。
解答:
A
5、编译JavaApplication源文件将产生相应的字节码文件,扩展名为()
A、、javaB、、class
C、、htmlD、、exe
解答:
B
6、开发与运行Java程序需要经过的三个主要步骤为____________、____________与____________。
7、如果一个JavaApplet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须就是______类的子类并且存储该源程序文件的文件名为______。
8、如果一个JavaApplet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。
9、开发与运行Java程序需要经过哪些主要步骤与过程?
10、Java程序就是由什么组成的?
一个程序中必须要有public类不?
Java源文件的命名规则就是怎么样的?
11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:
“您好,很高兴学习Java”与“Wearestudents”。
第2章Java基本的程序设计结构
2、7练习思考题
1、从下面选项中,选择三个有效的标示符:
()
A、IDoLikeTheLongNameClassB、$byte
C、constD、_ok
E、3_case
解答:
A,B,D
2、下面哪一项在java中就是非法的标识符?
()
A、$user
B、point
C、You&me
D、_endline
解答:
C
3、下列不属于Java保留字的就是:
()
A、sizeof
B、super
C、abstract
D、break
解答:
A
4、下面哪些java语句会导致无限循环?
()
I、while(true)i=0;
II、while(false)i=1;
III、while(!
false)i=0;
A、仅仅III
B、I与III
C、仅仅I
D、I,II与III
解答:
B
5、下列整型数据类型中,需要内存空间最少的就是()。
A、shortB、long
C、intD、byte
解答:
D
6、下面代码执行后,正确的输出结果就是:
( )
publicclassExample{
publicstaticvoidmain(Stringargs[]){
intl=0;
do{
System、out、println("Doingitforlis:
"+l);
}while(--l>0);
System、out、println("Finish");
}
}
A、Doingitforlis3
B、Doingitforlis1
C、Doingitforlis2
D、Doingitforlis0
E、Doingitforlis?
C1
F、Finish
解答:
D,F
7、若有定义inta=1,b=2;那么表达式(a++)+(++b)的值就是:
()
A、3B、4
C、5D、6
解答:
B
8、若有定义inta=9,b=6;那么a>b的值就是:
()
A、0B、1
C、falseD、true
解答:
D
9、假定有变量定义:
intk=7,x=12;那么能使值为3的表达式就是:
( )
A、x%=(k%=5)B、x%=(k-k%5)
C、x%=k-k%5D、(x%=k)-(k%=5)
解答:
D
10、执行完以下代码int[]x=newint[25];后,以下说明正确的就是:
()
A、x[24]为0B、x[24]未定义
C、x[25]为0D、x[0]为空
解答:
A
11、Java应用程序的main方法中有以下语句,则输出的结果就是()。
int[]x={2,3,-8,7,9};
intmax=x[0];
for(inti=1;iif(x[i]>max)
max=x[i];
}
System、out、println(max);
A、2B、-8
C、7D、9
解答:
D
12、设x=1,y=2,z=3,则表达式y+=z--/++x的值就是()
A、3B、3、5
C、4D、5
解答:
A
13、有整型数组:
int[]x={2,33,88,5,10};,则调用方法Arrays、sort(x)后,数组x中的元素值依次就是?
()
A、88331052
B、25103388
C、88102335
D、53321088
解答:
B
14、下列语句有错误的就是:
()
A、int[]a;B、int[]b=newint[10];
C、intc[]=newint[];D、intd[]=null;
解答:
C
15、下列语句有错误的就是:
()
A、inta[][]=newint[5][5];B、int[][]b=newint[5][5];
C、int[]c[]=newint[5][5];D、int[][]d=newint[5,5];
解答:
D
16、关于下面的程序,正确的结论就是______。
publicclassex4_7{
publicstaticvoidmain(Stringargs[]){
inta[]=newint[5];
booleanb[]=newboolean[5];
System、out、print(a[1]);
System、out、println(b[2]);
}
}
A、运行结果为0falseB、运行结果为1true
C、程序无法通过编译D、可以通过编译但结果不确定
解答:
A
17、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用______字节内存空间,这样,无论就是中文字符还就是英文字符,都就是占用______字节内存空间。
18、设x=2,则表达式(x++)/3的值就是______。
19、若x=5,y=10,则x=y的逻辑值分别为______与______。
20、设有数组定义:
intMyIntArray[]={10,20,30,40,50,60,70};
则执行以下几个语句后的输出结果就是:
。
intMyIntArray[]={10,20,30,40,50,60,70};
ints=0;
for(inti=0;iif(i%2==1)
s+=MyIntArray[i];
System、out、println(s);
21、数组对象的长度在数组对象创建之后,就______改变。
数组元素的下标总就是从______开始。
22、对于数组int[][]t={{1,2,3},{4,5,6}}来说,t、length等于______,t[0]、length等于______。
23、已知数组a的定义为“inta[]={1,2,3,4,5};”,则a[2]=______,数组b的定义为“intb[]=newint[5];”,则b[2]=______,数组c的定义为“Object[]c=newObject[5];”,则c[2]=______。
24、调用数组元素时,用______与______来唯一确定数组中的元素。
25、什么就是数组?
数组有哪些特点?
Java中创建数组需要哪些步骤?
如何访问数组的第一个元素?
26、编程计算10~20的整数的平方值,将结果保存在一个数组中。
27、编写一个程序使之从键盘读入10个整数存入整型数组a中,然后逆序输出这10个整数。
28、某人有5张3分与4张5分的邮票,请编写一个程序,计算由这些邮票中的1张或若干张可以得到多少种不同的邮资。
29、分析写出下列程序完成的功能。
publicclasssun{
publicstaticvoidmain(Stringargs[]){
doublesum=0、0;
for(inti=1;i<=100;i++)
sum+=1、0/(double)i;
System、out、println("sum="+sum);
}
}
30、编写一个字符界面的JavaApplication程序,接受用户输入的10个整数,并输出这10个整数的最大值与最小值。
31、如果我国经济以每年10%的速度保持稳定增长,请编写一个程序,计算每年达到多少,多少年可以实现总量翻两番。
classexA4_1{
publicstaticvoidmain(Stringargs[]){
inta=0;
doublei=0、10,sum=1;
while(sum<=4){
sum=(i+1)*sum;
a++;
System、out、println("第"+a+"年达到"+sum);
}
System、out、println("需要"+a+"年实现两番");
}
}
第3章类与对象
3、9练习思考题
1、下列关于变量的叙述哪个就是错的?
()
A、实例变量就是类的成员变量。
B、在方法中定义的局部变量在该方法被执行时创建。
C、实例变量用关键字static声明。
D、局部变量在使用前必须被初始化。
解答:
C
2、在Java语言中,下列哪个包就是编译器自动导入的?
()
A、java、appletB、java、lang
C、java、ioD、java、awt
解答:
B
3、当类的成员未用访问权限修饰符时,Java认为此成员的访问权限为()。
A、privateB、protected
C、friendlyD、public
解答:
C
4、下面哪个关键字不就是用来控制对类成员的访问的?
( )
A、publicB、protected
C、defaultD、private
解答:
C
5、下面哪一个特性不就是面向对象编程主要体现的()。
A、封装性B、继承
C、多态D、类
解答:
C
6、不允许作为类及类成员的访问控制符的就是()。
A、publicB、private
C、staticD、protected
解答:
C
7、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。
A、staticvoidmethod()B、publicvoidmethod()
C、finalvoidmethod()D、abstractvoidmethod()
解答:
A
8、可以在下面代码段pointx处写入的就是?
()
//pointx
publicclassInteresting{
//dosomething
}
A、Stringstr;
B、staticintPI=3、14;
C、publicclassMyClass{//dootherthing…}
D、importjava、awt、*;
解答:
D
9、下列关于变量的叙述哪个就是错的?
()
A、实例变量就是类的成员变量。
B、在方法中定义的局部变量在该方法被执行时创建。
C、实例变量用关键字static声明。
D、局部变量在使用前必须被初始化。
解答:
C
10、下列哪个类声明就是正确的?
()
A、abstractfinalclassHI{}
B、abstractprivatemove(){}
C、protectedprivatenumber;
D、publicabstractclassCar{}
解答:
D
11、已知A类被打包在packageA,B类被打包在packageB,且B类被声明为public,且有一个成员变量x被声明为protected控制方式。
C类也位于packageA包,且继承了B类。
则以下说法正确的就是:
()
A、A类的实例不能访问到B类的实例
B、A类的实例能够访问到B类一个实例的x成员
C、C类的实例可以访问到B类一个实例的x成员
D、C类的实例不能访问到B类的实例
解答:
C
12、下列命题为真的就是:
()
A、所有类都必须定义一个构造函数。
B、构造函数必须有返回值。
C、构造函数可以访问类的非静态成员。
D、构造函数必须初始化类的所有数据成员。
解答:
C
13、在Java中,关于final关键字的说法正确的就是()
A、如果修饰变量,则一旦赋了值,就等同一个常量。
B、如果修饰类,则该类只能被一个子类继承。
C、如果修饰方法,则该方法不能在子类中被覆盖。
D、如果修饰方法,则该方法所在的类不能被继承。
解答:
A,C
14、在Java中,下面关于包的陈述中正确的就是()
A、包的声明必须就是源文件的第一句代码。
B、包的声明必须紧跟在import语句的后面。
C、只有公共类才能放在包中。
D、可以将多个源文件中的类放在同一个包中。
解答:
A,D
15、______方法就是一种仅有方法头,没有具体方法体与操作实现的方法,该方法必须在抽象类之中定义。
______方法就是不能被当前类的子类重新定义的方法。
16、什么叫方法的重载?
构造方法可以重载么?
17、简述实例变量与类变量的区别。
第4章继承、接口与内部类
4、5练习思考题
1、Java中用于定义接口的关键字就是()
A、importB、package
C、classD、interface
解答:
D
2、以下关于abstract的说法,正确的就是()
A、abstract只能修饰类
B、abstract只能修饰方法
C、abstract类中必须有abstract方法
D、abstarct方法所在的类必须用abstract修饰
解答:
D
3、下列哪种说法就是正确的()
A、私有方法不能被子类覆盖。
B、子类可以覆盖超类中的任何方法。
C、覆盖方法可以声明自己抛出的异常多于那个被覆盖的方法。
D、覆盖方法中的参数清单必须就是被覆盖方法参数清单的子集。
解答:
A
4、关于类继承的说法,正确的就是()
A、Java类允许多重继承
B、Java接口允许多继承
C、接口与类都允许多继承
D、接口与类都不允许多继承
解答:
B
5、关于抽象类,正确的就是______。
A、抽象类中不可以有非抽象方法
B、某个非抽象类的父类就是抽象类,则这个子类必须重载父类的所有抽象方法
C、不能用抽象类去创建对象
D、接口与抽象类就是同一个概念
解答:
B
6、下列哪个类就是由编译器自动生成对象的特殊类,就是用于类操作?
()
A、Class类
B、Thread类
C、System类
D、Object类
解答:
A
7、下面关于继承的哪些叙述就是正确的。
()
A、在java中只允许单一继承。
B、在java中一个类只能实现一个接口。
C、在java中一个类不能同时继承一个类与实现一个接口。
D、java的单一继承使代码更可靠。
解答:
A,D
8、抽象类A与抽象类B的定义如下:
abstractclassex4_5_10_A{
abstractintgetinfo();
}
publicclassex4_5_10extendsex4_5_10_A{
privateinta=0;
publicintgetinfo(){
returna;
}
publicstaticvoidmain(Stringargs[]){
ex4_5_10b=newex4_5_10();
System、out、println(b、getinfo());
}
}
关于上述代码说明正确的就是()。
A、输出结果为0B、通过编译但没有输出任何结果
C、第5行不能通过编译D、程序第2行不能通过编译
解答:
A
9、下面程序的运行结果就是______
classex4_5_11_A{
protectedstaticintcount=0;
publicex4_5_11_A(){
count++;
}
}
classex4_5_11_Bextendsex4_5_11_A{
publicex4_5_11_B(){
count++;
}
}
classex4_5_11{
publicstaticvoidmain(Stringargs[]){
ex4_5_11_Bx=newex4_5_11_B();
System、out、println("count="+x、count);
}
}
A、count=1B、count=2
C、count=3D、count=4
解答:
B
10、设有下面两个类的定义:
classPerson
{longid;//身份证号
Stringname;//姓名
}
classStudentextendsPerson
{intscore;//入学总分
intgetScore(){
returnscore;
}
}
问:
类Person与类Student的关系就是( )
A、包含关系B、继承关系
C、关联关系D、无关系,上述类定义有语法错误
解答:
B
10、对于接口的实现,不可以构造一个接口对象,但可以声明一个接口______。
11、在Java语言中所有的类都就是直接或间接地继承______类而得到的。
12、在Java中一个父类可以有______个子类,一个类只能有______个直接父类。
13、什么就是继承?
什么就是多重继承与单继承?
Java采用何种机制来实现多重继承?
14、什么就是隐藏?
什么就是重写?
二者有何区别?
15、子类会继承父类的所有方法与属性么?
16、设计一个Student类,以一维数组存储一个班级的学生信息。
要求:
1)将Student设计成一个接口
2)自定义一个包来管理所设计的类
17、定义一个接口,该接口中只有一个抽象方法getClassName()。
设计一个类Horse,该类实现接口ClassName中的方法getClassName(),功能就是获取该类的类名。
基础开发篇
第5章JavaAPI
5、9练习思考题
1、阅读下列代码后,正确的说法就是( )
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringargs[]){
System、out、println(arr[1]);
}
}
A、编译时将产生错误B、编译时正确,运行时将产生错误
C、输出零D、输出空
解答:
C
2、仔细分析下面程序,正确的输出结果就是()
publicclassTest1{
publicstaticvoidchangeStr(Stringstr){
str="welcome";
}
publicstaticvoidmain(String[]args){
Stringstr="1234";
changeStr(str);
System、out、println(str);
}
}
A、welcomeB、welcome1234
C、1234D、1234welcome
解答:
C
3、Java语言中的一些常用的实用工具,如处理时间的Date类,处理变长数组的Vector类等,所在的包就是()。
A、java、lang包B、java、io包
C、java、awt包D、java、util包
解答:
D
4、下面代码执行后,正确的输出结果就是:
( )
Strings1="Youarehired!
";
System、out、println(s1、replace('h','f'));//用f把字串中的h替换了
System、out、println(s1);
A、Youarefired!
B、Youarefired!
Youarehired!
Youarefired!
C、Youarehired!
D、Youarehired!
Youarehired!
Youarefired!
解答:
A
5、下面的程序段执行后输出的结果就是()
StringB