明源面试

明源面试,笔试题目如下

一、SQL测试题

1 有两张表

 根据给出的SQL语句,写出返回的行数分别是多少?为了形象直观的显示,我给出了sql语句执行结果。

A 学生表        B分数表  

新题目

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 a.* from a right join b on a.id=b.id and a.id<7;                       

 

 

select a.* from a right join b on a.id=b.id where b.id<7                      

 

老题目

select b.* from a left 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;                                      

以上语句返回的行数分别是多少?

答案:见图就知道了

 

(1)删除age为18-30的成绩

delete from b where b.id in

(select id from a 

where age between 18 and 35)

 

(2)统计每门功课前两名学生的ID,name ,subject ,score

 select c.* from(select a.id,a.name,b.subject,b.score from  a, b where a.id=b.id) c
 where c.name in (select top 2 d.name from 
 (select a.id,a.name,b.subject,b.score from  a, b where a.id=b.id) d
 where d.subject=c.subject order by d.score desc
 )order by c.subject

 

 

 

(3)实现如下格式

这是一个行转列

select b.ID ID,

sum(case when b.Subject='语文' then score end)语文,

sum(case when b.Subject='数学' then score end)数学

from b group by b.id

 

注:打下划线的是要填的内容

(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

create procedure get_avgScore(@id int)

as

declare @name varchar(50)

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

 

二、asp.net测试题

(1)请列举有哪几种页面重定向的方法 ,并解释(至少两种以上)

(2)ASP.NET页面传值的集中方法,并分析其利弊(至少两种以上)

(3)说说URL传值应注意的问题(至少两点以上)

1.URL传值

这是经典的传值方式, 如XXX.aspx?id=1&name=c; 不过所传递的值是会显示在浏览器的地址栏上的,而且不能传递对象。所以这种方法一般用于传递的值少且安全性要求不高的情况下。

2.Session传值

这种方法将每份数据存储于服务器变量中,可以传递比较多的数据,并且安全性较高,所以常用于用户身份的验证功能中。不过,Session变量如果存储过多的数据会消耗过多的服务器资源,编程者在使用时应该慎重。Session可在应用程序的多个页面中以名称/值对的方式共享,直到浏览用户关闭自己的浏览器或者服务器Session超时(可设置,默认为20分钟)停止。

Session具有以下特点:

Session中的数据保存在服务器端;

Session中可以保存任意类型的数据;

Session默认的生命周期是20分钟,可以手动设置更长或更短的时间。

3.Cookie传值

Cookie是一种比较特殊的数据存储方式,因为这种方式将数据存储于浏览用户的电脑中,以文本文件的形式存在于磁盘中。这种方式非常有意思,很多登录系统就是利用Cookie实现用户自动登录。即用户登录一次的登录信息将被写入到用户电脑的Cookie文件中,下次登录时,网站自动读取该Cookie完成身份验证。通过Cookie传递数据虽然很方便,保存时间可以自由设置,但是安全性不高,编程者不应过于依赖Cookie,而应采用结合的方式完成敏感数据的存储。

Cookie保存数据有以下特点:

Cookie中的数据保存在客户端;

Cookie中只能保存字符串类型的数据,如果需要在Cookie中保存其它类型数据,需要将其转换成字符串类型后保存;

Cookie也有其默认生命周期,也可以手动设置,最大可设置成50年之后过期。

4.Server.Transfer传值

这个方法的步骤相对较多,使用该方法可以在另一个页面以公开对象属性的方式来存取值,使用这种方法是面向对象的。该方法的代码编写并不复杂,首先通过定义一个public权限的属性,该属性可返回所需传递的值。然后在第二个页面中,使用Context.Handler属性来获得前一个页面实例对象的引用,即可通过访问自定义的属性获取需要的值。

Server.Transfer方式(或称HttpContext方式)

  我们还可以使用 Server.Transfer方式(或称HttpContext方式)在页面之间传递变量,此时,要传递的变量可以通过属性或方法来获得,使用属性将会比较容易一些。好,让我们在第一个页面中来写一个用来获得TextBox值的属性:

  Code

publicstringGetName
{
get{returntxtName.Text;}
}

  我们需要使用Server.Transfer把这个值发送到另外一个页面中去,请注意Server.Transfer只是发送控件到一个新的页面去,而并不会使浏览器重定向到另一个页面。所以,我们我们在地址栏中仍然看到的是原来页面的URL。如下代码所示:

Server.Transfer("WebForm5.aspx");

  接下来,我们到"WebForm5.aspx"看看:

  Code

//YoucandeclarethisGloballyorinanyeventyoulike
WebForm4w;
//GetsthePage.ContextwhichisAssociatedwiththispage
w=(WebForm4)Context.Handler;
//AssigntheLabelcontrolwiththeproperty"GetName"whichreturnsstring
Label3.Text=w.GetName;

5.Application传值

严格地说应该是通过HttpApplication对象在服务器端生成一个状态变量来存储所需的信息,该HttpApplication对象变量的可用范围覆盖整个WEB应用程序。所以该对象一般存储一些要公布的信息,如在线人数等,而对于那些涉及用户个人的敏感数据则不用这种方法存储。HttpApplication对象有两个常用的方法,即Lock和UnLock方法,可用于处理多个用户对存储在Application变量中的数据进行写入的问题。Lock方法锁定全部的Application变量,从而阻止其他用户修改Application对象的变量值,UnLock方法则解除对HttpApplication对象变量的锁定。通过HttpApplication对象传值的方法和Session比较相似,但是Session是对于每个单独的用户,当该用户关闭浏览器,则Session失效。HttpApplication对象存储的变量是针对所有访问程序的用户,即使有用户关闭了浏览器,变量的值不会丢失。

Code

//为Application变量赋值
Application["Name"]=txtName.Text;
Response.Redirect("WebForm5.aspx");
//从Application变量中取出值
if(Application["Name"]!=null)
Label3.Text=Application["Name"].ToString();

 

Mvc中这样使用,

如在Globals.cs赋值:Application["names"] = "ss";

在其它页面的Controller中这样调用:

string dd = this.HttpContext.Application["names"].ToString();

6.跨页面传送

跨页面传送和调用HttpServerUtility对象的Transfer方法有相似之处,不过效率更高。因为调用HttpServerUtility对象的Transfer方法是基于服务器的方法,而跨页面传送是基于浏览器端的。这个方法主要是设置控件的“PostBackUrl”属性,使该控件(如Button)操作后转向指定页面,并且这个指定页面可以直接获取前一个页面的所有控件对象及其属性值。

7.如果有特殊需要,还可以使用其他方法,例如通过数据库存储临时数据等。

 

(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 = val;

            int num = (int)objs;

            Response.Write("num:" + num);

            //这是一个拆箱的过程,是将值类型转换为引用类型,再由引用类型转换为值类型的过程

        }

 

(6) 1.写出结果

        public abstract class A

        {

            public A()

            {

                Console.WriteLine('A');

            }

            public virtual void Fun()

            {

                Console.WriteLine("A.Fun()");

            }

        }

 

        public class B : A

        {

            public B()

            {

                Console.WriteLine('B');

            }

 

            public newvoid Fun()

            {

                Console.WriteLine("B.Fun()");

            }

 

            public static void Main()

            {

                A a = new B();

                a.Fun();

            }

        } 

      

  结果:A,B,A.Fun();

 

3 情景A

房地产楼盘有很多种项目,每个项目有不同类型的房子,像普通商品房 是按照面积*均价 来计算价格,而别墅是按照数量来计算价格

情景B

公司老总和销售总监希望希望立刻得知楼盘的销售情况

(1)请使用UML 来描述A 中各对象的关系

(2)请给A中的各对象建表 ,表名和字段 自己定

(3)请结合B的场景,用一种设计模式来实现(编码实现)

 

4 手写代码实现如下table样式

 答:代码如下: 

  <table style="background-color:#ffffff" border="1px">

        <tr>

            <td rowspan="2" width="120px" height="25px">1</td>

            <td width="120px" class="style1">2</td>

            <td width="120px" class="style1">3</td>

        </tr>

        <tr>

            <td colspan="2" rowspan="2">5</td>

        </tr>

        <tr>

            <td width="120px" height="25px">4</td>

        </tr>

        </table>

 

5.Javascript测试题

 (1) (a+2)-1= NAN

 (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)

请扩展JS中Array的功能 让其也能实现类似于C#中ArrayList的功能

如: Array arr=new Array(); arr.Add("arrvalue");

答:  Array.prototype.Add = function (o) {
            this[this.length] = o;
        }

(5)请列举你所用过或自己编写的Javascript库, 就其中所涉及的思想或者写的比较好的地方谈谈你的看法

 答:JQUERY,EXT

 

6. HTML 页面上有一个DIV ID 为 showInfo,, 有一个Button<input type="button"  value="显示" name="btnOK">现要求实现点击按钮 在DIV里 显示一个超链接 <a href=www.mysoft.com.cn>明源软件</a>,自己写一个JS函数实现

 答:代码如下:

    function Showlink()   

        {

            document.getElementById("showlink").innerHTML = "<a href=www.mysoft.com.cn>明源科技</a>";

        }

      <div id="showlink">

      <input id="btnok" type="button" value="show" name="btnOk" οnclick="Showlink();"/>

 

6 逻辑题

计划用水量为 wplan,用户实际用水量为wsj,如果实际用水量小于wplan,按照price1收费,实际用水量超过wplan,并且小于1.2wplan

超过部分按照price2收费,实际用水量大于1.2wplan,超过部分按照price3收费,请用一个函数iff(exp1,exp2,exp3) 来计算用户的水费,要求 如果exp1为true ,返回exp2,否则返回exp3,函数可以嵌套

答: IIf(wplan > wsj, wsj * price1, IIf(wsj < wplan * 1.2, wplan * price1 + (wsj - wplan) * price2, wplan * price1 + 0.2 * wplan * price2 + (wsj - wplan * 1.2) * price3))

转载于:https://www.cnblogs.com/8090sns/p/3607071.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

肯德基收银系统模式_肯德基的完整形式是什么?

肯德基收银系统模式肯德基&#xff1a;肯塔基炸鸡 (KFC: Kentucky Fried Chicken) KFC is an abbreviation of "Kentucky Fried Chicken". It is a fast-food restaurant chain whose specialty is known for fried chicken because of its specialization in it. It…

泛型(CSDN转载)

函数的参数不同叫多态&#xff0c;函数的参数类型可以不确定吗&#xff1f; 函数的返回值只能是一个吗&#xff1f;函数的返回值可以不确定吗&#xff1f; 泛型是一种特殊的类型&#xff0c;它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行。 下面是两个经典…

pvr波形是什么意思_PVR的完整形式是什么?

pvr波形是什么意思PVR&#xff1a;Priya村路演 (PVR: Priya Village Roadshow) PVR is an abbreviation of Priya Village Roadshow. It is one of the biggest and leading multiplex cinema chains in India. PVR是Priya Village Roadshow的缩写 。 它是印度最大和领先的多元…

《MySQL——查询长时间不返回的三种原因与查询慢的原因》

目录查询长时间不返回等MDL锁等flush等行锁查询慢构造一张表&#xff0c;表有两个字段id和c&#xff0c;再里面插入了10万行记录 create table t (id int(11) not null,c int(11) default null,primary key (id) ) engine InnoDB;delimiter ;; create procedure idata() begi…

《MySQL——幻读与next-key lock与间隙锁带来的死锁》

create table t (id int(11) not null,c int(11) default null,d int(11) default null,primary key (id),key c (c) ) engine InnoDB;insert into t values(0,0,0),(5,5,5),(10,10,10),(15,15,15),(20,20,20),(25,25,25);该表除了主键id&#xff0c;还有索引c。 问下面的语句…

css 阴影 效果_CSS阴影效果

css 阴影 效果CSS中的阴影效果 (Shadow Effects in CSS) It is always good to make our web pages stylish and beautiful, web pages that would catch users eyes instantly but one gets confused as to how to style his or her web page. The confusion is quite legit t…

《MySQL——加锁规则(待补全,有些没看懂)》

catalog加锁规则等值查询间隙锁非唯一索引等值锁主键索引范围锁非唯一索引范围锁唯一索引范围锁 bug非唯一索引上存在"等值"的例子limit语句加锁关于死锁总结 1、查询过程中访问到的对象才会加锁&#xff0c;而加锁的基本单位是next-key lock&#xff08;前开后闭&am…

PHP环境搭建:Windows 7下安装配置PHP+Apache+Mysql环境教程

这两天刚装好Windows 7&#xff0c;碰巧前段时间有朋友问我Windows下如何安装搭建PHP环境&#xff0c;所以打算勤劳下&#xff0c;手动一步步搭建PHP环境&#xff0c;暂且不使用PHP环境搭建软件了&#xff0c;在此详细图解在Windows 7下安装配置PHPApacheMysql环境的教程&#…

《MySQL—— 业务高峰期的性能问题的紧急处理的手段 》

catalog短连接风暴先处理占着连接但是不工作地线程减少连接过程的消耗慢查询性能问题索引没有设计好语句没写好选错索引QPS突增问题短连接风暴 正常的短连接&#xff1a; 执行很少sql语句就断开&#xff0c;下次需要的时候再重连。MySQL建立连接的过程成本很高&#xff0c;包含…

《MySQL——redo log 与 binlog 写入机制》

目录binlog写入机制redo log写入机制组提交机制实现大量的TPS理解WAL机制如何提升IO性能瓶颈WAL机制告诉我们&#xff1a;只要redo log与binlog保证持久化到磁盘里&#xff0c;就能确保MySQL异常重启后&#xff0c;数据可以恢复。 下面主要记录一下MySQL写入binlog和redo log的…

字符串:KMP Eentend-Kmp 自动机 trie图 trie树 后缀树 后缀数组

涉及到字符串的问题&#xff0c;无外乎这样一些算法和数据结构&#xff1a;自动机 KMP算法 Extend-KMP 后缀树 后缀数组 trie树 trie图及其应用。当然这些都是比较高级的数据结构和算法&#xff0c;而这里面最常用和最熟悉的大概是kmp&#xff0c;即使如此还是有相当一部分人也…

WPF CanExecuteChanged

继承ICommand ,RelayCommand命令 1 public class RelayCommand : ICommand2 {3 private readonly Action _execute;4 private readonly Func<bool> _canExecute;5 public event EventHandler CanExecuteChanged;6 public RelayComma…

《MySQL——主备一致性六问六答》

目录备库为什么要设置为只读模式&#xff1f;备库设置为只读&#xff0c;如何与主库保持同步更新&#xff1f;A到B的内部流程如何&#xff1f;binlog内容是什么&#xff1f;row格式对于恢复数据有何好处M-M结构的循环复制问题以及解决方案备库为什么要设置为只读模式&#xff1…

fyi 在邮件里是什么意思_FYI的完整形式是什么?

fyi 在邮件里是什么意思仅供参考&#xff1a;供您参考 (FYI: For Your Information) FYI is an acronym of "For Your Information". It is a widespread internet slang used these days in text messaging, instant messaging, and chatting on Facebook, WhatsApp…

Hyper-V 替换 vmwp

要激活 Hyper-V 下的虚机 最简单的方法是用带证书的vmwp替换掉原来的 带证书的vmwp参见&#xff1a;http://bbs.pcbeta.com/viewthread-1408240-1-1.html 下载后腰替换 先把 Hyper-V 的俩服务停止掉 然后找到 C:\Windows\System32\vmwp.exe 右键--安全 替换掉所有者 然后给自己…

ejb模式_EJB的完整形式是什么?

ejb模式EJB&#xff1a;企业Java Bean (EJB: Enterprise Java Bean) EJB is an abbreviation of Enterprise Java Bean. EJB is one of many Java application programming interfaces (API) for flexible and manageable structuring of Java Platform, Enterprise Edition (J…

Android之PreferenceActivity

http://www.cnblogs.com/wservices/archive/2010/07/08/1773449.html 看到很多书中都没有对PreferenceActivity做介绍&#xff0c;而我正好又在项目中用到&#xff0c;所以就把自己的使用的在这总结一下&#xff0c;也方便日后查找。 PerferenceActivity是什么&#xff0c;看下…

浅谈算法和数据结构: 七 二叉查找树

前文介绍了符号表的两种实现&#xff0c;无序链表和有序数组&#xff0c;无序链表在插入的时候具有较高的灵活性&#xff0c;而有序数组在查找时具有较高的效率&#xff0c;本文介绍的二叉查找树(Binary Search Tree&#xff0c;BST)这一数据结构综合了以上两种数据结构的优点。…

《MySQL——备库多线程复制策略。》

目录备库并行复制能力MySQL5.6版本 并行复制策略MariaDB 并行复制策略MySQL5.7版本 并行复制策略MySQL5.7.22版本 并行复制策略总结备库并行复制能力 主要涉及两个方面的并行度&#xff1a; 1、客户端写入主库的能力 2、备库上sql_thread执行中转日志relay log 1的并行能力…

为移动端网页构造快速响应按钮

背景 在谷歌&#xff0c;我们不断地推测手机网页应用的可能性。像HTML5这样的技术使我们网页版的应用以及运行在手机设备上的原生应用。而这些技术的成就之一就是我们开发了一种新的创建按钮的方法&#xff0c;使按钮的响应时间远远快于一般的HTML按钮。在此之前的按钮或者其他…