Loading

软件工程师面试题(一)

一、选择题

1.找出数列规律选择,1,4,8,14, 24,42,( A )

    A.76    B.66    C.64    D.68

2. 6,14,30,62,( C )

    A.85   B.92    C.126    D.250

二、简答题

1.类的三大特性是什么?

继承(inheritence)、封装(encapsulation)、多态(polymophism)。

 

2.如何用三元运算符表达两个整型变量a,b并将较大的值赋予变量a?

a=a>b?a:b

 

3.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?(至少三种)

Ajax(get、post)、Server.Transfer、Request.QueryString(url传参)

 

4.Override和重载的区别

方法的重载是指函数名相同,但参数列表不同,用来实现多种功能,是多态的一种表现形式.

方法的重写就是重新实现原方法的过程,函数名和参数列表保持一致.

 

5.抽象类和接口有什么区别?

抽象类是指将共同的行为(方法)单独提取出来,建立一个抽象的类,用来被子类继承。抽象类必须要有抽象方法。

接口是指一类方法的定义,但并不包含实现,是实现多重继承的有效方式。

  

6.存储过程相比于sql语句有什么优点,大数据分析时,除使用存储过程代替sql外还有哪些有效方法?

存储过程比较安全(数据库层)、高效(网络传输数据量小,预编译)。

优化SQL语句,多用临时表,少用或者不用游标;根据业务合理分库分表,建立索引;使用NOSQL。

 

三、编程题

1.列数的规则如下: 1、1、2、3、5、8、13、21、34......  求第30位数是多少?(用递归实现)

答案:斐波拉契数列

int F(int n)

{

    if (n == 1 || n == 2)

       return 1;

    else

       return F(n - 1) + F(n - 2);

}

 

2.已知表: course

courseid  coursename     score

1     java 70

2     oracle      90

3     xml  40

4     jsp   30

5     servlet     80

为了便于阅读, 查询此表后的结果显式如下( 及格分数为60):

courseid  coursename     score       mark

1     java 70    pass

2     oracle      90    pass

3     xml  40    fail

4     jsp   30    fail

5     servlet     80    pass

写出此查询语句:

select courseid,coursename,Score, (case when Score>=60 then 'pass' else 'fail' end) mark from course

 

3.学生表S(S_ID,S_Name),课程表B(B_ID,B_Name),成绩表C(S_ID,B_ID,C_Score),现需要将成绩表中选了课程名称为a的学生成绩低于60的同学的成绩乘以1.1。

with a as(

select S_ID,C_Score from C,B where C.B_ID = B.B_ID and B.B_Name = 'a')

update a set C_Score = C_Score*1.1 where C_Score<60

posted @ 2016-06-30 16:00  guwei4037  阅读(872)  评论(0编辑  收藏  举报