软件工程设计师C#,ASP.NET开发面试一般写和面试什么题目,谢谢。

C #,ASP.NET笔测试(1)

1.简要描述私有、受保护、公共和内部修饰符的访问权限。

答:

Private:私有成员,只能在类内部访问。

Protected:保护成员,可以在类内部和继承的类中访问这些成员。

公众:公众中的一员,完全开放,没有访问限制。

内部:可在同一名称空间内访问。

2.列出几种在ASP.NET页面之间传递值的方法。

答:

(1)使用QueryString,例如...?id = 1;回应。重定向()....

(2)使用会话变量

(3)使用服务器。转移

3.一列的编号规则如下:1,1,2,3,5,8,13,21,34...求第30位,用递归算法实现。

答:

公共类MainClass

{

公共静态void Main()

{

控制台。WriteLine(Foo(30));

}

公共静态int Foo(int i)

{

如果(我& lt= 0)

返回0;

else if(I & gt;0 & amp& amp我& lt= 2)

返回1;

否则返回Foo(I-1)+Foo(I-2);

}

}

4.C #中的委托是什么?事件是一种委托吗?

答:委托可以将一个方法作为参数替换到另一个方法中。委托可以理解为对函数的引用。事件是一种特殊的委托。

5.重写和重载的区别

答:

重写和重载的区别在于方法具有相同的名称。参数或参数类型不同,多次重载以满足不同的需求。

重写是重写基类中的函数。为了满足需要。

6.如果在B/S结构的系统中需要传递变量值,但是不能使用Session、Cookie、Application,有几种方式处理?

答:这个。服务器.传输

7.请以编程方式遍历页面上的所有TextBox控件,并将其作为字符串分配。空的?

答:

foreach(系统。Windows.Forms.Control控件。控件)

{

如果(控制是系统。Windows.Forms.TextBox)

{

系统。windows . forms . textbox TB =(System。Windows.Forms.TextBox)控件;

肺结核。文本=字符串。空的;

}

}

8.请编程实现一个冒泡排序算法?

答:

int[]array = new int;

int temp = 0;

for(int I = 0;我& lt数组。长度-1;i++)

{

for(int j = I+1;j & lt数组。长度;j++)

{

if(array[j]& lt;数组[i])

{

temp = array[I];

array[I]= array[j];

array[j]= temp;

}

}

}

9.描述索引器在C#中的实现过程。是否可以仅通过数字进行索引?

没有。任何类型都可以。

10.求以下表达式的值,写出一个或多个你想到的实现方法:1-2+3-4+...+M。

答:

int Num = this文本框1。text . ToString();

int Sum = 0;

for(int I = 0;我& ltnum+1;i++)

{

if ((i % 2) == 1)

{

sum+= I;

}

其他

{

Sum = Sum-I;

}

}

系统。Console.WriteLine(Sum。ToString());

系统。console . ReadLine();

11.使用。net作为B/S结构体系,你在开发几层?每一层有什么关系,为什么要这样分层?

答:一般是3层。数据访问层、业务层和表示层。数据访问层添加、删除、检查和修改数据库。业务层一般分为两层,业务外观层实现与表示层的通信,业务规则层实现用户密码的安全。为了与用户交互,比如用户添加表单,表示层。

优点:分工明确,组织清晰,易于调试,可扩展性强。

缺点:成本增加。

12.在下面的例子中

使用系统;

A级

{

公共A()

{

print field();

}

公共虚拟void PrintFields()

{

}

}

乙类:甲类

{

int x = 1;

int y;

公共B()

{

y =-1;

}

公共覆盖void PrintFields()

{

控制台。WriteLine("x={0},y={1} ",x,y);

}

}

使用new B()创建B的实例时,输出是什么?

答:X=1,Y = 0;x=1 y=-1

什么是应用程序域?

答:应用领域可以理解为一个轻量级的过程。扮演安全的角色。并且占用资源少。

14有哪些解释。分别是中旅、CLS和CLR?

答:CTS:通用语言系统。CLS:公共语言规范。公共语言运行时。

15.什么是打包和解包?

答:从值类型接口到引用类型装箱。从引用类型转换为值类型取消装箱。

什么是受控代码?

答:不安全:非托管代码。不带CLR运行。

17.什么是强类型系统?

答:RTTI:型号识别系统。

18读写数据库需要哪些类?。网?他们的角色是什么?

答:数据集:数据存储。

DataCommand:执行语句命令。

DataAdapter:充满术语的数据集合。

19.ASP.net的认证方式有哪些?原理是什么?

答:10。Windwos(默认)使用IIS...从(表格)账户...护照(钥匙)。

20.什么是代码隐藏技术?

答:代码是嵌入式的。

21.英寸网,配件是什么意思?

答:组装。(中间语言、源数据、资源、程序集列表)

22.调用WebService的常用方法有哪些?

答案:1。使用WSDL.exe命令行工具。2.使用VS.NET中的“添加Web引用”菜单选项。

23.23的工作原理是什么。。net Remoting?

答:服务器发送一个进程号和一个程序域号给客户端,确定对象的位置。

24.在c #中,string str = null和string str = " "请尽量用文字或图像来说明区别。

回答:string str = null表示不给他分配内存空间,string str = " "分配内存空间,字符串长度为空。

25.请详细说明dotnet中类和结构的异同?

答:Class可以实例化,属于引用类型,分配在内存堆上,Struct属于值类型,分配在内存堆上。

(1),结构是值类型;

(2)结构不支持继承;

(3)结构不能定义默认构造函数;

(4)结构不能定义析构函数;

(5)该结构不能使用初始值来设置域值。

26.根据delegate的知识,请填写以下用户控件中的代码片段:

名称空间测试

{

公共委托void OnDBOperate();

公共类UserControlBase : System。Windows .窗体. UserControl

{

OnDBOperate OnNew公共活动;

privatevidtoolbar _ button click(object sender,System。windows . forms . toolbar button click eventargs e)

{

if(e.Button.Equals(BtnNew))

{

//请完成代码用来调用下面的OnDBOperate委托签名的OnNew事件。

}

}

}

}

答:如果(OnNew!= null ) OnNew(this,e);

27.分析下面的代码,完成空格。

String strTmp = " abcdefg XXX

int i=系统。text . encoding . default . getbytes(strTmp)。长度;

int j= strTmp。长度;

上述代码执行后,I = _ _ _ _ _ _ _ j = _ _ _ _ _ _ _ _

答:i=13,j=10。

28.在SQL Server服务器中,给定表table1中有两个字段ID和LastUpdateDate,其中ID表示更新后的事务编号,LastUpdateDate表示更新时的服务器时间。请使用SQL语句获取最近更新的交易号。

答:从表1中选择id,其中最后更新日期=(从表1中选择max(最后更新日期))。

29.根据线程安全的知识,分析下面这段代码。调用测试方法时,I >;10会造成死锁吗?并简要说明原因。

公共无效测试(int i)

{

锁定(这个)

{

如果(i & gt10)

{

I-;

测试(一);

}

}

}

答:不会出现死锁,(不过有一点是int是传值的,所以每次只改变一个副本,所以不会出现死锁。但是如果用一个对象代替int,就会出现死锁)

30.简单谈谈你对微软框架下的remoting和webservice的理解。NET及其实际应用。

答:WS主要可以利用HTTP穿透防火墙。远程处理可以使用TCP/IP和二进制传输来提高效率。

31.公司需要开发一个继承类系统的组件。Windows.Forms.ListView,它要求实现以下特殊功能:当点击ListView的列标题时,可以根据所点击列的每一行的值重新排列视图中的所有行(排序方法类似于DataGrid)。根据你的知识,请简单谈谈你的想法。

答:根据点击的列标题,取出列的ID,按照ID排序,然后绑定到ListView。

32.给定下面的XML文件,完成算法流程图。

& lt文件系统& gt

& ltDriverC & gt

& ltDir DirName="MSDOS622 " >

& ltFile FileName = " Command.com " & gt& lt/File & gt;

& lt/Dir & gt;

& ltFile FileName ="MSDOS。SYS " & gt& lt/File & gt;

& ltFile FileName ="IO。SYS " & gt& lt/File & gt;

& lt/DriverC & gt;

& lt/file system & gt;

请画一个流程图来遍历所有文件名(请使用递归算法)。

答:

void FindFile(目录d)

{

FileOrFolders = d . GetFileOrFolders();

foreach(文件文件夹中的文件文件夹fof)

{

如果(fof是文件)

您找到了一个文件;

else if ( fof是目录)

FindFile(fof);

}

}

33.写一个Sql语句:取出表A中的31到40条记录(SQLServer,以自动增长的ID为主键,注意:ID不一定是连续的。

a:解决方案1:从id不在的a中选择top 10 *(从a中选择top 30 id)。

解决方案2:从a where id >中选择top 10 *;(从(从A中选择前30个id)中选择最大id作为A)

34.面向对象的语言是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _。

答:封装、继承和多态。

35.foreach遍历可以访问的对象需要实现_ _ _ _ _ _ _ _ _接口或者声明_ _ _ _ _ _ _ _ _的类型。

答:IEnumerable,GetEnumerator。

36.什么是GC?为什么会有GC?

答:GC是一个垃圾收集器。程序员不必担心内存管理,因为垃圾收集器会自动管理它。若要请求垃圾回收,可以调用以下方法之一:system.gc () runtime.getruntime()。gc()。

37.String s =新字符串(" XYZ ");创建了多少个stringobjects?

答:有两个对象,一个是“xyx”,一个是指向“xyx”的引用对象S。

38.抽象类和接口有什么区别?

答:

声明方法存在而不实现它的类称为抽象类。当你想创建一个体现一些基本行为的类,并为这个类声明一个方法,但不能在这个类中实现这个类的时候,就要用到它。您不能创建抽象类的实例。但是,您可以创建一个类型为抽象类的变量,并将其指向一个具体子类的实例。不能有抽象构造函数或抽象静态方法。抽象类的子类为其父类中的所有抽象方法提供实现,否则它们也是抽象类。相反,在子类中实现这个方法。其他知道其行为的类可以在类中实现这些方法。

接口是抽象类的变体。在接口中,所有的方法都是抽象的。通过实现这样的接口可以获得多重继承。接口中的所有方法都是抽象的,它们都没有程序体。接口只能定义静态最终成员变量。接口的实现类似于子类的实现,只是实现类不能从接口定义继承行为。当一个类实现一个特殊的接口时,它定义(也就是给程序体)所有这样的接口的方法。然后,它可以在实现接口的类的任何对象上调用接口的方法。由于抽象类,它允许使用接口名称作为引用变量的类型。通常的动态绑定将生效。引用可以与接口类型相互转换,instanceof运算符可用于确定对象的类是否实现接口。

39.用run()或start()启动一个线程?

答:启动一个线程就是调用start()方法,让线程代表的虚拟处理器处于可运行状态,也就是说可以被JVM调度执行。这并不意味着线程会立即运行。run()方法可以通过生成一个必须退出的标志来停止线程。

40.接口可以从接口继承吗?抽象类可以实现接口吗?抽象类可以继承具体类吗?

答:接口可以从接口继承。抽象类可以实现接口,不管抽象类是否可以继承实体类,但前提是实体类有显式的构造函数。

41.构造函数可以被重写吗?

答:构造函数不能被继承,所以它不能被重写,但它可以被重载。

42.可以继承String类吗?

答:String类是final类,所以不能继承。

43.try {}中有return语句,那么紧接着try之后的finally {}中的代码会不会执行,什么时候执行,在return之前还是之后?

是的,在回来之前。

44.两个对象具有相同的值(x.equals(y) == true),但是它们可以具有不同的哈希代码。这是正确的吗?

答:没有,有相同的哈希码。

45.swtich可以作用于byte,long,String吗?

答:在switch(expr1)中,expr1是一个整数表达式。所以传递给switch和case语句的参数应该是int,short,char或者byte。绳子既不能长,也不能短。

47.当一个线程进入一个对象的同步方法时,其他线程可以进入该对象的其他方法吗?

不,一个对象的同步方法只能被一个线程访问。

48.抽象方法可以同时是静态的、原生的和同步的吗?

答:都不是。

49.列表、集合和映射是否继承自集合接口?

列表,集合是地图,不是吗

50.集合中的元素不能重复,那么用什么方法来区分是否重复呢?是= =还是等于()?两者有什么区别?

回答:集合中的元素不能重复,所以用iterator()方法来区分是否重复。Equals()是判断两个集合是否相等。

equals()和= =方法确定引用值是否指向同一个对象。equals()在类中被覆盖,以便在两个独立对象的内容和类型匹配时返回一个true值。

51.数组有length()方法吗?String有length()方法吗?

答:数组没有方法length(),但是有属性length。字符串的方法长度为()。

52.sleep()和wait()有什么区别?

答:sleep()方法是一种让线程停止一段时间的方法。休眠间隔到期后,线程不一定会立即恢复执行。这是因为在那个时刻,其他线程可能正在运行并且没有被调度来放弃执行,除非(a)“唤醒”线程具有更高的优先级。

(b)正在运行的线程由于其他原因被阻塞。

Wait()是一个线程交互。如果一个线程调用了一个同步对象X,那么这个线程就会挂起执行,被调用的对象就会进入等待状态,直到被唤醒或者等待时间到了。

54.说说final,finally,finalize的区别。

答:

Final-Modifier(关键字)如果一个类被声明为Final,就意味着它不能再派生新的子类,也不能作为父类继承。因此,一个类不能同时声明为abstract和final。将变量或方法声明为final可以确保它们在使用中不会被更改。声明为final的变量必须在声明时被赋予一个初始值,并且在以后的引用中只能读取不能修改。声明为final的方法也只能使用,不能重载。

Finally—提供一个Finally块,以便在异常处理期间执行任何清理操作。如果抛出异常,将执行匹配的catch子句,然后控制将进入finally块(如果有)。

完成--方法名称。Java技术允许使用finalize()方法在垃圾收集器从内存中清除对象之前进行必要的清理。当确定对象未被引用时,垃圾回收器调用此方法。它是在Object类中定义的,所以所有的类都继承它。子类覆盖finalize()方法来组织系统资源或执行其他清理任务。在垃圾收集器删除该对象之前,会对其调用finalize()方法。

55.如何处理几十万的并发数据?

答:使用存储过程或事务。获得最大ID的同时更新..请注意,主键不是自增量的。当此方法是并发的时,将不会有重复的主键..要获得最大ID,您需要一个存储过程来获取它。

56.Session中的主要bug是什么,微软提出了什么方法来解决?

答:由于iis中的进程回收机制,如果系统繁忙,会话将会丢失。您可以以状态服务器或SQL Server数据库的形式存储会话,但这种方法速度较慢,并且无法捕获会话的结束事件。

57.进程和线程的区别是什么?

答:进程是系统分配和调度资源的单位。线程是CPU调度和分派的单位。一个进程可以有多个线程,这些线程* * *享受这个进程的资源。线程和进程都定义了某种边界,但不同的是,进程定义的是应用之间的边界,不同的进程不能* * *享受代码和数据空间,而线程定义的是代码执行栈和执行上下文之间的边界。一个进程可以包含几个线程,创建多个线程同时完成一个任务就是多线程。同一进程中的不同线程共享代码和数据空间。打个比喻,如果一个家庭代表一个过程,在家庭内部,每个成员都是一根线,每个家庭成员都有积累家庭财富的义务,也有消费家庭财富的权利。当面临一个任务时,家族还可以派几个成员配合,而家族外的人没有办法直接消费不属于自己家族的财产。

58.堆和栈有什么区别?

a:堆栈:由编译器自动分配释放。函数体中定义的变量通常在堆栈上。

堆:一般由程序员分配和释放。使用new、malloc和其他内存分配函数分配的内存在堆中。

59.在成员变量和成员函数前加static有什么作用?

答:分别叫常量成员变量和常量成员函数,也叫类成员变量和类成员函数。用于反映类的状态。例如,类成员变量可以用来统计类实例的数量,而类成员函数负责这个统计操作。

60.与ASP相比,ASP.NET的主要改进是什么?

答:asp解释形式,aspx编译类型,提高了性能,有利于保护源代码。