恒生校招java笔试数据库语法_2015恒生电子校招笔试详解

这篇博客详细解答了恒生电子2015年校招笔试中涉及的Java语言、数据库相关题目,包括选择题、编程题和算法题。内容涵盖C语言编译过程、Java方法调用方式、数据库查询语句、表结构修改、日期计算以及素数因子分解等知识点。
摘要由CSDN通过智能技术生成

ab3bd4908b5d3520d09655eb77c0c7e1.png

257d0515cd727512849b79a1851ab761.png

a6a31771c62bc7f2fec1dc89319d0b03.png

c4f634ebb14a12c0744f70ae82a5e328.png

78b66afacbe6b8b6c2732acdf7a1eaf2.png

详细解答:

一、选择题

1、BD  C语言要经过编译成二进制代码,再经过连接形成.exe可执行文件。

2、D  3种遍历方式的互推。

3、D    私有成员只能本类访问

4、CD  索引不是越多越好,尤其是组合索引。

5、B    主要看SQL语句where后是否为ture。

6、B  abcd直接过得A;依次全入栈再出栈得C;a入栈,bcd直接过,a出栈得D。

7、DA  值调用表示方法接收的是调用者提供的值,不改变实参;引用调用表示方法接收的是调用者提供的变量的地址,改变实参。

8、D  因为D最抽象,C是错的,还有链式、树等。

9、C    1000|0001=1001>>1=0100=4。

10、CD  d表示目录,w是写,r是读,x是执行,没3个一组,分别是所有着、用户组或其他用户,即用户组为r-x,拥有读和执行权限。

二、Java语言部分

1、B

2、C

3、AB A申明了字符串,B字符多了,CD正常,可以用中文和Unicode编码申明。

4、AC   (-5)%2=-1,B错;D超过int范围。

三、数据库

1、select distinct S.Sname from S,C,SC where SC.Sno=S.Sno and SC.Cno=C.Cno and C.Cname="数据库" order by S.Sname DESC;

2、select distinct SC.Sno,C.Ccredit from SC,C where C.Ccredit >80 and SC.Grade>60;

3、alter table SC add Teacher varchar(20) not null;

4、create view SCSum as select Sno,sum(Grade) from SC group by Sno ;

5、delect from SC where Sno not in(select Sno from S);

四、编程题

注意要判断是否为闰年,闰年的2月份要多加一天。

#include

structdate

{intyear;intmonth;intday;

};int leap_year(inta);int cal_day(structdate a);/*判断闰年*/

int leap_year(inta)

{if(a%400==0||(a%4==0&&a%100!=0))return 1;else

return 0;

}/*计算一年中的第几天*/

int cal_day(structdate a)

{int sum=0,b[]={31,28,31,30,31,30,31,31,30,31,30,31} ;for(int i=0;i

sum+=b[i];if(a.month>2)

sum=sum+a.day+leap_year(a.year);elsesum=sum+a.day;returnsum;

}voidmain()

{structdate a;intn;

printf("\n请输入日期(年 月 日)\n");

scanf("%d%d%d",&a.year,&a.month,&a.day);

n=cal_day(a);

printf("该日在本年中是第%d天\n",n);

}

五、算法题

1、基本思路就是判断合数的因子是否为素数,然后for循环迭代完成。

importjava.util.Scanner;public classTry

{static boolean is_odd(int n) //判断是否为素数

{if(n==2||n==3) return true;if(n%2==0) return false;inti;for(i=3;i<=n/2;i+=2)if(n%i==0) return false;return true;

}public static voidmain(String[] args)

{

Scanner in=newScanner(System.in);

System.out.println("输入数值");int n=in.nextInt();inti;

System.out.print(n+"=");for(i=2;i<=n;i++)

{if(!is_odd(i)) continue;if(n%i==0)

{while(true)

{

System.out.print(i);

n/=i;if(n!=1) System.out.print("*");if(n%i!=0) break;

}

}

}

System.out.println();

}

}

importjava.util.List;importjava.util.ArrayList;/*** 分解质因数*/

public classGetFactor {public static voidmain(String[] args) {

List factors = getFactors(5555566666L, 2);

System.out.println(factors);

}/*** 通过递归实现分解质因数

*

*@paramn 要分解的数字

*@paramfactor 起始因子

*

*@return分解结果*/

private static List getFactors(long n, longfactor) {//不断增大 factor 直到能整除 n

while (n % factor != 0 && factor

factor = factor < 2 ? 2 : factor == 2 ? 3 : factor + 2;

}

Listresult;if (factor >= n) { //因子已经涨到和 n 一样大,说明 n 本身就是因子。这时递归完成。

result = new ArrayList();

}else { //因子能够整除 n,于是继续分解除以因子后的结果

result = getFactors(n / factor, factor); //向下递归

}

result.add(factor);returnresult;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值