C#,ASP.NET,数据库面试题

1. 简述 private、 protected、 public、 internal 润饰符的走访权限。
答 . private : 公有成员, 在类的内部才可以造访。
protected : 维护成员,当类内部和承继类中可以拜访。
public : 公同成员,完整公然,出有造访限造。
internal: 在统一命实空间内可以拜访。

2 .罗列ASP.NET 页面之间传送值的几种方式。
答. 1.使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session变量
3.使用Server.Transfer

3. 一列数的规矩如下: 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);
}
}

4.C#中的委托是什么?事情是不是一种委托?
答 :
委托可以把一个方法作为参数代入另一个方法。
拜托能够懂得为指背一个函数的援用。
是,是一类特别的拜托

5.override与重载的区别
答 :
override 与重载的区别。重载是方式的称号雷同。参数或者参数类型不同,入止屡次沉载以顺应不同的须要
Override 是进行基类中函数的重写。为了顺应需求。

6.假如在一个B/S构造的系统中需求传送变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处置?
答 :
this.Server.Transfer

7.请编程遍历页里上一切TextBox控件并给它赋值为string.Empty?
答:
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is System.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;
tb.Text = String.Empty ;
}
}

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

)
{
temp = array ;
array = 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.用.net做B/S构造的系统,您是用几层解构来启收,每一层之间的闭系以及为什么要这样分层?
答:普通为3层
数据拜访层,业务层,表现层。
数据走访层对数据库进行增删查改。
业务层普通分为两层,业务表观层实现与表示层的沟通,业务规矩层实现用户稀码的平安等。
表现层为了与用户接互例如用户加加表双。
长处: 分农明白,条理清楚,易于调试,而且具有可扩大性。
毛病: 增添本钱。

12.在下面的例子里
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

13.什么鸣利用程序域?
答:利用程序域可以懂得为一种沉质级过程。止到平安的作用。占用资流小。

14.CTS、CLS、CLR分离做何说明?
答:CTS:通用言语系统。CLS:通用言语规范。CLR:公同语行运转库。

15.什么是装箱和搭箱?
答:自值类型交心转换到援用类型装箱。自引用类型转换到值类型搭箱。

16.什么是蒙管造的代码?
问:unsafe:非托管代码。没有经由CLR运转。

17.什么是强类型系统?
答:RTTI:类型辨认体系。

18.net中读写数据库须要用到那些类?他们的作用?
答:DataSet:数据存储器。
DataCommand:施行语句命令。
DataAdapter:数据的聚集,用语挖充。

19.ASP.net的身份考证方式有哪些?分离是什么本理?
答:10。Windwos(默许)用IIS...From(窗体)用帐户....Passport(稀钥)

20.什么是Code-Behind技术?
答:代码后植。

21.在.net中,配件的意义是?
答:程序集。(两头语行,源数据,资源,装配浑单)

22.常用的调用WebService的方法有哪些?
答:1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜双选项

23..net Remoting 的农做本理是什么?
答:效劳器端向客户端发送一个进程编号,一个程序域编号,以肯定对象的地位。

24.在C#中,string str = null 与 string str = “” 请绝量使用白字或图象阐明其中的区别。
答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间。

25.请胪陈正在dotnet中类(class)取构造(struct)的异同?
答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.

26.依据委托(delegate)的学问,请完成以下用户控件中代码片断的挖写:
namespace test
{
public delegate void OnDBOperate();
public class UserControlBase : System.Windows.Forms.UserControl
{
public event OnDBOperate OnNew;
privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if(e.Button.Equals(BtnNew))
{
//请正在以下补全代码用来调用OnDBOperate拜托签实的OnNew事情。
}
}
}
答:if( OnNew != null )
OnNew( this, e );

27.剖析以下代码,完成挖空
string strTmp = "abcdefg某某某";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代码施行完后,i= j=
答:i=13,j=10

28.SQLSERVER效劳器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表现更新的事务号, LastUpdateDate表示更新时的效劳器时光,请使用一句SQL语句取得最后更新的事务号
答:Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)

29.根据线程平安的相干学问,剖析以下代码,当调用test方法时i>10时是否会惹起死锁?并扼要阐明理由。
public void test(int i)
{
lock(this)
{
if (i>10)
{
i--;
test(i);
}
}
}
答:不会产生死锁,(但有一点int是按值传递的,所以每次转变的都只是一个副原,因彼不会呈现死锁。但假如把int换做一个object,那么死锁会发作)

30.扼要谈一下您对微软.NET 构架下remoting和webservice两项技术的懂得以及实践中的利用。


答:WS重要是可本用HTTP,穿透防火墙。而Remoting可以应用TCP/IP,两进制传送进步效力。

31. 公司请求启收一个继启System.Windows.Forms.ListView类的组件,请求到达以下的特别功效:面打ListView各列列头时, 能依照面打列的每行值进行沉排视图中的一切行 (排序的方法如DataGrid类似)。依据您的学问,请扼要道一下您的思绪
答:根据面打的列头,包该列的ID掏出,依照该ID排序后,在给绑定到ListView中。

32.给订以下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 );
}
}

33.写出一条Sql语句:掏出表A中第31到第40记载(SQLServer,以主动增加的ID作为主键,注意:ID能够不是持续的。
答:解1: select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)

34.里背对象的言语具有________性、_________性、________性
答:封装、继承、少态。

35.能用foreach遍历造访的对象须要实隐 ________________接口或声亮________________法子的类型。
答:IEnumerable 、 GetEnumerator。

36.GC是什么? 为什么要有GC?
答:GC是渣滓搜集器。程序员不必担忧内存治理,由于垃圾收集器会主动入行治理。要恳求渣滓搜集,可以调用下里的办法之一:
System.gc()
Runtime.getRuntime().gc()

37.String s = new String("xyz");创修了几个String Object?
答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。

38.abstract class和interface有什么区别?
答:
声 亮方法的具有而不来实现它的类被鸣做抽象类(abstract class),它用于要创立一个体现某些基础行动的类,并为该类声明方法,但不能在该类中实现该类的情形。不能创修abstract 类的实例。但是可以创立一个变量,其类型是一个抽象类,并让它指背详细子类的一个实例。不能有抽象结构函数或抽象动态方法。Abstract 类的子类为它们女类中的所有抽象方法降求实现,否则它们也是抽象类为。与而代之,在子类中实现该方法。晓得其行动的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法皆是笼统的。少继启性可通功实现这样的接口而取得。接口中的所有法子皆是抽象的,出有一个有程序体, 十月妈咪 。 接口只可以订义static final成员变质。接口的实现与子类类似,除了当真现类不能自接口定义中继续行动。该类实现特别接口时,它订义(行将程序体索取)一切这种交口的办法。 然后,它可以在实隐了该接口的类的任何对于象上调用接口的方法。因为有笼统类,它容许使用接口实做为援用变量的类型。通常的动态联编将失效。引用可以转换 到接口类型或从接口类型转换,instanceof 运算符可以用来决议某对象的类是否实现了接心。

39.开动一个线程是用run()仍是start()?
答:开动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状况,这意味着它可以由JVM调度并执行。这并不意味着线程就会立刻运行。run()方法可以发生必需退出的标记来结束一个线程。

40.接口是否可继启接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

答:交口可以承继接心。抽象类可以完成(implements)接口,笼统类能否可继续实体类,但条件是真体类必需有明白的结构函数。

41.结构器Constructor是否可被override?
答:构制器Constructor不能被继承,因而不能重写Overriding,但可以被重载Overloading。

42.能否可以承继String类?
答:String类是final类故不可以继承。

43.try {}里有一个return语句,那么紧和在那个try后的finally {}里的code会不会被施行,什么时分被执止,在return前仍是后?
答:会执行,在return前执行。

44.两个对象值雷同(x.equals(y) == true),但却可有没有同的hash code,那句话对于不合错误?
答:不合错误,有雷同的hash code。

45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答:switch(expr1)中,expr1是一个整数表达式。因而传送给 switch 和 case 语句的参数应当是 int、 short、 char 或许 byte。long,string 皆不能作用于swtich。

47.该一个线程进入一个对象的一个synchronized方法后,其它线程是否可进进彼对象的其它方法?
不能,一个对象的一个synchronized方法只能由一个线程走访。

48.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
答:都不能。

49.List, Set, Map是否继续自Collection接口?
答:List,Set是Map不是

50.Set里的元荤是不能反复的,那么用什么方法来区分重复与否呢? 是用==仍是equals()? 它们有何区别?
问:Set里的元荤是没有能反复的,那么用iterator()方式来区分沉复取否。equals()是判读两个Set能否相等。
equals()和==方法决议引用值是否指向统一对象equals()在类中被笼罩,为的是当两个分别的对象的内容和类型相配的话,前往实值。

51.数组有没有length()这个方法? String有没有length()这个方法?
答:数组出有length()这个法子,有length的属性。String有有length()这个办法。

52.sleep() 和 wait() 有什么区别?
答:sleep()方法是使线程结束一段时光的方法。在sleep 光阴距离期谦后,线程不必定立刻复原执行。这是由于在那个时辰,其它线程能够正在运转而且没有被调度为废弃执行,除非(a)“醒来”的线程具有更高的优先级
(b)正在运行的线程由于其它本因此梗阻。
wait()是线程接互时,假如线程对一个同步对于象x 收回一个wait()调用,当线程会暂停执行,被调对象进进等候状况,直到被唤醒或期待时光到。

53.short s1 = 1; s1 = s1 + 1;有什么错? 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准确。

54.道道final, finally, finalize的区别。
答:
final ―润饰符(要害字)假如一个类被声明为final,意味着它不能再派生出新的子类,不能作为女类被继承。因彼 一个类不能既被声明为 abstract的,又被声亮为final的。将变量或方法声明为final,可以保证它们在使用中 不被转变。被声明为final的变量必需在声明时给定始值,而在以后的引用中只能读与,不可改动。被声明为 final的方法也同样只能使用,不能重载
finally―再非常处置时降求 finally 块来执行任何肃清操作。假如扔出一个非常,那么相婚配的 catch 子句便会 执行,然后节制便会进进 finally 块(假如有的话)。
finalize ―方法名。Java 技术容许使用 finalize() 方法在渣滓收集器将对象从内存中肃清进来之前做必要的浑理 农作。这个方法是由垃圾收集器在肯定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的 ,因而所有的类都继承了它。子类笼罩 finalize () 方法以收拾系统资源或许执行其他清算工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

55.如何处置几十万条并发数据?
答:用存储进程或者事务。获得最大本识的时分同时更新..注意主键不是自增质方法这类方式并收的时分是不会有反复主键的..获得最大本识要有一个存储历程来获与.

56.Session有什么严重BUG, 400电话 ,微软降出了什么方法加以解决?
答:是iis中因为有过程归收机造,体系忙碌的话Session会拾失,可以用Sate server或者SQL Server数据库的方式存储Session不外这类方法比拟缓,而且无法捕捉Session的END事情。

57.进程和线程的区别?
答:进程是体系入止资流分配和调度的双位;线程是CPU调度和分派的单位,一个过程能够有少个线程,这些线程同享那个进程的资流。

58.堆和栈的区别?
答:
栈:由编译器主动分配、开释。在函数体中定义的变量通常在栈上。
堆:普通由程序员分配开释。用new、malloc等分配内存函数分配失掉的便是正在堆上。

59.成员变量和成员函数前加static的作用?
答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分离用来反应类的状况。好比类成员变量可以用来统计类实例的数目,类成员函数负责这种统计的动作。

60.ASP。NET取ASP比拟,重要有哪些提高?
答:asp说明形,aspx编译型,机能进步,有益于维护源码。

61.发生一个int数组,长度为100,并向其中随机拔出1-100,并且不能重复。
int[] intArr=new int[100];
ArrayList myList=new ArrayList();
Random rnd=new Random();
while(myList.Count<100)
{
int num=rnd.Next(1,101);
if(!myList.Contains(num))
myList.Add(num);
}
for(int i=0;i<100;i++)
intArr=(int)myList;
这些是C#,ASP.NET,数据库口试题,全体从网上搜集而来。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值