打印面试题Word文件下载.docx
《打印面试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《打印面试题Word文件下载.docx(44页珍藏版)》请在冰豆网上搜索。
在XML中,属性值必须分装在引号中。
在HTML中,引号是可用可不用的。
在HTML中,可以拥有不带值的属性名。
在XML中,所有的属性都必须带有相应的值。
5.如何动态遍历页面中所有TextBox,Combox控件,并给Text属性赋空
foreach(Controlctlinthis.Controls)
{
if(ctlisTextBox||ctlisComboBox)
{
ctl.Text=string.Empty;
}
}
6.一列数的规则如下:
1、1、2、3、5、8..求第30位数是多少,用递归算法实现。
publicclassMainClass
{
publicstaticvoidMain()
Console.WriteLine(Foo(30));
}
publicstaticintFoo(inti)
if(i<
=0)
return0;
elseif(i>
0&
&
i<
=2)
return1;
elsereturnFoo(i-1)+Foo(i-2);
7.请编程实现一个冒泡排序算法?
int[]array=newint[*];
inttemp=0;
for(inti=0;
array.Length-1;
i++)
for(intj=i+1;
j<
array.Length;
j++)
if(array[j]<
array[i])
temp=array[i];
array[i]=array[j];
array[j]=temp;
8.写出抽象类和接口的定义,并描述两者的区别。
声明方法的存在而不去实现它的类被叫做抽像类(abstractclass),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract类的实例。
然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。
不能有抽像构造函数或抽像静态方法。
Abstract类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。
取而代之,在子类中实现该方法。
知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽像类的变体。
在接口中,所有方法都是抽像的。
多继承性可通过实现这样的接口而获得。
接口只可以定义staticfinal成员变量。
接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。
当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。
然后,它可以在实现了该接口的类的任何对像上调用接口的方法。
9.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
using:
1)引入命名空间
2)using别名。
using+别名=包括详细命名空间信息的具体的类型。
3)定义一个范围,在范围结束时处理对象。
new:
1)new运算符:
用于创建对象和调用构造函数。
2)new修饰符:
在用作修饰符时,new关键字可以显式隐藏从基类继承的成员。
3)new约束:
用于在泛型声明中约束可能用作类型参数的参数的类型。
10.override与重载的区别
答:
override与重载的区别。
重载是方法的名称相同。
参数或参数类型不同,进行多次重载以适应不同的需要
Override是进行基类中函数的重写。
为了适应需要。
11.用sealed修饰的类有什么特点
sealed修饰符用于防止从所修饰的类派生出其它类。
如果一个密封类被指定为其它类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
中接口是否可以继承接口?
抽象类是否可以实现接口?
抽象类是否可以继承实体类?
net中接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类。
13.a=10,b=15,在不用第三方变题的前提下,把a,b的值互换
a=a+b;
b=a-b;
a=a-b;
中()方法可以把虚拟路径转换成物理路径Response
Server.MapPath();
Request.MapPath();
15.接口中不能包含以下哪几项()方法,属性,字段,事件,索引器,构造函数,析构函数
字段构造函数析构函数
16.ASP常用的6大对象,并说出其功能;
asp包含以下6大对象:
1)Request对象:
封装了由web浏览器或其他客户端生成的http请求的细节(参数,属性和数据),提供从浏览器读取信息或者读取客户端信息等功能,用于页面请求期。
2)Response对象:
封装了返回到http客户端的输出,提供向浏览器输出信息或发送指令,用于页面执行期。
3)Server对象:
提供对服务器上的方法和属性的访问。
其中大多数方法和属性是作为实用程序的功能服务的。
4)ObjectContext对象:
该对象用于控制ActiveServerPages的事务处理。
事务处理由MicrosoftTransactionServer(MTS)管理。
5)Server对象:
Server对象提供对服务器上的方法和属性的访问。
6)Session对象:
为某个用户提供共享信息,作用于用户会话期。
17.C#中什么是泛型和泛型的集合?
泛型:
泛型是C#2.0的最强大的功能。
通过泛型可以定义类型安全的数据结构,而无须使用实际的数据类型。
这能够显著提高性能并得到更高质量的代码,因为您可以重用数据处理算法,而无须复制类型特定的代码。
在概念上,泛型类似于C++模板,但是在实现和功能方面存在明显差异。
泛型的集合:
泛型集合是泛型的最显著应用,可以约束类内的元素类型,比较典型的泛型集合是List<
T>
和Dictionary<
K,V>
18.什么是委托,怎么定义一个委托?
委托是指具有相同属性(也称具有相同的函数签名:
返回类型相同,参数类型、参数顺序及参数个数相同)的函数或方法的抽象,关键字为delegate。
主要用途是三个:
1)函数回调;
2)传递方法;
3)事件机制
定义委托的格式:
[作用域]delegate<
返回类型>
委托名([参数列表]);
19.C#中关于Struct和Class的区别?
在.net中,类与结构的区别如下:
类属于引用类型,而结构属于值类型
类可以被继承,而结构不能被继承
类可以有默认的构造函数,而结构没有默认构造函数
类可自行添加无参构造函数,机构不能添加无参构造函数,可手动添加有参构造
类在创建对象时必须使用new关键字,结构可不用new
类中的字段在声明时可赋初值,结构在声明字段时不能赋初值
类和结构的相同点:
都可包含字段,属性和方法
都可以实现接口
20
简述private,protected,public,internal修饰符的访问权限
类内部
同一程序集的派生类
同一程序集的其他类
不同程序集的派生类
不同程序集的其他类
private
可以
不可以
Protected
Internal
Public
21.代码判断题
namespacea
publicclassA{
protectedstringstr="
str"
;
namespaceb
usinga;
publicclassB{
publicstaticvoidMain()
Aobj=newA();
obj.str="
abc"
以上代码能否正确编译,为什么?
答,无法通过编译,B类不能访问A类的protected成员。
22、中连接数据库的几个对象,各有什么用处
A中连接数据库主要有一下几个对象:
Connection:
建立与特定数据源的连接
Command:
对数据源执行命令
DataReader:
从数据源中读取只进且只读的数据流
DataAdapter:
用数据源填充DataSet并解析更新
Parmaeter:
表示Command的参数
Transaction:
表示要在数据源执行的SQL事务
23.请说出int与integer的区别
int属与c#中定义int32的整数类型,integer在用于定义整形变量
24.JavaScript的变量作用域。
JavaScript的变量作用域如下:
A)全局变量:
在整个页面都可访问,声明在Script块内
B)局部变量:
只在方法中可用,声明在函数体内
注:
javascript的变脸可不声明直接使用,如果在函数内直接使用了一个变量,如函数外没有同名变脸的声明,则此变量为局部变量
25.什么叫装箱,什么叫拆箱?
[易]
将值类型转换为引用类型的过程称为装箱
反之称为拆箱
26.什么是反射?
什么是委托?
(易)
可以获取有关已加载的程序集和在其中定义的类型(如类、接口和值类型)的信息。
使用反射在运行时创建类型实例,以及调用和访问这些实例。
28.什么是虚函数?
什么是抽象函数?
什么是反射?
答:
虚函数>
被virtual关键字修饰的成员函数
抽象函数>
没有给出具体解析式的函数
反射>
提供了封装程序集、模块和类型的对象
29.谈谈解决session丢失的方法。
延长session的保存时间,加内存。
30.写一个你最熟悉的函数,输出“hello,world!
”(易)
classxxx{
publicstaticvoidmain(stirng[]args)
{System.Console.Write(“hello,world!
”);
31.面向对象的特点
封装,继承,多态
有一串字符`B`,`D`,`A`,`E`,`H`,`G`,`S`,`M`,`F`对字串从小到大进行排序,写出关键代码(易)
Char[]chs=newchar[]{`B`,`D`,`A`,`E`,`H`,`G`,`S`,`M`,`F`};
Array.Sort(chs);
32.编写一个简单模型实现定义的接口,实现接口和使用接口。
interfaceITest{voidTestMethod()}
classTestITest{voidTestMethod(){Console.Write(“aaa”);
}}
…
ITestt=newTest();
t.TestMethod();
36.请说明C#与java语言中,方法中参数传递有哪几种方式?
C#中参数传递中设置ref或out关键字时,有什么区别及作用?
答out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候
37.序列化有什么作用?
将对象转换为另一种媒介传输的格式过程。
如,序列化一个对象,用Http通过internet在客户端和服务器之间传递该对象,在另一端用反序列化从该流中重新得到对象
38.stringstr=null和stringstr="
有什么区别?
stringstr=null;
不在内存中开辟空间
stringstr="
在内存中开辟空间,但空间中没有值("
也是一个字符串)
39.项目中用过哪些第三方控件
AspNetPager、WebValidates、FreeTextBox等
比asp有什么改进?
1)ASP使用的VBScript,JAVA,它把脚本语言直接嵌入Html文档中.应用处理与html标记混杂在一起从而不易分辨,性能不易扩充,脚本语言的功能有限。
A
采用页面与代码相分离技术
2)更丰富的类库
3)VSstudio开发环境
4)不管是执行速度,安全性,编程性,目前的市场性都是教强一些
42现在有空白窗体“Form1”,请用代码在该窗体上随机添加1至10个Button。
Randomr=newRandom();
PublicvoidAddButtons()
for(inti=0;
r.Next(11);
this.Controls.Add(newButtong());
46.写一个判断某正整数是否是素数的函数。
boolIsPrimeNumber(uintx)
for(uinti=2;
x;
if(x%i==0)
returnfalse;
returntrue;
47、你了解CSS吗,谈谈项目中你对CSS的运用。
级联样式表,控制HTML等标记语言的一种方式.能够扩展标记的样式特性。
集中在几个css文件中,方便控制整体风格的变更。
48、Ado.Net中连接池的作用和原理?
减少连接对象的创建和释放的开销,使得频繁操作数据库的开销降低。
49、简述ASP.NET页面的生命周期.
页面生命周期
页面生命周期执行一系列步骤:
页面的初始化、实例化控件、还原和维护状态、运行事件处理程序代码、呈现。
为了在合适的阶段执行所需的代码,所以要对页面生命周期非常熟悉。
在页生命周期的各个阶段,页面会逐个引发定义的事件,通过对代码开发,在页面的生命事件中执行我们所需要的程序
页生命周期阶段
1、页请求:
发生在页面生命周期之前,用户请求页时,ASP.NET将确定是否需要分析和编译页,从而确定是否开始页面的生命周期,或者是否可以在不运行页的情况下发送页面缓存以进行响应。
2、开始:
设置页属性,如:
HttpContext以及其他属性;
在此阶段,页面需要确定是回发请求还是新请求,并设置IsPostBack属性;
设置页面的UICulture属性。
3、页面初始化:
加载所有主题;
控件生成,并设置UniqueID;
ViewState、ControlState中的值还未加载至控件;
如果页面是回发,则回发数据也还未加载;
故此时控件可以访问,但值可能出错。
4、加载:
如果当前请求是回发请求,则为控件加载ViewState和ControlState中的值。
5、验证:
调用所有验证程序控件的Validate方法,此方法将设置验证程序控件和页的IsValid属性。
6、回发事件处理:
如果请求是回发请求,则调用所有事件处理程序。
7、呈现:
首先对该页和所有控件进行保存视图状态,然后对每个控件调用Render方法,它会提供一个文本编写器,用于将控件的输入写入页的Response属性的OutputStream中。
8、卸载:
完成呈现,并已将页发送至客户端、准备丢弃该页后,调用卸载。
将卸载属性如:
Response和Request等等。
页生命周期事件:
1、PreInit
完成操作:
检查IsPostBack属性来确定是不是第一次处理该页;
创建或重新创建动态控件
动态设置主控页
动态设置Theme属性
读取或设置配置文件属性
如果请求是回发请求,则控件的值尚未从视图状态恢复,即:
不应该在此事件中设置控件属性。
2、Init
在所有控件都已经初始化并且应用所有外观设置后引发。
使用该事件来读取和初始化控件属性。
3、InitComplete
由Page对象引发,使用该事件来处理要求完成所有初始化工作的任务。
4、PreLoad
为页和所有控件加载视图状态,然后处理Request实例包括的任何回发数据。
如果需要在Load之前对页或控件进行处理,需要该事件。
5、Load
以递归方式加载所有控件。
6、控件事件
处理控件引发的事件。
在回发请求中,如果页包含验证程序控件,请在执行任何处理之前检查Page和各个验证控件的IsValid属性。
7、LoadComplete
8、PreRender
在控件输出前最后的修改机会。
在该事件发生前的操作:
Page对所有控件递归进行EnsureChildControl操作
设置了DataSourceID属性的数据绑定控件会调用DataBind方法。
9、SaveStateComplete
在该事件发生前,已经对控件的ViewState进行了保存。
将忽略对页和控件所作的所有修改。
10、Render
方法,便于开发
11、UnLoad
50、out参数修饰符和ref参数修饰符的区别?
out————一个引用传递
1、如果一个方法中的变量在使用out作为参数时,在方法中对out参数所作的更改都会反映到该变量。
2、若要使用out参数,方法定义以及方法的调用都必须显示使用out关键字;
3、不必初始化作为out参数传递的变量,因为out参数在进入方法后清空自己,也因为这个原因必须在方法返回之前为out参数赋值。
(只有地址没有值的参数是不能被.NET接受的)。
ref要求变量必须在传递之前进行初始化。
ref-----仅仅是一个地址!
1、当一个方法在使用ref参数时,在方法中对ref参数所作的任何更改都将反映在该变量中。
2、如果使用ref参数,则必须将参数作为ref参数显示传递到方法。
ref参数的值可以被传递到ref参数。
3、ref参数传递的变量必须初始化,因为ref参数在进入方法后还是它自己,它这个地址指向的还是原来的值,正因为这个原因ref参数可以在使用它的方法内部不操作。
这与out不同,out的参数在传递之前不需要显示初始化。
51、装箱,拆箱的缺点是什么?
用什么方法改善?
需要强制的类型转换,内部生成新的对象,效率低下。
可以使用泛型解决
53、c#中字段和属性的区别?
字段是类的内部存储数据用的,属性的本质是方法
54、在ADO.NET中,你对连接池的理解。
当net打开连接后,使用完毕,虽然调用close但是并没有销毁,而是闲置等待被重用,这就是连接池的作用,速度比较快
55.、谈谈在ASP.NET中,设置分页时,使用存储过程的好处,和存储过程的工作原理。
对数据库和程序的压力都比较小,存储过程的分页原理在主键的合理用,同计算得到最终定位的项目上
56、Ajax的核心对象是什么?
Javascript,DOM,CSS,xmlhttprequest
中等
2.从面向对象的角度思考,什么是多态。
多态是指两个或多个属于不同类的对象,对于统一个消息(方法调用)作出不同响应的方式。
3.Session有什么重大的BUG,微软提出了什么方法加以解决?
是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sateserver或SQLServer数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。
4.CTS、CLS、CLR分别作何解释?
CTS:
通用语言系统。
CLS:
通用语言规范。
CLR:
公共语言运行时。
5.C\S和B\S的区别。
C/S与B/S区别:
Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.
1.硬件环境不同:
C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务.
B/S建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备.信息自己管理.有比C/S更强的适应范围,一般只要有操作系统和浏览器就行
2.对安全要求不同
C/S一般面向相对固定的用户群,对信息安全的控制能力很强.一般高度机密的信息系统采用C/S结构适宜.可以通过B/S发布部分可公开信息.
B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群.
3.对程序架构不同
C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑.
B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上.比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.SUN和IBM推的JavaBean构件技术等,使B/S更加成熟.
4.软件重用不同
C/S程序可以不可避免的整体性考