资源描述
A笔试部分
1. C#中New关键字有几种用法
(1)new 运算符 用于创建对象和调用构造函数。
(2)new 修饰符 用于隐藏基类成员的继承成员。
(3)new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型。
2.如何把一个array复制到arrayList里
foreach( object o in array )arrayList.Add(o);
3.datagrid.datasouse可以连接什么数据源
dataset,datatable,dataview , IList
4.概述反射和序列化
反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。
5.类成员有种可访问性
public ,protected ,private,internal
6.用sealed修饰的类有什么特点
sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
7.列举ADO.NET中的五个主要对象;
connection,command,dataReader,trans,dataset
8执行下面代码后:
String strTemp ="abcdefg某某某";
Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j = strTemp.Length;
问:i=(13) ;j=(10)
9 C#中,string str = null 与 string str ="",请尽量用文字说明区别。(要点:说明详细的内存空间分配)
string str = null定义一个null的字符串,NULL表示什么也没有,它不属于任何类型,内存里面没有分配地址。
string str =""定义了一个空的字符串,内存里面分配了地址,但是内容是空的。
10. 如何选择结构还是类
1. 堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些
2. 结构表示如点、矩形和颜色这样的轻量对象
例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。
在此情况下,结构的成本较低。
3. 在表现抽象和多级别的对象层次时,类是最好的选择
4. 大多数情况下该类型只是一些数据时,结构时最佳的选择
11.什么是code-behind技术
aspx and cs
代码分离.或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的.
12.概述三层结构体系
web/business/dataaccess
如何实现MVC模式,举例说明!
web/business/dataaccess
插入数据时,可以在web里面获取输入,business里面处理数据,dataaccess插入数据。
14.面向对象的思想主要包括什么?
继承 多态 封装
封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。
继承:子类拥有父类的所有数据和操作。
多态:一个程序中同名的不同方法共存的情况。
有两种形式的多态– 重载与重写。
15.什么是ASP.net中的用户控件
用户控件就是.ascx扩展名,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.
16.简要列举一下你所了解的XML技术及其应用
它是一种数据的承载体,类似于数据库。保存配置,站与站之间的交流,WEB SERVICE都要用它.
17.ADO.net中常用的对象有哪些?分别描述一下。
connection command sqladapter dataset datatable dataview等等
18.如何理解委托?
据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
msdn2005中是这样解释的:
委托具有以下特点:
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
19.ASP.net的身份验证方式有哪些?分别是什么原理?
form认证,windows集成认证等
21.进程和线程分别怎么理解?
线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。线程可以创建和撤消线程,从而实现程序的并发执行。一般,线程具有就绪、阻塞和运行三种基本状态。
22. 列举ASP.NET 页面之间传递值的几种方式。
1).使用QueryString, 如....?id=1; response. Redirect()....
2).使用Session变量
3).使用Server.Transfer
中读写XML的类都归属于哪些命名空间?
System.Xml
25.如何理解.net中的垃圾回收机制。
垃圾回收器是用来管理应用程序的内存分配和释放的。在垃圾回收器出现以前,程序员在使用内存时需要向系统申请内存空间
26.override与重载的区别
override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要 Override 是进行基类中函数的重写。
27.请编程遍历页面上所有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 ;
}
}
28.请编程实现一个冒泡排序算法?
int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
29.什么叫应用程序域?
应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。
30.CTS、CLS、CLR分别作何解释?
CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。
31.什么是装箱和拆箱?
从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。
32.常用的调用WebService的方法有哪些?
1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜单选项
数据库笔试题
1. 取SQL SERVER一个表中的指定记录
假如SQL SERVER的一个表中有1000条记录,我怎么用一个简单的办法取出第400到第500条记录?(只能用SQL语句处理)
select * from Customer a
where (select count(*) from Customer where ID <= a.ID)
between 400 and 500
2. 把一个表的某一列数据更新到另一个表中
update t1 set a = t1.a inner join t2 on t1.b=t2.b
3.把两个结构完全相同的表的所有记录用一条SQL语句查询出来。
假如,T1表有100条记录,T2表有200条记录。实现要求是查询出来的数据集是300条
Select * from T1 union Select * from T2
上机部分
假设一个数据库表A,有字段: name,sex
以下是程序有三个类:数据库连接类,公共变量类(和数据表对应),插入/删除/更新类
namespace A
{
class 数据库操作类
{
private void open()
{}//连接数据库
private void param()
{}获得插入的数据,转换成parameter类型
private void dosql()
{}执行sql命令
}
class 公共变量类
{
public class 数据库表
{
private string name="";
private string sex="";
public string Name
{
get{return name;}
set{name=value;}
}
public string Sex
{
get{return Sex;}
set{Sex=value;}
}
}
}
class 插入删除更新类
{
private void 插入方法(){要使用前两个类}
private void 更新方法(){要使用前两个类}
private void 删除方法(){要使用前两个类}
}
}
请上机新建一个WEB工程。新建一个aspx页面和一个数据库表,在aspx页面上面用两个文本框作为name,sex输入。然后下面用一个datagridview显示所输入记录,并实现修改和删除功能。上机时间为一个小时.
展开阅读全文