第1阶段WEB前端A:HTML&CSS基础
1.前端页面有哪三层构成,分别是什么?作用是什么?
a.结构层:由 HTML 或 XHTML 之类的标记语言负责创建,仅负责语义的表达。解决了页面”内容是什么”的问题。
b.表示层:由CSS负责创建,解决了页面“如何显示内容”的问题。
c.行为层:由脚本负责。解决了页面上“内容应该如何对事件作出反应”的问题。
2.请简述盒模型
a.IE6盒子模型与W3C盒子模型
b.文档中的每个元素被描绘为矩形盒子。盒子有四个边界:外边距边界margin, 边框边界border, 内边距边界padding与内容边界content
c.CSS3中有个box-siwzing属性可以控制盒子的计算方式
d.content-box:padding和border不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和border、padding之和。(W3C盒子模型)
e.border-box:padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值。(IE6盒子模型)
3.标签上title属性与alt属性的区别是什么?
a. 12alt属性是为了给那些不能看到你文档中图像的浏览者提供文字说明的。且长度必须少于100个英文字符或者用户必须保证替换文字尽可能的短, 下·不支持图像显示或者图像显示被关闭的浏览器的用户,视觉障碍的用户和使用屏幕阅读器的用户等
b. title属性为设置该属性的元素提供建议性的信息。使用title属性提供非本质的额外信息
4.简述一下src与href的区别
a.src用于替换当前元素
b.href用于在当前文档和引用资源之间确立联系
c.src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置
d.href是Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接
5.请阐述table的缺点
a. 太深的嵌套,比如table>tr>td>h3,会导致搜索引擎读取困难,而且,最直接的损失就是大大增加了冗余代码量
b. 灵活性差,比如要将tr设置border等属性,是不行的,得通过td
c. 代码臃肿,当在table中套用table的时候,阅读代码会显得异常混乱
d. 混乱的colspan与rowspan,用来布局时,频繁使用他们会造成整个文档顺序混乱
e. 不够语义
6.iframe的优缺点
优点:
a. 解决加载缓慢的第三方内容如图标和广告等的加载问题
b. iframe无刷新文件上传
c. iframe跨域通信
缺点:
d. iframe会阻塞主页面的Onload事件
e. 无法被一些搜索引擎索引到
f. 页面会增加服务器的http请求
g. 会产生很多页面,不容易管理
7.html5有哪些新特性、移除了那些元素?(扩展)
新特性:
a. HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加
b. 拖拽释放(Drag and drop) API
c. 语义化更好的内容标签(header,nav,footer,aside,article,section)
d. 音频、视频API(audio,video)
e. 画布(Canvas) API
f. 地理(Geolocation) API
g. 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失
h. sessionStorage 的数据在页面会话结束时会被清除
i. 表单控件,calendar、date、time、email、url、search
j. 新的技术webworker, websocket等
移除的元素:
k. 纯表现的元素:basefont,big,center, s,strike,tt,u
l. 对可用性产生负面影响的元素:frame,frameset,noframes
8.谈谈你对CSS布局的理解
a. 固定布局
b. 流式布局
c. 弹性布局
d. 浮动布局
e. 定位布局
f. margin和padding
9.述CSS样式表继承
a. CSS样式表继承指的是,特定的CSS属性向下传递到子孙元素,会被继承下去的属性:
b.文本相关:font-family,font-size, font-style,font-variant,font-weight, font,letter-spacing,line-height,color
c. 列表相关:list-style-image,list-style-position,list-style-type, list-style
10.请简述CSS的选择器
a. 元素选择器:* 、E、 E#id、 E.class
b. 关系选择器:E、F、E>F、E+F、E~F
c. 属性选择器:E[att]、E[att=“val”]、E[att~=“val”]、E[att^=“val”]、E[attKaTeX parse error: Expected 'EOF', got '&' at position 4608: …t 第1阶段WEB前端B:JS&̲JQuery基础 28.请解释…(document).ready()是当DOM文档树加载完成后执行一个函数 (不包含图片,css等)所以会比load较快执行,在原生的jS中不包括ready()这个方法,只有load方法就是onload事件
38.列举你用过的javascript框架,并简述它们的优缺点
a.js框架:jQuery EasyUI、ExtJS、Bootstrap、AngularJS等等。
b.jQuery EasyUI:轻量级web前端ui开发框架,尤其适合MIS系统的界面开发,能够重用jquery插件。
c.ExtJS:统一的前端UI开发框架,学习难度中等。尤其适合MIS系统的界面开发,开发文档和例子代码都比较完整。缺点是大量的js脚本,降低了运行速度。
d.Bootstrap:响应式网站开发框架,优点是降低了后端开发人员开发前端页面的难度,统一了界面风格,缺点是界面风格比较单一。
e.AngularJS:将java后端的优秀特性引入到了js前端,大而全的框架。缺点是学习曲线高,Angular2几乎重写。
39.jQuery 能做什么?
a.获取页面的元素
b.修改页面的外观
c.改变页面大的内容
d.响应用户的页面操作
e.为页面添加动态效果
f.无需刷新页面,即可以从服务器获取信息
g.简化常见的javascript任务
40.你使用过哪些数据格式,它们各有什么特点?
a.HTML格式,JSON格式,javascript格式,XML格式
b.HTML片段提供外部数据一般来说是最简单的
c.如果数据需要重用,而且其他应用程序也可能一次受到影响,那么在性能和文件大小方面具有优势的JSON通常是不错的选择
d.当远程应用程序未知时,XML则能够为良好的互操作性提供最可靠的保证
41.XML 与 HTML 的主要区别?
a.XML是区分大小写字母的,HTML不区分
b.在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略

或者之类的结束 标记。在XML中,绝对不能省略掉结束标记
HTML:


XML:


c.在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了
d.在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的
e.在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值
f.XML是用来存储和传输数据,HTML是用来显示数据
g.扩展:如果使用了完全符合XML语法要求的HTML,那么就叫做符合XHTML标准。符合XHTML标准的页面有利于SEO
42.请你谈谈Cookie的弊端
a.每个特定的域名下最多生成的cookie个数有限制
b.IE和Opera 会清理近期最少使用的cookie,Firefox会随机清理cookie
c.cookie的最大大约为4096字节,为了兼容性,一般不能超过4095字节
d.安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。
e.扩展:浏览器本地存储
在HTML5中提供了sessionStorage和localStorage。
sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁,是会话级别的存储
localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的
43.web storage和cookie的区别
a.Cookie的大小是受限的
b.每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽
c.cookie还需要指定作用域,不可以跨域调用
d.Web Storage拥有setItem,getItem等方法,cookie需要前端开发者自己封装setCookie,getCookie
e.Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生
f.IE7、IE6中的UserData通过简单的代码封装可以统一到所有的浏览器都支持web storage
第1阶段WEB前端C: Ajax基础
44.什么是ajax?ajax作用是什么?
a.AJAX = 异步 JavaScript 和 XML。
b.AJAX 是一种用于创建快速动态网页的技术。
c.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新
45.Ajax原理?
c.Ajax的原理就是:通过javascript的方式,将前台数据通过xmlhttp对象传递到后台,后台在接收到请求后,将需要的结果,再传回到前台,这样就可以实现不需要页面的回发,页是数据实现来回传递,从页实现无刷新
d.Ajax的原理简单来说,实际上就是通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面
e.这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解
f.总结:我们可以看出,XMLHttpRequest对象完全用来向服务器发出一个请求的,它的作用也局限于此,但它的作用是整个ajax实现的关键,我们可以把服务器端看成一个数据接口,它返回的是一个纯文本流,当然,这个文本流可以是XML格式,可以是Html,可以是Javascript代码,也可以只是一个字符串。这时候,XMLHttpRequest向服务器端请求这个页面,服务器端将文本的结果写入页面,这和普通的web开发流程是一样的,不同的是,客户端在异步获取这个结果后,不是直接显示在页面,而是先由javascript来处理,然后再显示在页面
46.AJAX都有哪些优点和缺点
优点:
a.最大的一点是页面无刷新,用户的体验非常好
b.使用异步方式与服务器通信,具有更加迅速的响应能力。
c.可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
d.基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。
缺点:
e.ajax不支持浏览器back按钮。
f.安全问题 AJAX暴露了与服务器交互的细节。
g.对搜索引擎的支持比较弱
h.破坏了程序的异常机制,不容易调试
47.AJAX技术体系的组成部分有哪些?
a.HTML
b.Css
c.Dom
d.Xml
e.XmlHttpRequest
f.JavaScript
48.请介绍一下XMLHttprequest对象
a.Ajax的核心是JavaScript对象XmlHttpRequest。
b.该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。
c.简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
d.通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新。
49.介绍一下XMLHttpRequest对象的常用方法和属性
a.open(“method”,”URL”) ; 建立对服务器的调用,第一个参数是HTTP请求 方式可以为GET,POST或任何服务器所支持的您想调用的方式,第二个参数是请求页面的URL
b.send()方法,发送具体请求
c.abort()方法,停止当前请求
d.readyState属性 请求的状态 有5个可取值0=未初始化 ,1=正在加载2=以加载,3=交互中,4=完成
e.responseText属性 服务器的响应,此属性返回一个字符串响应数据
f.reponseXML 属性 服务器的响应,表示为XML
g.status 服务器的HTTP状态码,200对应ok 400对应not found
50.原生js ajax请求有几个步骤?分别是什么?
a.创建 XMLHttpRequest对象
var ajax = new XMLHttpRequest()
b.规定请求的类型、URL 以及是否异步处理请求
ajax.open(‘GET’,url,true)
c.发送信息至服务器时内容编码类型
ajax.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”)
d.发送请求
ajax.send(null);
e.接受服务器响应数据
ajax.onreadystatechange = function () {if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)){}}
51.ajax几种请求方式?他们的优缺点?
a.常用的post,get,delete put
b. 代码上的区别:
1:get通过url传递参数;
2:post设置请求头部规定请求数据类型
c. 使用上的区别:
1:post比get安全(因为post参数在请求体中。get参数在url上面)
2:get传输速度比post快 根据传参决定的(post通过请求体传参,后台通过数据流接收。速度稍微慢一些。而get通过url传参可以直接获取)
3: post传输文件大理论没有限制,get传输文件小大7-8k,ie4k左右
4:get获取数据post上传数据(上传的数据比较多 而且上传数据都是重要数据。所以不论在安全性还是数据量级 post是最好的选择)
52.跨域解决方案有哪些?(扩展)
a.方案一原理:动态创建一个script标签。利用script标签的src属性不受同源策略限制。因为所有的src属性和href属性都不受同源策略限制。可以请求第三方服务器数据内容;
步骤1:去创建一个script标签
步骤2: 接口参数,必须要带一个自定义函数名 要不然后台无法返回数据
步骤3:通过定义函数名去接收后台返回数据
如图:
b.方案二原理:CORS跨域资源共享(服务器设置Access-Control-Allow-OriginHTTP响应头之后,浏览器将会允许跨域请求;限制:浏览器需要支持HTML5,可以支持POST,PUT等方法兼容ie9以上)
如图:
c.方向代理
d.window+iframe
第2阶段A:C#基础
53.CTS、CLS、CLR分别作何解释?
a.CTS:通用类型系统 (commontype system)。一种确定公共语言运行库如何定义、使用和管理类型的规范。即Int32、Int16→int、String→string、Boolean→bool
b.CLS:CLS 公共语言规范(CommonLanguage Specification)。一种确定公共语言运行库如何定义、使用和管理类型的规范。即不同语言语法的不同。
c.CLR:公共语言运行库(CommonLanguage RuntimeCLR),.NETFramework 提供了一个称为公共语言运行库的运行时环境,它运行代码并提供使开发过程更轻松的服务。即.Net提供的那些类。
54.什么叫应用程序域(AppDomain)?
a. 一种边界,它由公共语言运行库围绕同一应用程序范围内创建的对象建立(即,从应用程序入口点开始,沿着对象激活的序列的任何位置)
b. 应用程序域有助于将在一个应用程序中创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。
c. 在一个单独的进程中可以存在多个应用程序域。应用程序域可以理解为一种轻量级进程。起到安全的作用,占用资源小。
55.简述 private、protected、public、internal 修饰符的访问权限
a.private: 私有成员, 在类的内部才可以访问
b.protected: 保护成员,该类内部和继承类中可以访问
c.public: 公共成员,完全公开,没有访问限制
d.internal: 当前程序集内可以访问
56.ADO.NET中的五个主要对象
a.Connection:主要是开启程序和数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得 数据的。Close 和 Dispose 的区别,Close 以后还可以 Open,Dispose 以后则不能再用。
b.Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令, 以及调用存在数据库中的存储过程等。这个对象是架构在 Connection 对象上,也就是 Command 对象是透过连 接到数据源
c.DataAdapter:主要是在数据源以及 DataSet 之间执行数据传输的工作,它可以透过 Command 对象下达命令后, 并将取得的数据放入 DataSet 对象中。这个对象是架构在 Command 对象上,并提供了许多配合 DataSet 使用的 功能。 DataSet:这个对象可以视为一个暂存区(Cache) ,可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来,DataSet 是放在内存中的。
d.DataSet 的能力不只是可以储存多个 Table 而已,还可以透过 DataAdapter 对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是 ADO.NET 中重量级的对象,这个对象架构在 DataAdapter 对象上,本身不具备和数据源沟通的能力;也就是说 我们是将 DataAdapter 对象当做 DataSet 对象以及数据源间传输数据的桥梁。DataSet 包含若干 DataTable、 DataTableTable 包含若干 DataRow。 DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用 DataReader 对象。
e.DataReader 对象只是一次一笔向下循序的读取数据源中的数据,这些数据是存在数据库服务器中的,而不是一次性加载到程序 的内存中的,只能(通过游标)读取当前行的数据,而且这些数据是只读的,并不允许作其它的操作。因为 DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很 好。使用 DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。 ADO.NET 使用 Connection 对象来连接数据库,使用 Command 或 DataAdapter 对象来执行 SQL 语句,并将执 行的结果返回给 DataReader 或 DataAdapter ,然后再使用取得的 DataReader 或 DataAdapter 对象操作数据结果。
57.DataReader和DataSet的异同(简略版)?
a. DataReader 使用时始终占用 SqlConnection,在线操作数据库 每次只在内存中加载一条数据,所以占用的内存是很小的 是只进的、 只读的
b. DataSet 则是将数据一次性加载在内存中.抛弃数据库连接…读取完毕即放弃数据库连接(非连 接模式)
c. DataSet 将数据全部加载在内存中.所以比较消耗内存…但是确比 DataReader 要灵活…可以动 态的添加行,列,数据.对数据库进行 回传更新操作(动态操作读入到内存的数据)
58.属性和public 字段的区别是什么?调用 set 方法为一个属性设值,然后用 get 方法读取出来的值一定是 set 进去的值吗?
a.属性可以对设值、取值的过程进行非法值控制,比如年龄禁止设值负数,而字段则不能进行这样的设置
b.虽然 一般情况下 get 读取的值就是 set 设置的值,但是可以让 get 读取的值不是 set 设置的值的。极端的例子。Public Age{get{return100;}set{}}
c.扩展::用 reflector 反编译可以看出,属性内部本质上就是 set_* 、get_*** 方法
class Person
{
public int Age{ get{return 3;}set{} }
}
Person p1=new Person();
P1.Age=30;
P1.Age++;
Console.Write(p1.Age);//输出3
59.值类型和引用类型的区别?
a.将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用, 而不复制对象本身
b.值类型不可能派生出新的类型:所有的值类型均隐式派生自 System.ValueType。但与引用类型相同的是,结 构也可以实现接口
c.值类型不可能包含 null 值:然而,可空类型功能允许将 null 赋给值类型
d.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值
60.什么是装箱(boxing)和拆箱 (unboxing)?
a.装箱:从值类型接口转换到引用类型。
b.拆箱:从引用类型转换到值类型
如图:
61.堆和栈的区别?
a.栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型 参数等都在栈内存中。
b.堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。
62.什么是强类型,什么是弱类型?哪种更好些?为什么?
a.C#中int i=3; i=“a”;不可以。JavaScript中 var i=3; i=3; i=“a”;可以。
b.强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型。
c.没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。弱类型更灵活,但是效率低,而且出错概率高
d.一般用于编译型编程语言,如 c++,java,c#,pascal 等,弱类型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如 javascript,vb 等
63.是否可以继承 String类?
a.String 类是 sealed 类故不可以继承
64.不是说字符串是不可变的吗?string s=“abc”;s=“123” s=“abc”;s=“123"不就是变了吗?
a.String 是不可变的在这段代码中,s 原先指向一个 String 对象,内容是 “abc”,然后我们将 s 指向"123”,那么 s 所指向的那个对象是否发生了改变呢?答案是没有
b.这时,s 不指向原来那个对象了,而指向了另一个 String 对象,内容为"123",原来那个对象还存在于内存之中,只是 s 这个引用变量不再指向它了。
65.Strings s=new String(“xyz”);创建了几个 String Object?
a.两个对象
b.一个是“xyx”
c.一个是指向“xyx”的引用对象。
66.string str= null与 string str="“说明其中的区别?
a.stringstr =null 是不给他分配内存空间,而 stringstr =”" 给它分配长度为空字符串的内存空间。
b.stringstr =null 没有string对象,string str="“有一个字符串对象。
67.StringBuilder和String 的区别?
a.String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不 会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用String
b.如果要操作一个不断增长的字符串,尽量不用 String 类,改用 StringBuilder 类。
c.两个类的工 作原理不同:String 类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到 另一个字符串上的工作没错,但是在.NET 框架下,这个操作实在是划不来。因为系统先是把 两个字符串写入内存,接着删除原来的 String 对象,然后创建一个 String 对象,并读取内存 中的数据赋给该对象。这一来二去的,耗了不少时间。而使用 System.Text 命名空间下面的 StringBuilder 类就不是这样了,它提供的 Append 方法,能够在已有对象的原地进行字符串 的修改,简单而且直接
d.一般情况下觉察不到这二者效率的差异,但如果你要对某个 字符串进行大量的添加操作,那么 StringBuilder 类所耗费的时间和 String 类简直不是一个数量级的。
68.int、DateTime、string是否可以为 null?
a.int、DateTime 不能
b.因为其为 Struct 类型,而结构属于值类型,值类型不能为 null,只有引用类型才能被赋值 null。 string 可以为 null
69.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行?
a.会执行,在 return 前执行
扩展:读取数据库中数据的条数的程序,如果 C#设计的是先执行 cmd.Dispose()再执行 return 就会出现 return 执行失败了,因为 cmd 已经 Dispose 了。
如图:
70.new关键字用法?
a.new 运算符 用于创建对象和调用构造函数。
b.new 修饰符 用于向基类成员隐藏继承成员。
c.new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型。
71.using键字有什么用?什么是IDisposable?
a.using 可以声明 namespace 的引入,还可以实现非托管资源的释放,实现了 IDisposiable 的类在 using 中创建
b.using 结束后会自动调用该对象的 Dispose 方法,释放资源。
c.加分的补充回答:using 其实等价于 try……finally, 用起来更方便
72.GC是什么?为什么要有 GC?
a.GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。
b.GC只能处理托管内存资源的释放,对于非托管资源则不能使用 GC 进行回收,必须由程序员手动回收,一个例子就是 FileStream 或者 SqlConnection 需要程序员调用 Dispose 进行资源的回收。
c.要请求垃圾收集,可以调用下面的方法:GC.Collection()一般不需要手动调用 GC.Collection()。
73.能用foreach遍历访问的对象的要求
a.需要实现 IEnumerable 接口或声明 GetEnumerator 方法的类型。
74.是否可以从一个 static方法内部发出对非 static方法的调用?
a.不可以
b.因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方 法调用,而 static 方法调用时不需要创建对象,可以直接调用
c.也就是说,当一个 static 方法被调用时,可能还没有创建任何实例对象,如果从一个 static 方法中发出对非 static 方法的调用,那个非 static 方法是关 联到哪个对象上的呢?这个逻辑无法成立,所以,一个 static 方法内部不能发出对非 static 方法的调用。
75.请叙const与readonly的区别
a.const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数。 const 数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估。 const 成员可以使用另一个 const 成员来初始化,前提是两者之间没有循环依赖。
b.readonly 在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把 object 的初始化动作推迟到运行期进行。
c.readonly 关键字与 const 关键字不同: const 字段只能在该字段的声明中初始化。 readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数。
d.readonly 只能在声明时或者构造函数里面初始化,并且不能在static 修饰的构造函数里面。
76.在.net中类(class)与结构 (struct)的异同?
a.Class可以被实例化,属于引用类型,是分配在内存的堆上的。类是引用传递的
b.Struct 属于值类型,是分配在内存的栈上的。结构体是复制传递的。加分的回答:Int32、Boolean 等都属于结构体。
77.C#中的接口和类有什么异同?
不同点:
a.不能直接实例化接口。
b.接口不包含方法的实现。
c.接口可以多继承,类只能单继承。
d.类定义可在不同的源文件之间进行拆分
相同点:
e.接口、类和结构都可以从多个接口继承。
f.接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
g.接口和类都可以包含事件、索引器、方法和属性
78.abstract class和interface有什么区别?
相同点:
a.都不能被直接实例化,都可以通过继承实现其抽象方法。
不同点:
b.接口支持多继承;抽象类不能实现多继承。
c.接口只能定义行为;抽象类既可以定义行为,还可能提供实现。
d.接口可以用于支持回调(CallBack);抽象类不能实现回调,因为继承不支持。
e.接口只包含方法(Method)、属性(Property)、索引器(Index)、事件(Event)的签名,但不能定义字段和包含实现的方法;
f.抽象类可以定义字段、属性、包含有实现的方法。
接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用于引用类型。例如,Struct 就可以继承接口,而不能继承类。
79.您在什么情况下会用到虚方法?它与接口有什么不同?
a.子类重新定义父类的某一个方法时,必须把父类的方法定义为 virtual
b.在定义接口中不能有方法体,虚方法可以。实现时,子类可以不重新定义虚方法,但如果一个类继承接口,那必须实现这个接口。
80.C#支持多重继承么?
a.类之间不支持,接口之间支持
b.类对接口叫做实现,不叫继承
81.C#中的委托是什么?事件是不是一种委托?事件和委托的关系?
a.委托可以把一个方法作为参数代入另一个方法。
b.委托可以理解为指向一个函数的指针
c.委托和事件没有可比性,因为委托是类型,事件是对象
下面说的是委托的对象(用委托方式实现的事件)和 (标准的 event 方式实现)事件的区别:
d.事件的内部是用委托实现的。因为对于事件来讲,外部只能“注册自 己+=、注销自己-=”,外界不可以注销其他的注册者,外界不可以主动触发事件,因此如果用 Delegate 就没法 进行上面的控制,因此诞生了事件这种语法
e.事件是用来阉割委托实例的,类比用一个自定义类阉割 List。事件只能 add、remove 自己,不能赋值。事件只能+=、-=,不能= 。加分的补充回答:事件内部就是一个private的委托和 add、remove 两个方法
如图:
82.override与重载(overload)的区别?
a.重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要。
b.重载(overload)是面向过程的概念。
c.Override 是进行基类中函数的重写
d.Override 是面向对象的概念
83.C#中索引器是否只能根据数字进行索引?是否允许多个索引器参数?
a.参数的个数和类型都是任意的
b.用 reflector 反编译可以看出,索引器的内部本质上就是 set_item、get_item 方法
84.什么是反射?
a.程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模块,类型的对象
b.它能够动态 的创建类型的实例
c.设置现有对象的类型或者获取现有对象的类型
d.能调用类型的方法和访问类型的字段属性。 它是在运行时创建和使用类型实例
85.描述线程与进程的区别?
a.线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边 界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界
b.一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。而同一进程中的不同线程 共享代码和数据空间。用一个比喻来说,如果一个家庭代表一个进程,在家庭内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,同时也有权利对家庭财富进行消费,当面对一个任务的时候, 家庭也可以派出几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的财产。
c.简化版:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。
第2阶段B:ASP.NET 基础
86.三层架构
a.通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。 区分层次的目的即为了“高内聚,低耦合”的思想。
b.表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候的所见所得
c.业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理
d.数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等每层之间是一种垂直的关系
e.三层结构是 N 层结构的一种,一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化
f.优点:分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本
87.B/S与C/S的联系与区别
a.C/S 是 Client/Server 的缩写。客户端需要安装专用的客户端软件。
b.B/S是 Brower/Server 的缩写,客户机上只要安装一个浏览器。在这种结构下,用户界面 完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要逻辑在服务器端 实现。浏览器通过WebServer 同数据库进行数据交互。
C/S 与 B/S 区别:
c.硬件环境不同: C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务 器提供连接和数据交换服务. B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比 C/S 更强的适应范围, 一般只要有操作系统和浏览器就行
d.对安全要求不同 C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信 息系统采用 C/S 结构适宜. 可以通过 B/S 发布部分可公开信息. B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户
e.处理问题不同 C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相 关. 应该都是相同的系统。C/S 的客户端由于是本地程序,因此和本地硬件、程序的交 互性很强,比如可以控制本机的其他程序、可以读写本地磁盘文件、可以与硬件交互。 B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作 系统平台关系最小,正因为如此 B/S 很难和本地硬件、程序、文件进行交互,比如很 难控制本机的其他程序、很难读写本地磁盘文件、很难与硬件交互,当然可以用ActiveX 技术解决,比如网银等就是这么解决的,这样做的问题就是可能会被客户拒绝,而且 只局限于 Windows 操作系统。
f.C/S 也分为两层架构和三层架构。两层架构:客户端程序程序直连数据库;三层架构: 客户端访问服务端的服务,主要逻辑代码写在服务端的服务中,然后服务端服务再去访问数据库,Oracle版分布式呼叫中心,WCF。
88.什么是受管制的代码?什么是托管代码?
a.在.Net 环境中运行的任何代码都是受管制的代码(managedcode)
b.Net 外部的代码也运行在 windows上,这些代码称为未受管制的代码(unmanagedcode)
c.使用基于公共语言运行库的语言编译器开发的代码称为托管代码
d.托管代码具有许多优点, 例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。
89.什么是code-Behind技术?
a.就是代码隐藏,在 ASP.NET 中通过 ASPX 页面指向 CS 文件的方法实现显示逻辑和处理逻 辑的分离,这样有助于 web 应用程序的创建
b.比如分工,美工和编程的可以各干各的,不用再像以前 asp 那样都代码和 html 代码混在一起,难以维护
90.请解释 ASP.NET中的Web页面与其隐藏类之间的关系?
a.一个ASP.NET页面一般都对应一个隐藏类
b.一般都在ASP.NET页面的声明中指定了隐藏类例如一个页面 Tst1.aspx 的页面声明如下
<%@ Page language=“c#” Codebehind=“Tst1.aspx.cs” AutoEventWireup=“false” Inherits=“T1.Tst1”%>
c.Codebehind=“Tst1.aspx.cs” 表明经编译此页面时使用哪一个代码文件
d.Inherits=“T1.Tst1” 表用运行时使用哪一个隐藏类
91.什么viewstate,能否禁用?是否所用控件都可以禁用?
a.Viewstate 是保存状态的一种机制,EnableViewState 属性设置为 false 即可禁用。(最有力的举 例子:Label、TextBox 在禁用 ViewState 后不同的表现来说明)
92.什么是 WEB 服务控件?使用 WEB 服务控件有那些优势、劣势?
a.web 服务控件就是可以在服务器执行的控件,优势在于可以回传数据(ViewState),带有事件驱 动(doPostBack),简化了 Html 标签的使用,使得开发 ASP.net 程序可以像开发 Winform 程序一 样简单。Web 服务控件最终还是被渲染(Render)为 Html 标签
b.使用 WEB 服务控件的劣势是会生 成一些无用的属性、ViewState 等,不利于 SEO,一般在内网系统或者互联网系统的后台中使用 WEB 服务控件。如果没有复杂的服务器交互动作,就不用 Web 服务器控件。
c.runat=server的HTML 控件有什么特点:路径不用程序员解析,可以使用“~”来虚拟路径。
93.列举 ASP.NET页面之间传递值的几种方式
a.使用 QueryString, 如…?id=1;response.Redirect()…
b.使用 Session 变量
c.使用 Server.Transfer
d.Cookie 传值
e.Application 传值
f.PreviosPage
g.Server.Transfer 和 Response.Redirect 的区别:Server.Transfer 是服务器内部的转接,浏览器不知晓; Response.Redirect 是有浏览器参与的,所以在地址栏中可以看到地址的变化。
h.扩展:
Server.Transfer 仅是服务器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;Response.Redirect 则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。
Server.Transfer 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。这个过程中浏览器和Web服务器之间经过了一次交互。 Response.Redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求。这个过程中浏览器和Web 服务器之间经过了两次交互
94.通过超链接怎样传递中文参数?
a.用 URL 编码
b.通过 QueryString 传递
c.用 urlencode 编码,用 urldecode 解码
95.Session,ViewState,Application,cookie的区别?
a.Session:用于保持状态的基于 Web 服务器的方法。Session 允许通过将对象存储在Web 服务器的内存中在整个用户会话过程中保持任何对象。主要用于保持代码隐藏类中对象的状态。为每个用户创建的,用于存储单个用户,因为他是相对每个用户的.所以可能来取得在线人数等。
b.ViewState:主要用于保持 Web 页上控件的状态。当 Web 页上的控件被绑定到代码隐藏类中的对象。
c.Application 用于存储所有用户都可视的信息.所以它存储的是要让所有用户共享的一些信息.如总访问数等Cache,页面缓存。
d.Cookie:通常我们都把它放在客户端,也可以存储在服务器端。主要用它存储用户的个性设制,和登录信息。
96.post、get的区别?
a.get的参数会显示在浏览器地址栏中,而post的参数不会显示在浏览器地址栏中
b.使用post提交的页面在点击【刷新】按钮的时候浏览器一般会提示“是否重新提交”,而get则不会
c.用get的页面可以被搜索引擎抓取,而用post的则不可以
d.用post可以提交的数据量非常大,而用get可以提交的数据量则非常小(2k),受限于网页地址的长度
e.用post可以进行文件的提交,而用get则不可以
f.扩展:通过html表单方式提交数据和ajax方式请求的原理不一样:不完百全一样。一般通过Form方式度提交的数据会设置特殊的Content-问Type:application/x-www-form-urlencoded,也会改变location。而通过Ajax请求可以答自定义请求体类型Content-Type,它的请专求头部会设置“属Connection”为”Keep-Alive”
97.Asp.net中的错误机制?
a.定制错误页来将显示一个友好的报错页面。
b.页面中未捕获一样会触发Page_Error,应用程序中的未捕获异常会触发Application_Error。通过HttpContext.Current.Server.GetLastError()拿到未捕捉异常,记录到Log4Net日志中。
98.网站想要实现文件防盗链的功能,说说你的解决方案?
a.读取HTTP报文头中的UrlReferrer在Application_BeginRequest中我们可以判断用户的请求是否来源于本网站,如果不是我们可以终止用户的请求(Response.End();)
99.序列化有何作用?
a.通过流类型可以方便地操作各种字节流,但如何把现有的实例对象转换为方便传输的字节流,就需要用到序列化的技术
100.什么是SQL注入式攻击?
a.所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。
b.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。
c.常见的SQL注入式攻击过程例如:
(1)某个ASP.NET Web应用有一个登录页面,这个登录页面控制着用户是否有权访问应用,它要求用户输入一个名称和密码。
(2)登录页面中输入的内容将直接用来构造动态的SQL命令,或者直接用作存储过程的参数。下面是ASP.NET应用构造查询的一个例子:
System.Text.StringBuilder query = new System.Text.StringBuilder(“SELECT * from Users WHERE login = '”)
Append(txtLogin.Text).Append(”’ AND password=’")
Append(txtPassword.Text).Append("’")
(3)攻击者在用户名字和密码输入框中输入"‘或’1’='1"之类的内容。
(4)用户输入的内容提交给服务器之后,服务器运行上面的ASP.NET代码构造出查询用户的SQL命令,但由于攻击者输入的内容非常特殊,所以最后得到的SQL命令变成:SELECT * from Users WHERE login = ‘’ or ‘1’=‘1’ AND password = ‘’ or ‘1’=‘1’。
(5)服务器执行查询或存储过程,将用户输入的身份信息和服务器中保存的身份信息进行对比
(6)由于SQL命令实际上已被注入式攻击修改,已经不能真正验证用户身份,所以系统会错误地授权给攻击者
d.如果攻击者知道应用会将表单中输入的内容直接用于验证身份的查询,他就会尝试输入某些特殊的SQL字符串篡改查询改变其原来的功能,欺骗系统授予访问权限
e.系统环境不同,攻击者可能造成的损害也不同,这主要由应用访问数据库的安全权限决定。如果用户的帐户具有管理员或其他比较高级的权限,攻击者就可能对数据库的表执行各种他想要做的操作,包括添加、删除或更新数据,甚至可能直接删除表
101.如何防范SQL注入式攻击?
a.利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了。过滤输入内容可以按多种方式进行。
b.对于动态构造SQL查询的场合,可以使用下面的技术
c.用存储过程来执行所有的查询。SQL参数的传递方式将防止攻击者利用单引号和连字符实施攻击。此外,它还使得数据库权限可以限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难再发生注入式攻击了
d.限制表单或查询字符串输入的长度。如果用户的登录名字最多只有10个字符,那么不要认可表单中输入的10个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度
e.检查用户输入的合法性,确信输入的内容只包含合法的数据。数据检查应当在客户端和服务器端都执行——之所以要执行服务器端验证,是为了弥补客户端验证机制脆弱的安全性。扩展:在客户端,攻击者完全有可能获得网页的源代码,修改验证合法性的脚本(或者直接删除脚本),然后将非法内容通过修改后的表单提交给服务器。因此,要保证验证操作确实已经执行,唯一的办法就是在服务器端也执行验证。你可以使用许多内建的验证对象,例如 RegularExpressionValidator,它们能够自动生成验证用的客户端脚本,当然你也可以插入服务器端的方法调用。如果找不到现成的验证对象,你可以通过CustomValidator自己创建一个
f.将用户登录名称、密码等数据加密保存。加密用户输入的数据,然后再将它与数据库中保存的数据比较,这相当于对用户输入的数据进行了"消毒"处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就防止了攻击者注入SQL命令。 System.Web.Security.FormsAuthentication类有一个HashPasswordForStoringInConfigFile,非常适合于对输入数据进行消毒处理
g.检查提取数据的查询所返回的记录数量。如果程序只要求返回一个记录,但实际返回的记录却超过一行,那就当作出错处理
第3阶段A:ASP.NET 高级
102.谈谈你对MVC和三层架构的理解
a.MVC即模型、视图、控制器,模型表示业务数据及业务处理,用来封装数据及行为;视图是用户看到并与之交互的界面;控制器接受用户输入并调用模型和视图去完成用户的请求。使用MVC有利于关注点分离,自动化UI测试成为了可能
b.三层架构即表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。表现层通俗讲就是展现给用户的界面,业务逻辑层即针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。数据访问层:该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等
103.MVC模式是什么?
a.MVC(ModelViewController)模型-视图-控制器,aspx 就是 View,视图;Model:DataSet、Reader、对象;Controller:cs 代码
b.MVC 是典型的平行关系,没有说谁在上谁在下的关系,模型负责业务领域的事情,视图负责显示的事情,控制器把数据读取出来填充模型后把模型交给视图去处理。而各种验证什么的应该是在模型里处理了。它强制性的使应用程序的输入、处理和输出分开
c.MVC 最大的好处是将逻辑和页面分离。
104.ASP.NET MVC是如何运行的?
a.当一个用户请求提交上来后,ASP.NET MVC会针对当前请求实施路由解析,解析的目标就是找到用户需要的Controller并激活它,执行对应的Action方法,最终返回用户需要的东西。
b.即当ASP.NET MVC接收到抵达的请求后,首要任务就是通过该请求解析得到对应的Controller和Action名称,通过Asp.Net MVC的路由进行解析。
105.在MVC中如何保持Sessions?
a.可使用tempdata、viewdata、viewbag三种方式
b.tempdata:在不同的控制器或动作间转换时保持数据。另外,进行页面转向时,tempdata可以保持数据,它是一个内部的Session变量
c.Viewdata:可以在控制器和视图间保持数据
d.Viewbag:它是视图数据的动态包装,使用viewbag不需要类型转换,它使用的是内部动态关键词
106.MVC中如何做输入验证?
a.在M层使用数据模型的属性标签形如[Required]
b.在C层使用ModelState.IsValid属性检查数据是否正确,也可在C层使用JavaScript进行数据验证
107.已经有了ASPX,为什么还要Razor?哪个更好?
a.Razor是一个轻量级的视图引擎,MVC3引入,相比ASPX,Razor更干净、轻量级、语法更简单,只需要使用@关键字,如@DataTime.Now
108.MVC有多少种不同类型的结果类型,请详细描述?
a.有12种,最主要的是ActionResult类,它是一个基础类,它有11个子类型
b.ViewResult - 给响应流渲染指定的视图
c.PartialViewResult - 给响应流渲染指定的局部视图
d.EmptyResult - 返回空的响应结果
e.RedirectResult - 执行一个HTTP转向到指定的URL
f.RedirectToRouteResult -执行一个HTTP转向到一个URL,这个URL由基于路由数据的路由引擎来决定
g.JsonResult - 序列化一个ViewData对像到JSON格式
h.JavaScriptResult - 返回一段javascript代码,它可以在客户端执行
i.ContentResult - 写内容到响应流,不需要视图支持
j.FileContentResult - 返回一个文件到客户端
k.FileStreamResult - 返回一个文件到客户端,它提供的是流
l.FilePathResult - 返回一个文件到客户端
109.MVC(模型、视图、控制器)架构的控制流程
a.所有的终端用户请求被发送到控制器
b.控制器依赖请求去选择加载哪个模型,并把模型附加到对应的视图
c.附加了模型数据的最终视图做为响应发送给终端用户
110.MVC同时适用于Windows应用和Web应用吗?
a.相比Windows应用,MVC架构更适用于Web应用
b.对于Windows应用,MVP(Model View Presenter)架构更好一点
c.如果你使用WPF和Silverlight,MVVM更适合
111.使用MVC有哪些好处?
a.分离了关注点。后台代码被移到单独的类文件,我们可以最大限度的重复利用代码
b.自动化UI测试成为可能,因为后台代码移到了.NET类。这让我们更容易做单元测试和自动化测试
112.“HTML.TextBox” 和 “HTML.TextBoxFor”有什么不同?
a.它们两个输出相同的HTML, “HTML.TextBoxFor”是强类型的,但“HTML.TextBox”不是
113.MVC的路由选择是什么?
a.路由选择功能帮你定义一个URL规则,映射URL到控制器
114.在哪里写路由映射表?
a.在 “global.asax” 文件
115.我们可以映射多个URL到同一个动作吗?
a.可以
b.只需要添加多条不同Key名字的记录,并且指定同样的控制器和动作。
116.使用hyperlink生成链接,如何从一个视图链接到另一个视图?
a.使用ActionLink方法
b.下面的代码生成一个简单的URL,链接到"Home"控制器的GotoHome动作。<%= Html.ActionLink(“Home”,“Gotohome”) %>
117.如何限制一个动作的类型为GET或POST?
a.我们可以给MVC的动作一个HttpGet或HttpPost属性去限制HTTP的类型
118.MVC的局部视图是什么?
a.局部视图是一个可重复调用的视图(和用户控件一样),它可以嵌入到视图里面
119…Net中会存在内存泄漏吗?请简单描述
a.所谓内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中
b.Net中有垃圾回收机制,它可以保证一对象不再被引用的时候,即对象编程了孤儿的时候,对象将自动被垃圾回收器从内存中清除掉。
c.虽然.Net可以回收无用的对象,但是.Net仍然存在由于使用不当导致的内存泄露问题。
d.Net中的内存泄露的情况:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是.Net中内存泄露的发生场景
e.通俗地说,就是程序员可能创建了一个对象,以后一直不再使用这个对象,这个对象却一直被引用,即这个对象无用但是却无法被垃圾回收器回收的,这就是.Net中可能出现内存泄露的情况
f.例如,缓存系统,我们加载了一个对象放在缓存中(例如放在一个全局Dictionary对象中),然后一直不再使用它,这个对象一直被缓存引用,但却不再被使用。
120.说出一些常用的类、接口,请各举5个
a.常用的类:StreamReader、WebClient、Dictionary<K,V>、StringBuilder、SqlConnection、 FileStream、File、Regex、List
b.常用的接口:IDisposable、IEnumerable、IDbConnection、IComparable、ICollection、IList、IDictionary
121.介绍几个使用过的开源的项目?
a. Bootstrap
b. Vue.js
c.React.js
d.Angular
e.Node.js
f.Echarts
g.log4net
h.SignalR
i.AutoMapper
j…NET Core
122.如何提高页面的显示速度?假如一个页面的加载时间是10.89s,你会用什么样的方式进行优化?
a.首先要找出问题所在,是服务器端运行的速度慢还是服务器端到客户端的下载慢还是页面在浏览器的加载速度慢
b.如果是服务器端运行速度慢,则找是数据库的原因还是算法的问题,如果是数据库的问题则尝试添加索引、优化SQL语句,如果是算法的问题,则优化算法。
c.如果对于一些不经常改动的页面可以使用静态页技术,对于一些数据不需要及时更新的而且取数据的过程非常耗时可以使用缓存。
d.页面中的内容可以按需加载(比如说可以像verycd网站的评论那样当用户需要看的时候再加载其内容),可以在图片需要显示的时候再进行加载。
e.如果是服务器端到客户端的下载慢则看是页面体积过于臃肿还是网络问题
f.如果是页面体积过于臃肿,则优化HTML代码,去掉无用的标签,压缩JS、CSS,可以用CSS Spirit技术将多个图片放到一个图片中,减少向服务器的请求。
g.如果是网络问题,则尝试在不同的网络、地区部署服务器,然后使用CDN技术加速访问。
h.如果是页面中的JavaScript运行复杂导致运行速度慢,则优化JavaScript。
i.扩展:测网速工具webkaka
123.你会采用什么样的策略和方法来实现系统缓存?
a.在ASP.NET中缓存有页面缓存,数据源缓存,和一些自己定义的缓存
b.对于那些整个页面不经常变化的我们可以使用页面缓存,而对于那些执行非常耗时的SQL语句并且数据的及时性要求不高的我们可以使用数据源缓存
c.对于页面缓存、数据源缓存等都不满足要求的情况下采用直接操作HttpRuntime.Cache来自定义缓存策略。如果需要用多台Web服务器作为一个集群来承载网站的情况,则可以部署专门的分布式缓存服务器,比如Memcached、Redis。
124.Http、Ftp、SQLServer默认的端口号是多少?
a.Http默认的端口号是(80)
b.Ftp默认的端口号是(21)
c.SQLServer的默认端口号是(1433)
125.你对webservice的体会?
a.如果自己写的一些程序也希望别人可以通过 Web 服务来使用,也可以把自己编写的方 法贴上标签[WebMethed]来实现 Web 服务。
b.是当编写程序时,希望实现一些别的网站已经 实现过的,也用 Web 服务可视成 XML 语言的编码。
c.可以使用别人的编码生成的 XML 找到 自己需要的信息,来实现自己编写的程序的一些功能。
d.扩展了解:SOAP、WSDL
126.如果程序连不上 SQLServer 数据库服务器,你会怎么排除这个故障?
a.首先ping一下服务器 IP,看是否能够ping通,如果不能ping通,则看是否网络有问题
b.;如果能 ping 通,再 telnet 一下服务器的 1433 端口,看是否能够连通
c.如果不能连通则可 能是 SQLServer 服务停掉了或者是服务器上的防火墙封掉了 1433 端口
如果能连通再检查是不是 本地程序的问题、驱动的问题
第3阶段B:ASP.NET代码编程
127.如何把一个 Array复制到ArrayList里?
a.string[]s={ “111”,“22222”};ArrayList list=newArrayList(); list.AddRange(s);
b.string[]s={ “111”,“22222”};ArrayList list=newArrayList(s);
128.请编程遍历WinForm页面上所有TextBox控件并给它赋值为string.Empty?
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is System.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;
tb.Text = String.Empty ; }
}
129.有一个8个数的数组{1,2,3,3,4,5,6,6},计算其中不重复数字的个数。
int values = {1,2,3,3,4,5,6,6};
HashSet set = new HashSet();
foreach(int i in values)
{set.Add(i);}
Console.WriteLine(set.Count)
130.public static const;int A= 1;这段代码有错误么?
a.错误,const 不能被修饰为 static
b.因为定义为常量(const)后就是静态的(static)
131.编写一个单例(Singleton)类?
a.把构造函数设置为 private,设置一个 public、static 的对象实例
b.public FileManager {
private FileManager(){}
public static FileManager Instance=new FileManager();
}
132.下面的程序执行结果是什么?
class Person {
public int Age { get; set; }
}
int i1 = 20;
int i2 = i1;
i1++;
Console.WriteLine(i2);
Person p1 = new Person();
p1.Age = 20;
Person p2 = p1;
p1.Age++;
Console.WriteLine(p2.Age);
a.20,21(解释为引用类型和值类型的区别)
第4阶段A:数据库基础
133.数据库三范式是什么?
a.第一范式:字段不能有冗余信息,所有字段都是必不可少的
b.第二范式:满足第一范式并且表必须有主键
c.第三范式:满足第二范式并且表引用其他的表必须通过主键引用
134.说一下SQLServer中索引的两种类型?
a.聚簇(或者叫做聚集,cluster)索引和非聚簇索引。
b.字典的拼音目录就是聚簇(cluster)索引,笔画目录就是非聚簇索引。这样查询“G到M的汉字”就非常快,而查询“6划到8划的字”则慢。聚簇索引是一种特殊索引,它使数据按照索引的排序顺序存放表中。聚簇索引类似于字典,即所有词条在字典中都以字母顺序排列。聚簇索引实际上重组了表中的数据,所以你只能在表中建立一个聚簇索引。当数据按值的范围查询时,聚簇索引就显得特别有用。因为所有SQLServer都必需先找到所查询范围的第一行,然后依次下去,直到该范围的最后一个值找到为止,并且保证了所有其他值也落在这个范围内。举一个例子,一个应用程序要查找首字母位于G和P之间的姓名列表,SQLServer首先找到以字母G开头的名字,取出所有记录,直到找到以字母P开头的名字为止,这种方法使得查询过程非常高效。
c.进行大量数据改动的表不适宜用聚簇索引,因为SQLServer将不得不在表中维护行的次序。如果要索引的值极少,例如一个列包含的全都是1和0,创建聚簇索引就不是个好主意。如果表经常由一个指定的列来排序,该列将是簇索引的最佳候选列。这是因为表中的数据已经为你排好序了。如果访问一个表并使用BETWEEN、<、>、>=或<=操作符来返回一个范围的值时,应该考虑使用聚簇索引。
135.索引的作用?和它的优点缺点是什么?
a.索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。
b.它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。
c.索引可以是唯一的,创建索引允许指定单个列或者是多个列。
d.缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小
136.触发器的作用?
a.触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。
b.它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。
c.可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发
137.什么是事务?什么是锁?
a.事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。
b.为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。
c.锁:在所以的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。
138.事务的特性是什么?
a.原子性
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行
b.一致性
事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。
c.隔离性
由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同
d.持久性
事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持
139.什么叫视图?游标是什么?
a.视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。
b.游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要
140.说出一些数据库优化方面的经验?
a.扩展:索引内部原理可以想象成 Dictionary,插入、删除、更新的速度慢了,加上索引也多占用了空间,查询的速度快了。加上索引以后速度提升非常明显。
b.在经常检索的字段上(select
fromPerson whereName=@Name)使用索引提高查询速度。 (2)select 中只 列出必要的字段,而不是

c.避免隐式类型转换造成的全表扫描,在索引上使用函数也会造成全表扫描(因 为索引只是为字段建立的,一旦使用表达式或者函数,那么索引就是失效了,当然也可以使用“函数索引”、 “表 达式索引”解决这个问题),使用索引不一定能提高查询速度。(
d.避免在索引列上使用计算(where Name+‘A’=@MyName)
e.加分回答:不进行无意义优化,根据性能查看器的报表,对最耗时的 SQL 进行优化
第4阶段B:数据库编程
141.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的
a.select top 10 * from A where id not in (select top 30 id from A)
演变步骤:
1)select top 30 id from T_FilterWords–取前条
2)select * from T_FilterWords where id not in (select top 30 id from T_FilterWords)–取id不等于前三十条
3)select top 10 * from T_FilterWords
b.select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
c.1用ROW_NUMBER实现
142.综合查询(条件查询、嵌套查询、多表查询)
表一:student_info
学号 姓名 性别 出生年月 家庭住址 备注
0001 张三 男 1981-8-9 北京 NULL

表二:curriculum
课程编号 课程名称 学分
0001 计算机基础 2
0002 C语言 2
表三:grade
学号 课程编号 分数
0001 0001 80
0001 0002 90
a.条件查询
1)在GRADE表中查找80-90份的学生学号和分数
select 学号,分数 from grade where 分数 between 80 and 90
2)在GRADE 表中查找课程编号为003学生的平均分
select avg(分数) from grade where 课程编号=‘003’
3)在GRADE 表中查询学习各门课程的人数
Select课程编号,count(学号) as 人数from grade group by 课程编号
4)查询所有姓张的学生的学号和姓名
select 姓名,学号 from student_info where 姓名 like ‘张%’
b.嵌套查询
1)查询和学号’0001’的这位同学性别相同的所有同学的姓名和出生年月
select 姓名,出生年月 from student_info where 性别 in(select 性别 from student_info where sno=‘0001’)
2)查询所有选修课程编号为0002 和0003的学生的学号、姓名和性别
select 学号,姓名,性别 from student_info where 学号 in(select 学号 from grade where 课程编号=‘0002’ and 学号 in(select 学号 from grade where 课程编号=‘0001’))
3)查询出学号为0001的学生的分数比0002号学生最低分高的课程编号的课程编号和分数
select 课程编号, 分数 from grade where 学号=‘0001’ and 分数>(select min(分数) from grade where 学号=‘0002’)
c.多表查询
1)查询分数在80-90分的学生的学号、姓名、分数
select student_info.学号,student_info.姓名,grade.分数 from student_info,grade where grade.分数 between 80 and 90
2)查询学习了’C语言’课程的学生学号、姓名和分数
select student_info.学号,student_info.姓名,grade.成绩from student_info,grade,curriculum where student_info.学号=grade.学号and grade.课程号=curriculum.课程号and curriculum.课程名=‘C语言’
3)查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选课的学生总成绩为空
select grade.学号,student_info.姓名,sum(grade.成绩) as 总成绩from student_info,grade where grade.学号=student_info.学号group by grade.学号,student_info.姓名
143.综合练习(活期存款)
活期存款中,“储户”通过“存取款单”和“储蓄所”发生联系。假定储户包括:账号,姓名,电话,地址,存款额;“储蓄所”包括:储蓄所编号,名称,电话,地址(假定一个储户可以在不同得储蓄所存取款),问题:创建一个触发器TR1完成下面内容,当向“存取款单”表中插入数据时,如果存取标志=1则应该更改储户表让存款额加上存取金额,如果存取标志=0则应该更改储户表让存款额减去存取金额,如果余额不足显示余额不足错误。
CREATE TABLE CREATE TRIGGER tr1 on qukuan after insert
AS
BEGIN
declare @sid nvarchar(50)
declare @type int
declare @qian int
declare @yuer int
select @sid=sid,@type=[type],@m=m from inserted
select @yuer=yuer from cunkuan
if(@type=1)
begin
update cunkuan set yuer=yuer+@qian
end
else
begin
if(@yuer<@qian)
begin
print ‘余额不足’
end
else
begin
update cunkuan set yuer=yuer-@qian
end
End
End
Go
144.综合练习(图书管理)
CARD 借书卡: (CNO 卡号,NAME 姓名,CLASS 班级)
BOOKS 图书: (BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 )
BORROW 借书记录: (CNO 借书卡号,BNO 书号,RDATE 还书日期
备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。
要求实现如下处理:
a.写出自定义函数,要求输入借书卡号能得到该卡号所借书金额的总和
CREATE FUNCTION getSUM
(@CNO int)
RETURNS int
AS
BEGIN
declare @sum int
select @sum=sum(price) from BOOKS where bno in (select bno from BORROW where cno=@CNO)
return @sum
END
GO
b.找出借书超过5本的读者,输出借书卡号及所借图书册数
select CNO,count(BNO) as 借书数量from BORROW group by CNO having count(BNO)>3
c.查询借阅了"水浒"一书的读者,输出姓名及班级
select name,class from card where cno in( select cno from borrow where bno in(
select bno from BOOKS where bname=‘水浒’))
d.查询过期未还图书,输出借阅者(卡号)、书号及还书日期
select CNO,BNO,RDATE from borrow where getdate()>RDATE
e.查询书名包括"网络"关键词的图书,输出书号、书名、作者
select bno,bname,author from books where bname like ‘网络%’
f.查询现有图书中价格最高的图书,输出书名及作者
select bname,author from books where price in(select max(price) from books)
g.查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出
select cno from borrow where bno in (select bno from books where bname=‘计算方法’) and cno not in ( select cno from borrow where bno in(select bno from books where bname=‘计算方法习题集’)) order by cno desc

SELECT a.CNO FROM BORROW a,BOOKS b WHERE a.BNO=b.BNO AND b.BNAME=N’计算方法’ AND NOT EXISTS(SELECT * FROM BORROW aa,BOOKS bb WHERE aa.BNO=bb.BNO AND bb.BNAME=N’计算方法习题集’ AND aa.CNO=a.CNO) ORDER BY a.CNO DESC
h.将"C01"班同学所借图书的还期都延长一周
update borrow set rdate=dateadd(day,7,rdate) from BORROW where cno in(select cno from card where class=‘一班’)
i.从BOOKS表中删除当前无人借阅的图书记录
DELETE A FROM BOOKS a WHERE NOT EXISTS(SELECT * FROM BORROW WHERE BNO=a.BNO)
j.如果经常按书名查询图书信息,请建立合适的索引
CREATE CLUSTERED INDEX IDX_BOOKS_BNAME ON BOOKS(BNAME)
k.在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"数据库技术及应用",就将该读者的借阅记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW表
CREATE TRIGGER TR_SAVE ON BORROW
FOR INSERT,UPDATE
AS
IF @@ROWCOUNT>0
INSERT BORROW_SAVE SELECT i.*
FROM INSERTED i,BOOKS b
WHERE i.BNO=b.BNO
AND b.BNAME=N’数据库技术及应用’
l.建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)
CREATE VIEW V_VIEW
AS
select name,bname from books,card,borrow
a.bno in(select bno from books where bname=‘计算方法’) and
where borrow.cno=card.cno and borrow.bno=books.bno and class='一班’
m.查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出
select a.cno from borrow a,borrow b where a.cno=b.cno and
a.bno in(select bno from books where bname=‘计算方法’) and
b.bno in(select bno from books where bname=‘组合数学’) order by a.cno desc

SELECT a.CNO FROM BORROW a,BOOKS b WHERE a.BNO=b.BNO
AND b.BNAME IN(‘计算方法’,‘组合数学’)
GROUP BY a.CNO HAVING COUNT()=2 ORDER BY a.CNO DESC
n.用事务实现如下功能:一个借书卡号借走某书号的书,则该书的库存量减少1,当某书的库存量不够1本的时候,该卡号不能借该书
alter PROCEDURE pro_jieshu
@cno int,@bno int,@date datetime
AS BEGIN
begin tran
declare @quantity int
select @quantity=quantity from books where bno=@bno
insert into borrow values(@cno,@bno,@date)
update books set quantity=@quantity-1 where bno=@bno
if(@quantity>0)
begin
commit tran
end
else
begin
print ‘已无库存’
rollback
end
END
GO
o.用游标实现将书号为‘A001’的书本的价格提高10
declare @bno int
declare @bname nvarchar(50)
declare @author nvarchar(50)
declare @price int
declare @quantity int
declare mycursor cursor for select * from books
open mycursor
fetch next from mycursor into @bno,@bname,@author,@price,@quantity
while(@@fetch_status=0)
begin
if(@bno=2)
begin
update books set price=@price+10 where current of mycursor
end
fetch next from mycursor into @bno,@bname,@author,@price,@quantity
end
close mycursor
deallocate mycursor
145.综合查询(成绩管理)
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
a.查询“001”课程比“002”课程成绩高的所有学生的学号
select a.S# from (select s#,score from SC where C#=‘001’) a,(select s#,score
from SC where C#=‘002’) b where a.score>b.score and a.s#=b.s#;
b.查询平均成绩大于60分的同学的学号和平均成绩
select S#,avg(score) from sc group by S# having avg(score) >60;
c.查询所有同学的学号、姓名、选课数、总成绩
select Student.S#,Student.Sname,count(SC.C#),sum(score)
from Student left Outer join SC on Student.S#=SC.S#
group by Student.S#,Sname
d.查询姓“李”的老师的个数
select count(distinct(Tname)) from Teacher where Tname like ‘李%’;
e.查询没学过“叶平”老师课的同学的学号、姓名
select Student.S#,Student.Sname from Student where S# not in
(select distinct( SC.S#) from SC,Course,Teacher whereSC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=‘叶平’)
f.查询学过“001”并且也学过编号“002”课程的同学的学号、姓名
select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001’and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#=‘002’)
g.查询学过“叶平”老师所教的所有课的同学的学号、姓名
select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=‘叶平’ group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname=‘叶平’));
h.查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名
Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#=‘002’) score2 from Student,SC where Student.S#=SC.S# and C#=‘001’) S_2 where score2 <score
i.查询所有课程成绩小于60分的同学的学号、姓名
select S#,Sname from Student where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60)
j.查询没有学全所有课的同学的学号、姓名
select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course)
k.查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名
select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#=‘1001’
l.查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名
select distinct SC.S#,Sname from Student,SC where Student.S#=SC.S# and C# in (select C# from SC where S#=‘001’);
m.把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩
update SC set score=(select avg(SC_2.score) from SC SC_2 where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname=‘叶平’)
n.查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名
select S# from SC where C# in (select C# from SC where S#=‘1002’) group by S# having count(
)=(select count() from SC where S#=‘1002’);
o.删除学习“叶平”老师课的SC表记录
Delete SC from course ,Teacher where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname=‘叶平’;
p.向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、号课的平均成绩
Insert SC select S#,‘002’,(Select avg(score) from SC where C#=‘002’) from Student where S# not in (Select S# from SC where C#=‘002’);
q.按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,数据库,企业管理,英语,有效课程数,有效平均分
SELECT S# as 学生ID ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#=‘004’) AS 数据库 ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#=‘001’) AS 企业管理 ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#=‘006’) AS 英语 ,COUNT(
) AS 有效课程数, AVG(t.score) AS 平均成绩 FROM SC AS t GROUP BY S# ORDER BY avg(t.score)
r.查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分
SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分 FROM SC L ,SC AS R WHERE L.C# = R.C# and L.score = (SELECT MAX(IL.score) FROM SC AS IL,Student AS IM WHERE L.C# = IL.C# and IM.S#=IL.S# GROUP BY IL.C#) AND R.Score = (SELECT MIN(IR.score) FROM SC AS IR WHERE R.C# = IR.C# GROUP BY IR.C#)
s.按各科平均成绩从低到高和及格率的百分数从高到低顺序
SELECT t.C# AS 课程号,max(course.Cname)AS 课程名,isnull(AVG(score),0) AS 平均成绩,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT() AS 及格百分数 FROM SC T,Course where t.C#=course.C# GROUP BY t.C# ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT() DESC
t.查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克(002),OO&UML (003),数据库(004)
SELECT SUM(CASE WHEN C# =‘001’ THEN score ELSE 0 END)/SUM(CASE C# WHEN ‘001’ THEN 1 ELSE 0 END) AS 企业管理平均分,
100 * SUM(CASE WHEN C# = ‘001’ AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = ‘001’ THEN 1 ELSE 0 END) AS 企业管理及格百分数,
SUM(CASE WHEN C# = ‘002’ THEN score ELSE 0 END)/SUM(CASE C# WHEN ‘002’ THEN 1 ELSE 0 END) AS 马克思平均分,
100 * SUM(CASE WHEN C# = ‘002’ AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = ‘002’ THEN 1 ELSE 0 END) AS 马克思及格百分数,
SUM(CASE WHEN C# = ‘003’ THEN score ELSE 0 END)/SUM(CASE C# WHEN ‘003’ THEN 1 ELSE 0 END) AS UML平均分 ,
100 * SUM(CASE WHEN C# = ‘003’ AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = ‘003’ THEN 1 ELSE 0 END) AS UML及格百分数,
SUM(CASE WHEN C# = ‘004’ THEN score ELSE 0 END)/SUM(CASE C# WHEN ‘004’ THEN 1 ELSE 0 END) AS 数据库平均分,
100 * SUM(CASE WHEN C# = ‘004’ AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = ‘004’ THEN 1 ELSE 0 END) AS 数据库及格百分数 FROM SC
u.查询不同老师所教不同课程平均分从高到低显示
SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(C.Cname) AS 课程名称,AVG(Score) AS 平均成绩 FROM SC AS T,Course AS C ,Teacher AS Z where T.C#=C.C# and C.T#=Z.T# GROUP BY C.C# ORDER BY AVG(Score) DESC
v.查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004) [学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩
SELECT DISTINCT top 3 SC.S# As 学生学号, Student.Sname AS 学生姓名 , T1.score AS 企业管理, T2.score AS 马克思, T3.score AS UML, T4.score AS 数据库, ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分 FROM Student,SC
LEFT JOIN SC AS T1 ON SC.S# = T1.S# AND T1.C# = ‘001’
LEFT JOIN SC AS T2 ON SC.S# = T2.S# AND T2.C# = ‘002’
LEFT JOIN SC AS T3 ON SC.S# = T3.S# AND T3.C# = ‘003’
LEFT JOIN SC AS T4 ON SC.S# = T4.S# AND T4.C# = ‘004’
WHERE student.S#=SC.S# and ISNULL(T1.score,0)+ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)
NOT IN (SELECT DISTINCT TOP 15 WITH TIES ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) FROM sc
LEFT JOIN sc AS T1 ON sc.S# = T1.S# AND T1.C# = ‘k1’
LEFT JOIN sc AS T2 ON sc.S# = T2.S# AND T2.C# = ‘k2’
LEFT JOIN sc AS T3 ON sc.S# = T3.S# AND T3.C# = ‘k3’
LEFT JOIN sc AS T4 ON sc.S# = T4.S# AND T4.C# = ‘k4’
ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);
w.统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]
SELECT SC.C# as 课程ID, Cname as 课程名称,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85],SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70],SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60],SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -] FROM SC,Course where SC.C#=Course.C# GROUP BY SC.C#,Cname;
x.查询学生平均成绩及其名次
SELECT 1+(SELECT COUNT( distinct 平均成绩) FROM (SELECT S#,AVG(score) AS 平均成绩 FROM SC GROUP BY S#) AS T1 WHERE 平均成绩 > T2.平均成绩) as 名次, S# as 学生学号,平均成绩 FROM (SELECT S#,AVG(score) 平均成绩 FROM SC GROUP BY S#) AS T2 ORDER BY 平均成绩 desc
y.查询各科成绩前三名的记录:(不考虑成绩并列情况)
SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数 FROM SC t1 WHERE score IN (SELECT TOP 3 score FROM SC WHERE t1.C#= C# ORDER BY score DESC ) ORDER BY t1.C#;
z.查询每门课程被选修的学生数
select c#,count(S#) from sc group by C#;
aa.查询出只选修了一门课程的全部学生的学号和姓名
select SC.S#,Student.Sname,count(C#) AS 选课数
from SC ,Student where SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;
ab.查询男生、女生人数
Select count(Ssex) as 男生人数 from Student group by Ssex having Ssex=‘男’; Select count(Ssex) as 女生人数 from Student group by Ssex having Ssex=‘女’;
ac.查询同名同性学生名单,并统计同名人数
select Sname,count() from Student group by Sname having count()>1;
ad.1981年出生的学生名单(注:Student表中Sage列的类型是datetime)
select Sname, CONVERT(char (11),DATEPART(year,Sage)) as age from student where CONVERT(char(11),DATEPART(year,Sage))=‘1981’;
ae.查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列
Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC
af.查询平均成绩大于85的所有学生的学号、姓名和平均成绩
select Sname,SC.S# ,avg(score) from Student,SC where Student.S#=SC.S# group by SC.S#,Sname having avg(score)>85;
ag.查询课程名称为“数据库”,且分数低于60的学生姓名和分数
Select Sname,isnull(score,0) from Student,SC,Course where SC.S#=Student.S# and SC.C#=Course.C# and Course.Cname='数据库’and score <60;
ah.查询所有学生的选课情况
SELECT SC.S#,SC.C#,Sname,Cname FROM SC,Student,Course where SC.S#=Student.S# and SC.C#=Course.C#
ai.查询任何一门课程成绩在70分以上的姓名、课程名称和分数
SELECT distinct student.S#,student.Sname,SC.C#,SC.score FROM student,Sc WHERE SC.score>=70 AND SC.S#=student.S#;
aj.查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩
select Student.Sname,score from Student,SC,Course C,Teacher where Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname=‘叶平’ and SC.score=(select max(score)from SC where C#=C.C# )
ak.查询不同课程成绩相同的学生的学号、课程号、学生成绩
select distinct A.S#,B.score from SC A ,SC B where A.Score=B.Score and A.C# <>B.C#
al.查询每门功成绩最好的前两名
SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数 FROM SC t1 WHERE score IN (SELECT TOP 2 score FROM SC WHERE t1.C#= C# ORDER BY score DESC ) ORDER BY t1.C#;
am.统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,查询结果按人数降序排列,若人数相同,按课程号升序排列
select C# as 课程号,count() as 人数from sc group by C# order by count() desc,c#
an.检索至少选修两门课程的学生学号
select S# from sc group by s# having count() > = 2
ao.查询全部学生都选修的课程的课程号和课程名
select C#,Cname from Course where C# in (select c# from sc group by c#)
ap.查询没学过“叶平”老师讲授的任一门课程的学生姓名
select Sname from Student where S# not in (select S# from Course,Teacher,SC where Course.T#=Teacher.T# and SC.C#=course.C# and Tname=‘叶平’)
aq.查询两门以上不及格课程的同学的学号及其平均成绩
select S#,avg(isnull(score,0)) from SC where S# in (select S# from SC where score <60 group by S# having count(
)>2)group by S#
ar.检索“004”课程分数小于60,按分数降序排列的同学学号
select S# from SC where C#='004’and score <60 order by score desc
as.删除“002”同学的“001”课程的成绩
delete from Sc where S#='001’and C#=‘001’
146.横表、纵表转换
纵表结构 TableA
Name Course Grade
张三 语文 75
张三 数学 80
张三 英语 90
李四 语文 95
李四 数学 55
横表结构 TableB
Name 语文 数学 英语
张三 75 80 90
李四 95 55 0
a.先理解:
select Name,(case Course when ‘语文‘ then Grade else 0 end) as 语文, (case Course when ‘数学‘ then Grade else 0 end) as 数学, (case Course when ‘英语‘ then Grade else 0 end) as 英语 from TableA
b.然后理解标准答案:
select Name,
Proddetlicon
nav
sum(case Course when ‘语文‘ then Grade else 0 end) as 语文,
sum(case Course when ‘数学‘ then Grade else 0 end) as 数学,
sum(case Course when ‘英语‘ then Grade else 0 end) as 英语
from TableA
group by Name
横表转纵表的"SQL"示例
横表结构: TEST_H2Z
ID 姓名 语文 数学 英语
1 张三 80 90 70
2 李四 90 85 95
3 王五 88 75 90
转换后的表结构:
ID 姓名 科目 成绩
1 张三 语文 80
2 张三 数学 90
3 张三 英语 70
4 李四 语文 90
5 李四 数学 80
6 李四 英语 99
7 王五 语文 85
8 王五 数学 96
9 王五 英语 88
横表转纵表SQL示例:
SELECT 姓名,‘语文’ AS 科目,语文 AS 成绩 FROM TEST_H2Z UNION ALL
SELECT 姓名,‘数学’ AS 科目,数学 AS 成绩 FROM TEST_H2Z UNION ALL
SELECT 姓名,‘英语’ AS 科目,英语 AS 成绩 FROM TEST_H2Z
ORDER BY 姓名,科目 DESC
147.删除姓名、年龄重复的记录
Id name age salary
1 yzk 80 1000
2 yzk 80 2000
3 tom 20 20000
4 tom 20 20000
5 im 20 20000
a.使用Distinct 去重:
SELECT DISTINCT Name FROM Persons(Distinct 只能去除结果集中一模一样的数据)
b.获取不重复数据思考1:
SELECT Name, age FROM Persons GROUP BY Name, Gender
c.获取不重复数据思考2:
SELECT MAX(Id) AS Expr1, Name, Gender FROM Persons GROUP BY Name, age
d.获取不重复数据:
select * from Persons where Id in ( SELECT MAX(Id) AS Expr1 FROM Persons GROUP BY Name, age )
e.删除重复的数据:
delete from Persons where Id not in ( SELECT MAX(Id) AS Expr1 FROM Persons GROUP BY Name, age )

**!!不支持转载等

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

相关文章

  1. jsp开发在线聊天系统源代码下载

    原文:jsp开发在线聊天系统源代码下载源代码下载地址:http://www.zuidaima.com/share/1550463726832640.htm这个java的聊天系统,功能简单,有具体的操作形式.首页:http://localhost:端口/项目名称/index.jsp聊天页在firefox下登陆后有bug,在chrome下没问题,大家注意下。另外…...

    2024/4/21 7:13:05
  2. 近几年前端技术盘点以及 2016 年技术发展方向

    Web 发展了几十个春秋&#xff0c;风起云涌&#xff0c;千变万化。我很庆幸自己没有完整地经历过这些年头&#xff0c;而是站在前人的肩膀上行走。Web 技术发展的速度让人感觉那几乎不是继承式的迭代&#xff0c;而是一次又一次的变革&#xff0c;一次又一次的创造。这几年的前…...

    2024/5/9 6:31:05
  3. mysql 创建索引,删除索引的sql语句 【转】

    create unique index customer_info_index1 on customer_info(number);--创建唯一索引create index customer_info_index2 on customer_info(name);--创建索引drop index user_info_index1 on user_info; --删除索引mysql查询表结构的语句show columns from talbe_name;...

    2024/4/21 7:13:02
  4. .NET面试宝典

    第1阶段&#xff1a;HTML&c#基础 1、简述 private、 protected、 public、 internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员&#xff0c;该类内部和继承类中可以访问。 public : 公共成员&#xff0c;完全公开&#xff…...

    2024/5/9 8:24:04
  5. 切开双眼皮一般做多宽的

    ...

    2024/5/9 5:39:38
  6. 初中级程序员面试题

    自己整理的&#xff0c;也有摘自网络上的&#xff0c;如有侵权&#xff0c;请联系&#xff0c;我及时删除。1、简述javascript中的“、、”的区别&#xff1f; 赋值 比较是否一般相等 "3"3 //会做类型的隐式转换&#xff0c;true 比较是否严格相等 "3"3 …...

    2024/4/21 7:12:59
  7. ASP.NET基础

    1、请解释ASP。NET中的web页面与其隐藏类之间的关系&#xff1f; 一个ASP.NET页面一般都对应一个隐藏类&#xff0c;一般都在ASP.NET页面的声明中指定了隐藏类例如一个页面Tst1.aspx的页面声明如下&#xff1a; <% Page language"c#" Codebehind"Tst1.aspx…...

    2024/5/8 21:49:13
  8. 做窄双眼皮埋线重庆疗华美

    ...

    2024/4/21 7:13:02
  9. 面试-1

    面试-1 面试-1 1、简述 private、 protected、 public、 internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员&#xff0c;该类内部和继承类中可以访问。 public : 公共成员&#xff0c;完全公开&#xff0c;没有访问限制。 interna…...

    2024/4/20 10:42:09
  10. 面试-5

    .NET面试宝典 1、简述 private、 protected、 public、 internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员&#xff0c;该类内部和继承类中可以访问。 public : 公共成员&#xff0c;完全公开&#xff0c;没有访问限制。 internal…...

    2024/4/21 7:12:56
  11. HTML5BASIC_day01

    1、HTMLCSSUI2、Javascript3、HTML5COREAJAXJquery4、Bootstrap,Angular JS其他框架 1、HTMLCSS3BASICPROUIPROCSS3CORE1、Internet 1&#xff09;什么是Internet&#xff1f; ---是全球性计算机互联网络&#xff0c;是由若干终端(PC,移动端)以及 特殊的传输介质而组成的一个网…...

    2024/4/21 7:12:55
  12. 东大 熊猛 内双有时出现双眼皮一有一没的

    ...

    2024/4/21 7:12:53
  13. 腾讯手机QQ兴趣部落使用的Abstract.js框架初探

    #导言 手机QQ的兴趣部落是一个类似百度贴吧的兴趣导向社区平台&#xff0c;在手机QQ上拥有与QQ空间同等地位的入口位置&#xff0c;上线一年以来利用手机QQ的庞大活跃用户量也已经有了一定程度的规模&#xff0c;同时也推出了PC端网页版本&#xff0c;在百度贴吧过度商业化以至…...

    2024/4/21 7:12:53
  14. javascript 新兴的API

    javascript 新兴的API 分类&#xff1a; javascript2012-12-31 16:02 215人阅读 评论(0) 收藏 举报很多的API都有着特定的前缀&#xff0c;例如微软的ms&#xff0c;谷歌和safari的webkit。这些新兴的API去掉前面的前缀后&#xff0c;剩下的部分是一样的。 requestAnimationFra…...

    2024/4/20 18:54:12
  15. Web前端面试总结

    Base Prepration: 作为一名Web前端开发工程师&#xff0c;应该要有自己的个人作品&#xff08;如个人网站之类&#xff09;&#xff0c;博客&#xff0c;和所关注的用于学习和分享Web前端技术的社区或贴吧&#xff08;如github, w3cschool等&#xff09;。 面试之“闲扯”&…...

    2024/4/20 18:54:11
  16. PHP代码规范性检测

    安装 wget -c http://static.phpmd.org/php/latest/phpmd.phar mv phpmd.phar /usr/bin/phpmd chmod +x /usr/bin/phpmd 使用: # phpmd 代码路径 报告格式 规则xml文件 并使用 > 命令将问题报告输出到文件 eg: phpmd /Library/WebServer/Documents/php/app/ html codesize…...

    2024/4/20 18:54:10
  17. 双眼皮 疼

    ...

    2024/5/8 19:32:04
  18. 如何从零开始成为一名优秀的程序员?---转载、翻译自Quora

    原作者 许多人问我&#xff0c;我怎么才能从零开始学编程呢&#xff1f;在这个回答里你会了解到怎么样做。我编程二十年了&#xff0c;在此我将分享我在这二十年里为相关从业人员指导过的职业规划及发展的经验。 —本回答最初写于我的博客并且在Wykop&#xff08;波兰的类似于…...

    2024/4/20 9:56:56
  19. 小程序技术始于微信?来看看移动端小程序技术的前世今生!

    本文由DCloud 公司创始人王安原创发布于CSDN&#xff0c;原题《小程序技术演进史》&#xff0c;即时通讯网收录时有改动&#xff0c;感谢原作者。 1、引言 微信的成功&#xff0c;并非特定于某个具体的功能&#xff0c;微信的成功实际上是一大批创新技术和体验的成功合集&…...

    2024/4/21 7:12:51
  20. react-native学习笔记——简单尝试

    毫无疑问&#xff0c;我是个不善于写博文的人。 毫无疑问&#xff0c;react是个出的框架。 毫无疑问&#xff0c;react-native更是个牛逼的引擎。 我个人对react-native的理解就是js被js引擎编译&#xff0c;去调用本地语言提供的接口&#xff0c;然后达到原生语言能达到的视觉…...

    2024/4/21 7:12:49

最新文章

  1. DEV--C++小游戏(吃星星(0.1))

    目录 吃星星&#xff08;0.1&#xff09; 简介 头文件 命名空间变量 副函数 清屏函数 打印地图函数 移动函数 主函数 0.1版完整代码 吃星星&#xff08;0.1&#xff09; 注&#xff1a;版本<1为未实现或只实现部分 简介 用wasd去吃‘*’ 头文件 #include<bi…...

    2024/5/9 10:06:23
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. Topaz Video AI for Mac v5.0.0激活版 视频画质增强软件

    Topaz Video AI for Mac是一款功能强大的视频处理软件&#xff0c;专为Mac用户设计&#xff0c;旨在通过人工智能技术为视频编辑和增强提供卓越的功能。这款软件利用先进的算法和深度学习技术&#xff0c;能够自动识别和分析视频中的各个元素&#xff0c;并进行智能修复和增强&…...

    2024/5/8 7:28:53
  4. ChatGPT 赚钱初学者指南(上)

    原文&#xff1a;The Beginner’s Guide to Earning Money Online with ChatGPT 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第一章&#xff1a;理解基础知识 什么是 ChatGPT&#xff1f; 在人工智能与人类对话相遇的数字织锦中&#xff0c;ChatGPT 作为一个突出…...

    2024/5/8 12:05:14
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/9 4:20:59
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/9 7:32:17
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57