C#.NET重点知识点汇总(二)
填空题
1..NET Framework包括(CLR公共语言运行时)(框架类库)(实用工具)三种技术
2.运算符++X表示(计算完毕后增量X),X++表示(在计算前增量X)。
3.软件测试方法分为(黑盒测试)(白盒测试)。
4..NET通过对各语言先编译成(中间语言(IL)),然后再执行时用(JIT(即时编译器))将其编译成本地平台代码,来实现异构平台下对象的互操作
5.在SQL SERVER 中游标的声明的语句是(Declare Cursor)释放的语句是(Deallocate cursor)。
6.SQL SERVER的编程语言是(Transact-SQL)语言
7.委托声明的关键字是(Delegate)。
8.在MS SQL Server中,用来显示数据库信息的系统存储过程是(sp_helpdb)
9.SQL语言中,用于事务回滚的语句是(Rollback)。
10.如果两个实体之间具有M:N联系,则将它们转换为关系模型的结果是(3)个表。
11.Codebehind主要是通过把(页面代码)和(功能代码)放在不同的文件中来实现代码分离的。
12.在C#中由值类型转换为引用类型称为(装箱),有引用类型转换为值类型称为(拆箱)
13.SQL SERVER中索引类型包括的三种类型分别是(唯一索引)(簇索引)(非簇索引)。
14.软件工程的三大文档(系统需求说明书)(系统概要设计说明书)(系统详细设计说明书)
15.在SQL SERVER2000中的四中约束(主键)(唯一性)(外键)(检查约束)。;
B.简答题
1.什么是中间语言(IL)?它的作用?
中间语言代替了COM的调用约定和内存管理标准,所有其他的NET语言都将编译为这种语言,结果就是程序员不必来确保他们的代码将与一种确定的二进制标准进行互操作,而是由不同。NET语言编译器将代码编译到IL中来确保这种互操作性。
2.C#中与基类通信的关键字什么?作用是什么?
C#允许通过BASE关键字访问最近的基类成员。
3.什么是元数据?
描述程序集的内容,通过将元数据嵌入每个程序集中,任何程序集都可以实现完全的自我描述, 从而简化了发布使用较旧技术的组件时所需要的工作。
4.ASP.NET和ASP的主要优势?
a.ASP.NET具有面向对象性;b.ASP.NET使用ADO.NET,使对数据库操作更快速更强大;
c.ASP.NET支持多种语言,摆脱了ASP只能使用非结构语言(VBSCRIPT,JSCRIPT)编写的限制;d.ASP.NET具有代码绑定技术,使页面代码和功能代码的编写完全分离,具有更好的重用性.
5.Override与重载有什么区别?
Override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数。
6.SQL SERVER 中的触发器的理解?
触发器是一种特殊的存储过程,当用户修改指定表或视图中的数据时,触发器将自动执行.
7. ref、out的区别
ref修饰符用来通过引用传递参数,从而使得被调用方法能够更新参数的值.
Out修饰某个参数意味着该方法会把一个值从自身回传给调用函数.
8.大概描述下ASP.NET中服务器控件的生命周期?
9.什么是强类型系统?
中间语言一个重要方面是建立在非常强的类型化功能上.所有的变量都清晰地标记为属于某个特定数据类型,特别是如果给定的引用表示某个数据类型比较模糊的,那么中间语言一般不允许对它执行任何操作.
10.触发器分为事前触发和事后触发,有何区别?
事前触发器就是在语句执行之前激活的触发器,而事后触发器就是在语句执行后激活的触发器。
11.谈谈final, finally, finalize的区别。
final 修饰符用于指定类不能扩展或者方法或属性不能重写。它将防止其他类通过重写重要的函数来更改该类的行为。带有 final 修饰符的方法可以由派生类中的方法来隐藏或重载。
finally 块用于清除在 try 块中分配的任何资源。控制总是传递给 finally 块,与 try 块的存在方式无关。
finalize允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。
12.在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
一个是退出整个应用程序,一个是关闭其中一个form。
13.C#中的委托是什么?事件是不是一种委托?
委托是一个可以对方法进行引用的类。与其他的类不同,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用。这样,委托就等效于一个类型安全函数指针或一个回调。事件是一种委托.
14.值类型和引用类型的区别?
值类型的变量总是一个值,当声明时编译器分配与此类型相关联的字节数,而且你将直接操
已经分配的内存,另外在传递值类型的变量时,是在传递变量的值而不是它的底层对象的引用。而声明一个引用类型的变量时,是在操作对此对象的引用,而不是象值类型那样直接操作数据。主要的引用类型有:类,数组,接口,委托。
15.解释下C#中的方法的重载?
C#中允许在一个类中定义方法的不同版本,编译器会自动根据提供的参数选择最合适的版本。
16.分析类和结构的异同?
1.结构可以继承接口,但不允许继承类和其他结构;2.结构是值类型,类是引用类型;
3.结构不允许声明析构函数;4,结构是从堆栈分配内存,而类是从堆上分配内存。
17. &和&&的区别。
&是位运算符。&&是布尔逻辑运算符。
18.描述怎样区分ExcuteNonQuery 和ExcuteScalar方法?
ExecuteNonQuery;用于查询不返回结果集或者不返回除了所影响的行数之外的任何值.
ExecuteScalar:用于执行返回一个值的命令。
19.解释文件系统为什么会存在数据冗余?这种数据冗余会导致哪两类典型的问题?
由于文件系统难于实现数据共享,因此,相同的数据可能会在多个文件中重复出现,即产生数据冗余。数据冗余会导致数据(或更新)异常和数据不一致性。
20.什么是WEBSERVICE?
从表面上看,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。
21.接口和抽象类有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
22.描述类中的构造函数和析构函数?
构造函数用于在使用对象之前,对对象中的成员数据进行初始化.一般与类同名; 析构函数用在撤消对象时,承担善后处理工作,比如收回对象中的成员数据所占有的存储空间.
23.解释下C#中的程序集?
用于代替DLL和可执行文件(EXE)概念的自我描述.程序集由中间语言和元数据组成。
24.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行, 在return前执行。
25.SQL SERVER的两种索引是何形式?索引的作用?索引的优缺点?
SQL SERVER 提供了两中索引形式:簇集索引和非簇集索引.索引是SQL SERVER在列上建立的一种数据库对象.它对表中的数据提供逻辑排序,可以提高数据的访问速度.建立索引也有缺点,它可以提高查询速度,但过多的建立索引会占据大量的磁盘空间.
26.谈谈C/S和B/S的特点
C/S结构 是客户端和服务器机构 ;B/S是浏览器和服务器结构;
C/S结构应用服务器运行数据负荷较轻,数据存储管理较为透明,C/S架构的劣势是高昂的维护成本;.B/S结构维护和升级方式简单,成本降低,选择很多,应用服务器运行数据负荷较轻;.C/S多建立在局域网基础上,B/S是建立在广域网基础上。
C.编程题:
1.设有如下关系表
供应者 SUPPLIER(SNO,SNAME,CITY) SNO供应者编号,SNAME为供应者姓名,CITY所在城市
零件 PART(PNO,PNAME,WEIGHT)PNO零件号,PNAME零件名称,WEIGHT重量
工程 JOB(JNO,JNAME,CITY) JNO工程号,JNAME工程名,CITY所在城市
联系关系 SPJ(SNO,PNO,JNO,QTY) QTY为数量
1.查找给工程J1提供零件P1的供应者号SNO
SELECT SNO FROM SPJ WHERE PNO=“P1”AND JNO=“J1”
2.查找在北京的供应者给武汉的工程提供零件的零件号
SELECT PNO FROM SPJ WHERE JNO IN(SELECT JNO FROM JOB WHERE CITY=“武汉”)
AND SNO IN (SELECT SNO FROM SUPPLIER WHERE CITY=“北京”)
3.查找由供应者S1提供的零件名PNAME
SELECT PNAME FROM PART WHERE PNO IN(SELECT PNO FROM SPJ WHERE SNO=“S1”)
4.查找CITY值为上海的工程号和名称
SELECT 工程号,名称 FROM JOB WHERE CITY=“上海“
5.将工程J3的城市改为广州
UPDATE JOB SET CITY=“广州“ WHERE JNO=”13“
6.将所有重20公斤的零件改为重10公斤
UPDATE JOB SET CITY=“广州“ WHERE JNO=”13“
7.将给工程J1提供零件P1的供应者S1改为S2
UPDATE SPJ SET SNO=“S2”
WHERE(JNO=“J1” AND PNO=“P1” AND SNO=“S1”)
8.将值(S3,凌涛,武汉)加到SUPPLIER中
INSERT INTO SUPPLIER(SNO,SNAME,CITY)
9.删除所有上海工程的数据
DELETE FROM JIB WHERE CITY=“上海”
2.有个表USERS如下
Number(int) Name(char)
1 a
2 b
3 b
4 a
5 c
6 c
要求:当Name列上有相同时,只保留Number这列上值小的那一行,结果应如下:
Number(int) Name(char)
1 a
2 b
5 c
问:用SQL语句的Delete来实现.(记住,是一个SQL语句)
DELETE * FROM Users WHERE Number NOT IN (Select Min(Number) FROM Users
GROUP BY Name)