软件工程师笔试题及答案
发布时间:2011-01-05 09:50:10
发布时间:2011-01-05 09:50:10
吉运集团
北京信息科技开发公司软件工程师笔记题
_____________________________________________________
姓名:________________ 联系电话:_____________ 期望工资________________
第一部分:选择题(每题5分)
一、 以下程序中VB和C#书写都正确的是:( ) 多选
A:Public strName As String 和 string strName = new string()
B:Public strName As String() 和 string strName = new string()
C:Public strName(10) As String和 string[] strName = new string[100];
D:以上答案都正确;
二、 以下C#程序中,写法不正确的是( ) 多选
A: C://Windows//System32 B:C:\\Windows\\System32
C:@C:\Windows\System32 D:@C:/Windows/System32
三、 下列选项中,是引用类型的是 ( )
A. enum类型 B. struct类型
C. string类型 D. int类型
四、 软件开发过程一般有以下几个阶段,正确的说法是 ( )
A:需求分析,概要设计,详细设计,软件编码,软件测试
B:概要设计,需求分析,详细设计,软件编码,软件测试
C:需求分析,详细设计,软件开发,系统上线
D:系统调研,需求讨论,整体设计,系统上线,系统售后
五、 以下关于CLR语言描述,不正确的是 ( )
A:CLR是.NET翻译语言,用户可以用C#写类,在VB.Net中调用;
B:有了CRL 在.NET,保证了一种语言具有的功能其它语言也有;
C:CLR是在.NET中间语言,是CPU能看懂的语言;
D:以上说法都正确;
六、 以下C#程序,正确描述的是 ( )
Class Student
{
public string ID;
public string Name;
public string Sex;
}
A:定义了一个名字为“Student”的类,类体中包括学生的学号(ID),姓名(Name),与性别(Sex);
B:定义了一个名称为“Student”的方法,ID,Name,Sex为方法中的成员;
C:定义了一个名称为“Student”的类型,ID,Name,Sex为类中的成员;
D:以上说法都不正确;
七、 下列VB语句哪一个不正确( )
A. Dim strName As String
B. If Year(Now) = 2009 Then Exit Sub
C. String userName = new String();
D. DoEvents
八、 假定有一个用户表,表中包含字段:userid (int)、username (varchar)、 password(varchar)、等,该表需要设置主键,以下说法正确的是 ( ) 多选
A:如果不能有同时重复的username和password,那么username和password可以组合在一起作为主键。
B:此表设计主键时,根据选择主键的最小性原则,最好采用userid作为主键。
C:此表设计主键时,根据选择主键的最小性原则,最好采用username和password作为组合键。
D:如果采用userid作为主键,那么在userid列输入的数值,允许为空。
九、 现有订单表orders,包含用户信息userid, 产品信息 productid, 以下 ( ) 语句能够返回至少被订购过两回的productid
A:select productid from orders where count(productid)>1
B:select productid from orders where max(productid)>1
C:select productid from orders where having count(productid)>1 group by productid
D:select productid from orders group by productid having count(productid)>1
一十、 如下图,旁边四个方块中哪个方块才是小男孩手中的方块? ( )
A:第1个;
B:第2个;
C:第3个;
D:第4个;
第二部分:问答题(每题5分)
一、 SQL Server或Oracle中表之间的关联方法有哪些并解释其含义?
INNER JOIN LEFT JOIN RIGHT JOIN
二、 在SQL 语句中,如何锁定数据?锁定之后要读取里面的数据,用什么关键字?
SELECT * FROM TABLE WITH(READPAST)
三、 简要谈谈你对AJAX 以及 抽象工厂 的认识。
四、 为了解决软件系统的安全,我们通常使用硬加密和软加密等方法,请回答以下问题:
1、 在C/S和B/S程序中, 使用硬加密的主要区别是什么?
C/S可以在服务器端和客户端加密,而B/S只能在服务器端加密;
2、 硬加密的设备您都知道那些?请依次写出。
软件安全锁(加密狗)、IC卡、
3、 软加密的方法您都知道那些?请依次写出。
DES、MD5
第三部分:实验题
一、 请完成以下代码,(5分)
(1)、根据代码填空。
Dim dStartDate As Date
Dim dEndDate As Date
Dim dTempDate As Date
dStartDate = CDate("2008-12-1")
dEndDate = CDate("2008-12-15")
dTempDate = dStartDate
Debug.Print " 日期 星期"
While dTempDate < dEndDate
Debug.Print dTempDate & " " & uBoundCode(Weekday(dTempDate, vbMonday))
‘////////////////uBoundCode为自定义转换函数
dTempDate = DateAdd("D", 1,dTempDate) ‘///提示:Interval,Number,Date
Wend
(2)、请用C# 完成题(1)中uBoundCode函数实现的代码。
基本思路正确就可以
二、 以下三个数据表:(10分)
表名 | 字段 | 名称 | 说明 |
tbl_Sale | 销售人员表 | cID:销售人员编号(自动) cSaleName:销信人员姓名 | |
tbl_ConList | 合同信息表 | cConID:合同编号(自动) cSaleID:销售人员编号 cConNumber:合同编号 cConDate:合同日期 cConMoney:合同金额 | |
tbl_PayMoney | 销售人员提成表 | cID:自动编号 cConID:合同ID PayMoney:提成金额 | |
1):得到所有销售人员对应合同信息和提成金额;(2分)
SELECT A.cConNumber,B.cSaleName,SUM(C.payMoney) FROM tbl_ConList A INNER JOIN tbl_Sale B ON (A.cSaleID=B.cID) INNER JOIN tbl_ConList C ON (A.ConID=C.cID) GROUP BY A.cConNumber,B.cSaleName 黑色区域要重点考试内容
2):得到合同日期在“2006-12-31”之前,每个销售人员的合同总额和提成总额;(2分)
SELECT A.cConNumber,B.cSaleName,SUM(C.payMoney) FROM tbl_ConList A INNER JOIN tbl_Sale B ON (A.cSaleID=B.cID) INNER JOIN tbl_ConList C ON (A.ConID=C.cID) WHERE A.cConDate <= ‘2006-12-31’ GROUP BY A.cConNumber,B.cSaleName 黑色区域要重点考试内容
3):得到没有签过合同的销售人员信息;(2分)
SELECT B.cSaleName FROM tbl_ConList A LEFT JOIN(或RIGHT JOIN ) tbl_Sale B ON (A.cSaleID=B.cID) WHERE B.cID IS NULL 黑色区域要重点考试内容
4):得到某年每位销售人员每季度签订的合同数量;(4分)
SELECT cSaleName,COUNT(tableX .cConID) FROM tbl_Sale saleTable INNER JOIN
(SELECT A.cID,A.cSaleName,B.cConID) AS B.cConID FROM tbl_Sale A INNER JOIN tbl_ConList B ON (A.cID=B.cSaleID) WHERE (Year(cConDate)=2009 and MONTH(cConDate)=1) OR (Year(cConDate)=2009 and MONTH(cConDate)=2 ) OR (Year(cConDate)=2009 and MONTH(cConDate)=3 )) AS tableX ON (saleTable.cID=tableX.cID)
……… 改变条件 (4,5,6) (7,8,9) (10,11,12)
基本思路正确就可以,黑色区域要重点考试内容
三、 以下三张EXCEL表,是用户手工制作的,现在要求在软件系统中用一张报表体现出来,请按格式填
写。(15 分)
字段用编号表示为:(没有编号,请用汉字表求)
①客户姓名 ②公司名称 ③来访时间 ④交易日期 ⑤资金总额 ⑥交易金额
用户要求A(请按用户要求设计,报表的列用逗号隔开):
1) 所有公司,每个客户的所有字段全部体现;
请设计报表A(请按用户要求设计):
条件:
报表字段:
用户要求B(请按用户要求设计,用逗号隔开):
1) 自来访时间起,所有公司某年每月的余额(余额=(5)减(6));
请设计报表B:
条件字段:
报表字段: