X明X源面试题《一》
本文转载自zhangkang
今天去明源面试,面试题目如下
1 有两张表
A 学生表
ID Name age
1 李1 12
2 李2 33
3 李3 32
4 李4 34
5 李5 36
6 李6 37
7 李7 38
8 李8 39
9 李9 40
B分数表
ID subject score
4 语文 88
4 数学 67
5 语文 88
5 数学 67
6 语文 88
6 数学 64
7 语文 65
8 数学 67
9 语文 72
10 数学 73
(1)
select a.* from a inner join b on a.id=b.id;
select a.* from a,b where a.id=b.id
select a.* from a left join b on a.id=b.id;
select a.* from a right join b on a.id=b.id;
select b.* from a left join b on a.id=b.id;
select b.* from a right join b on a.id=b.id;
以上语句返回的行数分别是多少?
答案:9 9 12 10 12 10
(2)统计每门功课前两名学生的ID,name ,subject ,score ?
(3)
实现如下格式
ID Name 语文 数学
1 李1
4 李4 88 67
9 李9 72
这是一个行转列
select id 编号,[name] 姓名,
sum(case when subject='语文' then score end)语文,
sum(case when subject='数学' then score end)数学
from b group by id ,[name]
(4)新建一个视图查询 ID,name,age,subject ,score ,如果一个学生对应有多个记录 则全部显示出来?
if exists (select * from sysobjects where name='get_score')
drop view get_score;
create view get_score
as
select a.id,a.name,b.subject,b.score from a left join b on a.id=b.id;
(5)新建一个存储过程 , 实现输入学生ID(存储过程的输入参数) , 显示学生姓名以及平均分, 格式如下: 李4:45
if exists (select * from sysobjects where name='get_avgScore')
drop proc get_avgScore;
create proc get_avgScore(@id int)
as
declare @name varchar(8)
declare @avg float
begin
select @name=a.name+':',@avg=avg(score) from a left join b on a.id=b.id
where a.id=@id group by (a.name+':')
print (@name + cast(@avg as varchar(4)))
end;
exec get_avgScore 4;
2
(1)请列举有哪几种页面重定向的方法 ,并解释(至少两种以上)
一、Transfer Execute Redirect重定向方法介绍
1.Server.Transfer方法:
Server.Transfer("m2.aspx");//页面转向(服务器上执行)。服务器停止解析本页,保存此页转向前的数据后,再使页面转向到m2.aspx, 并将转向前数据加上m2.aspx页结果返回给浏览器。
2.Server.Execute方法:
Server.Execute("m2.aspx"); 服务器保存此页转向前的数据后,使页面转向到m2.aspx执行, 再返回本页继续执行.再将三者结果合并后返回给浏览器.
以上都是服务器端页面转向所以浏览器不出现页更改记录(显示的地址不会改变)。因此,如果用户刷新此页,也许会出现一些其它意外情况. 此类页转向,可完成一些其它功能,比如访问到前一页面中的服务端控件。
3.Response.Redirect:
当浏览器请求aspx页面时,碰到Redirect(url)方法, 相当于告诉浏览器,你先需访问某页面,于是浏览器再向服务器发送一个到此页面的请求。重定位是通过浏览器执行的,在服务器和浏览器之间会产生额外的往返过程。在网络状况不是很好的情况下,两次请求会大大的降低应用程序的反应速度,甚至占用多余的带宽。
总结, 在网络状态较好的情况下,Redirect(url)方法效率最高!! Server.Transfer方法和Server.Execute方法最灵活!! Server.Execute方法占用资源最多。
二、跳转页面asp.net提供的三种方法比较
1 response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护。但速度慢是其最大缺陷!redirect跳转机制:首先是发送一个http请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端。需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session。
2 server.transfer 速度快,只需要一次postback ,但是。。。。他必须是在同一个站点下,因为它是server的一个方法。另外,他能跳过登录保护。你可以写个小程序试试:设计一个由页面一到页面二的跳转,但要进入到页面二需要登录,form认证,但如果跳转语句使用transfer的话,那就不会弹出登录页面了。这个方法的重定向请求是发生在服务器端,所以浏览器的url地址仍然保留的是原页面的地址!
3 sever.execute 这个方法主要是用在页面设计上面,而且他必须是跳转同一站点下的页面。这个方法是需要将一个页面的输出结果插入到另一个aspx页面的时候使用,大部分是在表格中,将某一个页面类似于嵌套的方式存在于另一页面。
(2)ASP.NET页面传值的集中方法,并分析其利弊(至少两种以上)
一. 使用QueryString变量
QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。
Response.Redirect( "target.aspx?param1=hello¶m2=hi ")
接收页面: string str = Request.QueryString["param1"];
string str1 = Request.QueryString["param2];
二.使用Cookie对象变量(Cookie是存放在客户端的)
设置Cookie: HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Reponse.AppendCookie(cookie_name); 获取Cookie:
string name= Request.Cookie["name"].Value.ToString(); 三. 使用Session变量(session是存放在服务器端的)
设置Session: Session["name"] ="hello";
获取Session: string name = Session["name"].ToString();
四.使用Application 对象变量
Application对象的作用范围是整个全局,也就是说对所有用户都有效。此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。
设置Application : Application["name"] = ="hello";
获取Application : string name = Application["name"].ToString();
五. PostBackUrl()方法
default.aspx页面:
(3)说说URL传值应注意的问题(至少两点以上)
尽量采用加密编码后传递;
还有如果你想推广该项目的话,url的参数最好不要超过2个。
(4) 用代码实现: 新建一个XML文档 将字符串 "<item>NBA</item>" 读到文档里
public void addxml()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml("<item>NBA</item>");
doc.Save("doc.xml");
}
(5)解释一下装箱 和 拆箱 ,并附上代码说明
public void show()
{
int val = 100;
object obj = val;
Response.Write("对象的值:" + obj+"<br/>");
//这是一个装箱的过程,是将值类型转换为引用类型的过程
int vals = 100;
object objs = vals;
int num = (int)objs;
Response.Write("num:" + num);
//这是一个拆箱的过程,是将值类型转换为引用类型,再由引用类型转换为值类型的过程
}
3
情景A
房地产楼盘有很多种项目,每个项目有不同类型的房子,像普通商品房 是按照面积*均价 来计算价格,而别墅是按照数量来计算价格
情景B
公司老总和销售总监希望希望立刻得知楼盘的销售情况
(1)请使用UML 来描述A 中各对象的关系
(2)请给A中的各对象建表 ,表名和字段 自己定
(3)请结合B的场景,用一种设计模式来实现(编码实现)
4 关于HTML 和JAVASCRIPT的题目
填空题
(1) (a+2)-1=81 a="8" a+2="82" 拼接字符串 82-1=81
(2)ParseInt("7")+3=10
(3)
var a="8" ;
var b=5;
var c=a+b;
var d=a-b;
c=85 (拼接字符串)
d=3 (数字相减)
解答题
(4)
C# 中 ArrayList arr=new ArrayList();
arr.add("湖人");
请扩展JS中Array的功能 让其也能实现类似于C#中ArrayList的功能
如: Array arr=new Array();
arr.Add("凯子");
(5)请列举你所用过或自己编写的Javascript库, 就其中所涉及的思想或者写的比较好的地方 谈谈你的看法
5 HTML 页面上有一个DIV ID 为 showInfo,, 有一个Button <input type="button" value="显示" name="btnOK">
现要求实现点击按钮 在DIV里 显示一个超链接 <a href=www.mysoft.com.cn >明源软件</a>,自己写一个JS函数实现
6 逻辑题
计划用水量为 wplan,用户实际用水量为wsj,如果实际用水量小于wplan,按照price1收费,实际用水量超过wplan,并且小于1.2wplan
超过部分按照price2收费,实际用水量大于1.2wplan,超过部分按照price3收费,请用一个函数iff(exp1,exp2,exp3) 来计算用户的水费,要求 如果exp1为true ,返回exp2,否则返回exp3,函数可以嵌套
X明X源面试题《一》的更多相关文章
- X明X源面试题《二》
一.解释5种访问修饰符答:public-访问不受限制.private-访问范围为它所属的类.protected-访问范围为它所属的类或从该类派生的类.internal-访问范围为当前程序集.prote ...
- X明X源面试题《三》
本文转自自zhangxh_Doris 昨天(05.23)下午去参加了明源软件的暑期实习宣讲+笔试,第一次听说这个行业,行业和笔试风格完全不一样啊,5道行测智力题+1个问答+ 斐波那契数列 + 洗牌算法 ...
- Fresco 源码分析(二) Fresco客户端与服务端交互(1) 解决遗留的Q1问题
4.2 Fresco客户端与服务端的交互(一) 解决Q1问题 从这篇博客开始,我们开始讨论客户端与服务端是如何交互的,这个交互的入口,我们从Q1问题入手(博客按照这样的问题入手,是因为当时我也是从这里 ...
- nyist 240 小明的调查统计(二)
http://acm.nyist.net/JudgeOnline/problem.php?pid=240 小明的调查统计(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:1 ...
- 数据库基础SQL知识面试题二
数据库基础SQL知识面试题二 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.选课系统SQL语法练习 course数据库中有以下四张表: •students表(学生表): si ...
- Netty 源码(二)NioEventLoop 之 Channel 注册
Netty 源码(二)NioEventLoop 之 Channel 注册 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) 一 ...
- 框架-springmvc源码分析(二)
框架-springmvc源码分析(二) 参考: http://www.cnblogs.com/leftthen/p/5207787.html http://www.cnblogs.com/leftth ...
- Zookeeper 源码(二)序列化组件 Jute
Zookeeper 源码(二)序列化组件 Jute 一.序列化组件 Jute 对于一个网络通信,首先需要解决的就是对数据的序列化和反序列化处理,在 ZooKeeper 中,使用了Jute 这一序列化组 ...
- 一点一点看JDK源码(二)java.util.List
一点一点看JDK源码(二)java.util.List liuyuhang原创,未经允许进制转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 1.综述 List译为表,一览表, ...
随机推荐
- POJ 2392 Space Elevator(贪心+多重背包)
POJ 2392 Space Elevator(贪心+多重背包) http://poj.org/problem?id=2392 题意: 题意:给定n种积木.每种积木都有一个高度h[i],一个数量num ...
- QT调用C#写的Dll
参见: https://blog.csdn.net/weixin_42420155/article/details/81060945 C#写的dll是没有dllMain入口函数的,是一种中间语言,需要 ...
- iOS学习笔记-地图MapKit入门
代码地址如下:http://www.demodashi.com/demo/11682.html 这篇文章还是翻译自raywenderlich,用Objective-C改写了代码.没有逐字翻译,如有错漏 ...
- C语言-srand种子详解
rand() 函数取得随机数的时候是通过一个叫做"种子"的变量经过计算得出一个数值, 然后得出的数值再作为新的"种子"参与下一次的运算, 这样就得到了所谓的随机 ...
- Linux下默认的目录介绍
目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - /bin 该目录存放着系统最常用的最重要的命令,相当于DOS ...
- oc自定义不定参数函数
-(void)getValueFormConfig:(NSString *)key,... or -(void)getValueFormConfig:(NSString *)key,...NS_REQ ...
- Android Shape 详解
1 http://blog.csdn.net/feng88724/article/details/6398193 2 <shape xmlns:android="http://sche ...
- VS中 无法创建虚拟目录 本地IIS IIS Express 外部主机
从前就有个疑问了,为什么我拉取别人写好的代码后就可以在IIS里面生成一个网站呢? 这里所谓的生成网站,是指包含了所有源代码文件的网站:相对地,发布网站,就是指包含被编译的源文件所得到的DLL文件的网站 ...
- FMDB(一)— 简单介绍
在iOS开发过程中常常会用到数据库方面的操作,但是iOS原生的SQLite API使用起来并不十分友好,对于C语言基础较薄弱的朋友来说.使用起来可能会认为比較不便.于是,一些第三方的对SQLite A ...
- RapidIO协议(1)
RapidIO协议 1.概述 1.1介绍 RapidIO是基于包交换互联协议,主要作为系统内部接口使用,如:芯片间.板间的通讯,速度能在GB/S数量级.如连接处理器.内存.内存映射的I/O设备.这些设 ...