园子里的兄弟,谁到这家公司面试过,来评一下笔试题了
上午去一家公司面试,给了一份题,做了二十分钟答了没几道自感功力不够, 题目不是很多,记得有这么几道:
1. 两个字符串变量 string a,b ;以ascii存储编程连接两个字符串
例如:string a = "abcd " , string b = "defgh" ; 返回结果:abcddefgh
要求:
a. 不能使用任何类库函数
b. 写几个测试用例测试它
(偶感觉这道题看似简单,“不使用任何类库”,偶没什么思路。只记得上学时写汇编时做过类似的题,到c#里边还真不知道怎么办了,偶就不在写 string d = a + b ;让人家笑话了,呵呵)
2. 谈谈进程,线程,应用程序域的区别
(偶知道一些区别,表达能力有限,就不献丑了)
3.谈谈DataSet和DataReader的区别
答:DataSet对象是指一个内存中的数据缓存,它包含一个表和这些表之间关系的集合,每个表包含列集合;可看作是一个离线的数据库,支持断开式连接。
DataReader提供一个来自数据库的快速、仅向前、只读数据流,从DataReader读数据时,需要将Connection对象打开,与数据库保持连接,即不支持断开式连接。
(DataSet与DataReader的区别不止这些,偶看过这方面的文章,之前的面试也遇到过此题,这会也就记得这些了)
4.asp.net有几种身份验证方式,在你最近的项目中用过哪种,为什么?
答:windows身份验证, Forms验证和Passport验证.
在最近的项目中使用的是Forms验证,因为我们的系统使用的是自己的用户表,这样做也符合用户的应用场景(用户可以通过任何一台联网的计算机登录系统)。
5. 有scores表:
要求:
a. 写一个sql语句,每个name只取一条记录出来
答:SELECT * FROM scores a WHERE id IN
(SELECT TOP 1 id FROM scores b WHERE b.name = a.name)
b. 写一个语句,删除表中记录使每个name只有一条记录
答:DELETE FROM scores WHERE id NOT IN
(SELECT id
FROM scores a
WHERE (id IN
(SELECT TOP 1 id
FROM scores b
WHERE b.name = a.name)))
c. 从数据库设计层面设计数据表,使一个用户在表中只能有一条记录
答:把name字段设为主键
(说实话偶没理解这问是什么意思,感觉偶的答案不对,应该不是这么简单的,但又想不出其他办法,就写上了,大家别笑话啊,哪位兄弟给个标准答案?)
还有两道题:一道是翻译,另一道是汉译英,
1. 两个字符串变量 string a,b ;以ascii存储编程连接两个字符串
例如:string a = "abcd " , string b = "defgh" ; 返回结果:abcddefgh
要求:
a. 不能使用任何类库函数
b. 写几个测试用例测试它
(偶感觉这道题看似简单,“不使用任何类库”,偶没什么思路。只记得上学时写汇编时做过类似的题,到c#里边还真不知道怎么办了,偶就不在写 string d = a + b ;让人家笑话了,呵呵)
2. 谈谈进程,线程,应用程序域的区别
(偶知道一些区别,表达能力有限,就不献丑了)
3.谈谈DataSet和DataReader的区别
答:DataSet对象是指一个内存中的数据缓存,它包含一个表和这些表之间关系的集合,每个表包含列集合;可看作是一个离线的数据库,支持断开式连接。
DataReader提供一个来自数据库的快速、仅向前、只读数据流,从DataReader读数据时,需要将Connection对象打开,与数据库保持连接,即不支持断开式连接。
(DataSet与DataReader的区别不止这些,偶看过这方面的文章,之前的面试也遇到过此题,这会也就记得这些了)
4.asp.net有几种身份验证方式,在你最近的项目中用过哪种,为什么?
答:windows身份验证, Forms验证和Passport验证.
在最近的项目中使用的是Forms验证,因为我们的系统使用的是自己的用户表,这样做也符合用户的应用场景(用户可以通过任何一台联网的计算机登录系统)。
5. 有scores表:
id | name | score |
1 | 张三 | 80 |
2 | 张三 | 89 |
3 | 张三 | 89 |
4 | 李四 | 89 |
5 | 李四 | 89 |
6 | 王五 | 89 |
a. 写一个sql语句,每个name只取一条记录出来
答:SELECT * FROM scores a WHERE id IN
(SELECT TOP 1 id FROM scores b WHERE b.name = a.name)
b. 写一个语句,删除表中记录使每个name只有一条记录
答:DELETE FROM scores WHERE id NOT IN
(SELECT id
FROM scores a
WHERE (id IN
(SELECT TOP 1 id
FROM scores b
WHERE b.name = a.name)))
c. 从数据库设计层面设计数据表,使一个用户在表中只能有一条记录
答:把name字段设为主键
(说实话偶没理解这问是什么意思,感觉偶的答案不对,应该不是这么简单的,但又想不出其他办法,就写上了,大家别笑话啊,哪位兄弟给个标准答案?)
还有两道题:一道是翻译,另一道是汉译英,