JAVA期末复习
一、单选题 (题数:16,共 32.0 分)
1 Java属于以下哪种语言?(2.0分)
A、以上都不对
B、高级语言
C、汇编语言
D、机器语言
我的答案:B
2 System.out.println(5 + 5 + "5 + 5");的结果是();
A、5555
B、105 + 5
C、10+5+5
D、1055
我的答案:B
3下面的运算符中,用于执行除法运算是哪个?(2.0分)
A、*
B、%
C、\
D、/
我的答案:D
4下面哪种写法可以实现访问数组arr的第1个元素?(2.0分)
A、arr(1)
B、arr[1]
C、arr(0)
D、arr[0]
我的答案:D
5安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?(2.0分)
A、Java启动器
B、Java解释器
D、Java编译器
我的答案:B
6Java语言中,在定义方法时如果想使用数组作为方法的参数,正确的方法定义为()
A、public void test(int sc)
B、public void test(int[] sc)
C、public void test(int[5] sc)
D、public void test(int sc[5])
我的答案:B
7下面哪种类型的文件可以在Java虚拟机中运行?(2.0分)
A、class
B、jre
C、exe
D、java
我的答案:A
8假设int x = 2,三元表达式 x>0?x+1:5 的运行结果是以下哪一个?(2.0分)
A、5
B、0
C、2
D、3
我的答案:D
9eclipse创建并执行一个程序后生成的bin文件夹,里面主要存放什么文件。
A、.com文件
B、.exe文件
C、.class文件
D、.java文件
我的答案:C
10如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?(2.0分)
A、d:\jre;
B、d:\jdk;
我的答案:C
11以下关于变量的说法错误的是?(2.0分)
A、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明
我的答案:B
12以下哪个语句选项是正确的?
(2.0分)
A、float a = 3.3f;
B、int a= 100
C、char a = "d";
D、long i = 1000000000000;
我的答案:A
13以下哪个选项可以正确创建一个长度为3的二维数组?(2.0分)
A、以上答案皆不对
我的答案:D
14布尔常量即布尔类型的两个值,分别是 和 。
A、null、“”
B、FALSE、TRUE
C、false、true
D、0、1
我的答案:C
15switch语句表达式值的数据类型不包括以下哪个()?
A、String
B、int
C、char
D、long
我的答案:D
16以下变量定义哪个是合法的?
A、#int
B、_int
C、int
D、3int
我的答案:B
二、多选题 (题数:4,共 8.0 分)
1以下选项中,哪些属于合法的标识符?(多选)(2.0分)
B、class
我的答案:AD
2 以下选项中,哪些属于JDK工具?(多选)(2.0分)
A、Java打包工具
B、Java编译器
C、Java运行工具
我的答案:ABCD
3以下选项中,switch语句判断条件可以接收的数据类型有哪些? (多选)(2.0分)
A、short
B、char
C、int
D、byte
我的答案:ABCD
4下列语句哪些属于循环语句?(多选)(2.0分)
A、switch语句
B、while语句
C、if语句
D、for语句
我的答案:BD
三、填空题 (题数:10,共 20.0 分)
1
Java语言中在定义方法时如果该方法执行后不需要有返回值返回,则在定义方法时应使用 。
(2.0分)
我的答案:
第一空:
void
2
在逻辑运算符中,运算符“&”和 用于表示逻辑与,“|”和 表示逻辑或。
(2.0分)
我的答案:
第一空:
&&
第二空:
||
3
Java运行环境简称为 。
(2.0分)
我的答案:
第一空:
JRE
4
若“int a=2; a+=3;”执行后,变量a的值为 。
(2.0分)
我的答案:
第一空:
5
5
环境变量用来存储Java的编译和运行工具所在的路径,而 环境变量则用来保存Java虚拟机要运行的“.class”文件路径。
(2.0分)
我的答案:
第一空:
path
第二空:
classpath
6
运行Java程序需要使用 命令。
(2.0分)
我的答案:
第一空:
java
7
Java中的变量可分为两种数据类型,分别是简单数据类型和 。
(2.0分)
我的答案:
第一空:
引用数据类型
8
编译Java程序需要使用 命令。
(2.0分)
我的答案:
第一空:
javac
9
Java的三大体系分别为: 、 和 。
(2.0分)
我的答案:
第一空:
JAVA SE
第二空:
JAVA EE
第三空:
JAVA ME
10
若 int a[3][2]={ {123, 345}, {34, 56}, {34, 56} },则a[2][1]= 。
(2.0分)
我的答案:
第一空:
56
四、判断题 (题数:20,共 40.0 分)
1
continue关键字的作用是退出循环体
(2.0分)
我的答案: ×
2
public static void main(String[] args)中的参数args可以修改为a
(2.0分)
我的答案: √
3
switch语句的表达式值可以是布尔类型
(2.0分)
我的答案: ×
4
判断不相等的比较运算符是<>
(2.0分)
我的答案: ×
5
“ /* ... */ ”中可以嵌套“ // ”注释,但是不能嵌套“ /* ... */ ”注释。()
(2.0分)
我的答案: √
6
方法的参数个数可为0个或n个
(2.0分)
我的答案: √
7
方法的重载和返回值有关
(2.0分)
我的答案: ×
8
取反的位运算符号是"!"符号
(2.0分)
我的答案: ×
9
方法内可以不写return语句;
(2.0分)
我的答案: √
10
在java程序中不可以定义两个相同名字及类型的变量
(2.0分)
我的答案: ×
11
得到数组的长度用length();?
(2.0分)
我的答案: ×
12
-5 % 3的运算结果是2。
(2.0分)
我的答案: ×
13
if语句中 else if可以用多次
(2.0分)
我的答案: √
14
java语言编写的程序不能在unix系统上运行。
(2.0分)
我的答案: ×
15
for循环中 ; 的前后可以为空表达式
(2.0分)
我的答案: √
16
方法的签名包括返回值
(2.0分)
我的答案: ×
17
for循环内不可以再有while或 do while循环体
(2.0分)
我的答案: ×
18
switch语句内可以使用if语句
(2.0分)
我的答案: √
19
标识符名称的定义只能以字母开头
(2.0分)
我的答案: ×
20
Java语言不区分大小写。()
(2.0分)
我的答案: ×
作业一
一.单选题(共5题,50.0分)
eclipse创建并执行一个程序后生成的bin文件夹,里面主要存放什么文件。
- A、
.exe文件
- B、
.java文件
- C、
.class文件
- D、
.com文件
以下选项不是java的基本数据类型?
- A、
int
- B、
String
- C、
long
- D、
float
以下变量定义哪个是合法的?
- A、
int
- B、
3int
- C、
_int
- D、
#int
以下哪个命令可能是正确的?
- A、
javac a.class
- B、
java a.java
- C、
javac a
- D、
java a
以下哪个语句选项是正确的?
- A、
long i = 1000000000000;
- B、
int a= 100
- C、
char a = "d";
- D、
float a = 3.3f;
二.判断题(共5题,50.0分)
public static void main(String[] args)中的参数args可以修改为a
可以在一台电脑上安装多个jdk。
java语言编写的程序不能在unix系统上运行。
在java程序中不可以定义两个相同名字及类型的变量
标识符名称的定义只能以字母开头
一.单选题(共5题,50.0分)
int a = 10;
int b = a++;
b的结果是(),a的结果是();
- A、
11, 10
- B、
10,11
- C、
11,11
- D、
10,10
System.out.println(5 + 5 + "5 + 5");的结果是();
- A、
105 + 5
- B、
1055
- C、
10+5+5
- D、
5555
int a =10;
int b = 20;
System.out.println((a++ > 10) && (++b > 20));
输出的结果是(),b的值是();
- A、
false
21
- B、
true
20
- C、
true
21
- D、
false
20
int a =10;
int b = 20;
int c = (a>b)?a:b;
c的结果是()
- A、
10
- B、
20
switch语句表达式值的数据类型不包括以下哪个()?
- A、
int
- B、
char
- C、
long
- D、
String
二.判断题(共5题,50.0分)
switch语句的表达式值可以是布尔类型
if语句中 else if可以用多次
判断不相等的比较运算符是<>
switch语句内可以使用if语句
取反的位运算符号是"!"符号
一.单选题(共5题,50.0分)
下列语句序列执行后,k 的值是()。
int m=3, n=6, k=0;
while( (m++) < ( -- n) ) ++k;
- A、
0
- B、
1
- C、
2
- D、
3
下面语句执行后,i 的值是( )。
for( int i=0, j=1; j < 5; j+=3 ) i=i+j;
- A、
4
- B、
5
- C、
6
- D、
7
下列语句序列执行后,i的值是( )。
int i=16;
do { i/=2; } while( i > 3 );
- A、
16
- B、
8
- C、
4
- D、
2
以下由 for 语句构成的循环执行的次数是( )。
for ( int i = 0; true ; i++) ;
- A、
有语法错,不能执行
- B、
无限次
- C、
执行1次
- D、
一次也不执行
不能构成循环的语句是( )。
- A、
for 语句
- B、
while 语句
- C、
switch 语句
- D、
do while 语句
二.判断题(共5题,50.0分)
for循环中 ; 的前后可以为空表达式
continue关键字的作用是退出循环体
for循环内不可以再有while或 do while循环体
int i = 0;
while(1)
{
if(i>3) break;i++;
}
以上程序段是死循环?
int count = 1;
for (int i = 1; i <= 5; i++) {
count += i;
}
System.out.println(count);
以上程序段执行结果是15?
一.单选题(共5题,50.0分)
若已定义 byte[ ] x= {11,22,33,-66} ;其中0≤k≤3,则对x数组元素错误的引用是( )。
- A、
x[5-3]
- B、
x[k]
- C、
x[k+5]
- D、
x[0]
设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( )。
- A、
a[0]
- B、
a[a.length-1]
- C、
a[3]
- D、int i=1;a[i];
有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( ).
- A、
2 7 8 12 35
- B、
12 35 8 7 2
- C、
35 12 8 7 2
- D、
8 7 12 35 2
应用程序Test.java的源程序如下,在命令行键入:
java Test aaa bb c 回车后输出的结果是 ( )。
public class Test {
public static void main(String args[]) {
int k1=args.length;
int k2=args[1].length();
System.out.print(k1+" "+k2);
}
}
- A、
3 2
- B、
1 2
- C、
1 3
- D、
3 3
应用程序的main方法中有以下语句,则输出的结果是 ( )。
int b[][]={{1}, {2,2}, {2,2,2}};
int sum=0;
for(int i=0;i<b.length;i++) {
for(int j=0;j<b[i].length;j++) {
sum*=b[i][j];
}
}
System.out.println("sum="+sum);
- A、
11
- B、
32
- C、
2
- D、
3
二.判断题(共5题,50.0分)
new int(5);的作用在于从栈里分配空间?
得到数组的长度用length();?
不可以定义引用类型的数组比如 String?
定义完数组后,数组的长度可以在程序中随时改变?
Scanner 的 next可以读取一整行?
一.判断题(共5题,100.0分)
方法内可以不写return语句;
方法的重载和返回值有关
方法的签名包括返回值
方法的参数个数可为0个或n个
main方法必须是静态的
一.单选题(共5题,50.0分)
对象的属性可以定义多种类型,如果定义String name;的属性,初始值为()
- A、
null
- B、
""
- C、
void
- D、
''
在java中对象的创建用new关键字,对于该对象的回收用的是()
- A、
OA
- B、
delete
- C、
GC
- D、
OO
public,private, 不加修饰符, protected哪个访问控制级别最小
- A、
private
- B、
public
- C、
default
- D、
protected
引入其他包的类,用的关键字是()
- A、
package
- B、
import
- C、
extern
- D、
include
二.判断题(共5题,50.0分)
类的封装就是让属性和方法放在一个类里?
一个类可以用private进行修饰
面向过程(OP)和面向对象(OO)不是指编码的两种方式,是分析方式的不同,最终导致了编码方式的不同。
通过一个类可以创建多个对象?
在一个类内部的方法,可以访问任何访问控制修饰符定义的属性?
一.单选题(共2题,50.0分)
递归方法的递归次数不宜过多,以下说明正确的是?
- A、
太复杂
- B、
时间复杂度高
- C、
空间复杂度高
- D、
栈溢出
以下哪个是构造方法Student()的重载方法
- A、
void Student()
- B、
public static void Student(int age)
- C、
Student(String name)
- D、
void Student(int age)
二.判断题(共2题,50.0分)
汉诺塔问题的解法是递归的
数据结构中的树的遍历是递归的?
一.单选题(共5题,50.0分)
构造方法可以被以下哪些修饰符修饰
- A、
void
- B、
static
- C、
final
- D、
public
在Java中,关于构造方法,下列说法错误的是
- A、
构造方法的名称必须与类名相同
- B、
构造方法可以带参数
- C、
构造方法不可以重载
- D、
构造方法绝对不能有返回值
分析选项中关于Java中this关键字的说法正确的是
- A、
this关键字是在对象内部指代自身的引用
- B、
this关键字可以在类中的任何位置使用
- C、
this关键字和类关联,而不是和特定的对象关联
- D、
同一个类的不同对象共用一个this
class Person {
String name, department;
int age;
public Person(String n){ name = n; }
public Person(String n, int a){ name = n; age = a; }
public Person(String n, String d, int a) {
// 完成Person(String n, int a)的逻辑
department = d;
}
}
下面的哪些表达式可以加到构造方法中的注释处?
- A、
Person(n,a);
- B、
this(Person(n,a));
- C、
this(n,a);
- D、
this(name,age);
组合 聚合 关联 依赖这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;但总的来说,哪种关系所表现的强弱程度最强?
- A、
组合
- B、
聚合
- C、
关联
- D、
依赖
二.判断题(共5题,50.0分)
构造方法可以用权限修饰符private
写了构造方法,默认的构造方法就无效
关键字thi只是为了防止形参名与属性重名
this调用本类中的其他构造方法,调用时要放在构造方法的首行
依赖关系一般在形参、局部变量、静态方法中使用
一.单选题(共5题,50.0分)
以下哪个不是static可以修饰的
- A、
方法
- B、
包
- C、
属性
- D、
类
- E、
局部变量
以下对于类方法描述不正确的是
- A、
可以用类名.进行访问
- B、
可以用对象.进行访问
- C、
类方法内可以访问非静态的属性与方法
- D、
类方法只有一份
静态初始化块描述错误的是
- A、
不能直接访问非staic成员
- B、
当类被加载时,静态代码块会执行,并且只会执行一次
- C、
静态初始化块不能置于类中的任何地方,类中可以有多个静态初始化块
- D、
在类初次被加载时,会按照静态初始化块的顺序来执行每个块
类属性描述不正确的是
- A、
可以用于修饰局部变量
- B、
static成员变量初始化顺序按照定义的顺序来进行初始化
- C、
先于对象构造前,在内存内只有一份
- D、
非static属性必须构造后才存在,并多份
以下哪个是静态导包
- A、
static import java.lang.System.out;
- B、
import static java.lang.System.out;
二.判断题(共5题,50.0分)
类中static方法只能访问static的属性与方法
static修饰的属性在方法区?
static修饰的属性不可以通过对象访问
类中不可以定义多个static代码块
单例模式要考虑线程
一.单选题(共8题,32.8分)
以下都是Math类的常用方法.其中用于计算绝对值的方法是哪个?
- A、
ceil()
- B、
floor()
- C、
abs()
- D、
random()
要产生[20,999]之间的随机整数可以使用以下哪个表达式?
- A、
(int)(20+Math.random() *97)
- B、
20+(int)(Math.random() *980)
- C、
(int)Math.random() *999
- D、
20+(int)Math.random() * 980
stringBuffer buf= new StringBuffer ("Beijing2008");
buf.insert(7,"@");
System.out.println(buf.toString());
- A、
Beijing@2008
- B、
@Beijing2008
- C、
Beijing2008@
- D、
Beijing#2008
String str1=new String ("java");
String str2=new String ("java");
StringBuffer str3=new StringBuffer ("java");
对于上述定义的变量,以下表达式的值为true的是哪个?
- A、
str1==str2;
- B、
strl.equals(str2);
- C、
strl==str3;
- D、
以上都不对
使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法?
- A、
next()
- B、
hash()
- C、
hasPrevious()
- D、
hasNext()
在程序开发中,经常会使用以下哪个类来存储程序中所需的配置?
- A、
HashMap
- B、
TreeSet
- C、
Properties
- D、
TreeMap
要想在集合中保存没有重复的元素并且按照一定的顺序排列,可以使用以下哪个集合?
- A、
LinkedList
- B、
ArrayList
- C、
hashSet
- D、
TreeSet
二.多选题(共2题,8.2分)
以下哪些方法是LinkedList集合中定义的?
- A、
getLast()
- B、
getFirst()
- C、
remove(int index)
- D、
next()
要想保存具有映射关系的数据,可以使用以下哪些集合?
- A、
ArrayList
- B、
TreeMap
- C、
HashMap
- D、
TreeSet
三.填空题(共6题,24.6分)
在Java中定义了两个类来封装对字符串的操作,它们分别是________ 和________。
String
StringBuffer
我的答案:得分: 4.1分
String
StringBuffer
批语
Java中专门用于将日期格式化为字符串的类是________。
SimpleDateFormat ;DateFormat
我的答案:得分: 4.1分
SimpleDateFormat
批语
已知sb为StringBuffer的一个实例,且sb.toString()的值为“abcde”,则执行sb.reverse()后,sb.toString()的值为________。
edcba
我的答案:得分: 4.1分
edcba
批语
在创建TreeSet对象时,可以传入自定义比较器。自定义比较器需实现________接口。
Comparator
我的答案:得分: 4.1分
Comparator
批语
Map集合中的元素都是成对出现的,并且都是以________、________的映射关系存在。
键;key
值;value
我的答案:得分: 4.1分
键
值
批语
四.判断题(共8题,34.4分)
String对象和StringBuffer对象都是字符串变量,创建后都可以修改。 ( )
用运算符==比较字符串对象时,如果两个字符串的值相同,结果为true。
( )
System类中的currentTimeMillis()方法返回一个long类型的值。( )
Date、Calendar以及DateFormat类都位于java.util包中。( )
Set集合是通过键值对的方式来存储对象的。( )
集合中不能存放基本数据类型,而只能存放引用数据类型。( )
如果创建的TreeSet集合中没有传入比较器,则该集合中存入的元素需要实现 Comparable接口。( )
使用Iterator迭代集合元素时,可以调用集合对象的方法增删元素。( )