• .NET面试题集锦②


    一、前言部分

    文中的问题及答案多收集整理自网络,不保证100%准确,还望斟酌采纳。

    1.实现产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。

     1 int[] intArr=new int[100];
     2 ArrayList myList=new ArrayList();
     3 Random rnd=new Random();
     4 while(myList.Count<100)
     5 {
     6 int num=rnd.Next(1,101);
     7 if(!myList.Contains(num))
     8 myList.Add(num);
     9 }
    10 for(int i=0;i<100;i++)
    11 intArr[i]=(int)myList[i];
    View Code

    2.请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。 

    答:

    session(viewstate) 简单,但易丢失
    application 全局
    cookie 简单,但可能不支持,可能被伪造
    url参数 简单,显示于地址栏,长度有限
    数据库 稳定,安全,但性能相对弱

    3.请指出GAC的含义? 

    答:全局程序集缓存。

    4.向服务器发送请求有几种方式? 

    答:get,post。get一般为链接方式,post一般为按钮方式。

    5.DataReader与Dataset有什么区别? 

    答:一个是只能向前的只读游标,一个是内存中的表。

    6.软件开发过程一般有几个阶段?每个阶段的作用? 

    答:需求分析,架构设计,代码编写,QA(质量工程师),部署

    7.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?

    using 指令 和语句 new 创建实例 new 隐藏基类中方法。

    答:

    using 引入名称空间或者使用非托管资源
    new 新建实例或者隐藏父类方法

    8.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,

    仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.

    答:string inputStr=" xx xx ";
    inputStr = Regex.Replace(inputStr.Trim(), @"s+", " ");

    9.下面这段代码输出什么,为什么?

    1 int i=5;
    2 int j=5;
    3 if (Object.ReferenceEquals(i,j))
    4 Console.WriteLine("Equal");
    5 else
    6 Console.WriteLine("Not Equal");
    View Code

    答:不相等,因为比较的是对像

    10.什么叫做SQL注入,如何防止?请举例说明。 

    答:利用sql语言漏洞获得合法身份登陆系统。如身份验证的程序设计成:

    1 SqlCommand com=new SqlCommand("Select * from users where username='"+t_name.text+"' and pwd='"+t_pwd.text+"'");
    2 object obj=com.ExcuteScale();
    3 if(obj!=null)
    4 {
    5 //通过验证
    6 }
    7 这段代码容易被sql注入。如用户在t_name中随便输入,在t_pwd中输入1' and 1='1 就可以进入系统了。
    View Code

    11.什么是反射?

    答:动态获取程序集信息

    12.用Singleton如何写设计模式? 

    答:static属性里面new ,构造函数private

    13.什么是Application Pool? 

    答:Web应用,类似Thread Pool,提高并发性能。

    14.什么是虚函数?什么是抽像函数? 

    答:虚函数:可由子类继承并重写的函数。抽像函数:规定其非虚子类必须实现的函数,必须被重写。

    15.什么是XML? 

    答:XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,

    计算机之间可以处理包含各种信息的文章等。如何定义这些标记,即可以选择国际通用的标记语言,比如HTML,

    也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。

    它主要用到的有XML、XSL和XPath等。

    16.什么是ASP.net中的用户控件? 

    答:用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的include..但是功能要强大的多。

    17.列举一下你所了解的XML技术及其应用 

    答:xml用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config,soap协议

    18.ADO.net中常用的对象有哪些?分别描述一下。 

    答:

    Connection 数据库连接对像
    Command 数据库命令
    DataReader 数据读取器
    DataSet 数据集

    19.什么是code-Behind技术? 

    答:ASPX,RESX和CS三个后缀的文件,这个就是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理.

    20.什么是SOAP,有哪些应用? 

    答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程

    调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允

    许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息。

    SOAP也被称作XMLP,为两个程序交换信息提供了一种标准的工作机制。在各类机构之间通过电子方式相互协作的情况

    下完全有必要为此制定相应的标准。SOAP描述了把消息捆绑为XML的工作方式。它还说明了发送消息的发送方、消息的

    内容和地址以及发送消息的时间。SOAP是Web Service的基本通信协议。SOAP规范还定义了怎样用XML来描述程序数据

    (Program Data),怎样执行RPC(Remote Procedure Call)。大多数SOAP解决方案都支持RPC-style应用程序。

    SOAP还支持 Document-style应用程序(SOAP消息只包含XML文本信息)。最后SOAP规范还定义了HTTP消息是怎样

    传输SOAP消息的。MSMQ、SMTP、TCP/IP都可以做SOAP的传输协议。SOAP 是一种轻量级协议,用于在分散型、

    分布式环境中交换结构化信息。 SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协

    议进行交换的消息结构。 这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。SOAP 定义了

    一种方法以便将 XML 消息从 A 点传送到 B 点。 为此,它提供了一种基于 XML 且具有以下特性的消息处理框架:

    1) 可扩展,

    2) 可通过多种底层网络协议使用,

    3) 独立于编程模型。

    21.C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里? 

    答:一个是属性,用于存取类的字段,一个是特性,用来标识类,方法等的附加性质

    22.XML 与 HTML 的主要区别? 

    答:

    1. XML是区分大小写字母的,HTML不区分。
    2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略</p>或者</li>之类的结束 标记。在XML中,绝对不能省略掉结束标记。
    3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了。
    4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。
    5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

    23.c#中的三元运算符是? 

    答:?:。

    24.当整数a赋值给一个object对像时,整数a将会被? 

    答:装箱。

    25.类成员有_____种可访问形式? 

    答:this.;new Class().Method;

    26.public static const int A=1;这段代码有错误么,错在哪里?

    答:const不能用static修饰。

    27.float f=-123.567F; int i=(int)f;i的值现在是_____?

    答:-123。

    28.委托声明的关键字是______?

    答:delegate.

    29.在Asp.net中所有的自定义用户控件都必须继承自________?

    答:Control。

    30.在.Net中所有可序列化的类都被标记为_____?

    答:[serializable]

    31.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?

    答:GC。

    32.下面的代码中有什么错误吗?

     1 using System;
     2 class A
     3 {
     4 public virtual void F(){
     5 Console.WriteLine("A.F");
     6 }
     7 }
     8 abstract class B:A
     9 {
    10 public abstract override void F(); 
    11 } // new public abstract void F();
    View Code

    答:abstract override 是不可以一起修饰. 

    33.当类T只声明了私有实例构造函数时,则在T的程序文本外部,___可以___(可以 or 不可以)从T派生出新的类,

    不可以____(可以 or 不可以)直接创建T的任何实例。

    答:不可以,不可以。

    34.下面这段代码有错误么?

     1 switch (i){
     2 case(): 答://case()条件不能为空
     3 CaseZero();
     4 break;
     5 case 1:
     6 CaseOne();
     7 break;
     8 case 2:
     9 dufault; 答://wrong,格式不正确
    10 CaseTwo();
    11 break;
    12 }
    View Code

    35.在.Net中,类System.Web.UI.Page 可以被继承么?

    答:可以。

    36..net的错误处理机制是什么?

    答:.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。

    37.利用operator声明且仅声明了==,有什么错误么?

    答:要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="

    38.某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:

    (1) 密码单词的最小长度是两个字母,可以相同,也可以不同
    (2) K不可能是单词的第一个字母
    (3) 如果L出现,则出现次数不止一次
    (4) M不能使最后一个也不能是倒数第二个字母
    (5) K出现,则N就一定出现
    (6) O如果是最后一个字母,则L一定出现
    问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?
    A) K B)L C) M D) N
    答案:B

    问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?
    A)1个 B)3个 C)6个 D)9个
    答案:A

    问题三:下列哪一个是单词密码?
    A) KLLN B) LOML C) MLLO D)NMKO
    答案:C

    39. 62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?

    答案:62移动成2的6次方

    40.对于这样的一个枚举类型怎么操作?

    1 enum Color:byte
    2 {
    3 Red,
    4 Green,
    5 Blue,
    6 Orange
    7 }
    View Code

    答:string[] ss=Enum.GetNames(typeof(Color));

    byte[] bb=Enum.GetValues(typeof(Color));

    41. C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?

    答:attribute:自定义属性的基类;property :类中的属性

    42.C#可否对内存进行直接的操作?

    答:在.net下,.net引用了垃圾回收(GC)功能,它替代了程序员 不过在C#中,不能直接实现Finalize方法,

    而是在析构函数中调用基类的Finalize()方法

    43.ADO.NET相对于ADO等主要有什么改进?

    答:

    1:ado.net不依赖于ole db提供程序,而是使用.net托管提供的程序,

    2:不使用com

    3:不在支持动态游标和服务器端游

    4:,可以断开connection而保留当前数据集可用

    5:强类型转换

    6:xml支持

    44.写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。

    答:

     1 <script ***script>
     2 setTimeout('window.close();',3000);
     3 function show()
     4 {
     5 if (window.event.button == 1)
     6 {
     7 alert("");
     8 }
     9 else if (window.event.button == 2)
    10 {
    11 alert("");
    12 }
    13 }
    14 </script>
    View Code

    45.大概描述一下ASP.NET服务器控件的生命周期

    答:初始化 加载视图状态 处理回发数据 加载 发送回发更改通知 处理回发事件 预呈现 保存状态 呈现 处置 卸载

    46.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

    答:不能,可以实现接口

    47.Static Nested Class 和 Inner Class的不同?

    答:Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。

    而通常的内部类需要在外部类实例化后才能实例化。

    48.,&和&&的区别。

    答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).

    49.HashMap和Hashtable的区别。

    答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,

    主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.

    50.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

    答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
    short s1 = 1; s1 += 1;(可以正确编译)

    51.Overloaded的方法是否可以改变返回值的类型?

    答:Overloaded的方法是可以改变返回值的类型。

    52.error和exception有什么区别?

    答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

    exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

    53.<%# %> 和 <% %> 有什么区别?

    答:<%# %>表示绑定的数据源
    <% %>是服务器端代码块

    54.你觉得ASP.NET 2.0(VS2005)和你以前使用的开发工具(.Net 1.0或其他)有什么最大的区别?

    你在以前的平台上使用的哪些开发思想(pattern / architecture)可以移植到ASP.NET 2.0上 (或者已经内嵌在ASP.NET 2.0中)

    答:

    1 ASP.NET 2.0 把一些代码进行了封装打包,所以相比1.0相同功能减少了很多代码.
    2 同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无 法 在页面嵌入服务器端代码获得帮助提示,
    3 代码和设计界面切换的时候,2.0支持光标定位.这个我比较喜欢
    4 在绑定数据,做表的分页.UPDATE,DELETE,等操作都可以可视化操作,方便了初学者
    5 在ASP.NET中增加了40多个新的控件,减少了工作量

    55.重载与覆盖的区别?

    答:

    1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系
    2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
    3、覆盖要求参数列表相同;重载要求参数列表不同。
    4、覆盖关系中,调用那个方法体,是根据对象的类型(对像对应存储空间类型)来决定;重载关系,是根据调 用时的实参表与形参表来选择方法体的。

    56.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?

    答:不是。可以用任意类型。

    57.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时

    能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路:

    答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中

    58.什么是WSE?目前最新的版本是多少?

    答:WSE (Web Service Extension) 包来提供最新的WEB服务安全保证,目前最新版本2.0。

    59.在下面的例子里,当使用new B()创建B的实例时,产生什么输出?

     1 using System;
     2 class A
     3 {
     4 public A(){
     5 PrintFields();
     6 }
     7 public virtual void PrintFields(){}
     8 }
     9 class B:A
    10 {
    11 int x=1;
    12 int y;
    13 public B(){
    14 y=-1;
    15 }
    16 public override void PrintFields(){
    17 Console.WriteLine("x={0},y={1}",x,y);
    18 }
    View Code

    答:X=1,Y=0

    60.下面的例子中,产生的输出结果是什么?

     1 using System;
     2 class A
     3 {
     4 public static int X;
     5 static A(){
     6 X=B.Y+1;
     7 }
     8 }
     9 class B
    10 {
    11 public static int Y=A.X+1;
    12 static B(){}
    13 static void Main(){
    14 Console.WriteLine("X={0},Y={1}",A.X,B.Y);
    15 }
    16 }
    View Code

    答:x=1,y=2

    61.abstract class和interface有什么区别?

    答:声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,

    并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类

    型是一个抽像类,并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法。Abstract 类的子类为它

    们父类中的所有抽像方法提供实现,否则它们也是抽像类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

    接口(interface)是抽像类的变体。在接口中,所有方法都是抽像的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽像的,

    没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接

    口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对像上调用接口的方法。由于有抽像类,

    它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以

    用来决定某对象的类是否实现了接口。 

     62.什么是中间语言(IL)?它的作用?

    答:代码在执行前都要被编译为托管代码,与CPU无关的指令集。

    其作用:支持平台无关性,还支持语言的互操作性。

    63.什么是装箱和拆箱?

    答:值类型转换成引用类型是装箱,引用类型转换成值类型是拆箱。

    64. 出ADO.NET中读写数据库的主要的几个类?它们的作用?

    答:Connection数据库连接;Command执行SQL语句或存储过程;DataAdapter用于填充DataSet和更新数据库的

    一组数据命令和数据库连接,断开模式;DataReader,读取数据库信息,是只读向前的;DataSet数据在内存中的缓存。

    65. C#中接口和类有什么异同?

    答:类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,

    有protected修饰符,必须使用new初始化。结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,

    可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。

    66.如何选择使用结构还是类?

    答:

    1.堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些

    2.结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。

    3.在表现抽象和多级别的对象层次时,类是最好的选择

    4.大多数情况下该类型只是一些数据时,结构是最佳的选择

    67. 解释ASP(ASP培训 ).NET中的code-behind?

    答:代码隐藏,显示逻辑的代码和处理逻辑的代码分离

    68. 什么是ASP.NET中的用户控件?

    答:是asp.net代码创建的控件,就像在标准的ASP.NET Web页面中创建控件一样,可以在多个ASP.NET页面中重用它们。

    69. 在C#中,string str = null 与 string str = “” 请尽量说明其中的区别。

    答:string str=null没有分配空间,string str=“”分配了空间

    70. 什么是受管制代码?

    答:由公共语言运行环境进行管理的代码,它主要负责内存管理。在.net平台上运行的代码都是受管制代码

    71. C#中常用的访问形式?它们各自的作用域?

    答:

    public 不受限制的访问。

    private 只能在本类中访问

    protected 本类和继承他的类中访问

    internel表示在同一个应用程序(application)或类库(library)中都能使用

    72. SQL SERVER 中的存储过程的理解?

    答:存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,

    可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。

    73.CTS,CLS,CLR分别作何解释?

    答: CTS:公共类型系统.主要是为了语言之间的进行标准化处理.

    CLS:公共语言规范.主要是确保代码可以在任何语言中访问的最小标准集体

    CLR:公共语言运行时.主要是管理代码..处理,加载代码,以及所有服务的代码

    74. ASP.NET和ASP的主要优势?

    答:ASP.Net的优势:

    ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++ , VB , JS等等,当然,

    最合适的编程语言还是MS为.Net Frmaework专门推出的C(读c sharp),它可以看作是VC和Java的混合体吧,尽

    管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向 对象的编程语言,

    而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚

    才谈到的ASP的那些弱点。封装 性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和

    Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改 动;继承性和多态性使得代码的可

    重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了

    完善的调试/ 纠错体系。

    75. NET的错误处理机制是什么?

    答:try{可能要出错的代码}

    catch{扑捉到错误后的处理}

    finally{不论代码是否出错都要执行}

    76. 解释Page.IsPostBack属性?

    答:使用者第一次浏览这个网页时Page.IsPostBack 会传回False,不是第一次浏览这个网页时就传回True

    77..net framework包含哪几种技术?

    答:Application Framework,Domain Framework

    78.触发器分为事前触发和事后触发,有何区别?

    答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值

    79.解释SQL SERVER2000中HAVING的用法?

    答:在分组时筛选数据

    80.解释SQL SERVER2000中GROUP BY的用途?

    答:分组

    81.解释下C#中的方法的重载?

    答:重载方法:是指使用相同的方法名,但指定不同的参数(个数,类型)。

    82.事务是什么?

    答:在许多大型、关键的应用程序中,计算机每秒钟都在执行大量的任务。更为经常的不是这些任务本身,

    而是将这些任务结合在一起完成一个业务要求,称为事务。当某一个任务失败时,就恢复到指定的恢复点,这个叫回滚。

    83.描述下ASP.NET中使用DataReader对象 和DataSet对象的区别?

    答:dataset是保存数据的数据结构,断开模式,而DataReader不承担保存数据的责任,需要自己手动关闭连接数据库,

    它只负责从数据源读取数据到本地而已,是只读向前的,它不是数据结构,而是网络通讯组件的高层封装。

    84.分析类和结构的异同?

    答:类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,

    有protected修饰符,必须使用new初始化。结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,

    可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。 

    85.什么是WEBSERVICE ?

    答:web服务,是利用SOAP(简单对象访问协议,Simple Object Access Protocol)在HTTP上执行远程方法调用的一种方法,

    也可以使用WSDL(Web Service Description Language,Web服务描述语言)来完整的描述Web服务,基于XML标准。

    86.行下面代码后,原因是什么? 

    1 String strTemp ="abcdefg 某某某";
    2 
    3 int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
    4 
    5 int j = strTemp.Length;
    6 
    7 问:i=( 14) ;j=( 11)
    View Code

    答:汉字占2个字节,所以i=14

    87.叙述ASP.NET中的几种验证控件(equiredFieldValidato,CompareValidator,RangeValidator,

    RegularExpressionValitor、CustomValidator,ValidationSummary)及作用?

    答:

    a) RequiredFieldValidator(必须字段验证);

    b) CompareValidator(比较验证);

    c) RangeValidator (范围验证);

    d) RegularExpresionValidator(正则表达式);

    e) ValidationSummary(验证总结);

    f) CustomValidator(自定义验证) 

    88.有三个表,结构如下 编写sql实现:

    STUDENT(学生证号,姓名,性别,出生年月)

    COURSE(课程号,课程名,授课教师)

    SC(学生证号,课程号,成绩,授课教师)

    用标准SQL 语句完成下列操作

    1. 查询女生的基本情况,并按照学生证号降序排列

    答:select * from STUDENT where性别=’女’order by 学生证号 desc

    2. 查询成绩在90分以上的学生的姓名

    答:select 姓名from STUDENT,SC where STUDENT.学生证号 = SC.学生证号 and SC.成绩 > 90

    3. 查询数学类课程的课程号和课程名(模糊查询,以S开头)

    答:select 课程号,课程名 from COURSE where 课程名 like ‘S%’

    4. 查询选课学生所选课程的课程号和成绩,以及该学生的姓名和性别

    答:select 课程号,成绩,姓名,性别 from SC,STUDENT,COURSE

    where SC.学生证号 = STUDENT.学生证号

    and COURSE.课程号 = SC.课程号 group by 学生证号

    5. 查询03号课程的平均成绩

    答:select avg(成绩) from SC where 课程号 = ‘03’

    6. 删除成绩不及格的学生姓名

    答:delete from STUDENT where学生证号 in (select学生证号 from SC where 成绩 < 60);

    delete from SC where成绩 < 60;

    注意:删除的顺序不能反

    7. 把学生证号为90876的学生所选的01号课程成绩改为80分

    答:update SC set 成绩 = ’80’where 学生证号=’90876’ and课程号 = ‘01’

    8.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号,

    LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号

    答:select ID from table1 where LastUpdateDate = (select max(LastUpdateDate) from table1)

    89.sleep和wait有什么区别

    答: sleep()不释放同步锁,wait()释放同步锁.

    90.分析以下代码,以上代码可以正确使用连接池吗?

    View Code

    答:如果传入的connectionString是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。

    >>>>>>>>>>>>>>>第一部分<<<<<<<<<<<<

  • 相关阅读:
    CentOS 7安装Splunk
    OpenSwitch操作系统成为Linux基金会官方项目
    新手选择使用 Linux 桌面的七个注意点
    SELinux入门
    新一代 Tor发布,它牛在哪里?
    【光环国际】一位老太太的需求
    【情商】为人处世
    【Teradata】磁盘碎片整理(ferret工具)
    【架构解密】第六章 深入解析分布式存储
    【大数据技术】HBase Meetup资料
  • 原文地址:https://www.cnblogs.com/ChinaKingKong/p/5483499.html
Copyright © 2020-2023  润新知