一、不定项选择题(共10小题,每题3分,共30分)
1、下面哪个不是java中的关键字?( B )
A. public
B. true
C. main
D. class
2、下面数组定义错误的是( B D )
A. int [] arr ={23,45,65,78,89};
B. int [] arr=new int[10] ;
C. int [] arr=new int[4]{3,4,5,6};
D. int [] arr={‘a’, 23 , 45 , 6};
3、下面关于方法描述正确的是( A C )
A. 方法是对功能代码块的封装
B. 方法没有返回值的时候什么都不用写
C. 没有返回值的方法,不能有return 语句
D. 方法是可以没有形参的
4、Java中main()函数的返回值是什么 ( D)
A、String
B、int
C、char
D、void
5、在Java中,关于构造方法,下列说法错误的是( B )
A、 构造方法的名称必须与类名相同
B、 构造方法可以带参数
C、 构造方法不可以重载
D、 构造方法绝对不能有返回值
6、下面有关方法覆盖说法不正确的是:( C D )
A. 方法覆盖要求覆盖和被覆盖的方法有相同的名字,参数列以及返回值
B. 方法覆盖要求覆盖和被覆盖的方法必须具有相同的访问权限;
C. 覆盖的方法不能比被覆盖的方法抛出更多的异常
D. 覆盖的方法一定不能是private的
7、关于被访问控制符protected修饰的成员变量,以下说法正确的是? ( BD )
A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B. 可以被两种类访问和引用:该类本身、该类的所有子类
C. 只能被该类自身所访问和修改
D.只能被同一个包中的类访问
8、 下列有关继承的说法。正确的是:( A C )
A. 子类能继承父类的所有方法和属性;
B. 子类能继承父类的非私有方法和属性
C. 子类只能继承父类public方法和属性
D. 子类能继承父类的方法,而不是属性
9、以下关于JVM的叙述,正确的是?( AC )
A.JVM运行于操作系统之上,它依赖于操作系统
B.JVM运行于操作系统之上,它与操作系统无关
C.JVM支持Java程序运行,它能够直接运行Java字节码文件
D.JVM支持Java程序运行,它能够直接运行Java源代码文件
10、已知如下定义:String s = “story”; 下面哪个表达式是合法的( BC )
A、 s += “books”;
B、char c = s[1];
C、int len = s.length;
D、 String t = s.toLowerCase();
二、简答题(共10小题,每题5分,共50分)
1、Java中的基本类型有哪些?它们的字节数,bit数分别是多少?
答:byte(1字节,8位),shot(2字节,16位),char(2字节,16位),int(4字节,32位),boolean(4字节,32位),float(4字节,32位),long(8字节,64),double(8字节,64位)
2、简述为什么Java被称作是“平台无关的编程语言”?
答: java 主要的程序操作在后台,通过Java的虚拟机jvm来直接运行Java字节码文件,Java源码执行的只是一些表面上的程序代码;
3、overload和override的区别
答:overload重载,形参列表必须改变,override重写形参列表和参数必须不能改变,抛出的异常不能比被重写的方法的范围更加广
4、阐述final、finally的区别。
答:final所定义的类是不能被修改的,被修改会抛出异常,用final定义的变量也不能被修改,否则会重新定义一个新的变量;
Finally主要在try…catch 后运行,无论程序发生什么错误,finally模块都会执行,除非java虚拟机停止或关闭
5、String s = new String("xyz");创建了几个String 对象?二者分别是什么?
答:2个,分别是“s”和“xyz”
6、Error类和Exception类有什么区别?
答:Error则是指一般是指与jvm相关的问题
Exception是java异常机制
7、String类的equals()与“==”的区别
答:equals()是用来比较值
“==”比较变量
8、什么是装箱?什么是拆箱?什么是自动装箱和自动拆箱?
答:装箱是把基本数据类型转换成包装类;拆箱是把包装类转换成基本数据类型
自动的意思是通过jdk 1.5后应用程序编译把数据类型基本类型和包装型进行自动的转换,例如: Integer aa= 11 , int bb = aa
9、阐述静态变量和实例变量的区别?
答:静态变量是以static修饰符所修饰的变量,
实例变量不以static所修饰,该变量需要进行new实例化
10、Java的访问修饰符有哪些?它们作用范围是什么?
答:public,protected,private
Public公有的,对外开放的,同一个包都可调用
Private私有的,它的范围比public的范围小,
Protected是受内部所保护的,外部不可调用,只要是修饰方法和属性;
三、编程题(共1小题,每题20分,共20分)
注意:本大题需要把源码粘贴在对应题目下方,并且需要录制运行过程和运行结果视频。
1、假设1701班有40个学生,学号为170101~170140,全部参加语文、数学、英语三门考试,给出所有同学的各科成绩(成绩为整数、随机产生,范围为 [50,100]),并求出每位同学的总成绩。请编写程序将1701班各位同学的总成绩从高到低排序,并使用IO流的知识的把成绩写入到D:\StudentScore.txt文件中。
注:成绩相同时学号较小的先打印;要求:
- 打印的信息包含学号、姓名(姓名统一为“同学 X”[X=01,02,03,...]和学号后两位一致)和成绩,具体格式参考下面截图。
- 遍历数组时使用迭代器
答:
代码:
package com.TEST.demo;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
public class Testzes {
private static final OutputStream FileOutputStream = null;
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
List<Studentsote> listStu=new ArrayList<>();
Random random=new Random();
OutputStream out=new FileOutputStream("D:/StudentScore.txt");
for (int i = 0; i < 40; i++) {
Studentsote Studentzo=new Studentsote();
int id=(170101+i);
Studentzo.setId(id);
String name="";
if(i+1<10){
name="0"+i+1;
}else{
name=""+i+1;
}
Studentzo.setName(name);
int chara=random.nextInt(51)+50;
Studentzo.setLanguage(chara);
int shuxue=random.nextInt(51)+50;
Studentzo.setMath(shuxue);
int yingyu=random.nextInt(51)+50;
Studentzo.setEnglish(yingyu);
int ZoSc=chara+shuxue+yingyu;
Studentzo.setZoscore(ZoSc);
listStu.add(Studentzo);
}
Collections.sort(listStu);
Iterator<Studentsote> itera=listStu.iterator();
while (itera.hasNext()) {
Studentsote studentaa=itera.next();
String textjcac=("学号"+studentaa.getId()
+",姓名:同学:"+studentaa.getName()
+",语文:"+studentaa.getLanguage()
+",数学:"+studentaa.getMath()
+",英语:"+studentaa.getEnglish()
+",总成绩:"+studentaa.getZoscore());
out.write(textjcac.getBytes());
}
out.flush();
out.close();
}
private static OutputStream File(String string) {
// TODO Auto-generated method stub
return null;
}
}
class Studentsote implements Comparable<Studentsote>{
private int id;
private String name;
private int language;
private int math;
private int english;
private int zoscore;
@Override
public int compareTo(Studentsote o) {
if(o.zoscore!=this.zoscore){
return o.zoscore-this.zoscore;
}else{
return this.id-o.id;
}
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLanguage() {
return language;
}
public void setLanguage(int language) {
this.language = language;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
public int getZoscore() {
return zoscore;
}
public void setZoscore(int zoscore) {
this.zoscore = zoscore;
}
}
结果: