打印面试题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

简单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(i0&&i=2)return1;elsereturnFoo(i-1)+Foo(i-2);}}7.请编程实现一个冒泡排序算法?答:int[]array=newint[*];inttemp=0;for(inti=0;iarray.Length-1;i++){for(intj=i+1;jarray.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修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其它类的基类,则会发生编译时错误。密封类不能同时为抽象类。12.net中接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?答:net中接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类。13.a=10,b=15,在不用第三方变题的前提下,把a,b的值互换答:a=a+b;b=a-b;a=a-b;14..net中()方法可以把虚拟路径转换成物理路径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++模板,但是在实现和功能方面存在明显差异。泛型的集合:泛型集合是泛型的最显著应用,可以约束类内的元素类型,比较典型的泛型集合是ListT和DictionaryK,V18.什么是委托,怎么定义一个委托?答:委托是指具有相同属性(也称具有相同的函数签名:返回类型相同,参数类型、参数顺序及参数个数相同)的函数或方法的抽象,关键字为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、ado.net中连接数据库的几个对象,各有什么用处答:Ado.net中连接数据库主要有一下几个对象:Connection:建立与特定数据源的连接Command:对数据源执行命令DataReader:从数据源中读取只进且只读的数据流DataAdapter:用数据源填充DataSet并解析更新Parmaeter:表示Command的参数Transaction:表示要在数据源执行的SQL事务23.请说出int与integer的区别答:int属与c#中定义int32的整数类型,integer在vb.net用于定义整形变量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.序列化有什

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功