1Java基础知识测试参考答案.docx
《1Java基础知识测试参考答案.docx》由会员分享,可在线阅读,更多相关《1Java基础知识测试参考答案.docx(14页珍藏版)》请在冰豆网上搜索。
1Java基础知识测试参考答案
考试宣言:
同学们,考试考多少分不是我们的目的!
排在班级多少的名次也不是我们的初衷!
我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了,那么不用怕,考完试后,导师讲解的时候你要注意听!
那时候学会了,记住了,也一样不影响你高薪就业!
本套题共40道不定项选择题,其中单选30道,多选10道。
单选2分/题,多选4分/题。
多选题不全对半分,全对满分。
1.下面说法正确的是()
A.JVM就是Java虚拟机,包含java核心类库//JRE:
JVM+Javalibrary。
B.JRE就是java运行环境,包含java程序编译运行的工具环境//JDK:
JRE+Tools
C.JDK就是java开发环境,javac是其中的一个工具
D.功能范围:
JDK>JVM>JRE
2.下面的说法正确的是()
A.Java语言是面向对象的、解释执行的网络编程语言。
B.Java语言具有可移植性,是与平台无关的编程语言。
C.Java语言可对内存垃圾自动收集。
D.Java语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。
3.给定java代码,如下:
publicbytecount(byteb1,byteb2){
return____;
}
要使这段代码能够编译成功,横线处可以填入
A.(byte)(b1-b2)//返回值类型为byte,要求选项结果为byte
B.b1-b2
C.(byte)b1+b2
D.(byte)b1/b2
4.关于类的命名,正确说法是()
A.可以由数字和英文拉丁字母组成,且可以任意排序//数字不能开头
B.命名要做到见名知意
C.如果是由多个单词组成,每个单词首字母大写
D.可以是Java已经定义过的关键字//囧
5.关于main方法说法错误的是()
A.main方法是java程序执行的入口
B.main方法的方法体重至少要有一行代码//可以没有代码
C.main必须定义在一个类中
D.main方法的定义格式为:
publicstaticvoidmain(String[]args){}
6.类中某方法定义如下:
double?
fun(int?
a,int?
b){?
?
?
return?
a*1.0/b;?
?
}?
同一类内其它方法调用该方法的正确方式是:
?
A.double?
a?
=?
fun(1,2);?
B.double?
a?
=?
fun(1.0,2.0);?
C.int?
x?
=?
fun(1,2);?
?
D.int?
x?
=?
fun(1.0,2.0);
7.给定java代码,如下,编译运行,结果是()
publicstaticvoidmain(String[]args){
booleanflag;
“flag”+flag);//局部变量需要先初始化再使用
}
A.编译错误
B.编译通过,单出现运行时错误
C.正常运行,输出flag=false
D.正常运行,输出flag=
8.下面哪个关键字可以定义一个类()
A.interface
B.class//查看下面解释
C.extends
D.implements
在Oracle官网java英文原版教程,链接地址:
上有如下解释:
IntheJavaprogramminglanguage,an?
interface?
isareferencetype,similartoaclass,thatcancontain?
only?
constants,methodsignatures,defaultmethods,staticmethods,andnestedtypes.Methodbodiesexistonlyfordefaultmethodsandstaticmethods.Interfacescannotbeinstantiated—theycanonlybe?
implemented?
byclassesor?
extended?
byotherinterfaces.Extensionisdiscussedlaterinthislesson.
9.byte类型的取值范围是()
A.-256至255
B.-255至255
C.-128至127//*/?
#%¥@*&……
D.-127至128
10.下面关于java中方法,描述错误的是()
A.必须定义在类里面
B.定义一个方法之前要明确该方法需要的参数和返回值类型
C.方法可以提高代码复用性,提高程序运行的效率//可以提高编写代码的效率
D.方法只有调用才会被执行
11.下面程序执行的结果是?
()
classTest
{
publicstaticvoidmain(String[]args)
{
““+’a’+1);//+在这里是连接符,任何数据和字符串连接后,都是字符串
}
}
A.98
B.a1
C.971
D.197
12.for循环格式如下:
for(表达式1;表达式2;表达式3){
//code
}
下面描述错误的是()
A.表达式1处的代码会被执行多次//只能一次
B.表达式1处可以定义变量
C.表达式3用于决定循环是否应该结束//表达式2
D.表达式2的值可以是任意类型,也可以是boolean类型//只能是boolean
13.以下选项可以正确创建一个长度为3的二维数组的是()
A.newint[2][3]
B.newint[3][]
C.newint[][3]
D.以上答案都不对
14.设以下是应用程序中定义的方法printBinary,若在其main方法中有方法调用语句printBinary
(2),则输出的结果是()。
staticvoidprintBinary(inti){
for(intj=31;j>=0;j--)
if(((1<=0)
else
}
A)00000000000000000000000000000001
B)00000000000000000000000000000010//自己算吧。
其实是求2的二级制表示形式
C)00000000000000000000000000001111
D)00000000000000000000000000000000
15.下面关于return语句说法正确的是:
?
?
(?
?
)?
A.只能让方法返回数值?
B.方法都必须显式使用该关键字?
C.方法中可以有多句return//if第三种格式,每个条件下面都可以写一个return,单最多只能执行其中一个?
D.可以用来返回数值以外的类型
16.下面程序执行的结果是?
()
inti=100;
while(true)
{
if(i++>100)
{
break;
}
}
//continue(跳出本次循环),break(跳出,结束本循环),return(跳出,结束方法)
A.100
B.101
C.102
D.报错
17.下面关于Java语言跨平台说法错误的是:
A.java语言编写的程序,一次编译后,可以在多个系统平台上运行。
B.java语言垮平台依赖于java虚拟机
C.java垮平台,java虚拟机也是垮平台的(不同系统平台使用相同的java虚拟机)
D.原理是java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。
18.下面程序的运行结果是()
inta=3,b=1;
if(a==b)//false
{
}
A.a=1
B.a=3
C.编译错误
D.正常运行但没有输出
19.下面程序的运行后,结果正确的是:
inta=1,b=2;
intc=(a+b>3?
a++:
++b);//三元运算符如果不成立的话,那么a++不会执行,a还是1.
A.a=2,b=3
B.a=1,b=3
C.a=1,b=2
D.c=2
20.定义如下的二维数组b,下面的说法正确的是()
intb[][]={{1,2,3},{4,5},{6,7,8}}};
A.b.length的值是3
B.b[1].length的值是3//2
C.b[1][1]的值是5
D.二维数组b的第一元素有3个子元素
21.下面哪种类型的文件可以在java虚拟机中运行?
()
A..java
B..jre
C..exe
D..class
22.下面程序的运行结果
classDemo
{
publicstaticintfun(intc)
{
returnc+=2;//因为return了,return的是4
}
publicstaticvoidmain(String[]args)
{
inttemp=fun
(2);
}
}
A.2
B.4
C.6
D.8
23.下列方法定义中,正确的是()。
A)intx(){returntrue;}//返回值类型为int,不能返回boolean
B)voidx(){returntrue;}//没有返回值,不能返回boolean
C)intx(){charch='a';return(int)ch;}
D)intx(inta,intb){returna+b;}
24.下面数组定义正确的是()
A.int[]arr={23,45,65,78,89};
B.int[]arr=newint[10]{};//[数组]与{}不能共存
C.int[]arr=newint[4]{3,4,5,6};//[]与{}不能共存
D.int[]arr={"a",23,45,6};//byte,short,char------>>int‘a’会自动转换成97,但是String类型的a不会自动转换成97
25.下面程序执行的结果是?
()
intx=1,y=1;
if(x++==2&++y==2)
{
x=7;
}
A.x=1y=2
B.x=7y=1
C.x=7y=2
D.x=2y=2
26.JDK1.7之后,switch语句后括号里的表达式可以是以下哪种类型()//记住
A.char
B.String
C.long
D.枚举类型
27.同一类中有两个以上方法同名称方法重载,Java语言规定():
?
A.不允许重载
B.重载方法的参数列表必须不同?
C.重载方法的返回值类型必须不同?
//与返回值类型无关
D.重载方法的参数列表和返回值类型必须都不同。
?
28.下面程序执行的结果是?
()
booleanb=true;
if(b=false)//false
{
}
elseif(b)//false
{
}
elseif(!
b)//true
{
}
else
{
}
A.a
B.b
C.c
D.d
29.关于选择结构下列哪个说法正确?
?
(?
?
)?
A.if语句和?
else语句必须成对出现?
B.if语句可以没有else语句对应?
C.switch结构中每个case语句中必须用break语句?
//没有的时候没有语法问题
D.switch结构中必须有default语句?
//没有的时候没有语法问题
30.下面程序执行的结果是?
()
intx=2,y=3;
switch(x)
{
default:
y++;
case3:
y++;
case4:
y++;
}
//没有break
A.3
B.4
C.5
D.6
31.阅读下面代码段:
publicclassDemo
{
publicstaticvoidmain(String[]args)
{
int[]arr=newint[10];
}
}
执行结果正确的说法是()
A.编译时将产生错误
B.编译时正确,运行时将产生错误
C.输出零//默认初试化
D.输出空
32.设有定义floatx=3.5f,y=4.6f,z=5.7f;则以下的表达式中,值为false的是()
A.x>y||x>z
B.x(xC.z>(y+x)
D.x!
=y
33.和下面代码执行结束后,sum结果一致的选项是()
inti=1;
intsum=0;
while(i<=100)
{
if(i%2==0)
{
sum=sum+i;
}
i++;
}
A.for(intx=1;x<=100;x++){sum=sum+x;}
B.for(intx=0;x<=100;x+=2){sum=sum+x;}
C.for(intx=1;x<=100;x+=2){sum=sum+x;}
D.上述全对
34.下面不属于基本数据类型的是()
A.int
B.double
C.Long//不是基本数据类型,就是引用数据类型
D.int[]//讲过,引用数据类型
35.下面哪个不是java中的关键字?
()
A.public
B.true
C.main//标示符
D.class
36.以下代码输出是()
inti=0;
intsum=0;
while(i<=10)
{
i++;
if(i%2!
=0)
continue;
sum+=i;
}
A.55
B.45
C.35
D.30
37.关于?
for循环和?
while循环的说法哪个正确?
?
(?
?
)?
A.while循环先判断后执行,for循环先执行后判断。
?
B.while循环判断一般不明确循环次数,for循环的判断一般明确循环次数?
C.两种循环任何时候都不可以替换?
D.两种循环结构中都必须有循环体,循环体不能为空
38.下面程序执行的结果是()
classDemo
{
publicstaticvoidmain(String[]args)
{
inta=10;
if(a++>10)
{
a=20;
}
}
}
A.11
B.12
C.20
D.21
39.下列语句序列执行后,i的值是()。
inti=16;
do{
i/=2;
}while(i>3);
A.16
B.8
C.4
D.2
40.定义变量如下:
charc='w';inti=8;longL=15;floatf=8.9f;
以下赋值语句正确的是()。
A.i=c+i;
B.c=c+i;//char到int需要强转
C.L=f+L;//float>long,需要强转
D.f=i+L+f;