• 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,函数可以嵌套

  • 相关阅读:
    UOJ222 【NOI2016】区间
    BZOJ3631 [JLOI2014]松鼠的新家
    BZOJ 1001 [BeiJing2006]狼抓兔子
    poj2488 A Knight's Journey裸dfs
    hdu 4289 网络流拆点,类似最小割(可做模板)邻接矩阵实现
    hdu 4183 EK最大流算法
    HDU 4180 扩展欧几里得
    HDU 4178 模拟
    HDU 4177 模拟时间问题
    hdu 4185 二分图最大匹配
  • 原文地址:https://www.cnblogs.com/abc8023/p/3959111.html
Copyright © 2020-2023  润新知