|
1.面向對象的思想主要包括什么? 繼承多態(tài)封裝 ●封裝:用抽象的數據類型將數據和基于數據的操作封裝在一起,數據被保護在抽象數據類型內部。 ●繼承:子類擁有父類的所有數據和操作。 ●多態(tài):一個程序中同名的不同方法共存的情況。 有兩種形式的多態(tài)–重載與重寫。
2.什么是ASP.net中的用戶控件 用戶控件就是.ascx擴展名的東西嘍,可以拖到不同的頁面中調用,以節(jié)省代碼.比如登陸可能在多個頁面上有,就可以做成 用戶控件,但是有一個問題就是用戶控件拖到不同級別的目錄下后里面的圖片等的相對路徑會變得不準確,需要自已寫方 法調整. 問這樣的問題,一般是迷惑你.因為新手還是分不清楚用戶控件和服務器控件(也稱自定義控件)..用戶控件一般用在內容多 為靜態(tài),或者少許會改變的情況下..用的比較大..類似ASP中的include..但是功能要強大的多.. 在C#中,string str = null 與 string str = “”的區(qū)別。 DataReader和DataSet的異同 的操作都會引發(fā)DataReader的異常..因為DataReader每次只在內存中加載一條數據,所以占用的內存是很小的..因 為DataReader的特殊性和高性能.所以DataReader是只進的..你讀了第一條后就不能再去讀取第一條了.. 內存中.所以比較消耗內存...但是確比DataReader要靈活..可以動態(tài)的添加行,列,數據.對數據庫進行回傳更新操作. 8.C#中的接口和類有什么異同。 接口和類都是類,不同的事,接口只包含方法或屬性的聲明,不包含具體實現方法的代碼,接口可以實現多繼承,而類 只能是單繼承,繼承接口的類必須實現接口中聲明的方法或屬性。接口主要定義一種規(guī)范,統(tǒng)一調用方法,在大型項目 中接口正發(fā)揮日益重要的作用 類是方法功能的實現和集合,接口是規(guī)范類.約束類. Override與重載有什么區(qū)別? 觸發(fā)器的作用 觸發(fā)器可以查詢其它表,而且可以包含復雜的 SQL 語句。它們主要用于強制復雜的業(yè)務規(guī)則或要求。觸發(fā)器還有助于 強制引用完整性,以便在添加、更新或刪除表中的行時保留表之間已定義的關系。 <%# %> 和 <% %> 有什么區(qū)別? 常見的設計模式 抽象工廠模式、適配器模式、外觀模式 command命令模式,橋接模式,組合模式,裝飾模式,狀態(tài)模式,備忘錄模式等。
3.什么叫應用程序域?什么是受管制的代碼?什么是強類型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分 別作何解釋?
4.列舉一下你所了解的XML技術及其應用
5.值類型和引用類型的區(qū)別?寫出C#的樣例代碼。 在dotnet中有兩大類數據類型,即值類型和引用類型,值類型存貯在棧中,而引用類型存貯在動態(tài)的堆中,棧是先進先 出的有系統(tǒng)管理的空間,而堆是由應用程序控制的可隨時申請和釋放該空間,在Donnet中一般情況下有垃圾收集器處理 ,他們的不同導致在編程上的不同。 輸出mxh
6.ADO.net中常用的對象有哪些?分別描述一下。
7.如何理解委托?
C# 中的委托類似于 C 或 C++ 中的函數指針。使用委托使程序員可以將方法引用封裝在委托對象內。然后可以將該委托 對象傳遞給可調用所引用方法的代碼,而不必在編譯時知道將調用哪個方法。與 C 或 C++ 中的函數指針不同,委托是 面向對象、類型安全的,并且是安全的。
9.。net中讀寫數據庫需要用到哪些類?他們的作用
10.UDP連接和TCP連接的異同。
11.ASP.net的身份驗證方式有哪些?分別是什么原理? window驗證:為每個用戶開啟window賬號,驗證其身份.安全性較高.
12.進程和線程分別怎么理解?
13.什么是code-Behind技術。 新建一個VS.NET下的項目..看到ASPX,RESX和CS三個后綴的文件了嗎??這個就是代碼分離.實現了HTML代碼和服務器代 碼分離.方便代碼編寫和整理.
14.活動目錄的作用。 活動目錄是window2000的最重要的功能.可以將用戶信息全部集成起來,登陸以后可以訪問多個不同的網絡服務.. . 15..net中讀寫XML的類都歸屬于哪些命名空間? System.XML類
16.解釋一下UDDI、WSDL的意義及其作用。
17.什么是SOAP,有哪些應用。 simple object access protocal,簡單對象接受協議.以xml為基本編碼結構,建立在已有通信協議上(如http,不過據說ms在搞最 底層的架構在tcp/ip上的soap)的一種規(guī)范
18.如何部署一個ASP.net頁面。
19.如何理解.net中的垃圾回收機制。
如果發(fā)現內存不夠,則垃圾回收器,將全部對象作為無效對象(被回收對象),然后先將全局變量,static,處于活動中的局部變 量,以及當前CG指針指向的對象放入一個表中.然后
20.常用的調用webservice方法有哪些? 我一般用的是WSDL..或者web引用..
21列舉一下你所了解的XML技術及其應用
C#中 property 與 attribute的區(qū)別,他們各有什么用處,這種機制的好處在哪里?
C#可否對內存進行直接的操作? 維護數據庫的完整性、一致性、你喜歡用觸發(fā)器還是自寫業(yè)務邏輯?為什么
觸發(fā)器,性能好,事務性 ADO。NET相對于ADO等主要有什么改進? 新增dataset等,不需要隨時保持連接,性能提高
ASP。NET與ASP相比,主要有哪些進步?
C#中的委托是什么?事件是不是一種委托?
你對XMLHTTP、WEBSERVICE 了解嗎?簡單描述其特點、作用 接口和抽象類有什么區(qū)別?你選擇使用接口和抽象類的依據是什么? 存儲過程和函數的區(qū)別 事務是什么? 游標的作用?如何知道游標已經到了最后? 觸發(fā)器分為事前觸發(fā)和事后觸發(fā),這兩種觸發(fā)有和區(qū)別。語句級觸發(fā)和行級觸發(fā)有何區(qū)別。 請說明在.net中常用的幾種頁面間傳遞參數的方法,并說出他們的優(yōu)缺點。 請說明.net中的錯誤處理機制,并舉例 請說出強名的含義 請列出c#中幾種循環(huán)的方法,并指出他們的不同 請指出.net中所有類型的基類 請指出GAC的含義 值類型與引用類型有什么區(qū)別? 怎樣理解靜態(tài)變量? 向服務器發(fā)送請求有幾種方式? 如果在一個B/S結構的系統(tǒng)中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進行處理 ? 用.net做B/S結構的系統(tǒng),您是用幾層結構來開發(fā),每一層之間的關系以及為什么要這樣分層? 軟件開發(fā)過程一般有幾個階段?每個階段的作用? 通過超鏈接怎樣傳遞中文參數? 請編程遍歷頁面上所有TextBox控件并給它賦值為string.Empty 有哪幾種方法可以實現一個類存取另外一個類的成員函數及屬性,并請舉列來加以說明和分析. 如果需記錄類的實例個數,該如何實現,請寫一個簡單的類于以證明. A類是B類的基類,并且都有自己的構造,析構函數,請舉例證明B類從實例化到消亡過程中構造,析構函數的執(zhí)行過程. 需要實現對一個字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續(xù)空格的話,僅保留一個空格,即允 許字符串中間有多個空格,但連續(xù)的空格數不可超過一個. 在c#中using和new這兩個關鍵字有什么意義,請寫出你所知道的意義? using 指令 和語句 new 創(chuàng)建實例 new 隱藏基類中方法 談談類和結構的區(qū)別? 什么叫做SQL注入,如何防止?請舉例說明。 下面這段代碼輸出什么?為什么? 寫一個實現對一段字符串翻轉的方法,附加一些條件,如其中包括“,”、“.”,對其設計測試用例 什么是反射? 用Singleton如何寫設計模式 C#中的垃圾回收機制是怎樣的? 什么是Application Pool? 鏈表和數組的區(qū)別,各有什么優(yōu)缺點. 什么是友元函數? 什么是虛函數? 什么是抽象函數? 什么是內存泄漏,怎樣最簡單的方法判斷被存泄漏 ? 1SQL Server的兩種索引是何形式?索引的作用?索引的優(yōu)缺點? 什么是XML? 簡述 private、 protected、 public、 internal 修飾符的訪問權限。 進程和線程的區(qū)別 進程是系統(tǒng)進行資源分配和調度的單位;線程是CPU調度和分派的單位,一個進程可以有多個線程,這些線程共享這個 進程的資源。 成員變量和成員函數前加static的作用 它們被稱為常成員變量和常成員函數,又稱為類成員變量和類成員函數。分別用來反映類的狀態(tài)。比如類成員變量可以 用來統(tǒng)計類實例的數量,類成員函數負責這種統(tǒng)計的動作。 malloc和new的區(qū)別 new是C++的關鍵字。malloc在分配內存時必須按給出的字節(jié)分配,new可以按照對象的大小自動分配,并且能調用構造 函數??梢哉fnew是對象的對象,而malloc不是。本質上new分配內存時,還會在實際內存塊的前后加上附加信息,所 以new所使用的內存大小比malloc多。 堆和棧的區(qū)別 棧:由編譯器自動分配、釋放。在函數體中定義的變量通常在棧上。 據適應面廣泛,但是效率有一定降低。棧是系統(tǒng)數據結構,對于進程/線程是唯一的;堆是函數庫內部數據結構,不一 定唯一。不同堆分配的內存無法互相操作。??臻g分靜態(tài)分配和動態(tài)分配兩種。靜態(tài)分配是編譯器完成的,比如自動變 量(auto)的分配。動態(tài)分配由alloca函數完成。棧的動態(tài)分配無需釋放(是自動的),也就沒有釋放函數。為可移植的程序 起見,棧的動態(tài)分配操作是不被鼓勵的!堆空間的分配總是動態(tài)的,雖然程序結束時所有的數據空間都會被釋放回系統(tǒng) ,但是精確的申請內存/釋放內存匹配是良好程序的基本要素。 在.Net中,類System.Web.UI.Page 可以被繼承么? 你覺得ASP.NET 2.0(VS2005)和你以前使用的開發(fā)工具(.Net 1.0或其他)有什么最大的區(qū)別?你在以前的平臺上使 用的哪些開發(fā)思想(pattern / architecture)可 1 ASP.NET 2.0 把一些代碼進行了封裝打包,所以相比1.0相同功能減少了很多代碼. 入服務器端代碼獲得幫助提示, .net的錯誤處理機制是什么 重載與覆蓋的區(qū)別 實參表與形參表來選擇方法體的。 簡要談一下您對微軟.NET 構架下remoting和webservice兩項技術的理解以及實際中的應用。 C#中的委托是什么?事件是不是一種委托? new有幾種用法 用反射動態(tài)地創(chuàng)建類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。然后,可以調用類型的方法或訪問 其字段和屬性 戶端和服務器之間傳輸該對象。在另一端,反序列化將從該流重新構造對象。 生類,所以對密封類的實例的虛擬函數成員的調用可以轉換為非虛擬調用來處理。 什么叫應用程序域?什么是受管制的代碼?什么是強類型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別 作何解釋? 指一個方法名同,參數個數不同,返回值可以相同的方法.CLR是通用語言運行時,其它的不清楚. 為別的老子生兒子. 的協議,是一個基于XML的協議。使用SOAP,不用考慮任何特定的傳輸協議(最常用的還是HTTP協議),可以允許任 何類型的對象或代碼,在任何平臺上,以任何一直語言相互通信。這種相互通信采用的是XML格式的消息. 1. 填空: (1)面向對象的語言具有___繼承性、封裝性、多態(tài)性。 (2)能用foreach遍歷訪問的對象需要實現 IEnumerable接口或聲明GetEnumerator 方法的類型 (3)列舉ADO.net中的五個主要對象 Command、Connection、DataSet、DataAdapter、DataReader。
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 可能不是連續(xù)的。)
5 .列舉ASP.NET 頁面之間傳遞值的幾種方式。
三種比較常見的方式,一種是可以通過用QueryString來傳送相應的值,再一種是通過session變量來傳送相應的值,還有 就是通過Server.Transfer方法來實現
(1)queryString 提示語言,即將跳轉的葉面,跳轉時間。在1-11種方案中哪個更好些?
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. 一列數的規(guī)則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少,用遞歸算法實現。(C#語言) ------------------------------------------- a0 = 0,a1 = 1,An = An-1 + An-2(n>=2) int i=0,ii=1,s=1,num=0; ========================
10. 程序設計: 貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。(C#語言)
要求: 1.要有聯動性,老鼠和主人的行為是被動的。
2.考慮可擴展性,貓的叫聲可能引起其他聯動效應。 三個類,貓,老鼠和主人 貓
public sealed class Cat { // 貓叫時引發(fā)的事件 public event EventHandler Calling;
public void Call() { Console.WrietLine("貓叫了..."); if(Calling != null) // 檢查是否有事件注冊 Calling(this, EventArgs.Empty); // 調用事件注冊的方法。 } } // 老鼠,提供一個方法表示逃跑 public sealed calss Mouse { public void Escape(object sender, EventArgs e) { Console.WriteLine("老鼠逃跑了..."); } }
// 主人,發(fā)生貓叫的時候驚醒 public sealed class Master { public void Wakened(object sender, EventArgs e) { Console.WriteLine("主人驚醒了...); } } // 用于測試的執(zhí)行方法 // 程序入口點 public static Program { public static int Main(string[] args) { // 建立貓 Cat cat = new Cat(); // 建立老鼠 Mouse mouse = new Mouse(); // 建立主人 Master master = new Master();
// 注冊事件 cat.Calling += new EventHandler(mouse.Escape); cat.Calling += new EventHandler(master.Wakened);
// 貓開始叫 cat.Call(); } }
要點:1. 聯動效果,運行代碼只要執(zhí)行Cat.Cryed()方法。2. 對老鼠和主人進行抽象
|
|
|