一、問答題
1. 簡述 private、 protected、 public、 internal 修飾符的訪問權限。
答案: private : 私有成員, 在類的內部纔可以訪問。
protected : 保護成員,該類內部和繼承類中可以訪問。
public : 公共成員,完全公開,沒有訪問限制。
internal: 在同一命名空間內可以訪問。
2 .列舉ASP.NET 頁面之間傳遞值的幾種方式。
答案:1.使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session變量
3.使用Server.Transfer
3.C#中的委託是什麼?事件是不是一種委託?
答案:
委託可以把一個方法作爲參數代入另一個方法。
委託可以理解爲指向一個函數的引用。
是,是一種特殊的委託
4.override與重載的區別
答案:
override 與重載的區別。重載是方法的名稱相同。參數或參數類型不同,進行多次重載以適應不同的需要
Override 是進行基類中函數的重寫。爲了適應需要。
5.請編程遍歷頁面上所有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 ;
}
}
6.什麼叫應用程序域?
答案:應用程序域可以理解爲一種輕量級進程。起到安全的作用。佔用資源小。
7.CTS,CLS,CLR分別作何解釋?
答案: CTS:公共類型系統.主要是爲了語言之間的進行標準化處理.
CLS:公共語言規範.主要是確保代碼可以在任何語言中訪問的最小標準集體
CLR:公共語言運行時.主要是管理代碼..處理,加載代碼,以及所有服務的代碼
8.什麼是裝箱和拆箱?
答案:從值類型接口轉換到引用類型裝箱。從引用類型轉換到值類型拆箱。
8.Remoting 的工作原理是什麼?
答案:服務器端向客戶端發送一個進程編號,一個程序域編號,以確定對象的位置。
10.在C#中,string str = null 與 string str = “” 請儘量使用文字或圖象說明其中的區別。
答案:string str = null 是不給他分配內存空間,而string str = "" 給它分配長度爲空字符串的內存空間。
11.寫出一條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)
12.面向對象的語言具有________性、_________性、________性
答案:封裝、繼承、多態。
13.能用foreach遍歷訪問的對象需要實現 ________________接口或聲明________________方法的類型。
答案:IEnumerable 、 GetEnumerator。
14.GC是什麼? 爲什麼要有GC?
答案:GC是垃圾收集器。程序員不用擔心內存管理,因爲垃圾收集器會自動進行管理。要請求垃圾收集,可以調用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
15.String s = new String("xyz");創建了幾個String Object?
答案:兩個對象,一個是“xyx”,一個是指向“xyx”的引用對象s。
16.C#中結構和類有什麼異同?
答案:類是引用類型,可以繼承類、接口和被繼承,有默認的構造函數,有析構函數,可以使用abstract和sealed,有protected修飾符,必須使用new初始化。
結構是值類型,只能繼承接口,不能被繼承,沒有默認的構造函數,可以創建,沒有析構函數,不可以用abstract和sealed,沒有protected修飾符,可以不用new初始化。
17、區別:abstract class和interface有什麼區別?
答案:
抽象類:
聲明方法的存在而不去實現它的類被叫做抽像類(abstract class),它用於要創建一個體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的情況。
不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽像類,並讓它指向具體子類的一個實例。
不能有抽像構造函數或抽像靜態方法。
Abstract 類的子類爲它們父類中的所有抽像方法提供實現。
接口:
接口(interface)是抽像類的變體,在接口中,所有方法都是抽像的。
多繼承性可通過實現這樣的接口而獲得。
接口中的所有方法都是抽像的,沒有一個有程序體。
接口只可以定義static final成員變量。
接口的實現與子類相似,除了該實現類不能從接口定義中繼承行爲。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然後,它可以在實現了該接口的類的任何對像上調用接口的方法。
由於有抽像類,它允許使用接口名作爲引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。
17. 解釋ASP.NET中的code-behind?
答案:代碼隱藏,顯示邏輯的代碼和處理邏輯的代碼分離
18. 什麼是受管制代碼?
答案:由公共語言運行環境進行管理的代碼,它主要負責內存管理。平臺上運行的代碼都是受管制代碼
19. ASP。NET和ASP的主要優勢?
答案:ASP.Net的優勢:
ASP.Net擺脫了以前ASP使用腳本語言來編程的缺點,
理論上可以使用任何編程語言包括C++ , VB , JS等等,當然,最合適的編程語言還是MS爲.Net Frmaework專門推出的C(讀c sharp),它可以看作是VC和Java的混合體
儘管MS自己講C#內核中更多的象VC,但實際上我還是認爲它和Java更象一些。
首先它是面向對象的編程語言,而不是一種腳本,所以它具有面向對象編程語言的一切特性,比如封裝性、繼承性、多態性等等,這就解決了剛纔談到的ASP的那些弱點。
封裝性使得代碼邏輯清晰,易於管理,並且應用到ASP.Net上就可以使業務邏輯和Html頁面分離,這樣無論頁面原型如何改變,業務邏輯代碼都不必做任何改動;繼承性和多態性使得代碼的可重用性大大提高,你可以通過繼承已有的對象最大限度保護你以前的投資。
並且C#和C++、Java一樣提供了完善的調試/ 糾錯體系。
20. NET的錯誤處理機制是什麼?
答案:try{可能要出錯的代碼}
catch{撲捉到錯誤後的處理}
finally{不論代碼是否出錯都要執行}
21. 解釋Page.IsPostBack屬性?
答案:使用者第一次瀏覽這個網頁時Page.IsPostBack 會傳回False,不是第一次瀏覽這個網頁時就傳回True
framework包含哪幾種技術?
答案:Application Framework,Domain Framework
23.觸發器分爲事前觸發和事後觸發,有何區別?
答案:事前觸發器運行於觸發事件發生之前,而事後觸發器運行於觸發事件發生之後。通常事前觸發器可以獲取事件之前和新的字段值
24.事務是什麼?
答案:在許多大型、關鍵的應用程序中,計算機每秒鐘都在執行大量的任務。更爲經常的不是這些任務本身,而是將這些任務結合在一起完成一個業務要求,稱爲事務。
當某一個任務失敗時,就恢復到指定的恢復點,這個叫回滾。
25.描述下ASP.NET中使用DataReader對象 和DataSet對象的區別?
答案:Dataset是保存數據的數據結構,斷開模式。
DataReader不承擔保存數據的責任,需要自己手動關閉連接數據庫,它只負責從數據源讀取數據到本地而已,是隻讀向前的,它不是數據結構,而是網絡通訊組件的高層封裝。
26.什麼是WEBSERVICE ?
答案:web服務,是利用SOAP(簡單對象訪問協議,Simple Object Access Protocol)在HTTP上執行遠程方法調用的一種方法,也可以使用WSDL(Web Service Description Language,Web服務描述語言)來完整的描述Web服務,基於XML標準。
27..敘述ASP。NET中的幾種驗證控件(equiredFieldValidato, CompareValidator, RangeValidator, RegularExpressionValitor, CustomValidator, ValidationSummary)及作用?
答案:
a) RequiredFieldValidator(必須字段驗證);
b) CompareValidator(比較驗證);
c) RangeValidator (範圍驗證);
d) RegularExpresionValidator(正則表達式);
e) ValidationSummary(驗證總結);
f) CustomValidator(自定義驗證)
28.SQLSERVER服務器中,給定表 table1 中有兩個字段 ID、LastUpdateDate,ID表示更新的事務號, LastUpdateDate表示更新時的服務器時間,請使用一句SQL語句獲得最後更新的事務號
答案:select ID from table1 where LastUpdateDate = (select max(LastUpdateDate) from table1)
29.什麼是數據庫事務
答案:(1) 事務的三個特性:一致性,原子性,隔離性
(2) 幾個SQL語句,要麼全部執行成功,要麼全部執行失敗,事務的三個操作:Begin,Commit,RollBack。
(3) 取剛插入數據的ID值,就要用事務來隔離,
30.請簡單的說明數據庫建立索引的優缺點
答案:優點:使用索引可以加快數據的查詢速度
缺點:由於數據插入過程中會建索引,所以會降低數據的插入,更新速度,索引還會佔用磁盤空間。
31.啓動一個線程是用run()還是start()?
答案:啓動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味着它可以由JVM調度並執行。這並不意味着線程就會立即運行。
run()方法可以產生必須退出的標誌來停止一個線程。
32.接口是否可繼承接口? 抽像類是否可實現(implements)接口? 抽像類是否可繼承實體類(concrete class)?
答案:接口可以繼承接口。抽像類可以實現(implements)接口,抽像類是否可繼承實體類,但前提是實體類必須有明確的構造函數。
33.構造器Constructor是否可被override?
答案:構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overload。
34.數組有沒有length()這個方法? String有沒有length()這個方法?
答案:數組和String都沒有Length()方法,只有Length屬性。
35.sleep() 和 wait() 有什麼區別?
答案:sleep()方法是將當前線程掛起指定的時間。
wait()釋放對象上的鎖並阻塞當前線程,直到它重新獲取該鎖。
36.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正確。
37.談談final, finally, finalize的區別。
答案:
1 final-修飾符(關鍵字)如果一個類被聲明爲final,意味着它不能再派生出新的子類,不能作爲父類被繼承。因此 一個類不能既被聲明爲 abstract的,又被聲明爲final的。
將變量或方法聲明爲final,可以保證它們在使用中 不被改變。被聲明爲final的變量必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明爲 final的方法也同樣只能使用,不能重載
2 finally-再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會 執行,然後控制就會進入 finally 塊(如果有的話)。
3 finalize-方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對像從內存中清除出去之前做必要的清理 工作。
這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的 ,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對像之前對這個對象調用的。
38.如何處理幾十萬條併發數據?
答案:用存儲過程或事務。取得最大標識的時候同時更新..注意主鍵不是自增量方式這種方法併發的時候是不會有重複主鍵的..取得最大標識要有一個存儲過程來獲取.
39.Session有什麼重大BUG,微軟提出了什麼方法加以解決?
答案:是iis中由於有進程回收機制,系統繁忙的話Session會丟失,可以用Sate server或SQL Server數據庫的方式存儲Session不過這種方式比較慢,而且無法捕獲Session的END事件。
40.進程和線程的區別?
答案:進程是系統進行資源分配和調度的單位;線程是CPU調度和分派的單位,一個進程可以有多個線程,這些線程共享這個進程的資源。
41.堆和棧的區別?
答案:棧是編譯期間就分配好的內存空間,因此你的代碼中必須就棧的大小有明確的定義;堆是程序運行期間動態分配的內存空間,你可以根據程序的運行情況確定要分配的堆內存的大小
42.成員變量和成員函數前加static的作用?
答案:它們被稱爲常成員變量和常成員函數,又稱爲類成員變量和類成員函數。分別用來反映類的狀態。比如類成員變量可以用來統計類實例的數量,類成員函數負責這種統計的動作。
43.產生一個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[i]=(int)myList[i];
44.什麼叫做SQL注入,如何防止?請舉例說明。
答案:利用sql語言漏洞獲得合法身份登陸系統。如身份驗證的程序設計成:
SqlCommand com=new SqlCommand("Select * from users where username='"+t_name.text+"' and pwd='"+t_pwd.text+"'");
object obj=com.ExcuteScale();
if(obj!=null)
{
//通過驗證
}
這段代碼容易被sql注入。如用戶在t_name中隨便輸入,在t_pwd中輸入1' and 1='1 就可以進入系統了。
45.什麼是反射?
答案:動態獲取程序集信息
46.用Singleton如何寫設計模式
答案:static屬性裏面new ,構造函數private
47.什麼是Application Pool?
答案:Web應用,類似Thread Pool,提高併發性能。
48.什麼是虛函數?什麼是抽像函數?
答案:虛函數:可由子類繼承並重寫的函數。抽像函數:規定其非虛子類必須實現的函數,必須被重寫。
49.什麼是XML?
答案:XML即可擴展標記語言。eXtensible Markup Language.標記是指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包含各種信息的文章等。如何定義這些標記,即可以選擇國際通用的 標記語言,比如HTML,也可以使用象XML這樣由相關人士自由決定的標記語言,這就是語言的可擴展性。XML是從SGML中簡化修改出來的。它主要用到 的有XML、XSL和XPath等。
50.什麼是中的用戶控件?
答案:用戶控件一般用在內容多爲靜態,或者少許會改變的情況下..用的比較多..類似ASP中的include..但是功能要強大的多。
51.什麼是SOAP,有哪些應用。
答案:SOAP(Simple Object Access Protocol )簡單對象訪問協議是在分散或分佈式的環境中交換信息並執行遠程過程調用的協議,是一個基於XML的協議。使用SOAP,不用考慮任何特定的傳輸協議(最 常用的還是HTTP協議),可以允許任何類型的對象或代碼,在任何平臺上,以任何一直語言相互通信。這種相互通信採用的是XML格式的消息。
52.C#中 property 與 attribute的區別,他們各有什麼用處,這種機制的好處在哪裏?
答案:一個是屬性,用於存取類的字段,一個是特性,用來標識類,方法等的附加性質
53.XML 與 HTML 的主要區別
答案:1 XML是區分大小寫字母的,HTML不區分。
2 在HTML中,如果上下文清楚地顯示出段落或者列表鍵在何處結尾,那麼你可以省略
或者之類的結束 標記。在XML中,絕對不能省略掉結束標記。
3 在XML中,擁有單個標記而沒有匹配的結束標記的元素必須用一個 / 字符作爲結尾。這樣分析器就知道不用 查找結束標記了。
4 在XML中,屬性值必須分裝在引號中。在HTML中,引號是可用可不用的。
5 在HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應的值。
54.ADO.NET相對於ADO等主要有什麼改進?
答案:不依賴於ole db提供程序,而是使託管提供的程序,
不使用com
不在支持動態遊標和服務器端遊
可以斷開connection而保留當前數據集可用
強類型轉換
xml支持
55.大概描述一下ASP.NET服務器控件的生命週期
答案:初始化 加載視圖狀態 處理回發數據 加載 發送回發更改通知 處理回發事件 預呈現 保存狀態 呈現 處置 卸載
56.&和&&的區別?
&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and).
57.HashMap和Hashtable的區別。
答案:HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高於Hashtable.
58.error和exception有什麼區別?
答案:error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。
59. 一列數的規則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少, 用遞歸算法實現。
答案: public int GetNumberAtPos(int pos)
{
if(pos==0||pos==1)
{
return 1;
}
int res = GetNumberAtPos(pos - 1) + GetNumberAtPos(pos - 2);
return res;
}
60.請編程遍歷頁面上所有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 ;
}
}
61.請編程實現一個冒泡排序算法?
答案: 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 ;
}
}
}
62.寫一個HTML頁面,實現以下功能,左鍵點擊頁面時顯示“您好”,右鍵點擊時顯示“禁止右鍵”。並在2分鐘後自動關閉頁面。
答案:
<script ***script>
setTimeout('window.close();',3000);
function show()
{
if (window.event.button == 1)
{
alert("左");
}
else if (window.event.button == 2)
{
alert("右");
}
}
</script>
63.程序設計: 貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。(C#語言)
要求: 1 要有聯動性,老鼠和主人的行爲是被動的。
2 考慮可擴展性,貓的叫聲可能引起其他聯動效應。
答案: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();
}
}
61.(C# or )中如何取消一個窗體的關閉。
答案:private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)e.Cancel=true;}
61、(C# or )中,Appplication.Exit 還是 Form.Close有什麼不同?
答案:一個是退出整個應用程序,一個是關閉其中一個form。
66.在C#中有一個double型的變量,比如10321.5,比如122235401.21644,作爲貨幣的值如何按各個不同國家的習慣 來輸出。比如美國用$10,321.50和$122,235, 401.22而在英國則爲£10 321.50和£122 235 401.22
答案:System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US");
//System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB");爲英 國 貨幣類型
decimal y = 9999999999999999999999999999m;
string str = String.Format(MyCulture,"My amount = {0:c}",y);
67.C#可否對內存進行直接的操作?
答案:下引用了垃圾回收(GC)功能,它替代了程序員 不過在C#中,不能直接實現Finalize方法,而是在析構函數中調用基類的Finalize()方法
68.什麼是Web Service?UDDI?
答案:Web Service便是基於網絡的、分佈式的模塊化組件,它執行特定的任務,遵守具體的技術規範,這些規範使得Web Service能與其他兼容的組件進行互操作。
UDDI 的目的是爲電子商務建立標準;UDDI是一套基於Web的、分佈式的、爲Web Service提供的、信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web Service註冊,以使別的企業能夠發現的訪問協議的實現標準。
69.<%# %> 和 <% %> 有什麼區別?
答案:<%# %>表示綁定的數據源
<% %>是服務器端代碼塊
70.你覺得ASP.NET 2.0(VS2005)和你以前使用的開發工具(.Net 1.0或其他)有什麼最大的區別?你在以前的平臺上使用的哪些開發思想(pattern / architecture)可以移植到ASP.NET 2.0上 (或者已經內嵌在ASP.NET 2.0中)
答案:1 ASP.NET 2.0 把一些代碼進行了封裝打包,所以相比1.0相同功能減少了很多代碼.
2 同時支持代碼分離和頁面嵌入服務器端代碼兩種模式,以前1.0版本,.NET提示幫助只有在分離的代碼文件,無 法 在頁面嵌入服務器端代碼獲得幫助提示,
3 代碼和設計界面切換的時候,2.0支持光標定位.這個我比較喜歡
4 在綁定數據,做表的分頁.UPDATE,DELETE,等操作都可以可視化操作,方便了初學者
5 在ASP.NET中增加了40多個新的控件,減少了工作量
71.請將字符串"I am a student"按單詞逆序輸出 如"student a am I"
答案:string S = "I am a student";
char[] C = new char[] { ' '};
string[] n =S.Split(C);
int length = S.Length;
for (int i =length-1 ; i >=0; i--)
{
Console.Write(n[i]);
if (i != 0)
{
Console.Write(" ");
}
}
72.兩個數組 [n] [m] n>m 第一個數組的數字無序排列 第二個數組爲空 取出第一個數組的最小值 放到第二個數組中第一個位置, 依次類推. 不能改變A數組,不能對之進行排序,也不可以倒到別的數組中。
答案:
73.公司要求開發一個繼承System.Windows.Forms.ListView類的組件,要求達到以下的特殊功能:點擊ListView各列列頭時,能按照點擊列的每行值進行重排視圖中的所有行 (排序的方式如DataGrid相似)。根據您的知識,請簡要談一下您的思路
答案:根據點擊的列頭,包該列的ID取出,按照該ID排序後,在給綁定到ListView中。
74.給定以下XML文件,完成算法流程圖。
<FileSystem>
< DriverC >
<Dir DirName=”MSDOS622”>
<File FileName =” ” ></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 );
}
}
75.Set裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==還是equals()? 它們有何區別?
答案:Set裏的元素是不能重複的,那麼用iterator()方法來區分重複與否。equals()是判讀兩個Set是否相等。
equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,爲的是當兩個分離的對象的內容和類型相配的話,返回真值。
76.成員變量和成員函數前加static的作用?
答案:它們被稱爲常成員變量和常成員函數,又稱爲類成員變量和類成員函數。分別用來反映類的狀態。比如類成員變量可以用來統計類實例的數量,類成員函數負責這種統計的動作。
77.向服務器發送請求有幾種方式?
答案:get,post。get一般爲鏈接方式,post一般爲按鈕方式。
78.軟件開發過程一般有幾個階段?每個階段的作用?
答案:可行性分析(風險控制),需求分析,架構設計,代碼編寫,測試,部署,維護
79.在c#中using和new這兩個關鍵字有什麼意義,請寫出你所知道的意義?using 指令 和語句 new 創建實例 new 隱藏基類中方法。
答案:using 引入名稱空間或者使用非託管資源,使用完對象後自動執行實現了IDisposable接口的類的Dispose方法
new 新建實例或者隱藏父類方法
80.Static Nested Class 和 Inner Class的不同,說得越多越好
答案:Static Nested Class是被聲明爲靜態(static)的內部類,它可以不依賴於外部類實例被實例化。而通常的內部類需要在外部類實例化後才能實例化。
中web應用程序獲取數據的流程:
A.Web Page B.Fill C.Sql05 D.Data Sourse E.DataGrid F.DataSet G.Select and Connect
Commands H.Sql Data Adapter
答案:a,e,d,f,h,g,b,c
執行模式中各組件填入到對應位置:
A.Output Cache B.Parser C.Assembly Cache D.IE E.Memory F.Compiler
WebPage被第一次請求時:
D->__->__->__->__->D
WebPage被第二次請求時:
D->__->__->D
WebPage的頁面輸出緩存被打開時:
D->__->D
答案:
WebPage被第一次請求時:
D->_b_->_f_->_a_->_e_->D
WebPage被第二次請求時:
D->_b_->_e_->D
WebPage的頁面輸出緩存被打開時:
D->_a_->D
83.兩個數組 [n] [m] n>m 第一個數組的數字無序排列 第二個數組爲空 取出第一個數組的最小值 放到第二個數組中第一個位置, 依次類推. 不能改變A數組,不能對之進行排序,也不可以倒到別的數組中。
答案:int[] a = { -20, 9, 7, 37, 38, 69, 89, -1, 59, 29, 0, -25, 39, 900, 22, 13, 55 };
int[] b = new int[10];
int intTmp = a[0], intMaxNum;
for (int i = 0; i < a.Length; i++)
{
intTmp = a[i] > intTmp ? a[i] : intTmp;
}
intMaxNum = intTmp;
for (int j = 0; j < b.Length; j++)
{
for (int i = 0; i < a.Length; i++)
{
if (j == 0)
intTmp = a[i] < intTmp ? a[i] : intTmp;
else
{
if (a[i] > b[j - 1])
intTmp = a[i] < intTmp ? a[i] : intTmp;
}
}
b[j] = intTmp;
intTmp = intMaxNum;
}
foreach (int bb in b)
{
Console.WriteLine(bb);
}
Console.ReadLine();
由“.net筆試題庫”收集整理