《C#第三套试题及答案》由会员分享,可在线阅读,更多相关《C#第三套试题及答案(5页珍藏版)》请在金锄头文库上搜索。
1、C# 试题 (3)一填空题1类的三大特性是(继承) (封装)(多态)。2SQL语言中,用于事务回滚的语句是(rollback tran)。3 声明静态变量的关键字是(static),声明常量的关键字是(const )。4 软件工程的三大文档(需要分析说明书) (概要设计说明书) (详细设计说明书) 。5 为数据表创建索引的目的是(提高查询速度)。6 B/S 通常使用的结构设计模型分为(模型)(视图)(控制器)。(MVC经典的Web/Business/DataAccess)7 SQL SERVER中索引类型包括的三种类型分别是(唯一索引)(主键索引)(聚集索引)。8 在 SQL SERVER20
2、00中的四中约束(主键) (唯一)(外键)(检查)。9 Codebehind 主要是通过把(aspx 代码)和( cs 代码)放在不同的文件中来实现代码分离的。10 计算字段的平均值和最大值的函数是:( avg)(max)11XML的全称是( ExtensibleMarkup Language),提供了快速和有效地读写XML的方式的类分别是( XMLReader)( XMLWriter )。12. SQL SERVER 中的存储过程是(预编译集合) 。13C#中所有的类型实质上都是从(object )类派生而来的。14 .NET 运行库支持被称为(委托)的引用类型,其作用类似于C+中函数指针的
3、用途。15. 在流程控制中 CONTINUE的作用(跳出当前循环继续)二简答题1 描述下 C#中的程序集?程序集是有哪两部分组成?答:程序集是自我描述的安装单元,由一个或多个文件组成,一个程序集可以是一个包含元数据的DLL或 EXE,也可以由多个文件组成,例如资源文件、元数据、DLL 和 EXE。程序集的安装仅是复制所有的文件而已,使用xcopy 命令即可完成安装,有两种类型:私有的和共有的。2 什么是元数据?答: 元数据是以二进制形式存在于PE 文件中的信息集合, 它包含了每个类型的声明及其所有成员法、字段、属性和事件)的声明,包括名字和类型,而对于每个实现的方法,元数据包含调用者用于(方定
4、位方法体的信息。与旧的技术如类型库等相比较而言,元数据更加完整,并总是嵌入到托管模块中。3 请写出BOOLflag与“零值”比较的if语句?请写出charp 与“零值”比较的if语句?答: if(flag);if(!flag)。4 说出下面几个函数的区别:private void test(string str):通过值传 送变量private void test(ref string str):值参数通过 引用传递给方法,必须先初始化strprivate void test(out string str): str通过引 用被传送,从test中返回时,保留该方法对其的改变5 什么是强类型系统
5、?答: C# 是强类型语言;因此每个变量和对象都必须具有声明类型6 值类型和引用类型的区别?答:值类型直接存储其值,引用类型存储对值的引用。值类型存储在堆栈中,而引用类型存储在托管堆上。值类型包括:简单类型、结构类型、枚举类型;引用类型包括:类、数组、接口、委托、字符串、数组。7 如何理解委托?答:有点类似于指针,但他是类型安全的,通过对于方法特征和返回类型的声明,封装了具有相同特征和返回类型的方法。不关心该方法是什么类型的对象,甚至是静态的还是实例的。委托可以连接在一起,可以对一个事件调用多个方法。8 事务是什么?答:在许多大型、关键的应用程序中,计算机每秒钟都在执行大量的任务。更为经常的不
6、是这些任务本身,而是将这些任务结合在一起完成一个业务要求,称为事务。当某一个任务失败时,就恢复到指定的恢复点,这个叫回滚。9 解释重载函数、虚拟函数的概念?答:重载方法:是指使用相同的方法名,但指定不同的参数(个数,类型)。虚拟方法:在基类中对要实现多态性的方法加上virtual 关键字,在派生类中的同名方法前面,加上 override 关键字修饰,并改写该方法的代码。10请简述以下两个for循环的优缺点for (i=0; iN; i+)if (condition)if (condition)for (i=0; iN; i+)DoSomething();DoSomething();elseDo
7、Otherthing();elsefor (i=0; iN; i+)DoOtherthing();答:其实这两个for循环在不同的环境下不同。总的来说前面的代码简洁,但是多执行了N1 次,效率底些,后面的效率高些,但是不够简洁。11描述怎样区分ExcuteNonQuery, ExcuteDataReader和 ExcuteScalar方法?答: ExcuteNonQuery 返回受影响的行数;ExcuteDataReader返回 DataReader ;ExcuteScalar返回查询结果的第一行的一列的值,忽略其他行列。12. 列出 ADO。 NET中读写数据库的主要的几个类?它们的作用?答
8、: Connection数据库连接; Command执行 SQL语句或存储过程;DataAdapter用于填充DataSet 和更新数据库的一组数据命令和数据库连接,断开模式;DataReader ,读取数据库信息,是只读向前的; DataSet 数据在内存中的缓存。13. 什么是中间语言( IL )?它的作用?答:代码在执行前都要被编译为托管代码,与CPU无关的指令集。其作用:支持平台无关性,还支持语言的互操作性。14. 在 SQL SERVER2000中存储过程和触发器的区别?答:存储过程 是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库
9、内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。触发器 是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、 INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求。例如,可以控制是否允许基于顾客的当前帐户状态插入定单。触发器还有助于强制引用完整性,以便在添加、 更新或删除表中的行时保留表之间已定义的关系。然而,强制引用完整性的最好方法是在相关表中定义
10、主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。有关详细信息,请参见表关系。触发器的优点如下:触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。触发器可以通过数据库中的相关表进行层叠更改。例如,可以在titles表的title_id列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。该触发器用title_id列作为唯一键,在titleauthor、 sales及roysched表中对各匹配行进行定位。触发器可以强制限制,这些限制比用CHECK 约束所定义的更复杂。与CHECK 约束不同的是,触发器可以引用其
11、它表中的列。15 在 ASP.NET 中页面之间传递值的方式?( 尽可能叙述 )答:session(viewstate)简单,但易丢失application全局cookie简单,但可能不支持,可能被伪造input ttype=hidden简单,可能被伪造url 参数简单,显示于地址栏,长度有限数据库稳定,安全,但性能相对弱16分析类和结构的异同?答:类是引用类型, 可以继承类、 接口和被继承, 有默认的构造函数,有析构函数, 可以使用 abstract和 sealed ,有 protected 修饰符,必须使用 new 初始化。结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创
12、建,没有析构函数,不可以用 abstract 和 sealed ,没有 protected 修饰符,可以不用 new初始化。如何选择使用结构还是类:1堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些2结构表示如点、 矩形和颜色这样的轻量对象,例如,如果声明一个含有1000个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。3在表现抽象和多级别的对象层次时,类是最好的选择4大多数情况下该类型只是一些数据时,结构是最佳的选择17 short s1 = 1; s1 = s1 + 1;有什么错 ? short s1 = 1; s1 += 1;答: s1 是 short型的, s1 + 1 是 int型的,不能显示的转换成short有什么错 ?型,改为s1 = (short)(s1+ 1);后面的没有错。18叙述ASP。 NET中的equiredFieldValidator和RegularExpressionValitor验证控件及作用?答: equiredFieldValidator是必须字段验证,RegularExpressionValitor是正则表达式验证。19叙述下Using的用法?答: 1. using指令。using +命名空间名字,这样可以在程