Java模块笔试
一、选择题:不定项选择(共30分,每题1.5分)
1. 下列数组定义正确的是( B C D E )
A int[] a[] = new float[2]
B int my[][] = new int[3][3]
C String[] str = new String[3] ;
D byte b[][] = new byte[3][]
E double d[][] = new double[][4]
2.switch选择结构语句中的表达式后面可以跟的数据类型( A B C E D(JDK7以后可以跟))
A.byte
B.int
C.char
D.String
E. short
3. 有以下程序
public class Test{
public static void main(String[] args){
int x=4,y=10;
boolean c=x>y&&(y=100)>x*x;
System.out.println(y);
}
}
运行结果是什么( B )
A. 输出 4
B. 输出 10
C. 输出 true
D. 输出 false
4.有以下程序
int k=1;
while(k=1){
// some code
k++;
--k;
}
以上循环次数是多少( C )
A. 0次 B.1次 C.无限次 D.编译报错
5.在java中,用package语句定义一个包时,该包的层次结构即是 (B)
A 与文件的结构相同
B 与文件目录的层次相同
C 与文件类型相同
D 与文件大小相同
6.属于java关键字的是(多选题)( A B C D )
A if
B else
C do
D while
7.以下哪个是文档注释( C )
A. // B. /* */ C./** */ D.#
8.字母a对应的Unicode码是多少( A )
A.97 A B.65 a C.48 D.32
9.java语言诞生于哪一年( A )
A.1946 B.1972 C.1985 D.1995
10.以下关于char类型,说法正确的是( B )
A.char和int可以相互赋值
B.char和int不可以相互赋值
C.char和int占的字节数一样
D.char和boolean占的字节数一样
11.以下关于变量的说法,正确的是( D )
A.变量可以不用定义直接使用
B.变量可以不用初始化直接输出
C.变量的名字长度无限制
D.变量的名字长度最大为255列
12.表达式(int)5.5/2.0的结果是( A)
A. 2.5 B.2 C. 2.0 D. 报错
13.以列变量定义错误的是( D )
A.int a ; B.double b = 4.5 C.boolean b = true D.float f = 9.8 ;
14.java语言是1995年由( )公司发布( A )
A.Sun B.Microsoft C.Broland D.FOx Software
15.以下程序的运行结果是( B )
int a=3; int b;
b=++a;
System.out.println(b);
A.3 B.4 C.5 D.6
16.以下代码的运行结果是( C )
int a=3; int b;
b=a++;
System.out.println(b);
A.1 B.2 C.3 D.4
17.以下程序的运行结果是( C )
int x=4,y=10;
boolean c;
c=x>10&&(y=55)<10;
System.out.println(y);
A.true B.false C.10 D.55
18.以下程序运行结果是( C )
int i;
for(i=1;i<=10;i++){
if(i==5){
contiune;
}
System.out.println(i)
}
A.1 2 3 4 B.1 2 3 4 5 C.1 2 3 4 6 7 8 9 10 D.报错
19.以下程序的运行结果是( A )
int i;
for(i=1;i<=10;i++){
if(i%3==0){
System.out.println(i)
}
}
A.3 6 9 B.1 2 3 C.2 4 6 8 10 D.1 3 5 7 9
20. 以下程序的运行结果是( D )
System.out.println( 5>6?6:5 );
A.56 B.65 C.6 D.5
二、填空题(共20分,每题2分)
1. 列举出5个关键字 答: publc static void int for
2. 请列出3中定义二维数组的格式 答;1.数据类型[][] 数组名
2.数据类型 数组名[][] 3.数据类型[] 数组名[]
3. 使用Scanner时,如何导包 答:import util.java.Scanner
4. 数据类型的分类有哪些 答:整数 浮点型 字符型 布尔型
5. 写出byte数据类型的取值范围__-128~127__所占的字节______8______
6. 写出78的2进制_______1001110_________________________________
7. 写出3&4的结果______0_______
8. Java源文件的后缀是_____.java________,编译java源文件的命令是_______java 名称_______
9. 若int a=3; 则执行表达式a+=5后,a的值为___8_____________
10. 若int a=4,计算表达式a=a++后,a的值为_____4____________
三、判断题(共10分,每题1分)
1. int i=2147483647 + 1; 可以正确通过编译 错误
2. Java是面向过程的编程语言 错误
3. &&和&都是与运算,没有任何区别 错误
4. 同一个数组中必须存放相同类型的数据. 正确
5. 若有java源文件A.java,则编译源文件的命令是java a.java 错误
6. 当一个long类型的数据和一个float类型的数据计算时,结果为long类型,因为long占的字节比float多. 错误
7. 封装的好处是将成员变量私有,提供公共的访问方法. 正确
8. float f = 5.5不可以正确通过编译 正确
9. float为单精度数据类型,占4个字节,有7位有效数字. 错误
10. 表达式-5%-3的结果为2 错误
四、简答题(共20分,每题4分)
1. 写出i++和++i的区别?
答:i++表示i先使用,后自增;++i表示i先自增后使用。
2. short s=1; s=s+1; 这段代码对还是错?为什么?
答:错误,因为在计算时系统默认是int类型,而s定义是short类型,会报错。应该进行强制转换。
3. 写出短路与和逻辑与的区别
答:短路与:&& 比如a&&b,如果a错误,将不执行b;
逻辑与:&;
4:java中的内存分配有哪些?
答:栈内存和堆内存。
5:栈内存的特点以及堆内存的特点分别是什么?
答:栈:后进先出
堆:先进先出
五、编程题(共70分,每题10分)(使用notepad/notepad++编写:注意要写上注释)
1. 自定义一个数组静态初始化,然后遍历该数组,获取数组中的最大值和最小值
2. 数组的遍历(一维数组)
3:请实现一个数据和另一个数据的交换:至少使用3种方式书写
4:请定义数组实现数组(静态初始化)中的元素逆序(没有指明二维数组的都是用一维数组实现)
5:定义数组,通过查找数组元素中第一次出现的索引(用方法实现)
6:实现二维数组的遍历
7:java中经常会遇到NullPointerException异常:请分析以下出现该异常的原因,以及如何解决!(请用代码实现解决的方式)
答:1. //1. 自定义一个数组静态初始化,然后遍历该数组,获取数组中的最大值和最小值
public static void main(String[] args){
int [] arr={23,56,34,55,89};//静态初始化了一维数组
Bianli (arr);//调用遍历部分
int m=Zuida(arr);//调用最大值部分
int n=Zuixiao(arr);//调用最小值部分
System.out.println("最大值为:"+m);//输出
System.out.println("最小值为:"+n);//输出
}
//一维数组的遍历
public static void Bianli(int[] arr){
System.out.print("[");
for (int x=0;x<arr.length;x++){
if (x==arr.length-1){
System.out.println(arr[arr.length-1]+"]");
}else{
System.out.print(arr[x]+",");
}
}
}
//求最大值
public static int Zuida (int[] arr){
int max=arr[0];
for(int x=1;x<arr.length;x++){
if (arr[x]>max){
max=arr[x];
}
}
return max;
}
//求最小值
public static int Zuixiao(int[] arr){
int little=arr[0];
for(int x=1;x<arr.length;x++){
if (arr[x]<little){
little=arr[x];
}
}
return little;
}
2. //一维数组的遍历
public static void Bianli(int[] arr){
System.out.print("[");
for (int x=0;x<arr.length;x++){
if (x==arr.length-1){
System.out.println(arr[arr.length-1]+"]");
}else{
System.out.print(arr[x]+",");
}
}
}
3.//实现数据a,b交换
int c=a;
a=b;
b=c;
________________________
int c=a^b;
a=a^c;
b=b^c;
________________________
a=a+b;
b=a-b;
a=a-b;
4. //4:请定义数组实现数组(静态初始化)中的元素逆序(没有指明二维数组的都是用一维数组实现)
public static void main(String[] args){
int[] arr={23,45,32,45,56};
System.out.println("逆序前:");
Bianli(arr);
System.out.println("逆序后: ");
Nixu(arr);
Bianli(arr);
}
//一维数组的遍历
public static void Bianli(int[] arr){
System.out.print("[");
for (int x=0;x<arr.length;x++){
if (x==arr.length-1){
System.out.println(arr[arr.length-1]+"]");
}else{
System.out.print(arr[x]+",");
}
}
}
//一维数组的逆序
public static void Nixu(int[] arr){
for (int x=0;x<arr.length/2;x++){
int temp=arr[x];
arr[x]=arr[arr.length-1-x];
arr[arr.length-1-x]=temp;
}
}
5. //5:定义数组,通过查找数组元素中第一次出现的索引(用方法实现)
//静态初始化数组{34,56,23,12,89},求23第一次出现在数组中的索引
public static void main(String[] args){
int[] arr={34,56,23,12,89};
System.out.print("23第一次出现在数组中的索引是:");
Suoyin(arr);
System.out.println();
}
//求23第一次出现在数组中的索引
public static void Suoyin(int[] arr){
for(int x=0;x<arr.length;x++){
if (arr[x]==23){
System.out.println(x);
break;
}
}
}
6.//实现二维数组的遍历
int [][] arr=new int[m][n];
for(int x=0;x<m;x++){
for (int y=0;y<n;y++){
System.out.print(arr[x][y]+" ");
}
System.out.println();
}
7.// java中经常会遇到NullPointerException异常:请分析以下出现该异常的原因,以及如何解决!(请用代码实现解决的方式)
//答:该异常为空指针异常
//可以用非空判断来解决
if (arr[x]==null){
System.out.println("null");
}