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
姓名 调整后工资
相关推荐: