java测试题部分带答案.docx
《java测试题部分带答案.docx》由会员分享,可在线阅读,更多相关《java测试题部分带答案.docx(70页珍藏版)》请在冰豆网上搜索。
![java测试题部分带答案.docx](https://file1.bdocx.com/fileroot1/2023-7/26/5aa65cb7-e480-4bd6-878f-c88797c0d785/5aa65cb7-e480-4bd6-878f-c88797c0d7851.gif)
java测试题部分带答案
第1章Java语言概述
习题一
一、简答题
1.Java语言的诞生日是哪一天?
它有哪些特点与优势?
2.Java语言程序分为哪几种?
JavaApplication程序和JavaApplet程序的主要区别是什么?
3.JavaApplication程序在结构上有哪些特点?
如何编译、运行?
被编译后生成什么文件?
该文件机器可以直接识别吗?
如何执行?
4.安装JDK后如何对JAVA_HOME、PATH和CLASSPATH环境变量进行设置?
它们的作用是什么?
5.Java程序在书写上应注意哪些事项?
有哪些编码规范?
6.为什么要对程序进行注释?
Java中有哪几种注释?
文档注释符与多行注释符有何不同?
二、选择题
1.下面关于JavaApplication程序结构特点描述中,错误的是(D)。
A.一个JavaApplication程序由一个或多个文件组成,每个文件中可以定义一个或多个类,每个类由若干个方法和变量组成。
B.Java程序中声明有public类时,则Java程序文件名必须与public类的类名相同,并区分大小写,扩展名为.java。
C.组成JavaApplication程序的多个类中,有且仅有一个主类。
D.一个.java文件中定义多个类时,允许其中声明多个public类。
2.编译Java程序后生成的面向JVM的字节码文件的扩展名是(B)。
A..javaB..classC..objD..exe
3.下面关于Java语言特点的描述中,错误的是(A)。
A.Java是纯面向对象编程语言,支持单继承和多继承。
B.Java支持分布式的网络应用,可透明地访问网络上的其他对象。
C.Java支持多线程编程。
D.Java程序与平台无关、可移植性好。
4.JavaSE的命令文件(java、javac、javadoc等)所在目录是(C)。
A.%JAVA_HOME%\jreB.%JAVA_HOME%\lib
C.%JAVA_HOME%\binD.%JAVA_HOME%\demo
5.下列关于运行字节码文件的命令行参的描述中,正确的是(C)。
A.命令行的命令字被存放在args[0]中。
B.数组args[]的大小与命令行的参数的个数无关。
C.第一个命令行参数(紧跟命令字的参数)被存放在args[0]中。
D.第一个命令行参数被存放在args[1]中。
6.paint()方法使用哪种类型的参数?
(A)
A.GraphicsB.Graphics2DC.StringD.Color
7.Java的核心包中,提供编程应用的基本类的包是(B)。
A.java.utilB.java.langC.java.appletD.java.rmi
8.编译Java程序时,用于指定生成class文件位置的选项是(A)。
A.-dB.-gC.-verboseD.-nowarn
9.下列标识符(名字)命名原则中,正确的是(C)。
A.类名的首字母小写B.接口名的首字母小写
C.常量全部大写D.变量名和方法名的首字母大写
10.下面哪些选项是正确的main方法说明?
(D)
A.voidmain()B.privatestaticvoidmain(Stringargs[])
C.publicmain(Stringargs[])D.publicstaticvoidmain(Stringargs[])
11.下面哪种注释方法能够支持javadoc命令?
(C)
A.//B./*...*/C./**...*/D./**...**/
三、判断题
1.Java语言具有较好的安全性和可移植性及与平台无关等特性。
(√)
2.Java语言的源程序不是编译型的,而是编译解释型的。
(√)
3.JavaApplication程序中,必有一个主方法main(),该方法有没有参数都可以。
(√)
4.java.util.Scanner(System.in)可以接收用户从键盘输入的简单数据。
(√)
5.Java程序中不区分大小写字母。
(×)
6.机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行。
(√)
7.System类中的println()方法分行显示信息,而print()方法不分行显示信息。
(√)
8.当前路径的标识是“.”。
(√)
9.java命令不区分大小写,而javac命令区分大小写。
(×)
10.printf()和format()方法使用指定格式字符串和参数,将格式化字符串写入到PrintStream类型的输出流(System.out对象)中。
(√)
11.在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。
(×)
四、编程题
1.分别用UltraEdit、NetBeans、Eclipse、JBuilder和JCreator编写一个JavaApplication程序,使该程序运行后输出字符串“Nothingistoodifficultifyouputyourheadintoit.”。
2.编写一个具有交互功能的JavaApplication程序,提示从键盘输入应付金额和实付金额后,计算并输出找零或欠付金额。
3.编写一个JavaApplet程序,使该程序运行后输出字符串“Don’tputofftilltomorrowwhatshouldbedonetoday.”。
第2章Java语言基础
习题二
一、填空题
1.已知:
inta=8,b=6;则:
表达式++a-b++的值为(3)。
2.已知:
booleanb1=true,b2;则:
表达式!
b1&&b2||b2的值为(false)。
3.已知:
doublex=8.5,y=5.8;则:
表达式x++>y--值为(true)。
4.已知:
inta[]={2,4,6,8};则:
表达式(a[0]+=a[1])+++a[2]值为(13)。
5.执行intx,a=2,b=3,c=4;x=++a+b+++c++;结果是(x=10,a=3,b=4,c=5)。
6.Java中的显式类型转换既能(从低类型向高类型转换)也能从高类型向低类型转换,而隐式类型转换只有前者。
7.在Java中,字符串和数组是作为(对象)出现的。
8.执行下列程序代码的输出结果是(10,11,11)。
inta=10;inti,j;i=++a;j=a--;
System.out.printf("%d,%d,%d",a,i,j);
9.执行完booleanx=false;booleany=true;booleanz=(x&&y)&&(!
y);intf=z==false?
1:
2;
这段代码后,z与f的值分别是(false)和
(1)。
二、选择题
1.下面哪些标识符在Java语言中是合法的?
(AB)
A.persons$B.TwoUsersC.*pointD.instanceofF.end-line
2.下列(D)是合法标识符。
A.2endB.-helloC.=ABD.整型变量
3.已知inti=2147483647;++i;则i的值等于(A)。
A.-2147483648B.2147483647C.2147483648D.-1
4.若x=5,y=8,则表达式x|y的值为(B)。
A.3B.13C.0D.5
5.若定义有变量floatf1,f2=8.0F,则下列说法正确的是(B)。
A.变量f1,f2均被初始化为8.0B.变量f1没有被初始化,f2被初始化为8.0
C.变量f1,f2均未被初始化D.变量f2没有被初始化,f1被初始化为8.0
6.基本数据类型short的取值范围是(B)。
A.(-256)~255B.(-32768)~32767C.(-128)~127D.0~65535
7.下列(B)是不能通过编译的语句。
A.doubled=545.0;B.chara1=“c”;C.inti=321;D.floatf1=45.0f;
8.若定义有shorts;byteb;charc;则表达式s*b+c的类型为(C)。
A.charB.shortC.intD.byte
9.下列循环语句的循环次数是(B)。
inti=5;
do{System.out.println(i--);
i--;
}while(i!
=0);
A.5B.无限C.0D.1
10.下列代码哪几行会出错?
(C)
1)publicvoidmodify(){
2)intI,j,k;
3)I=100;
4)while(I>0){
5)j=I*2;
6)System.out.println("Thevalueofjis"+j);
7)k=k+1;
8)I--;
9)}
10}
A.line4B.line6C.line7D.line8
11.下列关于数组的定义形式,哪些是错误的?
(ABC)
A.int[]c=newchar[10];B.int[][3]=newint[2][];
C.int[]a;a=newint;D.charb[];b=newchar[80];
12.执行String[]s=newString[10];语句后,哪些结论是正确的?
(BC)
A.s[0]为未定义B.s.length为10
C.s[9]为nullD.s[10]为""
13.下列关于Java语言的数组描述中,错误的是(D)。
A.数组的长度通常用length表示B.数组下标从0开始
C.数组元素是按顺序存放在内存的D.数组在赋初值和赋值时都不判界
14.下面的表达式哪些是正确的?
(ACE)
A.Strings="你好";inti=3;s+=i;
B.Strings="你好";inti=3;if(i==s){s+=i};
C.Strings="你好";inti=3;s=i+s;
D.Strings="你好";inti=3;s=i+;
E.Strings=null;inti=(s!
=null)&&(s.length()>0)?
s.length():
0;
15.下列代表十六进制整数的是(C)。
A.012345B.2008C.0xfa08D.fb05
16.在switch(expression)语句中,expression的数据型不能是(C)。
A.charB.shortC.doubleD.byte
17.下列说法正确的是(AC)。
A.表达式“1+2>3”的值是falseB.表达式“1+2||3”是非法的表达式
C.表达式“i+j=1”是非法的表达式D.表达式“1+2>3”的值是true
18.指出正确的表达式(B)。
A.byte=128;B.longl=0xfffL;C.Boolean=null;D.double=0.9239d;
19.publicclassT18{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[]){
System.out.println(arr[1]);
}
}
哪个语句是正确的?
(C)
A.编译时将产生错误B.编译时正确,运行时将产生错误
C.输出零D.输出空
20.若Strings="hello";Stringt="hello";charc[]={'h','e','l','l','o'};则下列哪些表达式返回true?
(AB)
A.s.equals(t);B.t.equals(newString("hello"));
C.t.equals(c);D.s==t;
21.执行下面的代码段:
switch(m){case0:
System.out.println("case0");
case1:
System.out.println("case1");break;
case2:
default:
System.out.println("default");
}
下列m的哪些值将引起"default"的输出?
(CD)
A.0B.1C.2D.3
22.下列关于“<<”和“>>”的运算,哪些是正确的?
(AC)
A.00000100000000000000000000000000<<5的运行结果是
10000000000000000000000000000000
B.00000100000000000000000000000000<<5的运行结果是
11111100000000000000000000000000
C.11000000000000000000000000000000>>5的运行结果是
11111110000000000000000000000000
D.11000000000000000000000000000000>>5的运行结果是
00000110000000000000000000000000
三、判断题
1.Java语言使用的是Unicode字符集,每个字符在内存中占8位。
(×)
2.Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。
(√)
3.所有的变量在使用前都必须进行初始化。
(×)
4.已知bytei=(byte)127;i=i+1;这两个语句能被成功编译。
(√)
5.Stringstr="abcdefghi";charchr=str.charAt(9);(×)
6.char[]chrArray={'a','b','c','d','e','f','g'};charchr=chrArray[6];(√)
7.inti,j;booleanbooleanValue=(i==j);(×)
8.intintArray[]={0,2,4,6,8};intlength=intArray.length();(×)
9.Stringstr="abcedf";intlength=str.length;(×)
10.shortshortValue=220;bytebyteValue=shortValue;(×)
11.int[]intArray[60];(×)
12.char[]str="abcdefgh";(×)
13.说明或声明数组时不分配内存大小,创建数组时分配内存大小。
(√)
14.强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。
(√)
四、分析题
1.分析下面的程序,写出运行结果。
publicclassExercises5_1{
Stringstr=newString("Hi!
");
char[]ch={'L','i','k','e'};
publicstaticvoidmain(Stringargs[]){
Exercises5_1ex=newExercises5_1();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"");
System.out.print(ex.ch);
}
publicvoidchange(Stringstr,charch[]){
str="Howareyou";
ch[1]='u';
}
}
运行结果是:
(Hi!
Luke)
2.分析下面的程序,写出运行结果。
publicclassExercises5_2{
publicstaticvoidmain(String[]args){
intn=1,m,j,i;
for(i=3;i<=30;i+=2){
m=(int)Math.sqrt((double)i);
for(j=2;j<=m;j++)
if((i%j)==0)
break;
if(j>=m+1){
System.out.print(i+"");
if(n%5==0)
System.out.print("\n");
n++;
}
}
}
}
运行结果是:
()
3571113
17192329
3.分析下面的程序,写出运行结果:
publicclassExercises5_3{
publicstaticvoidmain(Stringargs[]){
Stringstr1=newString();
Stringstr2=newString("String2");
charchars[]={'a','','s','t','r','i','n','g'};
Stringstr3=newString(chars);
Stringstr4=newString(chars,2,6);
bytebytes[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
Stringstr5=newString(bytes);
StringBufferstrb=newStringBuffer(str3);
System.out.println("TheStringstr1is"+str1);
System.out.println("TheStringstr2is"+str2);
System.out.println("TheStringstr3is"+str3);
System.out.println("TheStringstr4is"+str4);
System.out.println("TheStringstr5is"+str5);
System.out.println("TheStringstrbis"+strb);
}
}
运行结果是:
()
TheStringstr1is
TheStringstr2isString2
TheStringstr3isastring
TheStringstr4isstring
TheStringstr5is0123456789
TheStringstrbisastring
五、改错题
1.找出下面代码的错误部分,说明错误类型及原因,并更正。
publicintm1(intnumber[20]){
number=newint[20];
for(inti=0;inumber[i]=number[i-1]+number[i+1];
returnnumber;
}
改正后程序:
publicint[]m1(intnumber[]){
//number=newint[20];
for(inti=1;inumber[i]=number[i-1]+number[i+1];
returnnumber;
}
2.找出下面代码的错误部分,说明错误类型及原因,并更正。
(1)intx=1;
while(x<=10);
{i++;}
改正后程序:
intx=1,i=0;
while(x<=10)
{
i++;
}
(2)switch(n){
case1:
system.out.println(""Thenameis1");
case2:
system.out.println(""Thenameis2");
break;
}
改正后程序:
intn=1;
switch(n){
case1:
System.out.println("Thenameis1");
break;
case2:
System.out.println("Thenameis2");
break;
}
六、简答题
1.Java的关键字有哪些?
2.标识符有何用途?
Java中定义标识符的规则有哪些?
3.Java定义了哪些基本数据类型?
基本数据类型和引用数据类型的特点是什么?
字节型和字符型数据有何区别?
长度为32位的基本数据类型有哪些?
4.整型常量有哪三种表示形式?
浮点型变量有哪两种表示形式?
布尔型常量可以转换成其他数据类型吗?
5.在Java语言中,表示字符串常量和字符常量时应注意哪些问题?
6.在Java转义字符表示中,ASCII码值对应的字符如何表示?
Unicode字符集中对应的字符如何表示?
7.什么是表达式语句?
什么是空语句?
什么是块语句?
可以把块语句视为一条语种吗?
8.if语句中,<条件表达式>一定是逻辑型表达式吗?
switch语句中,<语句序列>里一定有break语句吗?
9.while循环语句与do-while循环语句有何不同?
10.for循环语句中,关键字for后面括号内的表达式是否可以使用多个用逗号分隔的表达式?
for-each语句的特点是什么?
11.break语句和continue语句有哪两种形式?
12.创建数组元素为基本数据类型的数组时,系统都会指定默认值吗?
布尔型的默认值是什么?
13.在Java中怎样定义和使用一维数组、二维数组?
14.字符串类String和StringBuffer类有何不同?
15.Java中的数组实际上是一个隐含的“数组类”的对象,而数组名实际上是该对象的一个引用,这种说法对吗?
16.字符数组与字符串有本质的不同,而字符串实际上是String类和StringBuffer类的对象,这种说法对吗?
七、编程题
1.编写一个程序,求1!
+2!
+…+10!
的值。
2.编程求100