初级程序员笔试题
姓名: __________ 应聘岗位:___________ 评定结果:___________ 第一部分:C#基础题目
1.面向对象的语言的三大特性是什么?并举例说明其应用。
答:封装、继承、多态。
2. 简述 private、 protected、 public、 internal 修饰符的访问权限。
private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
3.什么是装箱和拆箱?
答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。
4.C#中的委托是什么?事件是不是一种委托?
委托可以理解为指向一个函数的引用。
是,是一种特殊的委托
5.override与重载的区别
override 与重载的区别。重载是方法的名称相同。参数或 参数类型不同,进行多次重载以适应不同的需要
Override 是进行基类中函数的重写。为了适应需要。
6.堆和栈的区别?
栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。
堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。
7.ADO.net中常用的对象有哪些?分别描述一下。
答:Connection 数据库连接对象
Command 数据库命令
DataReader 数据读取器
DataSet 数据集
8.请详述在C#中类(class)与结构(struct)的异同?
答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
9.能用foreac
h遍历访问的对象需要实现 ________________接口或声明________________方法的类型。 答:IEnumerable 、 GetEnumerator。
10.抽象类和接口有什么区别?
答:
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
11.什么是反射?请举例其应用的几个场景。
答:动态获取程序集信息
12.什么是虚函数?什么是抽象函数?
答:虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。
13 .列举ASP.NET 页面之间传递值的几种方式。
答. 1.使用QueryString, 如….?id=1; response. Redirect()….
2.使用Session变量
3.使用Server.Transfer
14.向服务器发送请求有几种方式?他们之间有什么区别?
答:get,post。get一般为链接方式,post一般为按钮方式。
15.大概描述一下ASP。NET服务器控件的生命周期
答:初始化 加载视图状态 处理回发数据 加载 发送回发更改通知 处理回发事件 预呈现 保存状态 呈现 处置 卸载
16.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。
答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。
17.构造器Constructor是否可被override?
答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
18.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 答:不对,有相同的hash code。
19. short s1 = 1; s1 = 1;有什么错?
答:short s1 = 1; s1 = s1 1;有错,s1是short型,s1 1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 1) 。short s1 = 1; s1 = 1正确。
20.public static const int A=1;这段代码有错误么?是什么?
答:const不能用static修饰。
21.float f=-123.567F; int i=(int)f;i的值现在是_____?
-123
22.用sealed修饰的类有什么特点?
答:密封,不能继承。
23.在.Net中所有可序列化的类都被标记为_____________
答:[serializable]
24.net的错误处理机制是什么?
答:.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
25.进程和线程的区别?
答:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。
26.软件开发过程一般有几个阶段?每个阶段的作用?
答:需求分析,架构设计,代码编写,QA,部署
27.什么是XML?列举一下你所了解的XML技术及其应用
答:XML 即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,即可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到的有XML、XSL和XPath等。
第二部分:算法题,任选其中一道题目进行解答。
28.请编程实现一个冒泡排序算法?
答:
int [] array = new int
# ;
int temp = 0 ;
for (int i = 0 ; i
{
for (int j = i 1 ; j
{
if (array[j]
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}