考试题

 
 
选择题
  
1. 以下程序运行的结果是:
public class Demo {
   public static void main(String[] args) {
      int sum = 0;
      for(int i = 0;i<10;i++){
         sum += i;
         if(i % 3 == 0){
            break;
         }
      }
      System.out.println(sum);
   }
}
 
A 0
B 死循环
C 6
D 45
解析:执行第一次就break跳出循环 

2. 以下程序运行结果:
public class Demo {
   public static void main(String[] args) {
      int num = 68;
      char c = (char)num;
      System.out.println(c);
   }
}
 
A A
B a
C D
D B
 解析:ASCII码的应用
 
 
3. 以下程序运行结果是:
public class Demo {
   public static void main(String[] args) {
      int[] arr;
      for(int i = 0;i<5;i++){
         arr = new int[i];
      }
      System.out.println(arr.length);
   }
}
 
A 0
B 5
C 6
D 编译出错
解析:定义数组格式是错误的.
 
4. 以下程序运行结果:
public class Demo {
   public static void main(String[] args) {
      int a = 2147483647;
      a += 2;
      System.out.println(a);
   }
}
 
A -2147483647
B -2147483648
C 0
D 编译出错
 
 
5. 以下程序执行的结果是:
public class Demo {
   public static void main(String[] args) {
      int i = 1;
      int j = i++; //i = 2,j = 1
      if((i == (++j)) && (i++ == j)){ //i = 3,j = 2
         i += j;
      }
      System.out.println(i);
   }
}
 
A 4
B 5
C 6
D 3
 
6. 以下程序运行的结果是:
public class Demo {
   public static void main(String[] args) {
      System.out.println(test(10) + test(8) + test(-10));
   }
   public static int test(int i){
      if(i > 0){
         return i * 2;
      }
      return -1;
   }
}
 
A 35
B 8
C 28
D 12
 
 
7. 以下程序执行的结果是:
public class Demo {
   public static void main(String[] args) {
      int a = 1;
      if(a++ > 1) ;{
         a += a;
      }
      System.out.println(a);
   }
}
 
A 1
B 2
C 3
D 4
 
 
8. 以下程序的结果是:
public class Demo {
   public static void main(String[] args) {
      int a = 3;
      int b = a ^ a; //b = 27
      System.out.println(0X10 >> b);
   }
}
 
A 1
B 2
C 8
D 16
 
9. 以下数组定义正确的是:
A byte[] b = new byte[0];
B byte[] b;
  b = new int[2]; //int是不可以的
C int[] arr = {};
D int[] arr = new int[]{1,2,3};
 
 
10.以下程序运行结果是
public class Test {
   public static void main(String[] args) {
      int x = 0;
      int y = 1;
      for (int z = 0; z < 5; z++) { //Z = 0 z = 1 z=2 z=3
         if ((++x > 2) || (++y > 2)) { //x = 1 x = 2,3 x=4,5 x=7
            x++; //y = 2 y = 3 y=3
         }
      }
      System.out.println(x + " " + y);
   }
}
 
A  5 3
B  8 2
C  8 3
D  9 3
 
11. 以下程序的输出是:
public class Demo {
   int a = 10;
   {
      a = 20;
   }
   Demo(){
      int a = 30;
   }
   {
      a = 50;
   }
  
   public static void main(String[] args) {
      Demo d = new Demo();
      System.out.println(d.a);
   }
}
 
A  10
B  50
C  30
D  20
 解析:demo方法中的变量为局部变量
 
 
 
 
简答题
1. 写出3 个常见的异常类型
 1)ArrayIndexOutOfBoundsException
2)NullPointerException
3)ArithmeticException
4)SQLException
5)ClassCastException

2.overload 的含义是? 什么情况是overload?
override 的含义是? 什么情况是override?
overload是重载的意思.当需要个数不同的形参时需要重载
override是重写的意思,当子类继承父类并实现父类的方法时需要重写
 
3.throw throws 各使用在什么场合?
 throws:用在方法后,接收抛出来的异常
throw:用在方法体内,表示抛出异常
 
 
 
判断题:
对的在题后的()里写汉字"对",错的写汉字"错"
 
1. 一个java 源文件只能包含一个类定义(错 )
2. 一个类中的构造方法是没有办法调用本类的非static 修饰的成员方法的(错 )
3. 静态成员方法可以调用非静态的成员方法(错 )
4. 静态成员方法中可以定义局部变量(对 )
5. 局部变量可以是基本数据类型, 也可以是引用数据类型(对)
6.long 型变量可以正常保存小数(错 )
 
 
 
 
  编程:
1.编写方法实现判断一个int数组中是否包含重复值.并测试.
 


2.编程实现:获取一个拥有10个随机数的数组.
要求:
   1.元素的范围在1-15之间
   2.数组中的元素不能重复

/*
* 编程实现:获取一个拥有10个随机数的数组.
要求:
1.元素的范围在1-15之间
2.数组中的元素不能重复
* */

public class ArrayDemo4 {
public static void main(String[] args) {
int[] arr = genArray();
printArray(arr);
}

// 生成数组
public static int[] genArray() {
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
int r = (int) (Math.random() * 15 + 1);

// 主要作用是判断是否有重复值,如果有再使用Math.random()函数重新生成随机数
while (isExist(arr, r)) {
r = (int) (Math.random() * 15 + 1);
}
arr[i] = r;
}
return arr;
}

// 判断元素在数组中是否存在
public static boolean isExist(int[] arr, int value) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == value) {
return true;
}
}
return false;
}

// 打印数组
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
 
 
3.有学生类定义如下:
   成员变量:name,age
从键盘录入3个学生的信息,并保存在数组中,再编写方法输出数组中的学生详细信息.
 
/*
* 有学生类定义如下:
成员变量:name,age
从键盘录入3个学生的信息,并保存在数组中,再编写方法输出数组中的学生详细信息.
* */

package com.czz_work;

import java.util.Scanner;

class Student1 {
private String name;
private int age;

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setAge(int age) {
this.age = age;
}

public int getAge() {
return age;
}

public void show() {
System.out.println("姓名:" + name + "\t年龄:" + age);
}
}

public class StudentDemo {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner s = new Scanner(System.in);

// 创建学生数组
Student1[] students = new Student1[3];

for (int i = 0; i < students.length; i++) {
// 创建对象
students[i] = new Student1();
System.out.println("输入第 " + (i + 1) + "个学生姓名:");
students[i].setName(s.next());

System.out.println("输入第 " + (i + 1) + "个学生年龄:");
students[i].setAge(s.nextInt());
}

// 遍历数组
for (int i = 0; i < students.length; i++) {
System.out.print("第" + (i + 1) + "个学生信息:");
students[i].show();
}
}
}


4.随机产生一个有20个int型元素的数组,并将其中的值为奇数的元素和值为偶数的元素单独抽取出来,形成两个新的数组.
 /*
* 随机产生一个有20个int型元素的数组,并将其中的值为奇数的元素和值为偶数的元素单独抽取出来,
* 形成两个新的数组.
* */

package com.czz_work;

public class ArrayDemo1 {
public static void main(String[] args) {
int[] arr = genArray();
System.out.println("原始数组为:");
printArray(arr);
System.out.println("偶数数组为:");
printArray(getOdd(arr));
System.out.println("奇数数组为:" + arr);
printArray(getEven(arr));
}

// 生成一个有20个元素的int型数组
public static int[] genArray() {
int[] arr = new int[20];
for (int i = 0; i < arr.length; i++) {
int r = (int) (Math.random() * 100 + 1);
arr[i] = r;
}
return arr;
}

// 获取一个数组中所有奇数元素组成的数组
public static int[] getOdd(int[] arr) {
// 计算奇数个数
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 2 != 0) {
count++;
}
}

int[] oddArray = new int[count];
int index = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 2 != 0) {
oddArray[index++] = arr[i];
}
}
return oddArray;
}

// 获取一个数组中所有偶数元素组成的数组
public static int[] getEven(int[] arr) {
// 计算偶数个数
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 2 == 0) {
count++;
}
}

int[] evenArray = new int[count];
int index = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 2 == 0) {
evenArray[index++] = arr[i];
}
}
return evenArray;
}

// 打印数组
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}


5.
将如下数组中的0去掉,剩下的元素装入一个新数组内,并将新数组打印
int[] src = {1,2,0,0,3,0,0,4,5,0,0,6,0,7,0,8};
提示:先要计算出新数组的长度,创建新数组,再循环将0之外的元素拷贝到新数组中

 /*
* 将如下数组中的0去掉,剩下的元素装入一个新数组内,并将新数组打印
int[] src = {1,2,0,0,3,0,0,4,5,0,0,6,0,7,0,8};
提示:先要计算出新数组的长度,创建新数组,再循环将0之外的元素拷贝到新数组中
* */
package com.czz_work;

public class ArrayDemo2 {
public static void main(String[] args) {
int[] src = { 1, 2, 0, 0, 3, 0, 0, 4, 5, 0, 0, 6, 0, 7, 0, 8 };
int[] res = getArray(src);

printArray(res);
}

// 自定义方法,获取一个数组中除0之外的元素组成的数组
private static int[] getArray(int[] src) {
int count = 0;
for (int i = 0; i < src.length; i++) {
if (src[i] == 0) {
count++;
}
}

int[] arr = new int[src.length - count];
int index = 0;
for (int i = 0; i < src.length; i++) {
if (src[i] != 0) {
arr[index++] = src[i];
}
}
return arr;
}

// 打印数组
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}


6.珠穆朗玛峰高8848米,假设有一张足够大的纸,厚度是0.01米,问:这张纸折叠多少次后,其厚度不少于山的高度?用程序计算出来.
 
 /*
* 珠穆朗玛峰高8848米,假设有一张足够大的纸,厚度是0.01米,问:这张纸折叠多少次后,其厚度不少于山的高度?用程序计算出来.
* */

package com.czz_work;

public class HillDemo {
public static void main(String[] args) {
double hill = 8848;
double paper = 0.01;
//折的次数
int count = 0;
while(paper < hill){
//每折一次,次数都加1
count ++;
paper *= 2;
}
System.out.println("需要折叠的次数为:" + count);
}
}


 
 
 
 


猜你喜欢

转载自blog.csdn.net/czz1141979570/article/details/79954666