.net面试题集锦

近几天在换工作,就顺便把遇到的和在网上看到的一些比较有意思的题目在此做个记录,以供大家在找工作时有所底气.希望在看完这些题目之后对您的面试有所帮助.

1: 列举ASP.NET 页面之间传递值的几种方式。

1,QueryString,如....?id=*; Response.Redirect()..

2.使用Session变量

3.使用Server.Transfer

4.使用Application

5.使用Cache

6使用HttpContextItem属性

7.使用文件

8.使用数据库

9.使用Cookie

2. 一列数的规则如下: 112358132134......求第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.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty

foreach (Control cTem in item.Controls)
{
     if (cTem.GetType().ToString().Equals("System.Web.UI.WebControls.TextBox"))
     {
          ((TextBox)cTem).Text = string.Empty;
     }
}

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

int[] intarray = new int[*];
int temp = 0;
for(int i = 0; i < intarray.Length - 1; i ++)
{
for(int j = i + 1; j  < intarray.Length; j ++)
{
if(intarray[i] > intarray[j])
{
temp =  intarray[i];
intarray[i] = intarray[j];
intarray[j] = temp;
}
}
}

5.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m

private static int Count(int m)
{
int sum = 0;
for (int i = 1; i <= m; i++)
{
if (i % 2 == 0)
{
sum -= i;
}
else
{
sum += i;
}
}
return sum;
}

6.在下面的例子里,当使用new B()创建B的实例时,产生什么输出?

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);
}
}结果:X=1,Y=0

7. .net中读写数据库需要用到那些类?他们的作用?

1: DataSet 无连接的存储多个表的数据,并包含表于表之间的关联关系
2: DataTable 存储一个表的数据
3: SqlConnection 创建一个到数据库的连接
4: SqlCommand 执行Sql语句
5: SqlDataReader 顺序读取数据
6: SqlDataAdapter 将数据填充到DataSet或DataTable

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

1:使用WSDL.exe命令行工具。
2:使用VS.NET中的Add Web Reference菜单选项


9. 请创建一个委托,用按钮的点击事件来调用提示:"成功创建Delegate示例"

public delegate void ShowMsg(string msg);
public void Msg_Show(string ms)
{
MessageBox.Show(ms);
}
private void button1_Click(object sender, EventArgs e)
{
ShowMsg sm = new ShowMsg(Msg_Show);
sm("成功创建Delegate示例");
}

委托的创建和调用方法:1.  声明一个delegate对象,它应当与你想要传递的方法具有相同的参数和返回值类型。2.  创建delegate对象,并将你想要传递的函数作为参数传入。 3.  在要实现异步调用的地方,通过上一步创建的对象来调用方法。 10. SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务

SELECT ID FROM TABLE1 WHERE LASTUPDATEDATE=(SELECT MAX(LASTUPDATE) FROM TABLE1);

11. SQL SERVER数据表tmpTable中有数据列a,不用Min ,Max 等聚合函数,同时也不能使用Order By 求出最大值或最小值.

SELECT A FROM tmpTable TTA WHERE NOT EXISTS(SELECT 1 FROM tmpTable TTB WHERE TTA.A<TTB.A)

12.给定以下XML文件,完成算法流程图。
<FileSystem>
< DriverC>
<Dir DirName=”MSDOS622”>
<File FileName =”Command.com” ></File>
</Dir>
<File FileName =”MSDOS.SYS” ></File>
<File FileName =”IO.SYS” ></File>
</DriverC>
</FileSystem>

请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。

void FindFile(Directory d)
{
     FileOrFolders = d.GetFileOrFolders();
     foreach( FileOrFolder fof in FileOrFolders )
     {
          if( fof is File )
               You Found a file;
          else if ( fof is Directory )
               FindFile( fof );
      }
}


13. String s = new String("xyz");创建了几个String Object?

创建了两个对象,一个是"xyz”,另一个是指向"xyz"的引用对象.


14. 启动一个线程是用run()还是start()?

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。


15. 进程和线程的区别?

进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。


16. 堆和栈的区别?

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

堆:一般由程序员分配释放。用newmalloc等分配内存函数分配得到的就是在堆上。


17. 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。

int[] intarray = new int[100];
ArrayList hasInt = new ArrayList();
Random r = new Random();
int tmp = 0;
while(hasInt.Count < 100)
{
   tmp = r.Next(1,101);
   if(!hasInt.Contains(tmp))
    {
        hasInt.Add(tmp);
        intarray[hasInt.Count] = tmp;
    }
}


18. 什么是SOAP,有哪些应用。

simple object access protocal,简单对象接受协议.xml为基本编码结构,建立在已有通信协议上(http,不过据说ms在搞最底层的架构在tcp/ip上的soap)的一种规范Web Service使用的协议..



不段更新中...如有错误或更好的答案,请各位指出,谢谢.

你可能感兴趣的:(sql,.net,面试,C#)