一.认识题
1)你奉行的格言是什么
2)谁对你的职业生涯有重要影响
3)您对自己的职业规划是怎样的
4)您对我们公司有什么了解
5)您对您应聘的岗位的认识是什么
二.基础题
1)C#可否对内存进行直接的操作
答:可以的,
c#中是有指针的,虽然很少用到,虽然使用时要加上”unsafe”
只针对这个问题,c#是可以的 .
2)什么叫应用程序域 什么是受管制的代码 什么是强类型系统 什么是装箱和拆箱 什么是重载
答1):应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界。
应用程序域通常由运行库宿主创建,运行库宿主负责在运行应用程序之前引导公共语言运行库。
应用程序域提供了一个更安全、用途更广的处理单元,公共语言运行库可使用该单元提供应用程序之间的隔离。
应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。
2)使用基于公共语言运行库的语
言编译器开发的代码称为托管代码;托管代码具有许多优点,
例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。
3)C# 是强类型语言;因此每个变量和对象都必须具有声明类型。
4)从值类型接口转换到引用类型:装箱。
从引用类型转换到值类型:拆箱。
装箱和拆箱使值类型能够被视为对象。
对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中。
这使得值类型可以存储于垃圾回收堆中。
拆箱将从对象中提取值类型。
5)每个类型成员都有一个唯一的签名。
方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。
只要签名不同,就可以在一种类型内定义具有相同名称的多种方法。
当定义两种或多种具有相同名称的方法时,就称作重载。
3)列举一下您所了解的XML技术及其应用
4)值类型和引用类型的区别 写出C#的样例代码.
答:基于值类型的变量直接包含值。
将一个值类型变量赋给另一个值类型变量时,将复制包含的值。
这与引用类型变量的赋值不同,引用类型变量的赋值只复制对对象的引用,而不复制对象本身。 所有的值类型均隐式派生自 System.ValueType。
与引用类型不同,从值类型不可能派生出新的类型。但与引用类型相同的是,结构也可以实现接口。
与引用类型不同,值类型不可能包含 null 值。然而,可空类型功能允许将 null 赋给值类型。
每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
值类型主要由两类组成:结构、枚举
结构分为以下几类:
Numeric(数值)类型、整型、浮点型、decimal、bool、用户定义的结构。
引用类型的变量又称为对象,可存储对实际数据的引用。
声明引用类型的关键字:class、interface、delegate、内置引用类型: object、string
值类型 引用类型
内存分配地点 分配在栈中 分配在堆中
效率 效率高,不需要地址转换 效率低,需要进行地址转换
内存回收 使用完后,立即回收 使用完后,不是立即回收,等待GC回收
赋值操作 进行复制,创建一个同值新对象 只是对原有对象的引用
函数参数与返回值 是对象的复制 是原有对象的引用,并不产生新的对象
类型扩展 不易扩展 容易扩展,方便与类型扩展
5)abstract class和interface有什么区别
答:声明方法的存在而不去实现它的类被叫做抽像类(abstract class)
它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract 类的实例。
然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。
不能有抽像构造函数或抽像静态方法。
Abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类。
取而代之,在子类中实现该方法。
知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽像类的变体。
在接口中,所有方法都是抽像的。
多继承性可通过实现这样的接口而获得。
接口中的所有方法都是抽像的,没有一个有程序体。
接口只可以定义static final成员变量。
接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。
当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。
然后,它可以在实现了该接口的类的任何对像上调用接口的方法。
由于有抽像类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。
引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
接口可以继承接口。
抽像类可以实现(implements)接口
抽像类是否可继承实体类(concrete class),但前提是实体类必须有明确的构造函数。
6)C#的类和接口有什么异同
异:
不能直接实例化接口。
接口不包含方法的实现。
接口、类和结构可从多个接口继承。
但是C# 只支持单继承:类只能从一个基类继承实现。
类定义可在不同的源文件之间进行拆分。 同:
接口、类和结构可从多个接口继承。
接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
接口可以包含事件、索引器、方法和属性。
一个类可以实现多个接口。
7)堆和栈的区别?
答:栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。
堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。
8)override与重载的区别
答:覆盖是指子类重新定义父类的虚函数的做法。
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
其实,重载的概念并不属于“面向对象编程”,
重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰
然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。
如,有两个同名函数:function func(p:integer):integer; 和function func(p:string):integer;。
那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。
对于这两个函数的调用,在编译器间就已经确定了,是静态的(记住:是静态)。
也就是说,它们的地址在编译期就绑定了(早绑定),
因此,重载和多态无关!真正和多态相关的是“覆盖”。
当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态(记住:是动态!)的调用属于子类的该函数,
这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。
因此,这样的函数地址是在运行期绑定的(晚邦定)。
结论就是:重载只是一种语言特性,与多态无关,与面向对象也无关!
9)当整数a赋值给一个object对像时,整数a将会被
10)进程和线程分别怎么理解
答:进程是系统进行资源分配和调度的单位;
线程是CPU调度和分派的单位.
一个进程可以有多个线程,这些线程共享这个进程的资源。
11)什么是code_Bhind技术
答:ASPX,RESX和CS三个后缀的文件,这个就是代码分离.
实现了HTML代码和服务器代码分离.方便代码编写和整理.
12)什么叫做SQL注入,如何防止 请举说明.
答:利用sql关键字对网站进行攻击。过滤关键字’等
13)DataReader和DataSet有什么区别
答: DataSet可以离线处理,前后滚动.DataReader不能离线处理,且是只读的向前的,不过速度明显会很快
DataSet可以存储数据库各种对象的,比如表触发器等,而DataReader只能存储游标记录
DataSet可以更新回原来的数据库,DataReader不行;
DataSet可以FORWORD PREVIUS,而DataReader只能FW;
DataReader类似一个只能向前的游标记录集
DataSet叫数据集!是ADO.net相对与ADO实现断开式数据库连接性的主要体现!DateReader是一个客户端的 只向前游标,两者的应用领域不同!读取数据后!如果要进行比较频繁的改动,可以使用DataSet,并且DataSet也支持串行化,可与xslt结合!进行web开发!
DataReader则偏向于快速读取数据!针对数据量比较大的数据可能应用的更加频繁点!
14)什么是SOAP,有哪些应用
答:SOAP(Simple Object Access Protocol )简单对象访问协议
是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。
使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议)
可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。
这种相互通信采用的是XML格式的消息。 SOAP也被称作XMLP,为两个程序交换信息提供了一种标准的工作机制。
在各类机构之间通过电子方式相互协作的情况下完全有必要为此制定相应的标准。
SOAP描述了把消息捆绑为XML的工作方式。
它还说明了发送消息的发送方、消息的内容和地址以及发送消息的时间。
SOAP是Web Service的基本通信协议。
SOAP规范还定义了怎样用XML来描述程序数据(Program Data),怎样执行RPC(Remote Procedure Cal l)。
大多数SOAP解决方案都支持RPC-style应用程序。
SOAP还支持 Document-style应用程序(SOAP消息只包含XML文本信息)。
最后SOAP规范还定义了HTTP消息是怎样传输SOAP消息的。
MSMQ、SMTP、TCP/IP都可以做SOAP的传输协议。
SOAP 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。
SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结 构。
这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。
15)请说明在.NET中常用的几种页面间传递参数的方法,并说出它们的优缺点.
答. 1).使用QueryString, 如…. id=1; response. Redirect()….
2).使用Session变量
3).使用Server.Transfer session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input ttype=”hidden” 简单,可能被伪造
url 参数 简单,显示于地址栏,长度有限数据库 稳定,安全,但性能相对弱
16)常用的调用webservice方法有哪些
答:1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜单选项
17)写出一条sql语句:取出表A中第31条到第40记录(SQLScrver,以自动增长的ID作为主键,注意:ID可能不是连续的.)
18)ASP.NET页面中通过超链接怎样传递中文参数
19)[算法]一列数的规则如下:1,1,2,3,5,8,13,21,34……求第30位数是多少 用递归算法实现
20)[算法]猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒.要求:1.要有联动性,老鼠和主人的行为是被动的.2.考虑可扩展性,猫的叫声可能引起其他联动效应.
三.提高题
1)[算法]如何检测一个可能很长很长的单向链表中是否有环,能否找到办法去掉呢
2)[算法]请实现一个模型去估算中国人口的男女比例.
四.智力题
1)放大镜不能放大的东西是什么
2)你让一些人为你工作七天,你要用一根金条作为报酬.金条被分成七小块,每天给出一块.如果你只能将金条切割两次,你怎样分给这些工人
3)为什么镜子中的影像似乎颠倒了左右,却没有颠倒上下
4)鲁道夫,菲利普,罗伯特三位青年,一个当了歌手,一个考上了大学,一个加入美军陆战队,个个未来都大有作为.现已知:A.罗伯特的年龄比战士的大;B.大学生的年龄比菲利普小;C.鲁道夫的年龄和大学生的年龄不一样.请问:三个人中谁是歌手 谁是大学生 谁是士兵 为什么
5)美国麻省理工大学的学生来不同的国家.大卫,比利.特德三名学生,一个是法国人,一个是日本人,一个是美国人.现已知:1.大卫不喜欢面条,物德不喜欢汉堡包;2喜欢面条的不是法国人;3.喜欢汉堡包的是日本人;4.比利不是美国人.请推测出这三名留学生分别来自哪些国家?为什么?
6)生产中需要一段铁链,库房中办有五截每截只有三个铁环的铁链,这五截铁链连起来的长度正好是所需要的.问:在只切断三个铁环的情况下,怎样将这五截三铁环起来
7)老师主六名学生围坐成一圈,另外让一名学生坐在中央,并拿出七顶帽子,其中四顶白色,三顶黑色.然后蒙住七名学生的眼睛,并给坐在中央的学生戴一顶帽子,而只解开从在圈上的六名学生的眼罩.这时,由于坐在中央的学生的阻挡.每个人只能看到五个人的帽子.老师说:”现在,你们七人猜猜自己的头上戴的帽子的着色.”大家静静地思索了好大一会.最后,坐在中央的,被蒙住双眼的学生举手说:”我猜到了.”问:中央的被蒙住双眼的学生带的是什么着色的帽子 他是怎样猜到的