武汉钢信软件JAVA基础考试试卷 题号 得分 阅卷 一 二 三 总得分 姓名: 电话:
一、选择题(单选,多选混合,少选错选不得分)(每题 2分,共30分)
请将选择题答案写在对应题号下的表格内(写在其它地方无效)。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1. 设int型变量x=2,y=4,z=6,则表达式x+=z++/y++的值是
A.3
B.3.4 C.3.5
D.4
2. 下列代码中,将引起一个编译错误的行是
1)public class Test{ 2)intm,n;
3) public Test() {}
4) public Test(int a) {m=a;}
5) public static void main(String args[]){ 6) Test t1,t2; 7)intj,k; 8) j=0;k=0;
9) t1=new Test(); 10) t2=new Test(j,k); 11) } 12)} A.第3行 B.第5行 C.第6行 D.第10行
3. 一个servlet的生命周期不包括方法?
A.init()方法
B.invalidate()方法 D.destroy()方法
C.service()方法
4. java.lang包的()方法比较两个对象是否相等,相等返回true。
A.toString()B.equals()C.compare()D.以上所有选项都不正确
2
5.HttpServletRequest对象的 方法能够获取一个表单参数的值:
A.getQuaryString() B.getPathInfo() C.getParameter()
6.关于Map和List,下面说法正确的是( )。 A.Map继承List
B.List中可以保存Map或List
C.Map和List只能保存从数据库中取出的数据 D.Map的value可以是List或Map
7.给定如下Java代码,编译运行的结果是()。 import java.util.*; public class Test {
public static void main(String[] args) { LinkedList list=new LinkedList(); list.add(“A”); list.add(2,”B”);
String s=(String)list.get(1); System.out.println(s); } }
A.编译时发生错误B.运行时引发异常
C.正确运行,输出:AD.正确运行,输出:B
8. 执行下面的代码会引发()异常。 String str=null;
String strTest=new String(str);
A.InvalidArgumentExceptionB.IllegalArgumentException C.NullPointerExceptionD.ArithmeticException
9.多态的表现形式有
A) 重写 B) 抽象 C) 继承 D) 封装
D.getAttribute()
10.在HTML上,将表单中INPUT元素的TYPE属性值设置为( )时,用于创建重置按钮。 A. reset B. set C. button D. image
11. 下列语句能够正确在一个HTML页面中导入在同一目录下的“StyleSheet1.css”样式表 的是( )。
A.
B. C. < link rel=”stylesheet1.css” type=”text/css”>
D.
3
12. 在使用super 和this关键字时,以下描述正确的是
A. 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
B. super()和this()不一定要放在构造方法内第一行 C. this()和super()可以同时出现在一个构造函数中
D. this()和super()可以在static环境中使用,包括static方法和static语句块
13. 下列关于类和对象的叙述中,正确的是
A.类是对象的模板,一个类仅能生成一个对象 B.对象是类的模板,一个对象仅能生成一个类 C.类是对象的模板,一个类是一组对象的集合 D.对象是类的模板,一个对象是一组类的集合
14.以下关于软件开发文档的叙述中,错误的是
A.软件开发是程序及其相应文档的生产过程
B.软件开发过程中的重要信息需要固化在文档中,以便积累开发经验 C.由于担心设计人员中途离职,所以要让他们写下文档
D.在软件开发过程中,面对面交流并不可靠,应当完全用文档来代替 15.阅读下面的代码
package test;
public class FatherClas { public FatherClass() {
System.out.println(\"FatherClass Create\"); } } 子类: package test;
import test.FatherClass;
public class ChildClass extends FatherClass { public ChildClass() {
System.out.println(\"ChildClass Create\"); }
public static void main(String[] args) {
FatherClass fc = new FatherClass(); ChildClass cc = new ChildClass(); } }
4
在控制台中执行如下命令 C:\\>java test.ChildClass
请选择正确的输出结果: A. FatherClass Create ChildClass Create FatherClass Create
B. FatherClass Create
ChildClass Create ChildClass Create C. FatherClass Create FatherClass Create ChildClass Create D. ChildClass Create FatherClass Create ChildClass Create
二、代码查错(每题4分,共20分)
正确的打勾;错误的打叉,并描述错误原因
1. 错原因 abstract方法申明后面不能加{},应该以;结尾 2. 错原因 局部变量前不能带访问修饰符 3. 错原因 变量i没有初始化
4. 错原因 字符串equals调用可能引起空指针异常。 5. 错原因 return语句后面的代码无法执行。
1. abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {} } 2. public class Something {
voiddoSomething () {
private String s = \"\";
int l = s.length(); } }
3. class Something {
final int i;
public void doSomething() { System.out.println(\"i = \" + i); } }
4. Class Demo {
public void compareName(String name){
System.out.println(“is Tom ? ” + name.equals(“Toms”)); }
}
5. public class Something {
public int addOne(final int x) { return x;
x--; }
5
}
三、综合题(共50分)
1.举办一个单循环淘汰赛制的体育比赛,有N个运动队参加,每轮相邻两个队伍仅比赛一场,败者立刻淘汰,胜者晋级下一轮,当轮比赛队伍为奇数时,则选一队轮空直接晋级下一轮。只到最后产生胜者。 规则解释如下图:
A队 B队 ① 总共A、B、C、D、E五队参赛: 第一轮:场次① ---- A vs B,B获胜
场次② ---- C vs D, C获胜 本轮E队轮空
④ C队 D队 冠军
② ③ 第二轮:场次③ ---- C vs E,E获胜
本轮B队轮空
第三轮:场次④---- B vs E, E获得冠军 总共进行了4场比赛
E队
要求:a.请用java设计一个递归函数,用于计算出n个球队参加该赛制比赛,直到角逐出冠军,一共需要进行多少场比赛;
答题区(请在横线处作答):
b.不允许出现全局变量,代码尽量简洁;
C.在main函数中调用该递归函数计算出:当99个队伍参加该比赛,总场次数是多少。
(只需写出调用方式,传入具体参数即可,不必计算出结果)。(10分)
public class Demo {
public static void main(String[] args) throws Exception {
intteamNum = 99; //参赛的球队数量 inttotalGamesNum = ;
System.out.println(“当” + teamNum + ”只球队参加比赛时,总共需要进行”+
totalGamesNum+”场比赛”):
}
/**
* @param n 本轮轮球队个数 * @return 本轮结束后累计场次 */
public Integer playAGame(Integer n) throws Exception { }
_____________________________________________________ _____________________________________________________
6
}
2.试编写一个List类型的对象,只能存储通讯录(Contacts类、存储同学的姓名和联系方
式),并输出通讯录的列表到控制台。定义类、定义函数、在main函数中执行并输出(9
分)
3.创建一个HashMap对象,添加一些学生的姓名和成绩:张三:90分,李四,83分。接
着从HashMap中获取并他们的姓名和成绩,然后把李四的成绩改为100分,再次输出他们的信息。(9分)
7
4.根据下面的数据库表结构,回答问题(22分)
EMP表(员工表):包含四个字段(EMP_NO_, DEPT_NO_, FIRST_NAME_, SALARY_),
主键:EMP_NO_
DEPT表(部门表):包含两个字段(DEPT_NO_, DEPT_NAME_),主键:DEPT_NO_ 每个员工都有所属部门,每个部门至少有一位员工。 要求:
第一个查询:查询出部门名称为‘市场部’的所有员工的信息,查询结果(6分):
员工编号 姓名
解:SELECT t1.EMP_NO员工编号,t1.FIRST_NAME姓名 FROM DEPT t2 JOIN EMP t1 ON t2.DEPT_NO=t1.DEPT_NO WHERE t2.DEPT_NAME=’市场部’
第二个查询:查询员工数大于5的部门,并按员工数降序排序,查询结果(8分):
部门编号 员工人数 解: SELECT DEPT_NO部门编号 ,COUNT(DEPT_NO_) 员工人数FROM EMP GROUP BY DEPT_NO HAVING COUNT(DEPT_NO_) > 5 ORDER BY COUNT(DEPT_NO_) DESC
第三个查询:查询所有员工的工资,小于3000元(含3000)的加500;3000-5000(含5000)的加300,5000以上不加,查询结果(8分):
员工编号
解:Select EMP_NO员工编号,FIRST_NAME姓名, Case when SALARY<=3000 then SALARY+500
WhenSALARY>3000 and SALARY<=5000then SALARY+300 Else SALARY
end as SALARY From Emp
姓名 调整后工资
因篇幅问题不能全部显示,请点此查看更多更全内容