北京开科唯识技术有限公司外派恒丰银行面试笔试题

//第一题输出菱形
public static void diamond(int size){
if (size % 2 == 0) {
size++; // 计算菱形大小
}
for (int i = 0; i < size / 2 + 1; i++) {
for (int j = size / 2 + 1; j > i + 1; j--) {
System.out.print(" "); // 输出左上角位置的空白
}
for (int j = 0; j < 2 * i + 1; j++) {

System.out.print("*"); // 输出菱形上半部边缘

}
System.out.println(); // 换行
}
for (int i = size / 2 + 1; i < size; i++) {
for (int j = 0; j < i - size / 2; j++) {
System.out.print(" "); // 输出菱形左下角空白
}
for (int j = 0; j < 2 * size - 1 - 2 * i; j++) {

System.out.print("*"); // 输出菱形下半部边缘

}
System.out.println(); // 换行
}
}
//水仙花
//分解整数
public static List<Integer> getNumber(int number){
List<Integer> list = new ArrayList<Integer>();
list.add(number%10); //个位数
list.add(number/10%10); //十位数
list.add(number/100); //百位数
return list;
}

public static void flower(){
for(int i = 100;i<1000;i++){
List<Integer> list = getNumber(i);
int count = 0;

for(int j = 0;j<list.size();j++){
int cubed = (int)Math.pow(list.get(j), 3);
count = count + cubed;
}

if(count == i){
System.out.println("水仙花数:"+i);
}


}
}
//第三题
public static void caculate(int m,int n){
int i =1;
long sum = 0;
long j = 0;
while(i <= n){
j = j+m;
sum = sum+j;
m = m*10;
++i;
}
System.out.println("计算后的值是:"+sum);
}
//第四题从一维数组中找出重复的元素和位置
public static void quchong(){
Integer[] numbers={13,18,19,15,26,29,49,15,12,19,29,12,18};
//集合用来存放不重复的数字
List<Integer> numberArray=new ArrayList<Integer>();
//嵌套集合用来存放重复数字的角标
List<List<Integer>> numberIndex=new ArrayList<List<Integer>>();
//集合中存放重复出现的数字
List<Integer> sameArray=new ArrayList<Integer>();
for(int i=0;i<numbers.length;i++){//
//只遍历一遍
if(!numberArray.contains(numbers[i])){
//新数字存进集合
numberArray.add(numbers[i]);
}
else{
if(!sameArray.contains(numbers[i])){
//重复数字存进集合
sameArray.add(numbers[i]);
//在这个嵌套集合中创建存有这个数字角标的集合
List<Integer> numberHead=new ArrayList<Integer>();
//把第一次出现该数字的角标存进集合
numberHead.add(new Integer(numberArray.indexOf(numbers[i])));
numberIndex.add(numberHead);
}
//把此次出现的该数字的角标存进集合
numberIndex.get(sameArray.indexOf(numbers[i])).add(new Integer(i));
}
}
//输出结果
for(int i=0;i<sameArray.size();i++){
System.out.println(sameArray.get(i)+"\t"+numberIndex.get(i).toString());
}
}

6、本题用到下面三个关系表:
CARD 借书卡:          CNO 卡号,NAME 姓名,CLASS 班级
BOOKS 图书:           BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数
BORROW 借书记录:  CNO 借书卡号,BNO 书号,RDATE 还书日期
备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。
1、找出借书超过5本的读者,输出借书卡号及所借图书册数SELECT CNO,COUNT(*) FROM BORROWGROUP BY CNOHAVING COUNT(*)>5;

2、查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出
SELECT a.CNOFROM BORROW a,BOOKS bWHERE a.BNO=b.BNO AND b.BNAME=N‘计算方法‘ AND NOT EXISTS( SELECT * FROM BORROW aa,BOOKS bb WHERE aa.BNO=bb.BNO AND bb.BNAME=N‘计算方法习题集‘ AND aa.CNO=a.CNO)ORDER BY a.CNO DESC

3、将"C01"班同学所借图书的还期都延长一周
UPDATE b SET RDATE=DATEADD(Day,7,b.RDATE)FROM CARD a,BORROW bWHERE a.CNO=b.CNO AND a.CLASS=N‘C01‘

4、从BOOKS表中删除当前无人借阅的图书记录DELETE A FROM BOOKS aWHERE NOT EXISTS( SELECT * FROM BORROW WHERE BNO=a.BNO)
5、如果经常按书名查询图书信息,请建立合适的索引
CREATE CLUSTERED INDEX IDX_BOOKS_BNAME ON BOOKS(BNAME)
展开阅读全文

没有更多推荐了,返回首页