打印面试题.docx

上传人:b****5 文档编号:6477526 上传时间:2023-01-06 格式:DOCX 页数:44 大小:75.16KB
下载 相关 举报
打印面试题.docx_第1页
第1页 / 共44页
打印面试题.docx_第2页
第2页 / 共44页
打印面试题.docx_第3页
第3页 / 共44页
打印面试题.docx_第4页
第4页 / 共44页
打印面试题.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

打印面试题.docx

《打印面试题.docx》由会员分享,可在线阅读,更多相关《打印面试题.docx(44页珍藏版)》请在冰豆网上搜索。

打印面试题.docx

打印面试题

简单

1.什么叫SQL注入?

如何防止?

请举例说明

答:

SQL注入是常见的利用程序漏洞进行攻击的方法。

导致sql注入攻击并非系统造成的,主要是程序中忽略了安全因素,利用sql语言漏洞获得合法身份登陆系统

例如:

"Select*fromuserswherename='"+uName+"'andpwd='"+uPwd+"'"

如用户在t_name中输入tom’or1=‘1就可以进入系统了。

生成语句:

Select*fromuserswherename=‘tom’or1=‘1’andpwd=‘123’

防止sql注入的方法有如下几点:

使用参数化过滤语句

在web应用程序的开发过程中所有阶段实施代码安全检察

使用存储过程

2.如果有100万条记录,请问你如何优化表结构查询提高速度?

答:

1.合理的使用索引(例如在频繁作为条件的列,经常作为排序或分组的列)

2.只查询必要的列,避免*

3.避免或简化排序

4.使用存储过程

5.使用dataReader读取数据

6.使用reapter控件显示

3.string与stringBuilder的区别

答:

string对象在内存中是只读的,每次在调用string类方法是,都要在内存中创建一个新的字符串对象。

StringBuilder可以修改字符串而不创建新的对象。

4.XML与Html的区别

答:

xml[eXtensibleMarkupLanguage](可扩展标记语言)提供一种描述结构化数据的方法。

Html(超文本标记语言)主要用于控制数据的显示和外观。

区别:

XML是区分大小写字母的,HTML不区分。

在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略或者之类的结束标记。

在XML中,绝对不能省略掉结束标记。

在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个/字符作为结尾。

这样分析器就知道不用查找结束标记了。

在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;i

{

for(intj=i+1;j

{

if(array[j]

{

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和Dictionary

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;i

{

this.Controls.Add(newButtong());

}

}

46.写一个判断某正整数是否是素数的函数。

答:

boolIsPrimeNumber(uintx)

{

for(uinti=2;i

           {

               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程序可以不可避免的整体性考

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1