北京某公司.NET面试题
試題有關網頁
http://www.zuoyefeng.com/html/2006-10/433.htm
http://fenxue.cnblogs.com/archive/2005/11/12/274620.aspxhttp://zhidao.baidu.com/question/40354444.html?si=1
1.????? 填空: (1)面向對象的語言具有________性、_________性、________性。
??????? (2)能用foreach遍歷訪問的對象需要實現 ________________接口或聲明________________方法的類型。
??????? (3)列舉ADO.net中的五個主要對象_______________、_____________、_______________、_______________、_________________。
2. 不定項選擇:
(1) 以下敘述正確的是:
????? A. 接口中可以有虛方法。???? B. 一個類可以實現多個接口。
????? C. 接口不能被實例化。?????? D. 接口中可以包含已實現的方法。
?? (2) 從數據庫讀取記錄,你可能用到的方法有:
????? A. ExecuteNonQuery??????????? B. ExecuteScalar
????? C. Fill??????????????????????? D. ExecuteReader
3. 簡述 private、 protected、 public、 internal 修飾符的訪問權限。
4. 寫出一條Sql語句: 取出表A中第31到第40記錄(SQLServer, 以自動增長的ID作為主鍵,? 注意:ID可能不是連續的。)
5 .列舉ASP.NET 頁面之間傳遞值的幾種方式。
6. 寫出程序的輸出結果
class Class1? {
?????? private string str = "Class1.str";
?????? private int i = 0;
?????? static void StringConvert(string str)? {
?????????? str = "string being converted.";
?????? }
?????? static void StringConvert(Class1 c)? {
?????????? c.str = "string being converted.";
?????? }
?????? static void Add(int i)? {
?????????? i++;
?????? }
?????? static void AddWithRef(ref int i)? {
?????????? i++;
?????? }
?????? static void Main()? {
?????????? int i1 = 10;
?????????? int i2 = 20;
?????????? string str = "str";
?????????? Class1 c = new Class1();
?????????? Add(i1);
?????????? AddWithRef(ref i2);
?????????? Add(c.i);
?????????? StringConvert(str);????????
?????????? StringConvert(c);
?????????? Console.WriteLine(i1);
?????????? Console.WriteLine(i2);
?????????? Console.WriteLine(c.i);
?????????? Console.WriteLine(str);
?????????? Console.WriteLine(c.str);
?????? }?
??? }
7.寫出程序的輸出結果
public abstract class A?
{
??????? public A()?
?????? {
??????????? Console.WriteLine('A');
??????? }
??????? public virtual void Fun()?
?????? {
??????????? Console.WriteLine("A.Fun()");
??????? }
}
public class B: A?
{
??????? public B()
????? ?{
??????????? Console.WriteLine('B');
??????? }
??????? public new void Fun()?
?????? {
??????????? Console.WriteLine("B.Fun()");
??????? }
??????? public static void Main()?
????? ? {
?????????? A a = new B();
?????????? a.Fun();
??????? }
}
8.????? 寫出程序的輸出結果:
public class A?
{
??????? public virtual void Fun1(int i)
?????? {
??????????? Console.WriteLine(i);
??????? }
?? public void Fun2(A a)??
?????? {
??????????? a.Fun1(1);
??????????? Fun1(5);
??????? }
}
public class B : A?
{
??????? public override void Fun1(int i)???
?????? {
??????????? base.Fun1 (i + 1);
??????? }
??????? public static void Main()??
?????? {
??????????? B b = new B();
??????????? A a = new A();
??????????? a.Fun2(b);
??????????? b.Fun2(a);?????????
??????? }
}
9. 一列數的規則如下: 1、1、2、3、5、8、13、21、34......
?? 求第30位數是多少, 用遞歸算法實現。(C#語言)
10.? 程序設計: 貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。(C#語言)
要求:? 1.要有聯動性,老鼠和主人的行為是被動的。
2.考慮可擴展性,貓的叫聲可能引起其他聯動效應。
參考答案:
1. (1)? 繼承性、封裝性、多態性。(考基本概念)
?? (2)? IEnumerable 、 GetEnumerator (對foreach機制的理解,本來不想出這題的,湊分)
?? (3)? ... (送分題, 對ADO.net的了解)
評分標準:一空1分,滿分10分。
2. (1) B、C (考對接口的理解)? (2)? B、C、D (考查對ADO.net的熟練程度)
? 評分標準: 一題5分,不選或者錯選均不得分。漏選得2分。滿分10分。
3. . private :?? 私有成員, 在類的內部才可以訪問。
???? protected : 保護成員,該類內部和繼承類中可以訪問。
???? public :??? 公共成員,完全公開,沒有訪問限制。
???? internal:?? 在同一命名空間內可以訪問。
評分標準:答對1題2分,2題5分,3題7分。全對10分。 (送分題)
4.? 解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)
??? 評分標準: 寫對即10分。(答案不唯一,datagrid 分頁可能需要用到)
5.? 1.使用QueryString,? 如....?id=1; response. Redirect()....
??? 2.使用Session變量
??? 3.使用Server.Transfer
??? ....
?? 評分標準: 答對1點得3分, 兩點7分, 3點10分。
6.? (考查值引用和對象引用)
10
21
0
str
string being converted.
評分標準:答對一點得2分,滿分10分。
7.? A
??? B
A.Fun()
評分標準: 寫出A.B 得5分,寫出A.Fun()得5分,滿分10分。
(考查在繼承類中構造函數, 以及new 方法, )
8.? 2
??? 5
??? 1
??? 6
評分標準: 答對一點得2分,兩點得5分,3點得7分。全對得10分。
(一些人做這題,頭都暈了.... ^_^ )
9.?
??? 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);
??????? }
??? }
評分標準: 寫出return Foo(i -1) + Foo(i - 2); 得5分。
?寫出if(i > 0 && i <= 2) return 1; 得5分。
?????????? 方法參數過多需要扣分(扣除分數 = 參數個數 - 1)
?????????? 不用遞歸算法扣5分
?????????? (遞歸算法在樹結構建立等方面比較常用)
10??????????
?要點:1. 聯動效果,運行代碼只要執行Cat.Cryed()方法。2. 對老鼠和主人進行抽象
評分標準: <1>.構造出Cat、Mouse、Master三個類,并能使程序運行(2分)
????????? ? <2>從Mouse和Master中提取抽象(5分)
????????? ? <3>聯動效應,只要執行Cat.Cryed()就可以使老鼠逃跑,主人驚醒。(3分)
??? public interface Observer
??? {
??????? void Response();??? //觀察者的響應,如是老鼠見到貓的反映
??? }
??? public interface Subject
??? {
??????? void AimAt(Observer obs);? //針對哪些觀察者,這里指貓的要撲捉的對象---老鼠
??? }
??? public class Mouse : Observer
??? {
??????? private string name;
??????? public Mouse(string name, Subject subj)
??????? {??????????
??????????? this.name = name;
??????????? subj.AimAt(this);
??????? }
??????? public void Response()
??????? {
??????????? Console.WriteLine(name + " attempt to escape!");
??????? }
??? }
??? public class Master : Observer
??? {??
??????? public Master(Subject subj)
??????? {??????????
??????????? subj.AimAt(this);
??????? }
??????? public void Response()
??????? {
??????????? Console.WriteLine("Host waken!");
??????? }?
??? }
??? public class Cat : Subject
??? {
??????? private ArrayList observers;
??????? public Cat()
??????? {??
??????????? this.observers = new ArrayList();
??????? }
??????? public void AimAt(Observer obs)
??????? {
??????????? this.observers.Add(obs);
??????? }
??????? public void Cry()
??????? {
??????????? Console.WriteLine("Cat cryed!");
??????????? foreach (Observer obs in this.observers)
??????????? {
??????????????? obs.Response();
??????????? }
??????? }
??? }
??? class MainClass
??? {??????
??????? static void Main(string[] args)
??????? {
??????????? Cat cat = new Cat();
??????????? Mouse mouse1 = new Mouse("mouse1", cat);
??????????? Mouse mouse2 = new Mouse("mouse2", cat);
??????????? Master master = new Master(cat);
??????????? cat.Cry();
??????? }
??? }
//---------------------------------------------------------------------------------------------
設計方法二: 使用event -- delegate設計..
??? public delegate void SubEventHandler();
??? public abstract class Subject
??? {
??????? public event SubEventHandler SubEvent;
??????? protected void FireAway()
??????? {
??????????? if (this.SubEvent != null)
??????????????? this.SubEvent();
??????? }??
??? }
??? public class Cat : Subject
??? {?
??????? public void Cry()
??????? {
??????????? Console.WriteLine("cat cryed.");
??????????? this.FireAway();
??????? }
??? }
??? public abstract class Observer
??? {
??????? public Observer(Subject sub)
??????? {
??????????? sub.SubEvent += new SubEventHandler(Response);
??????? }
??????? public abstract void Response();???
??? }
??? public class Mouse : Observer
??? {
??????? private string name;
??????? public Mouse(string name, Subject sub) : base(sub)
??????? {??
??????????? this.name = name;
??????? }
??????? public override void Response()
??????? {
??????????? Console.WriteLine(name + " attempt to escape!");
??????? }
??? }
??? public class Master : Observer
??? {
??????? public Master(Subject sub) : base(sub){}
??????? public override void Response()
??????? {
??????????? Console.WriteLine("host waken");
??????? }
??? }
??? class Class1
??? {
??????? static void Main(string[] args)
??????? {
??????????? Cat cat = new Cat();
??????????? Mouse mouse1 = new Mouse("mouse1", cat);
??????????? Mouse mouse2 = new Mouse("mouse2", cat);
??????????? Master master = new Master(cat);
??????????? cat.Cry();
??????? }
??? }
1. C#中 property 與 attribute的區別,他們各有什么用處,這種機制的好處在哪里?
2. 講一講你理解的web service,在dot net framework中,怎么很好的結合xml?
3. C#, Java 和 c++的特點,有什么相同的地方,不同的地方,C#分別從c++和java中吸取了他們那些優點?
4. C#可否對內存進行直接的操作?
5、?維護數據庫的完整性、一致性、你喜歡用觸發器還是自寫業務邏輯?為什么
6、ADO.NET相對于ADO等主要有什么改進?
7、ASP。NET與ASP相比,主要有哪些進步?
8、C#中的委托是什么?事件是不是一種委托?
9、描述一下C#中索引器的實現過程,是否只能根據數字進行索引?
10、C#中要使一個類支持FOREACH遍歷,實現過程怎樣?
11、寫一個HTML頁面,實現以下功能,左鍵點擊頁面時顯示“您好”,右鍵點擊時顯示“禁止右鍵”。并在2分鐘后自動關閉頁面。
12、你對XMLHTTP、WEBSERVICE 了解嗎?簡單描述其特點、作用
13、接口和抽象類有什么區別?你選擇使用接口和抽象類的依據是什么?
14、自定義控件和一般用戶控件的異同?如果要用這兩者之一,你會選擇哪種?為什么
15、大概描述一下ASP。NET服務器控件的生命周期
第一,談談final, finally, finalize的區別。
第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)?
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
第四,&和&&的區別。
第五,HashMap和Hashtable的區別。
第六,Collection 和 Collections的區別。
第七,什么時候用assert。
第八,GC是什么? 為什么要有GC?
第九,String s = new String("xyz");創建了幾個String Object?
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
第十一,short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?
第十二,sleep() 和 wait() 有什么區別?
第十三,Java有沒有goto?
第十四,數組有沒有length()這個方法? String有沒有length()這個方法?
第十五,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
第十六,Set里的元素是不能重復的,那么用什么方法來區分重復與否呢? 是用==還是equals()? 它們有何區別?
第十七,給我一個你最常見到的runtime exception。
第十八,error和exception有什么區別?
第十九,List, Set, Map是否繼承自Collection接口?
第二十,abstract class和interface有什么區別?
第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
第二十二,接口是否可繼承接口? 抽象類是否可實現(implements)接口? 抽象類是否可繼承實體類(concrete class)?
第二十三,啟動一個線程是用run()還是start()?
第二十四,構造器Constructor是否可被override?
第二十五,是否可以繼承String類?
第二十六,當一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的其它方法?
第二十七,try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執行,什么時候被執行,在return前還是后?
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
第二十九,兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
第三十,當一個對象被當作參數傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結果,那么這里到底是值傳遞還是引用傳遞?
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
第三十二,編程題: 寫一個Singleton出來。
數據庫方面:
1.存儲過程和函數的區別
2.事務是什么?
3.游標的作用?如何知道游標已經到了最后?
4.觸發器分為事前觸發和事后觸發,這兩種觸發有和區別。語句級觸發和行級觸發有何區別。
1。用C#實現以下功能
?? a 產生一個int數組,長度為100,并向其中隨機插入1-100,并且不能重復。
?? b 對上面生成的數組排序,需要支持升序、降序兩種順序
2。請說明在.net中常用的幾種頁面間傳遞參數的方法,并說出他們的優缺點。
3。請說明.net中的錯誤處理機制,并舉例
4。請說出強名的含義
5。請列出c#中幾種循環的方法,并指出他們的不同
6。請指出.net中所有類型的基類
7。請指出GAC的含義
8。SQL SREVER中,向一個表中插入了新數據,如何快捷的得到自增量字段的當前值
您在什么情況下會用到虛方法?它與接口有什么不同?
Q:Override與重載有什么區別?
Q:值類型與引用類型有什么區別?
Q:怎樣理解靜態變量?
Q:向服務器發送請求有幾種方式?
Q:DataReader與Dataset有什么區別?
Q:如果在一個B/S結構的系統中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進行處理?
Q:用.net做B/S結構的系統,您是用幾層結構來開發,每一層之間的關系以及為什么要這樣分層?
Q:軟件開發過程一般有幾個階段?每個階段的作用?
Q:微軟推出了一系列的Application Block,請舉出您所知道的Application Block并說明其作用?
Q:請列舉一些您用到過的設計模式以及在什么情況下使用該模式?
Q:您對WebService的體會?
Q:您對編程的興趣如何?工作中遇到不懂的問題是怎樣去解決的?您一般怎樣去提高自己的編程水平?
Q:您離職的原因是什么?
Q:通過超鏈接怎樣傳遞中文參數?
Q:請編程遍歷頁面上所有TextBox控件并給它賦值為string.Empty?
Q:請編程實現一個冒泡排序算法?
1、override與重載的區別
2、.net的錯誤處理機制是什么
3、C#中接口和類的異同
4、DataReader和DataSet的異同
1.有哪幾種方法可以實現一個類存取另外一個類的成員函數及屬性,并請舉列來加以說明和分析.
2.如果需記錄類的實例個數,該如何實現,請寫一個簡單的類于以證明.
3.A類是B類的基類,并且都有自己的構造,析構函數,請舉例證明B類從實例化到消亡過程中構造,析構函數的執行過程.
4.需要實現對一個字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續空格的話,僅保留一個空格,即允許字符串中間有多個空格,但連續的空格數不可超過一個.
一.填空題
1.c#中的三元運算符是__?:___?
2.當整數a賦值給一個object對象時,整數a將會被__裝箱(封裝)___?
3.類成員有_____種可訪問形式?? this.;new Class().Method;
4.public static const int A=1;這段代碼有錯誤么?是什么?? const不能用static修飾
5.float f=-123.567F;
? int i=(int)f;
i的值現在是_____??? 123?
6.利用operator聲明且僅聲明了“==”,有什么錯誤么??
7.委托聲明的關鍵字是______? delagete
8.用sealed修飾的類有什么特點?密封,不能繼承
9.在Asp.net中所有的自定義用戶控件都必須繼承自________?Control
10.在.Net中所有可序列化的類都被標記為_____??
11.在.Net托管代碼中我們不用擔心內存漏洞,這是因為有了______?gc
12.下面的代碼中有什么錯誤嗎?_______
???? using System;
???? class A
???? {
????????? public virtual void F(){
????????????? Console.WriteLine("A.F");
?????????? }
????? }
????? abstract class B:A
?????? {
?????????? public abstract override void F(); // new public abstract void F();?
????? ?}
13.當類T只聲明了私有實例構造函數時,則在T的程序文本外部,___可以___(可以 or 不可以)從T派生出新的類,不可以____(可以 or 不可以)直接創建T的任何實例。
14.下面這段代碼有錯誤么?
??? switch (i){
??? case():
??????? CaseZero();
??????? break;
??? case 1:
??????? CaseOne();
??????? break;
??? case 2:
??????? dufault;? //wrong
??????? CaseTwo();
??????? break;
?? }
15.在.Net中,類System.Web.UI.Page 可以被繼承么?可以
二.簡答題
1.在c#中using和new這兩個關鍵字有什么意義,請寫出你所知道的意義?using 指令 和語句 new 創建實例 new 隱藏基類中方法
4.談談類和結構的區別?類是引用類型、結構是值類型
5.一個長度為10000的字符串,通過隨機從a-z中抽取10000個字符組成。請用c#語言編寫主要程序來實現。
6.對于這樣的一個枚舉類型:
????? enum Color:byte{
????????? Red,
????????? Green,
????????? Blue,
????????? Orange
?????? }
???? string[] ss=Enum.GetNames(typeof(Color));
???? byte[]?? bb=Enum.GetValues(typeof(Color));
試寫一段程序顯示出枚舉類型中定義的所有符號名稱以及它們對應的數值。
7.您了解設計模式么?請列出您所知道的設計模式的名稱。 //
8.請在SQL Server中設計表來保存一個樹狀結構的組織結構圖(假設結構圖中只有名稱這一項內容需要保存),如果我想查詢某一職位下的所有職位,用一個存儲過程來實現,你有什么思路?
9.什么叫做SQL注入,如何防止?請舉例說明。
10.下面這段代碼輸出什么?為什么?
???? int i=5;
???? int j=5;
???? if (Object.ReferenceEquals(i,j))
????????? Console.WriteLine("Equal");
???? else
?????? ???Console.WriteLine("Not Equal");
//不相等,因為比較的是對象
1.寫一個實現對一段字符串翻轉的方法,附加一些條件,如其中包括“,”、“.”,對其設計測試用 例 。
2.對一支紙杯設計測試用例(可以是廣義的杯,不一定是某一支特定功能的杯)
開發語言概念題
3.什么是反射?
4.用Singleton如何寫設計模式
5.C#中的垃圾回收機制是怎樣的?
6.什么是Application Pool?
7.鏈表和數組的區別,各有什么優缺點.
8.Remoting在客戶端服務器怎么實現 ?
9.什么是友元函數?
10.用標準C如何實現多態?
11.什么是虛函數?
12.什么是抽象函數?
13.什么是內存泄漏,怎樣最簡單的方法判斷被存泄漏 ?
英語題
14.用英文介紹一下使用C#/C++做的項目,主要功能
15.如果要與美國開電話會議,會如何與美國的工程師溝通
16.如果老板認為你的技術落后,你會怎么回答??
數據庫知識題
17.使用什么工具來調用存儲過程
18.SQL Server的兩種索引是何形式?索引的作用?索引的優缺點?
19.觸發器的作用??
其它知識題及問題
20.什么是Web Service?
21.什么是XML?
22.Socket怎么實現?
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[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.用.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,這句話對不對?
答:不對,有
總結
以上是生活随笔為你收集整理的北京某公司.NET面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 15年宝马叉五,左后减震器,空气减震,减
- 下一篇: 日本的车为什么这么好?