C#⾯试题(开发⼈员必备)
1. .NET和C#有什么区别
答:.NET⼀般指 .NET FrameWork框架,它是⼀种平台,⼀种技术。
C#是⼀种编程语⾔,可以基于.NET平台的应⽤。
2.⼀列数的规则如下: 1、1、2、3、5、8、13、21、34… 求第30位数是多少,⽤递归算法实现。
答:public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
3. C#中的委托是什么?事件是不是⼀种委托?
答 : 委托可以把⼀个⽅法作为参数代⼊另⼀个⽅法。
委托可以理解为指向⼀个函数的引⽤。
是,是⼀种特殊的委托
4. 简述 private、 protected、 public、internal 修饰符的访问权限。
答 . private : 私有成员, 在类的内部才可以访问。
protected: 保护成员,该类内部和继承类中可以访问。
public: 公共成员,完全公开,没有访问限制。
internal:在同⼀命名空间内可以访问。
5. override与重载的区别
答 :override 与重载的区别。
重载是⽅法的名称相同。参数或参数类型不同,进⾏多次重载以适应不同的需要.
Override是进⾏基类中函数的重写。为了适应需要。(在Java中⼦类必须要重写基类的抽象⽅法,⾮抽象⽅法可以有开发者选择是否重写) 6.如果在⼀个B/S结构的系统中需要传递变量值,但是⼜不能使⽤Session、Cookie、Application,您有⼏种⽅法进⾏处理?
答 : this.Server.Transfer
8. 请编程实现⼀个冒泡排序算法?
答:
int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
9. 描述⼀下C#中索引器的实现过程,是否只能根据数字进⾏索引?
答:不是。可以⽤任意类型。
10. 求以下表达式的值,写出您想到的⼀种或⼏种实现⽅法:1-2+3-4+……+m
答:
int Num = this.TextBox1.Text.ToString() ;
int Sum = 0 ;
for (int i = 0 ; i < Num + 1 ; i++)
{
if((i%2) == 1)
{
Sum += i ;
}
else
{
Sum = Sum - I ;
}
}
System.Console.WriteLine(Sum.ToString());
System.Console.ReadLine() ;
11. 在下⾯的例⼦⾥
using System;
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B()
{
y=-1;
}
public override void PrintFields()
{
Console.WriteLine(“x={0},y={1}”,x,y);
}
当使⽤new B()创建B的实例时,产⽣什么输出?
答:X=1,Y=0;x= 1 y = -1
12. CTS、CLS、CLR分别作何解释?
writeline输出数值变量
答:CTS:通⽤语⾔系统。CLS:通⽤语⾔规范。CLR:公共语⾔运⾏库。
13. 什么是装箱和拆箱?
答:从值类型接⼝转换到引⽤类型装箱。从引⽤类型转换到值类型拆箱。
14. 什么是受管制的代码?
答:unsafe:⾮托管代码。不经过CLR运⾏。
15.什么是强类型系统?
答:RTTI:类型识别系统。
16中读写数据库需要⽤到那些类?他们的作⽤?
答:DataSet:数据存储器。
DataCommand:执⾏语句命令。
DataAdapter:数据的集合,⽤语填充。
17.列举ASP.NET页⾯之间传递值的⼏种⽅式。
答. 1).使⽤QueryString, 如…?id=1; response. Redirect()…
2).使⽤Session变量
3).使⽤Server.Transfer
18.什么是Code-Behind技术?
答:代码后植。
19.在中,配件的意思是?
答:程序集。(中间语⾔,源数据,资源,装配清单)
20.常⽤的调⽤WebService的⽅法有哪些?
答:1.使⽤命令⾏⼯具。
2.使⽤VS.NET中的Add Web Reference菜单选项
21…netRemoting 的⼯作原理是什么?
答:服务器端向客户端发送⼀个进程编号,⼀个程序域编号,以确定对象的位置
22.在C#中,string str = null 与 string str = “” 请尽量使⽤⽂字或图象说明其中的区别。
答:string str = null 是不给他分配内存空间,⽽string str = “” 给它分配
长度为空字符串的内存空间。
23.请详述在dotnet中类(class)与结构(struct)的异同?
答:Class可以被实例化,属于引⽤类型,是分配在内存的堆上的,Struct属于值类
型,是分配在内存的栈上的.
24.分析以下代码,完成填空
stringstrTmp = “abcdefg某某某”;
inti= System.Text.Encoding.Default.GetBytes(strTmp).Length;
intj= strTmp.Length;
以上代码执⾏完后,i= j=
答:i=13,j=10
25.SQLSERVER服务器中,给定表table1 中有两个字段 ID、LastUpdateDate,
ID表⽰更新的事务号,LastUpdateDate表⽰更新时的服务器时间,请使⽤⼀句
SQL语句获得最后更新的事务号
答:Select ID FROM table1 Where LastUpdateDate = (Select MAX
(LastUpdateDate)FROM table1)
26.简要谈⼀下您对微软.NET构架下remoting和webservice两项技术的理解以及
实际中的应⽤。
答:WS主要是可利⽤HTTP,穿透防⽕墙。⽽Remoting可以利⽤TCP/IP,⼆进制传送提⾼效率。
27.公司要求开发⼀个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每⾏值进⾏重排视图中的所有⾏ (排序的⽅式如DataGrid 相似)。根据您的知识,请简要谈⼀下您的思路
答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中。
28.写出⼀条Sql语句:取出表A中第31到第40记录(SQLServer,以⾃动增长的ID作为主键,注意:ID可能不是连续的。
答:解1: select top 10 * from A where id not in (select top 30 id fromA)
29.⾯向对象的语⾔具有________性、_________性、________性
答:封装、继承、多态。
30.能⽤foreach遍历访问的对象需要实现 ________________接⼝或声明________________⽅法的类型。
答:IEnumerable 、 GetEnumerator。
31.GC是什么? 为什么要有GC?
答:GC是垃圾收集器。程序员不⽤担⼼内存管理,因为垃圾收集器会⾃动进⾏管理。要请求垃圾收集,可以调⽤下⾯的⽅法之⼀:()
32.Strings = new String(“xyz”);创建了⼏个String Object?
答:两个对象,⼀个是“xyz”,⼀个是指向“xyz”的引⽤对象s。
33.启动⼀个线程是⽤run()还是start()?
答:启动⼀个线程是调⽤start()⽅法,使线程所代表的虚拟处理机处于可运⾏状态,这意味着它可以由JVM调度并执⾏。这并不意味着线程就会⽴即运⾏。run()⽅法可以产⽣必须退出的标志来停⽌⼀个线程。
34.接⼝是否可继承接⼝? 抽象类是否可实现(implements)接⼝? 抽象类是否可继承实体类(concrete class)?
答:接⼝可以继承接⼝。抽象类可以实现(implements)接⼝,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。35.构造器Constructor是否可被override?
答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。