- 相關(guān)推薦
ASP.NET筆試經(jīng)驗(yàn)心得
1.維護(hù)數(shù)據(jù)庫的完整性、一致性、你喜歡用觸發(fā)器還是自寫業(yè)務(wù)邏輯?為什么
答:盡可能用約束(包括CHECK、主鍵、唯一鍵、外鍵、非空字段)實(shí)現(xiàn),這種方式的效率最好;其次用觸發(fā)器,這種方式可以保證無論何種業(yè)務(wù)系統(tǒng)訪問數(shù)據(jù)庫都能維持?jǐn)?shù)據(jù)庫的完整性、一致性;最后再考慮用自寫業(yè)務(wù)邏輯實(shí)現(xiàn),但這種方式效率最低、編程最復(fù)雜,當(dāng)為下下之策
2 : ADO.NET相對(duì)于ADO等主要有什么改進(jìn)?
答 ADO數(shù)據(jù)以Recordset 形式存儲(chǔ) ADO.NET以DataSet形式存儲(chǔ)
Recordset對(duì)數(shù)據(jù)庫持續(xù)連接訪問ADO.NET提供對(duì)數(shù)據(jù)庫斷開連接
ADO.NET與ADO相比,優(yōu)勢(shì)在于提供了數(shù)據(jù)集和數(shù)據(jù)適配器,有利于實(shí)現(xiàn)分布式處理,降低對(duì)數(shù)據(jù)庫服務(wù)器資源的消耗。
3 : ASP.NET與ASP相比,主要有哪些進(jìn)步?
答 asp.net可以使用強(qiáng)類型語言頁面是編譯,執(zhí)行速度快, 增加安全性和可靠性,通過繼承機(jī)制來支持代碼的重用,提供聲明性服務(wù)器控件減少代碼行數(shù)Asp需要解釋,執(zhí)行速度慢,重用代碼不方便,沒有調(diào)試機(jī)制
4:C#中的委托是什么?事件是不是一種委托?
答 委托本質(zhì)上是一種“方法接口”,它相當(dāng)于C/C++中的函數(shù)指針,當(dāng)然它比函數(shù)指針安全,在C#中通常用于事件處理。與JAVA相比,可以避免使用大量小粒度的匿名類。
事件不是委托,不過由于事件的性質(zhì)決定了處理它的程序邏輯能訪問的參數(shù),因此,在C#中處理事件的邏輯都包裝為委托(一種“方法接口”)。實(shí)際上,如果你處理自定義的事件,就像JAVA中那樣用接口實(shí)現(xiàn)也是可以的,不過這么做在C#一般沒有什么特別的好處。
5:new有幾種用法
第一種:new Class();
第二種:覆蓋方法
public new XXXX(){}
第三種:new 約束指定泛型類聲明中的任何類型參數(shù)都必須有公共的無參數(shù)構(gòu)造函數(shù)。
6:如何把一個(gè)array復(fù)制到arrayList里
答 foreach( object o in array )
{
arrayList.Add(o)
}
7:DataGrid、DataSource可以連接什么數(shù)據(jù)源
答 [ DataSet、DataTable、DataView] DataSet、DataTable、DataView、IList
8:概述反射和序列化
答 反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對(duì)象?梢允褂梅瓷鋭(dòng)態(tài)地創(chuàng)建類型的實(shí)例,將類型綁定到現(xiàn)有對(duì)象,或從現(xiàn)有對(duì)象中獲取類型,然后,可以調(diào)用類型的方法或訪問其字段和屬性
答 序列化:序列化是將對(duì)象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^程。例如,可以序列化一個(gè)對(duì)象,然后使用 HTTP 通過 Internet 在客戶端和服務(wù)器之間傳輸該對(duì)象。在另一端,反序列化將從該流重新構(gòu)造對(duì)象。
9:概述OR/Mapping 的原理
答 利用反射,配置 將類于數(shù)據(jù)庫表映射
10:類成員有( )種可訪問形式
答 可訪問性:public、protected 、private、internal
11:用sealed修飾的類有什么特點(diǎn)
答 sealed 修飾符用于防止從所修飾的類派生出其它類。如果一個(gè)密封類被指定為其他類的基類,則會(huì)發(fā)生編譯時(shí)錯(cuò)誤。密封類不能同時(shí)為抽象類。
sealed 修飾符主要用于防止非有意的派生,但是它還能促使某些運(yùn)行時(shí)優(yōu)化。具體說來,由于密封類永遠(yuǎn)不會(huì)有任何派生類,所以對(duì)密封類的實(shí)例的虛擬函數(shù)成員的調(diào)用可以轉(zhuǎn)換為非虛擬調(diào)用來處理。
12:執(zhí)行下面代碼后:
String strTemp =”abcdefg 某某某”;
Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j = strTemp.Length;
問:i=(14 ) ;j=(11 )
i=(14 ) ;j=(11 ) 中文兩個(gè)字節(jié)
13:C#中,string str = null 與 string str =”",請(qǐng)盡量用文字說明區(qū)別。(要點(diǎn):說明詳細(xì)的內(nèi)存空間分配)
答 string str = null 是不分配內(nèi)存空間,而string str = “” 給它分配長(zhǎng)度為空字符串的內(nèi)存空間。
14:概述.NET里對(duì) Remoting 和 Webservices 兩項(xiàng)技術(shù)的理解和實(shí)際中的應(yīng)用
答 遠(yuǎn)程邏輯調(diào)用,Remoing接口只能用在.NET中
16:概述三層結(jié)構(gòu)體系
答 表示層 數(shù)據(jù)層 業(yè)務(wù)層
17:用.net做B/S結(jié)構(gòu)的系統(tǒng),您是用幾層結(jié)構(gòu)來開發(fā),每一層之間的關(guān)系以及為什么要這樣分層?
答:一般為3層
數(shù)據(jù)訪問層,業(yè)務(wù)層,表示層。
數(shù)據(jù)訪問層對(duì)數(shù)據(jù)庫進(jìn)行增刪查改。
業(yè)務(wù)層一般分為二層,業(yè)務(wù)表觀層實(shí)現(xiàn)與表示層的溝通,業(yè)務(wù)規(guī)則層實(shí)現(xiàn)用戶密碼的安全等。
表示層為了與用戶交互例如用戶添加表單
優(yōu)點(diǎn): 分工明確,條理清晰,易于調(diào)試,而且具有可擴(kuò)展性。
缺點(diǎn): 增加成本。
18:什么是ASP.NET中的用戶控件
答:用戶控件就是.ascx擴(kuò)展名的東西嘍,可以拖到不同的頁面中調(diào)用,以節(jié)省代碼.比如登陸可能在多個(gè)頁面上有,就可以做成用戶控件,但是有一個(gè)問題就是用戶控件拖到不同級(jí)別的目錄下后里面的圖片等的相對(duì)路徑會(huì)變得不準(zhǔn)確,需要自已寫方法調(diào)整。
19:什么叫應(yīng)用程序域?
什么是受管制的代碼?
什么是強(qiáng)類型系統(tǒng)?
什么是裝箱和拆箱?
什么是重載?
CTS、CLS和CLR分別作何解釋?
答 應(yīng)用程序域可以理解為一種輕量級(jí)進(jìn)程。起到安全的作用。占用資源小
受管制的代碼:unsafe:非托管代碼。不經(jīng)過CLR運(yùn)行。
強(qiáng)類型系統(tǒng) RTTI:類型識(shí)別系統(tǒng)。
裝箱就是把值類型到引用類型的轉(zhuǎn)換
拆箱就是引用類型到值類型的轉(zhuǎn)換
重載 方法名相同 不用個(gè)數(shù)的參數(shù)或者指定不同參數(shù)類型
CTS:通用語言系統(tǒng)。CLS:通用語言規(guī)范。CLR:公共語言運(yùn)行庫。
class box{
int aa(object i) {}
object bb(){}
}
int bb=5
new box().aa(bb) //裝箱
int conver=(int)new box().zz(); //拆箱
//重載
public void aaa(int rad){ }
public void aaa(int len,int bre ){ }
public void aaa(sting str){ }
20:列舉一下你所了解的XML技術(shù)及其應(yīng)用
答:XML可以統(tǒng)一數(shù)據(jù)格式,XML可是好東西,保存配置,站與站之間的交流,WebServices都要用它.
21 :ADO.NET中常用的對(duì)象有哪些?分別描述一下。
答: Connection 對(duì)象用于在應(yīng)用程序和數(shù)據(jù)庫之間的連接
Command 可以檢索和操縱數(shù)據(jù)庫中的數(shù)據(jù)
DataAdapter對(duì)象充當(dāng)DataSet和數(shù)據(jù)源之間用于檢索和保存數(shù)據(jù)的橋接器
DataSet 對(duì)象從數(shù)據(jù)庫檢索的數(shù)據(jù)可以存儲(chǔ)在其中能夠以XML形式保存
DataReader 是查詢結(jié)果的一種只進(jìn)。只讀的視圖 不具有DataSet的任何復(fù)雜功能
所以可以加快訪問和查看數(shù)據(jù)的速度 不提供斷開式訪問
22:如何理解委托?
答:據(jù)說相當(dāng)于函數(shù)指針,定義了委托就可以在不調(diào)用原方法名稱的情況下調(diào)用那個(gè)方法.
msdn2005中是這樣解釋的:
委托具有以下特點(diǎn):委托類似于 C++ 函數(shù)指針,但它是類型安全的。
委托允許將方法作為參數(shù)進(jìn)行傳遞。委托可用于定義回調(diào)方法
委托可以鏈接在一起;例如,可以對(duì)一個(gè)事件調(diào)用多個(gè)方法。
方法不需要與委托簽名精確匹配。
23:C#中的委托是什么?事件是不是一種委托?
答 委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。
委托可以理解為指向一個(gè)函數(shù)的引用。
是,是一種特殊的委托
24:UDP連接和TCP連接的異同。
答:UDP前者只管傳,不管數(shù)據(jù)到不到,無須建立連接.TCP后者保證傳輸?shù)臄?shù)據(jù)準(zhǔn)確,須要連結(jié)。
25:ASP.NET的身份驗(yàn)證方式有哪些?分別是什么原理?
答:Forms認(rèn)證,Windows集成認(rèn)證等,Passport驗(yàn)證 None
27:什么是Code-Behind技術(shù)。
答:代碼分離,這是個(gè)明智的東西,或者可以理解成HTML代碼寫在前臺(tái),C#代碼寫在后臺(tái).當(dāng)然前臺(tái)也有腳本,類的調(diào)用等,其實(shí)寫在一起也是可以的。
28:.NET中讀寫XML的類都?xì)w屬于哪些命名空間?
答:System.Xml
29解釋一下UDDI、WSDL的意義及其作用
答:UDDI 用于注冊(cè)各個(gè)服務(wù)提供商提供的服務(wù) 以便可以共享它們 它還有助于WEB服務(wù)客戶或web用戶查找該Web服務(wù)
WSDL 是web服務(wù)描述語言(web Services Description Language)
30:什么是SOAP,有哪些應(yīng)用。
答:SOAP(Simple Object Access Protocol )簡(jiǎn)單對(duì)象訪問協(xié)議是在分散或分布式的環(huán)境中交換信息并執(zhí)行遠(yuǎn)程過程調(diào)用的協(xié)議,是一個(gè)基于XML的協(xié)議。使用SOAP,不用考慮任何特定的傳輸協(xié)議(最常用的還是HTTP協(xié)議),可以允許任何類型的對(duì)象或代碼,在任何平臺(tái)上,以任何一直語言相互通信。這種相互通信采用的是XML格式的消息,具體請(qǐng)看
31:如何理解.NET中的垃圾回收機(jī)制。
答 GC?對(duì)象創(chuàng)建了總要清除啊,不然內(nèi)存哪夠用?
32:常用的調(diào)用Webservice方法有哪些?
答 HTTP-get Http-post Http-soap
33 概述.NET里對(duì) remoting 和 webservice 兩項(xiàng)技術(shù)的理解和實(shí)際中的應(yīng)用。
答 遠(yuǎn)程邏輯調(diào)用,remoing接口只能用在.net中
34: 簡(jiǎn)述 private、 protected、 public、 internal 修飾符的訪問權(quán)限。
答 private : 私有成員, 在類的內(nèi)部才可以訪問。
protected : 保護(hù)成員,該類內(nèi)部和繼承類中可以訪問。
public : 公共成員,完全公開,沒有訪問限制。
internal: 在同一命名空間內(nèi)可以訪問。
35:列舉ASP.NET 頁面之間傳遞值的幾種方式。
答. 1.使用QueryString,
源頁面
string url;
url=”anotherwebform.aspx?name=” + TextBox1.Text
Response.Redirect(url);
目標(biāo)頁面
Label1.Text=Request.QueryString["name"];
2.使用Session變量
源頁面
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Server.Transfer(“anotherwebform.aspx”);
目標(biāo)頁面
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
Session.Remove(“name”);
Session.Remove(“email”);
3.使用Server.Transfer
源頁面代碼:
public string Name
{
get {return TextBox1.Text; }
}
//然后調(diào)用Server.Transfer方法
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer(“anotherwebform.aspx”);
}
目標(biāo)頁面代碼:
private void Page_Load(object sender, System.EventArgs e)
{
WebForm1 wf1;
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
}
36:一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34…… 求第30位數(shù)是多少, 用遞歸算法實(shí)現(xiàn)。
答: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);
}
}
37:override與重載的區(qū)別
答 :
override 與重載的區(qū)別。重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進(jìn)行多次重載以適應(yīng)不同的需要
Override 是進(jìn)行基類中函數(shù)的重寫。為了適應(yīng)需要。
38:請(qǐng)編程遍歷頁面上所有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 ;
}
}
39:請(qǐng)編程實(shí)現(xiàn)一個(gè)冒泡排序算法?
答:
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 ;
}
}
}
40:描述一下C#中索引器的實(shí)現(xiàn)過程,是否只能根據(jù)數(shù)字進(jìn)行索引?
答:不是?梢杂萌我忸愋。
41:求以下表達(dá)式的值,寫出您想到的一種或幾種實(shí)現(xiàn)方法: 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() ;
42:在下面的例子里
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);
}
}
當(dāng)使用new B()創(chuàng)建B的實(shí)例時(shí),產(chǎn)生什么輸出?
答:x= 1 y = 0
44:ASP.net的身份驗(yàn)證方式有哪些?分別是什么原理?
答: Windwos(默認(rèn))用IIS...
From(窗體)用帳戶
Passport(密鑰)
45:在.net中,配件的意思是?
答:程序集。(中間語言,源數(shù)據(jù),資源,裝配清單)
46:net Remoting 的工作原理是什么?
答:服務(wù)器端向客戶端發(fā)送一個(gè)進(jìn)程編號(hào),一個(gè)程序域編號(hào),以確定對(duì)象的位置
47:根據(jù)委托(delegate)的知識(shí),請(qǐng)完成以下用戶控件中代碼片段的填寫:
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))
{
//請(qǐng)?jiān)谝韵卵a(bǔ)齊代碼用來調(diào)用OnDBOperate委托簽名的OnNew事件。
}
}
}
答:if( OnNew != null
OnNew( this, e ;
48:SQLSERVER服務(wù)器中,給定表 table1 中有兩個(gè)字段 ID、LastUpdateDate,ID表示更新的事務(wù)號(hào), LastUpdateDate表示更新時(shí)的服務(wù)器時(shí)間,請(qǐng)使用一句SQL語句獲得最后更新的事務(wù)號(hào)
答:Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)
49:根據(jù)線程安全的相關(guān)知識(shí),分析以下代碼,當(dāng)調(diào)用test方法時(shí)i>10時(shí)是否會(huì)引起死鎖?并簡(jiǎn)要說明理由。
public void test(int i)
{
lock(this)
{
if (i>10)
{
i–;
test(i);
}
}
}
答:不會(huì)發(fā)生死鎖,(但有一點(diǎn)int是按值傳遞的,所以每次改變的都只是一個(gè)副本,因此不會(huì)出現(xiàn)死鎖。但如果把int換做一個(gè)object,那么死鎖會(huì)發(fā)生)
50:簡(jiǎn)要談一下您對(duì)微軟.NET 構(gòu)架下remoting和webservice兩項(xiàng)技術(shù)的理解以及實(shí)際中的應(yīng)用。
答:WS主要是可利用HTTP穿透防火墻。Remoting可以利用TCP/IP,二進(jìn)制傳送提高效率
51:用C#實(shí)現(xiàn)以下功能
a 產(chǎn)生一個(gè)int數(shù)組,長(zhǎng)度為100,并向其中隨機(jī)插入1-100,并且不能重復(fù)
答 :List L=new List();
Random random = new Random();
for (int i = 1; i <= 100; i++)
{
if (L.IndexOf(i) < 0)
{
L.Add(random.Next(1,100));
}
}
b 對(duì)上面生成的數(shù)組排序,需要支持升序、降序兩種順序
答 L.Reverse(L);
L.Sort(L);
52:請(qǐng)說明.net中的錯(cuò)誤處理機(jī)制,并舉例
答 異常是從 Exception 類類繼承的對(duì)象。異常從發(fā)生問題的代碼區(qū)域引發(fā),然后沿堆棧向上傳遞,直到應(yīng)用程序處理它或程序終止。
try
{ //執(zhí)行代碼,不確定是否會(huì)出錯(cuò) }
catch
{ //出錯(cuò)處理 }
finally
{ //無論怎樣,都要執(zhí)行 }
53:請(qǐng)說出強(qiáng)名的含義
答 垃圾回收的原理是根據(jù)是否空引用,和該數(shù)據(jù)類型占用內(nèi)存來判斷該收回多少內(nèi)存.強(qiáng)類型說白就是必須要有個(gè)數(shù)據(jù)類型.
54:請(qǐng)列出c#中幾種循環(huán)的方法,并指出他們的不同
答 FOR WHILE foreach do while
55:請(qǐng)指出.net中所有類型的基類
答 object
56:請(qǐng)指出GAC的含義
答 全局訪問緩存
57:SQL SREVER中,向一個(gè)表中插入了新數(shù)據(jù),如何快捷的得到自增量字段的當(dāng)前值
答 INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
58:什么是WEB控件?使用WEB控件有那些優(yōu)勢(shì)?
答 web控件就是可以在服務(wù)器執(zhí)行的控件,優(yōu)勢(shì)在于可以回傳數(shù)據(jù),帶有事件驅(qū)動(dòng)
59: 請(qǐng)解釋ASP.NET中以什么方式進(jìn)行數(shù)據(jù)驗(yàn)證?
答 .NET中提供了幾個(gè)數(shù)據(jù)驗(yàn)證控件,可以在服務(wù)器端或者客戶端進(jìn)行驗(yàn)證。
60: 請(qǐng)談?wù)剬?duì)正則表達(dá)式的看法?
答 主要用在字符串的匹配上面,與具體的語言環(huán)境無關(guān)。
61: ASP.NET中共有幾種類型的控件?各有什么區(qū)別?
答 Html 控件 傳統(tǒng)的html標(biāo)記
Web 控件 可以回傳數(shù)據(jù),事件驅(qū)動(dòng)
自定義 控件 在原有控件的基礎(chǔ)上增加功能
復(fù)合控件 多個(gè)子控件復(fù)合成一個(gè)新的控件
62: WEB控件可以激法服務(wù)端事件,請(qǐng)談?wù)劮⻊?wù)端事件是怎么發(fā)生并解釋其原理?自動(dòng)傳回是什么?為什么要使用自動(dòng)傳回。
答 通過實(shí)現(xiàn)IPostBack這個(gè)接口來執(zhí)行事件。自動(dòng)回傳就是AutoPostBack,使用自動(dòng)回傳可以監(jiān)視客戶端變化情況并將這種改變返回到服務(wù)器端
63: WEB控件及HTML服務(wù)端控件能否調(diào)用客戶端方法?如果能,請(qǐng)解釋如何調(diào)用?
答 能,服務(wù)器端控件在html中表現(xiàn)形式還是html標(biāo)記,所以可以執(zhí)行客戶端事件,有多種方式:1、control.Attributes["onclick"]="...;";
2、
64: 請(qǐng)解釋ASP.NET中的web頁面與其隱藏類之間的關(guān)系?
答 繼承的關(guān)系
65: 什么是viewstate,能否禁用?是否所用控件都可以禁用?
答 可以全部禁用,viewstate就是hidden input,只不過加上了微軟的編碼方式記錄控件的狀態(tài)
66: 當(dāng)發(fā)現(xiàn)不能讀取頁面上的輸入的數(shù)據(jù)時(shí)很有可能是什么原因造成的?怎么解決
答 可能就是事件沒有關(guān)聯(lián),或者根本就沒有寫讀取代碼。
解決 檢查代碼, 設(shè)斷點(diǎn)調(diào)試
67:請(qǐng)解釋一個(gè)WEB頁面中代碼執(zhí)行次序。
答 參看.cs 知道最先執(zhí)行OnInit(); 然后到Page_Load,最后到具體的執(zhí)行事件。
68:請(qǐng)解釋什么是上下文對(duì)象,在什么情況下要使用上下文對(duì)象
答 HttpContext, 在類中調(diào)用的時(shí)候需要用到HttpContext
69:請(qǐng)解釋轉(zhuǎn)發(fā)與跳轉(zhuǎn)的區(qū)別?
答 Transfer 是轉(zhuǎn)發(fā) 包括HttpHandler對(duì)象
Redirect 就是跳轉(zhuǎn)
70: 請(qǐng)解釋ASP.NET中Button、LinkButton、ImageButton 及HyperLink這四個(gè)控件之間的功別
答 Button、ImageButton將數(shù)據(jù)傳遞回服務(wù)器
HyperLink 頁面之間的導(dǎo)航
LinkButton主要用于將數(shù)據(jù)保存到服務(wù)器或訪問服務(wù)器上的數(shù)據(jù)
71:請(qǐng)解釋一下.NET多層應(yīng)用程序中層與層之間以那幾種方式進(jìn)行數(shù)據(jù)傳遞。并解釋你自己的項(xiàng)目中采用那種方式進(jìn)行。
答 這個(gè)傳遞方式不定,很多都是傳遞DataSet, XML也可以
72:如果出現(xiàn)ASP.NET中的事件不能觸發(fā)可能由于什么原因造成?
答 事件丟失,特別是使用VSS的時(shí)候最容易造成這種情況,原因不明
73:如果需要在DataGrid控件中的某一列中添加下拉列表框并綁定數(shù)據(jù)怎么解決?
答 使用模板列來添加DropDwonList綁定數(shù)據(jù)使用代碼前置的方式
74:請(qǐng)解釋ASP.NET中的數(shù)據(jù)綁定與傳統(tǒng)數(shù)據(jù)綁定有什么區(qū)別?
答 更靈活 更方便
76:請(qǐng)解釋接口的顯式實(shí)現(xiàn)有什么意義?
答 規(guī)定強(qiáng)制執(zhí)行,保持一致
77: 什么情況用HTML控件,什么情況用Web控件,并比較兩者差別
答 客戶端表現(xiàn)用HTML控件,如果想和Server端交互,那么加上runat=server,它就成了服務(wù)器端控件,但它沒有Web控件的很多方法和屬性,如果你需要用到,那么還是用Web Controls
78: C#中的接口和類有什么異同。
答 接口只能包含抽象方法,不能包含任何方法實(shí)現(xiàn),不能創(chuàng)建接口實(shí)例,接口成員沒有訪問修飾符,接口成員必須是方法屬性事件或者索引器不能包含常數(shù)字段運(yùn)算符也不能有靜態(tài)成員
可訪問性的關(guān)鍵字有如下5個(gè):
internal:在所屬程序集中可以訪問。
private:私有成員, 在當(dāng)前類中可以訪問。
protected:保護(hù)成員,在當(dāng)前類及其子類中可以訪問。
public:公共成員,完全公開,沒有訪問限制。
internal protected:在所屬程序集或當(dāng)前類的子類中可以訪問。(題目中未提及)
【擴(kuò)展】
類的修飾符:abstract,sealed,static,unsafe 4個(gè)。
abstract:類是抽象的,不能創(chuàng)建類的實(shí)例
sealed:類是密封的,不能被繼承
static:類是靜態(tài)的,只有靜態(tài)成員,沒有非靜態(tài)成員
unsafe:類有非安全的結(jié)構(gòu),比如指針
2 .列舉ASP.NET 頁面之間傳遞值的幾種方式。
答:有 querystring,cookie,session,server.transfer,application 5種方式。
【擴(kuò)展】
1.使用QueryString方式(或稱url傳值、Response.Redirect傳值),這是最簡(jiǎn)單的方式,因?yàn)閭鬟f的值在瀏覽器的url中會(huì)顯示出來,所以用來傳遞沒有安全要求的值。
發(fā)送頁面代碼:
Response.Redirect("index.aspx?username="+txtUserName.Text.Trim());接收頁面代碼:
if(Request.QueryString["username"]!=null)
{
strUserName = Request.QueryString["username"];
}
2.使用cookie方式,cookie由服務(wù)器創(chuàng)建,但是保存在客戶端
發(fā)送頁面代碼:
HttpCookie userName = new HttpCookie("username");
userName.Value = this.txtUserName.Text.Trim();
Response.Cookies.Add(userName);
Response.Redirect("index.aspx");接收頁面代碼:
if (Request.Cookies["username"] != null)
{
strUserName = Request.Cookies["username"].Value;
}
3.使用Session變量,session在用戶向服務(wù)器發(fā)出首次請(qǐng)求時(shí)被創(chuàng)建,在服務(wù)器端,在用戶關(guān)閉瀏覽器或異常發(fā)生時(shí)終止(還有別的session過期情況)。
發(fā)送頁面代碼:
Session["username"] = this.txtUserName.Text.trim();
Response.Redirect("index.aspx");接收頁面代碼:
if (Session["username"] != null)
{
strUserName = Session["username"].ToString();
}
4.使用Application變量
發(fā)送頁面代碼:
Application["username"] = this.txtUserName.Text.trim();
Response.Redirect("index.aspx");接收頁面代碼:
if (Application["username"] != null)
{
strUserName = Application["username"].ToString();
}
5.使用Server.Transfer方式(或稱為HttpContext方式),要傳遞的變量可以通過屬性或方法來獲得,使用屬性比較容易一些。
發(fā)送頁面制作一個(gè)屬性:
public string GetName
{
get { return this.txtUserName.Text.Trim(); }
}
發(fā)送頁面代碼:
Server.Transfer("index.aspx");接收頁面代碼:
w = (WebForm4)Context.Handler;
strUserName = w.GetName;
3.重寫、重載和隱藏三個(gè)概念的區(qū)別。
答:重寫(Override)指用Override關(guān)鍵字重新實(shí)現(xiàn)基類中的虛方法,在運(yùn)行過程中,無論通過哪個(gè)類型的引用,真正對(duì)象類型的方法將被調(diào)用。
重載(Overload)指多個(gè)方法共享一個(gè)名字并且擁有相同的返回值,但是擁有不同的參數(shù)。
隱藏(new)指用new關(guān)鍵字重新實(shí)現(xiàn)基類中的方法,在運(yùn)行的過程中通過引用的類型判斷應(yīng)該調(diào)用哪個(gè)類型的方法。
【擴(kuò)展】
重寫實(shí)現(xiàn)的是運(yùn)行時(shí)多態(tài),重載實(shí)現(xiàn)的是編譯時(shí)多態(tài)。
override 與重載的區(qū)別。重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進(jìn)行多次重載以適應(yīng)不同的需要
Override 是進(jìn)行基類中函數(shù)的重寫。為了適應(yīng)需要。
6.如果在一個(gè)B/S結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進(jìn)行處理?
答 :
this.Server.Transfer
7.請(qǐng)編程遍歷頁面上所有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 ;
}
}
16.什么是受管制的代碼?
答:unsafe:非托管代碼。不經(jīng)過CLR運(yùn)行。
17.什么是強(qiáng)類型系統(tǒng)?
答:RTTI:類型識(shí)別系統(tǒng)。
22.常用的調(diào)用WebService的方法有哪些?
答:1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜單選項(xiàng)
23..NET Remoting 的工作原理是什么?
答:服務(wù)器端向客戶端發(fā)送一個(gè)進(jìn)程編號(hào),一個(gè)程序域編號(hào),以確定對(duì)象的位置。
25.請(qǐng)?jiān)斒鲈?NET中類(class)與結(jié)構(gòu)(struct)的異同?
答:Class可以被實(shí)例化,屬于引用類型,是分配在內(nèi)存的堆上的,Struct屬于值類型,是分配在內(nèi)存的棧上的.
31.公司要求開發(fā)一個(gè)繼承System.Windows.Forms.ListView類的組件,要求達(dá)到以下的特殊功能:點(diǎn)擊ListView各列列頭時(shí),能按照點(diǎn)擊列的每行值進(jìn)行重排視圖中的所有行 (排序的方式如DataGrid相似)。根據(jù)您的知識(shí),請(qǐng)簡(jiǎn)要談一下您的思路
答:根據(jù)點(diǎn)擊的列頭,包該列的ID取出,按照該ID排序后,在給綁定到ListView中。
32.給定以下XML文件,完成算法流程圖。
< DriverC >
請(qǐng)畫出遍歷所有文件名(FileName)的流程圖(請(qǐng)使用遞歸算法)。
答:
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,以自動(dòng)增長(zhǎng)的ID作為主鍵,注意:ID可能不是連續(xù)的。
答:解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)
35.能用foreach遍歷訪問的對(duì)象需要實(shí)現(xiàn) ________________接口或聲明________________方法的類型。
答:IEnumerable 、 GetEnumerator。
37.String s = new String("xyz");創(chuàng)建了幾個(gè)String Object?
答:兩個(gè)對(duì)象,一個(gè)是“xyx”,一個(gè)是指向“xyx”的引用對(duì)象s。
41.構(gòu)造器Constructor是否可被Override?
答:構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
43.try {}里有一個(gè)return語句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?
答:會(huì)執(zhí)行,在return前執(zhí)行。
55.如何處理幾十萬條并發(fā)數(shù)據(jù)?
答:用存儲(chǔ)過程或事務(wù)。取得最大標(biāo)識(shí)的時(shí)候同時(shí)更新..注意主鍵不是自增量方式這種方法并發(fā)的時(shí)候是不會(huì)有重復(fù)主鍵的..取得最大標(biāo)識(shí)要有一個(gè)存儲(chǔ)過程來獲取.
56.Session有什么重大BUG,微軟提出了什么方法加以解決?
答:是IIS中由于有進(jìn)程回收機(jī)制,系統(tǒng)繁忙的話Session會(huì)丟失,可以用Sate Server或SQL Server數(shù)據(jù)庫的方式存儲(chǔ)Session不過這種方式比較慢,而且無法捕獲Session的END事件。
57.進(jìn)程和線程的區(qū)別?
答:進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的單位;線程是CPU調(diào)度和分派的單位,一個(gè)進(jìn)程可以有多個(gè)線程,這些線程共享這個(gè)進(jìn)程的資源。
58.堆和棧的區(qū)別?
答:
棧:由編譯器自動(dòng)分配、釋放。在函數(shù)體中定義的變量通常在棧上。
堆:一般由程序員分配釋放。用new、malloc等分配內(nèi)存函數(shù)分配得到的就是在堆上。
59.成員變量和成員函數(shù)前加static的作用?
答:它們被稱為常成員變量和常成員函數(shù),又稱為類成員變量和類成員函數(shù)。分別用來反映類的狀態(tài)。比如類成員變量可以用來統(tǒng)計(jì)類實(shí)例的數(shù)量,類成員函數(shù)負(fù)責(zé)這種統(tǒng)計(jì)的動(dòng)作。
62.請(qǐng)說明在.NET中常用的幾種頁面間傳遞參數(shù)的方法,并說出他們的優(yōu)缺點(diǎn)。
答:session(viewstate) 簡(jiǎn)單,但易丟失
application 全局
cookie 簡(jiǎn)單,但可能不支持,可能被偽造
input ttype="hidden" 簡(jiǎn)單,可能被偽造
url參數(shù) 簡(jiǎn)單,顯示于地址欄,長(zhǎng)度有限
數(shù)據(jù)庫 穩(wěn)定,安全,但性能相對(duì)弱
63.請(qǐng)指出GAC的含義?
答:全局程序集緩存。
64.向服務(wù)器發(fā)送請(qǐng)求有幾種方式?
答:get,post。get一般為鏈接方式,post一般為按鈕方式。
65.DataReader與DataSet有什么區(qū)別?
答:一個(gè)是只能向前的只讀游標(biāo),一個(gè)是內(nèi)存中的表。
66.軟件開發(fā)過程一般有幾個(gè)階段?每個(gè)階段的作用?
答:需求分析,架構(gòu)設(shè)計(jì),代碼編寫,QA,部署
67.在C#中using和new這兩個(gè)關(guān)鍵字有什么意義,請(qǐng)寫出你所知道的意義?using 指令 和語句 new 創(chuàng)建實(shí)例 new 隱藏基類中方法。
答:using 引入名稱空間或者使用非托管資源
new 新建實(shí)例或者隱藏父類方法
68.需要實(shí)現(xiàn)對(duì)一個(gè)字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續(xù)空格的話,僅保留一個(gè)空格,即允許字符串中間有多個(gè)空格,但連續(xù)的空格數(shù)不可超過一個(gè).
答:string inputStr=" xx xx ";
inputStr=Regex.Replace(inputStr.Trim()," *"," ");
69.下面這段代碼輸出什么?為什么?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
答:不相等,因?yàn)楸容^的是對(duì)象
70.什么叫做SQL注入,如何防止?請(qǐng)舉例說明。
答:利用sql關(guān)鍵字對(duì)網(wǎng)站進(jìn)行攻擊。過濾關(guān)鍵字'等
71.什么是反射?
答:動(dòng)態(tài)獲取程序集信息
72.用Singleton如何寫設(shè)計(jì)模式
答:static屬性里面new ,構(gòu)造函數(shù)private
73.什么是Application Pool?
答:Web應(yīng)用,類似Thread Pool,提高并發(fā)性能。
74.什么是虛函數(shù)?什么是抽象函數(shù)?
答:虛函數(shù):沒有實(shí)現(xiàn)的,可由子類繼承并重寫的函數(shù)。抽象函數(shù):規(guī)定其非虛子類必須實(shí)現(xiàn)的函數(shù),必須被重寫。
75.什么是XML?
答:XML即可擴(kuò)展標(biāo)記語言。eXtensible Markup Language.標(biāo)記是指計(jì)算機(jī)所能理解的信息符號(hào),通過此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種信息的文章等。如何定義這些標(biāo)記,即可以選擇國(guó)際通用的標(biāo)記語言,比如HTML,也可以使用象XML這樣由相關(guān)人士自由決定的標(biāo)記語言,這就是語言的可擴(kuò)展性。XML是從SGML中簡(jiǎn)化修改出來的。它主要用到的有XML、XSL和XPath等。
76.什么是Web Service?UDDI?
答:Web Service便是基于網(wǎng)絡(luò)的、分布式的模塊化組件,它執(zhí)行特定的任務(wù),遵守具體的技術(shù)規(guī)范,這些規(guī)范使得Web Service能與其他兼容的組件進(jìn)行互操作。
UDDI 的目的是為電子商務(wù)建立標(biāo)準(zhǔn);UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時(shí)也包含一組使企業(yè)能將自身提供的Web Service注冊(cè),以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn)。
78.列舉一下你所了解的XML技術(shù)及其應(yīng)用
答:XML用于配置,用于保存靜態(tài)數(shù)據(jù)類型.接觸XML最多的是Web Services..和config
81.什么是SOAP?有哪些應(yīng)用。
答:simple object access protocal,簡(jiǎn)單對(duì)象接受協(xié)議.以xml為基本編碼結(jié)構(gòu),建立在已有通信協(xié)議上(如http,不過據(jù)說ms在搞最底層的架構(gòu)在tcp/ip上的soap)的一種規(guī)范Web Service使用的協(xié)議..
83.XML 與 HTML 的主要區(qū)別
答:1. XML是區(qū)分大小寫字母的,HTML不區(qū)分。
2. 在HTML中,如果上下文清楚地顯示出段落或者列表鍵在何處結(jié)尾,那么你可以省略
或者
之類的結(jié)束 標(biāo)記。在XML中,絕對(duì)不能省略掉結(jié)束標(biāo)記。
3. 在XML中,擁有單個(gè)標(biāo)記而沒有匹配的結(jié)束標(biāo)記的元素必須用一個(gè) / 字符作為結(jié)尾。這樣分析器就知道不用 查找結(jié)束標(biāo)記了。
4. 在XML中,屬性值必須分裝在引號(hào)中。在HTML中,引號(hào)是可用可不用的。
5. 在HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應(yīng)的值。
99.利用operator聲明且僅聲明了==,有什么錯(cuò)誤么?
答:要同時(shí)修改Equale和GetHash() ? 重載了"==" 就必須重載 "!="
102.在.net(C# or vb.net)中,Appplication.Exit 還是 Form.Close有什么不同?
答:一個(gè)是退出整個(gè)應(yīng)用程序,一個(gè)是關(guān)閉其中一個(gè)Form。
103.在C#中有一個(gè)double型的變量,比如10321.5,比如122235401.21644,作為貨幣的值如何按各個(gè)不同國(guó)家的習(xí)慣來輸出。比如美國(guó)用$10,321.50和$122,235,401.22而在英國(guó)則為£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");為英 國(guó) 貨幣類型
decimal y = 9999999999999999999999999999m;
string str = String.Format(MyCulture,"My amount = {0:c}",y);
8. 62-63=1 等式不成立,請(qǐng)移動(dòng)一個(gè)數(shù)字(不可以移動(dòng)減號(hào)和等于號(hào)),使得等式成立,如何移動(dòng)?
答案:62移動(dòng)成2的6次方
108.ADO.NET相對(duì)于ADO等主要有什么改進(jìn)?
答:1ADO.NET不依賴于OleDb提供程序,而是使用.NET托管提供的程序
2不使用com
3不在支持動(dòng)態(tài)游標(biāo)和服務(wù)器端游
4可以斷開Connection而保留當(dāng)前數(shù)據(jù)集可用
5強(qiáng)類型轉(zhuǎn)換
6 xml支持
109.寫一個(gè)HTML頁面,實(shí)現(xiàn)以下功能,左鍵點(diǎn)擊頁面時(shí)顯示“您好”,右鍵點(diǎn)擊時(shí)顯示“禁止右鍵”。并在2分鐘后自動(dòng)關(guān)閉頁面。
答:
110.大概描述一下ASP.NET服務(wù)器控件的生命周期
答:初始化 加載視圖狀態(tài) 處理回發(fā)數(shù)據(jù) 加載 發(fā)送回發(fā)更改通知 處理回發(fā)事件 預(yù)呈現(xiàn) 保存狀態(tài) 呈現(xiàn) 處置 卸載
113.,&和&&的區(qū)別。
&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and).
118. 和 有什么區(qū)別?
答:表示綁定的數(shù)據(jù)源
是服務(wù)器端代碼塊
119.你覺得ASP.NET 2.0(VS2005)和你以前使用的開發(fā)工具(.Net 1.0或其他)有什么最大的區(qū)別?你在以前的平臺(tái)上使用的哪些開發(fā)思想(pattern / architecture)可以移植到ASP.NET 2.0上 (或者已經(jīng)內(nèi)嵌在ASP.NET 2.0中)
答:1 ASP.NET 2.0 把一些代碼進(jìn)行了封裝打包,所以相比1.0相同功能減少了很多代碼.
2 同時(shí)支持代碼分離和頁面嵌入服務(wù)器端代碼兩種模式,以前1.0版本,.NET提示幫助只有在分離的代碼文件,無法在頁面嵌入服務(wù)器端代碼獲得幫助提示,
3 代碼和設(shè)計(jì)界面切換的時(shí)候,2.0支持光標(biāo)定位.這個(gè)我比較喜歡
4 在綁定數(shù)據(jù),做表的分頁.Update,Delete,等操作都可以可視化操作,方便了初學(xué)者
5 在ASP.NET中增加了40多個(gè)新的控件,減少了工作量
125.分析以下代碼。
public static void Test(string ConnectString)
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = ConnectString;
try {
conn.Open();
…….
}
catch(Exception Ex) {
MessageBox.Show(Ex.ToString());
}
finally {
if (!conn.State.Equals(ConnectionState.Closed))
conn.Close();
}
}
請(qǐng)問
1)以上代碼可以正確使用連接池嗎?
答:回答:如果傳入的connectionString是一模一樣的話,可以正確使用連接池。不過一模一樣的意思是,連字符的空格數(shù),順序完全一致。
2)以上代碼所使用的異常處理方法,是否所有在Test方法內(nèi)的異常都可以被捕捉并顯示出來?
答:只可以捕捉數(shù)據(jù)庫連接中的異常吧. (finally中,catch中,如果有別的可能引發(fā)異常的操作,也應(yīng)該用try,catch。所以理論上并非所有異常都會(huì)被捕捉。)
127.什么是WSE?目前最新的版本是多少?
答:WSE (Web Service Extension) 包來提供最新的Web服務(wù)安全保證,目前最新版本2.0。
129.下面的例子中
using System;
class A{
public static int X;
static A(){
X=B.Y+1;
}
}
class B{
public static int Y=A.X+1;
static B(){}
static void Main(){
Console.WriteLine("X={0},Y={1}",A.X,B.Y);
}
}
產(chǎn)生的輸出結(jié)果是什么?
答:x=1,y=2
2. 不定項(xiàng)選擇:
(1) 以下敘述正確的是: B C
A. 接口中可以有虛方法。B. 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。 C. 接口不能被實(shí)例化。 D. 接口中可以包含已實(shí)現(xiàn)的方法。
(2) 從數(shù)據(jù)庫讀取記錄,你可能用到的方法有:B C D
A. ExecuteNonQuery B. ExecuteScalar C. Fill D. ExecuteReader
2.對(duì)于一個(gè)實(shí)現(xiàn)了IDisposable接口的類,以下哪些項(xiàng)可以執(zhí)行與釋放或重置非托管資源相關(guān)的應(yīng)用程序定義的任務(wù)?(多選) ( ABC )
A.Close
B.Dispose
C.Finalize
D.using
E.Quit
3.以下關(guān)于ref和out的描述哪些項(xiàng)是正確的?(多選) ( ACD )
A.使用ref參數(shù),傳遞到ref參數(shù)的參數(shù)必須最先初始化。
B.使用out參數(shù),傳遞到out參數(shù)的參數(shù)必須最先初始化。
C.使用ref參數(shù),必須將參數(shù)作為ref參數(shù)顯式傳遞到方法。
D.使用out參數(shù),必須將參數(shù)作為out參數(shù)顯式傳遞到方法。
1.在對(duì)SQL Server 數(shù)據(jù)庫操作時(shí)應(yīng)選用(A)。
a)SQL Server .NET Framework 數(shù)據(jù)提供程序;
b)OLE DB .NET Framework 數(shù)據(jù)提供程序;
c)ODBC .NET Framework 數(shù)據(jù)提供程序;
d)Oracle .NET Framework數(shù)據(jù)提供程序;
2.下列選項(xiàng)中,(C)是引用類型。
a)enum類型 b)struct類型 c)string類型 d)int類型
3.關(guān)于ASP.NET中的代碼隱藏文件的描述正確的是(C)
a)Web窗體頁的程序的邏輯由代碼組成,這些代碼的創(chuàng)建用于與窗體交互。編程邏輯唯一與用戶界面不同的文件中。該文件稱作為“代碼隱藏”文件,如果用C#創(chuàng)建,該文件將具有“.ascx.cs”擴(kuò)展名。
b)項(xiàng)目中所有Web窗體頁的代碼隱藏文件都被編譯成.EXE文件。
c)項(xiàng)目中所有的Web窗體頁的代碼隱藏文件都被編譯成項(xiàng)目動(dòng)態(tài)鏈接庫(.dll)文件。
d)以上都不正確。
4.以下描述錯(cuò)誤的是(A)
a)在C++中支持抽象類而在C#中不支持抽象類。
b)C++中可在頭文件中聲明類的成員而在CPP文件中定義類的成員,在C#中沒有頭文件并且在同一處聲明和定義類的成員。
c)在C#中可使用 new 修飾符顯式隱藏從基類繼承的成員。
d)在C#中要在派生類中重新定義基類的虛函數(shù)必須在前面加Override。
5.C#的數(shù)據(jù)類型有(A)
a)值類型和調(diào)用類型; b)值類型和引用類型;c)引用類型和關(guān)系類型;d)關(guān)系類型和調(diào)用類型;
6.下列描述錯(cuò)誤的是(D)
a)類不可以多重繼承而接口可以;
b)抽象類自身可以定義成員而接口不可以;
c)抽象類和接口都不能被實(shí)例化;
d)一個(gè)類可以有多個(gè)基類和多個(gè)基接口;
7.在DOM中,裝載一個(gè)XML文檔的方法(D)
a)save方法 b)load方法 c)loadXML方法 d)send方法
8.下列關(guān)于構(gòu)造函數(shù)的描述正確的是(C)
a)構(gòu)造函數(shù)可以聲明返回類型。
b)構(gòu)造函數(shù)不可以用private修飾
c)構(gòu)造函數(shù)必須與類名相同
d)構(gòu)造函數(shù)不能帶參數(shù)
9.以下是一些C#中的枚舉型的定義,其中錯(cuò)誤的用法有()
a)public enum var1{ Mike = 100, Nike = 102, Jike }
b)public enum var1{ Mike = 100, Nike, Jike }
c)public enum var1{ Mike=-1 , Nike, Jike }
d)public enum var1{ Mike , Nike , Jike }
10.int[][] myArray3=new int[3][]{
new int[3]{5,6,2},
new int[5]{6,9,7,8,3},
new int[2]{3,2}
};
myArray3[2][2]的值是(D)。
a)9 b)2 c)6 d)越界
11.接口是一種引用類型,在接口中可以聲明(A),但不可以聲明公有的域或私有的成員變量。
a)方法、屬性、索引器和事件;
b)方法、屬性信息、屬性;
c)索引器和字段;
d)事件和字段;
12.ASP.NET框架中,服務(wù)器控件是為配合Web表單工作而專門設(shè)計(jì)的。服務(wù)器控件有兩種類型,它們是(A )
a)HTML控件和Web控件 b)HTML控件和XML控件 c)XML控件和Web控件 d)HTML控件和IIS控件
13.ASP.NET中,在Web窗體頁上注冊(cè)一個(gè)用戶控件,指定該控件的名稱為”Mike”,正確的注冊(cè)指令為( D)
a)
b)
c)
d)以上皆非
14.在ADO.NET中,對(duì)于Command對(duì)象的ExecuteNonQuery()方法和ExecuteReader()方法,下面敘述錯(cuò)誤的是(C)。
a)insert、update、delete等操作的Sql語句主要用ExecuteNonQuery()方法來執(zhí)行;
b)ExecuteNonQuery()方法返回執(zhí)行Sql語句所影響的行數(shù)。
c)Select操作的Sql語句只能由ExecuteReader()方法來執(zhí)行;
d)ExecuteReader()方法返回一個(gè)DataReder對(duì)象;
15.下列ASP.NET語句(b)正確地創(chuàng)建了一個(gè)與SQL Server 2000數(shù)據(jù)庫的連接。
a)SqlConnection con1 = new Connection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
b)SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
c)SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);
d)SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
16.WinForm中,關(guān)于ToolBar控件的屬性和事件的描述不正確的是(D)。
a)Buttons屬性表示ToolBar控件的所有工具欄按鈕
b)ButtonSize屬性表示ToolBar控件上的工具欄按鈕的大小,如高度和寬度
c)DropDownArrows屬性表明工具欄按鈕(該按鈕有一列值需要以下拉方式顯示)旁邊是否顯示下箭頭鍵
d)ButtonClick事件在用戶單擊工具欄任何地方時(shí)都會(huì)觸發(fā)
17.在ADO.NET中執(zhí)行一個(gè)存儲(chǔ)過程時(shí),如果要設(shè)置輸出參數(shù)則必須同時(shí)設(shè)置參數(shù)的方向和(B ),必要時(shí)還要設(shè)置參數(shù)尺寸。
a)大小; b)上限; c)初始值; d)類型;
18.如果將窗體的FormBoderStyle設(shè)置為None,則( B)。
a)窗體沒有邊框并不能調(diào)整大小; b)窗體沒有邊框但能調(diào)整大小;
c)窗體有邊框但不能調(diào)整大小; d)窗體是透明的;
19.如果要將窗體設(shè)置為透明的,則( B)
a)要將FormBoderStyle屬性設(shè)置為None; b)要將Opacity屬性設(shè)置為小于100%得值;
c)要將locked 屬性設(shè)置為True; d)要將 Enabled屬性設(shè)置為True;
20.下列關(guān)于C#中索引器理解正確的是(B/C )
a)索引器的參數(shù)必須是兩個(gè)或兩個(gè)以上 b)索引器的參數(shù)類型必須是整數(shù)型
c)索引器沒有名字 d)以上皆非
21.下面描述錯(cuò)誤的是( C/D)。
a)窗體也是控件; b)窗體也是類; c)控件是從窗體繼承來的; d)窗體的父類是控件類;
22.要對(duì)注冊(cè)表進(jìn)行操作則必須包含( D)。
a)System.ComponentModel命名空間; b)System.Collections命名空間;
c)System.Threading命名空間; d)Microsoft.Win32命名空間;
23.要?jiǎng)?chuàng)建多文檔應(yīng)用程序,需要將窗體的(D )屬性設(shè)為true。
a)DrawGrid; b)ShowInTaskbar; c)Enabled; d)IsMdiContainer;
24.如果設(shè)treeView1=new TreeView(),則treeView1.Nodes.Add("根節(jié)點(diǎn)")返回的是一個(gè) ()類型的值。
a)TreeNode;
b)int;
c)string;
d)TreeView;
25.下面關(guān)于XML的描述錯(cuò)誤的是(D)。
a)XML提供一種描述結(jié)構(gòu)化數(shù)據(jù)的方法;
b)XML 是一種簡(jiǎn)單、與平臺(tái)無關(guān)并被廣泛采用的標(biāo)準(zhǔn);
c)XML文檔可承載各種信息;
d)XML只是為了生成結(jié)構(gòu)化文檔;
1.裝箱、拆箱操作發(fā)生在: ( C )
A.類與對(duì)象之間 B.對(duì)象與對(duì)象之間
C.引用類型與值類型之間 D.引用類型與引用類型之間
2.用戶類若想支持Foreach語句需要實(shí)現(xiàn)的接口是: ( A )
A.IEnumerableB.IEnumerator
C.ICollectionD.ICollectData
3..Net Framework通過什么與COM組件進(jìn)行交互操作?( C )
A.Side By SideB.Web Service
C.InteropD.PInvoke
4..Net依靠以下哪一項(xiàng)技術(shù)解決COM存在的Dll Hell問題的?( A )
A.Side By SideB.Interop
C.PInvokeD.COM+
6.以下哪個(gè)是可以變長(zhǎng)的數(shù)組?( D )
A.Array B.string[]
C.string[N] D.ArrayList
7.用戶自定義異常類需要從以下哪個(gè)類繼承:( A )
A.Exception B.CustomException
C.ApplicationException D.BaseException
9.對(duì)于一個(gè)實(shí)現(xiàn)了IDisposable接口的類,以下哪些項(xiàng)可以執(zhí)行與釋放或重置非托管資源相關(guān)的應(yīng)用程序定義的任務(wù)?(多選) ( ABC )
A.Close B.DisposeC.Finalize
D.using E.Quit
10.Net依賴以下哪項(xiàng)技術(shù)實(shí)現(xiàn)跨語言互用性?( C )
A.CLR B.CTS C.CLS D.CTT
11.請(qǐng)問: String類與StringBuilder類有什么區(qū)別?為什么在.Net類庫中要同時(shí)存在這2個(gè)類?(簡(jiǎn)答)
如果要操作一個(gè)不斷增長(zhǎng)的字符串,盡量不用String類,改用StringBuilder類。兩個(gè)類的工作原理不同:String類是一種傳統(tǒng)的修改字符串的方式,它確實(shí)可以完成把一個(gè)字符串添加到另一個(gè)字符串上的工作沒錯(cuò),但是在.NET框架下,這個(gè)操作實(shí)在是劃不來。因?yàn)橄到y(tǒng)先是把兩個(gè)字符串寫入內(nèi)存,接著刪除原來的String對(duì)象,然后創(chuàng)建一個(gè)String對(duì)象,并讀取內(nèi)存中的數(shù)據(jù)賦給該對(duì)象。這一來二去的,耗了不少時(shí)間。而使用 System.Text命名空間下面的StringBuilder類就不是這樣了,它提供的Append方法,能夠在已有對(duì)象的原地進(jìn)行字符串的修改,簡(jiǎn)單而且直接。當(dāng)然,一般情況下覺察不到這二者效率的差異,但如果你要對(duì)某個(gè)字符串進(jìn)行大量的添加操作,那么StringBuilder類所耗費(fèi)的時(shí)間和 String類簡(jiǎn)直不是一個(gè)數(shù)量級(jí)的。
二、C# 部分*
13.以下哪些可以作為接口成員?(多選) ( ABDE )
A.方法B.屬性C.字段D.事件E.索引器
F.構(gòu)造函數(shù)G.析構(gòu)函數(shù)
14.以下關(guān)于ref和out的描述哪些項(xiàng)是正確的?(多選) ( ACD )
A.使用ref參數(shù),傳遞到ref參數(shù)的參數(shù)必須最先初始化。
B.使用out參數(shù),傳遞到out參數(shù)的參數(shù)必須最先初始化。
C.使用ref參數(shù),必須將參數(shù)作為ref參數(shù)顯式傳遞到方法。
D.使用out參數(shù),必須將參數(shù)作為out參數(shù)顯式傳遞到方法。
15.“訪問范圍限定于此程序或那些由它所屬的類派生的類型”是對(duì)以下哪個(gè)成員可訪問性含義的正確描述?( B )
A.public B.protected C.internal D.protected internal
16.class Class1
{
private static int count = 0;
static Class1()
{
count++;
}
public Class1()
{
count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
請(qǐng)問,o1.Count的值是多少?( C )
A.1 B.2 C.3 D.4
17.abstract class BaseClass
{
public virtual void MethodA()
{
}
public virtual void MethodB()
{
}
}
class Class1: BaseClass
{
public void MethodA(string arg)
{
}
public override void MethodB()
{
}
}
class Class2: Class1
{
new public void MethodB()
{
}
}
class MainClass
{
public static void Main(string[] args)
{
Class2 o = new Class2();
Console.WriteLine(o.MethodA());
}
}
請(qǐng)問,o.MethodA調(diào)用的是: ( A )
A.BaseClass.MethodAB.Class2.MethodA
C.Class1.MethodAD.都不是
18.請(qǐng)敘述屬性與索引器的區(qū)別。
屬性 索引器
通過名稱標(biāo)識(shí)。 通過簽名標(biāo)識(shí)。
通過簡(jiǎn)單名稱或成員訪問來訪問。 通過元素訪問來訪問。
可以為靜態(tài)成員或?qū)嵗蓡T。 必須為實(shí)例成員。
屬性的 get 訪問器沒有參數(shù)。 索引器的 get 訪問器具有與索引器相同的形參表。
屬性的 set 訪問器包含隱式 value 參數(shù)。 除了 value 參數(shù)外,索引器的 set 訪問器還具有與索引器相同的形參表。
19.請(qǐng)敘述const與readonly的區(qū)別。
每一個(gè)class至多只可以定義一個(gè)static構(gòu)造函數(shù),并且不允許增加訪問級(jí)別關(guān)鍵字,參數(shù)列必須為空。
為了不違背編碼規(guī)則,通常把static數(shù)據(jù)成員聲明為private,然后通過statci property提供讀寫訪問。
const 關(guān)鍵字用于修改字段或局部變量的聲明。它指定字段或局部變量的值不能被修改。常數(shù)聲明引入給定類型的一個(gè)或多個(gè)常數(shù)。
const數(shù)據(jù)成員的聲明式必須包含初值,且初值必須是一個(gè)常量表達(dá)式。因?yàn)樗窃诰幾g時(shí)就需要完全評(píng)估。
const成員可以使用另一個(gè)const成員來初始化,前提是兩者之間沒有循環(huán)依賴。
readonly在運(yùn)行期評(píng)估賦值,使我們得以在確保“只讀訪問”的前提下,把object的初始化動(dòng)作推遲到運(yùn)行期進(jìn)行。
readonly 關(guān)鍵字與 const 關(guān)鍵字不同: const 字段只能在該字段的聲明中初始化。readonly 字段可以在聲明或構(gòu)造函數(shù)中初始化。因此,根據(jù)所使用的構(gòu)造函數(shù),readonly 字段可能具有不同的值。另外,const 字段是編譯時(shí)常數(shù),而 readonly 字段可用于運(yùn)行時(shí)常數(shù)。
readonly 只能在聲明時(shí)或者構(gòu)造函數(shù)里面初始化,并且不能在 static 修飾的構(gòu)造函數(shù)里面。
21.您需要?jiǎng)?chuàng)建一個(gè)ASP.NET應(yīng)用程序,公司考慮使用Windows身份認(rèn)證。
所有的用戶都存在于AllWin這個(gè)域中。您想要使用下列認(rèn)證規(guī)則來配置這個(gè)應(yīng)用程序:
a、 匿名用戶不允許訪問這個(gè)應(yīng)用程序。
b、 所有雇員除了Tess和King都允許訪問這個(gè)應(yīng)用程序。
請(qǐng)問您應(yīng)該使用以下哪一個(gè)代碼段來配置這個(gè)應(yīng)用程序?( A )
A.
B.
C.
D.
E.
22.您要?jiǎng)?chuàng)建一個(gè)顯示公司員工列表的應(yīng)用程序。您使用一個(gè)DataGrid控件顯示員工的列表。您打算修改這個(gè)控件以便在這個(gè)Grid的Footer顯示員工合計(jì)數(shù)。請(qǐng)問您應(yīng)該怎么做?( C? )
A.重寫OnPreRender事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。
B.重寫OnItemCreated事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。
C.重寫OnItemDataBound事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。
D. 重寫OnLayout事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。
23.您要?jiǎng)?chuàng)建ASP.NET應(yīng)用程序用于運(yùn)行AllWin公司內(nèi)部的Web站點(diǎn),這個(gè)應(yīng)用程序包含了50個(gè)頁面。您想要配置這個(gè)應(yīng)用程序以便當(dāng)發(fā)生一個(gè) HTTP代碼錯(cuò)誤時(shí)它可以顯示一個(gè)自定義的錯(cuò)誤頁面給用戶。您想要花最小的代價(jià)完成這些目標(biāo),您應(yīng)該怎么做?(多選)( CD )
A.在這個(gè)應(yīng)用程序的Global.asax文件中創(chuàng)建一個(gè)Application_Error過程去處理ASP.NET代碼錯(cuò)誤。
B.在這個(gè)應(yīng)用程序的Web.config文件中創(chuàng)建一個(gè)applicationError節(jié)去處理ASP.NET代碼錯(cuò)誤。
C.在這個(gè)應(yīng)用程序的Global.asax文件中創(chuàng)建一個(gè)CustomErrors事件去處理HTTP錯(cuò)誤。
D.在這個(gè)應(yīng)用程序的Web.config文件中創(chuàng)建一個(gè)CustomErrors節(jié)去處理HTTP錯(cuò)誤。
E.在這個(gè)應(yīng)用程序的每一頁中添加一個(gè)Page指示符去處理ASP.NET 代碼錯(cuò)誤。
F. 在這個(gè)應(yīng)用程序的每一頁中添加一個(gè)Page指示符去處理ASP.NET HTTP錯(cuò)誤。
24.您的公司有一個(gè)DB Server,名為AllWin,其上裝了MS SQLSERVER 2000,F(xiàn)在需要您寫一個(gè)數(shù)據(jù)庫連接字符串,用以連接AllWin上SQL SERVER中的一個(gè)名為PubBase實(shí)例的Test庫。請(qǐng)問,應(yīng)該選擇下面哪一個(gè)字符串?( B )
A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI”
B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI”
C. “Data Source= AllWin \PubBase;Initial Category=PubBase;Integrated Security= SSPI”
D. “Data Source= AllWin \ PubBase;Database=Test;Integrated Security= SSPI”
25.您為AllWin公司創(chuàng)建了一個(gè)ASP.NET應(yīng)用程序。這個(gè)應(yīng)用程序調(diào)用一個(gè) Xml Web Service。這個(gè) Xml Web Service 將返回一個(gè)包含了公司雇員列表的DataSet對(duì)象。請(qǐng)問您該如何在這個(gè)程序中使用這個(gè) Xml Web Service?( ? )
A.在“引用”對(duì)話框的.Net標(biāo)簽中選擇 System.Web.Services.dll。
B.在“Web引用”對(duì)話框中輸入這個(gè) XML Web service 的地址。
C.在您的 Global.asax.cs 中添加一條 using 語句并指定這個(gè) XML Web service 的地址。
D.在您的 Global.asax.cs 中寫一個(gè)事件處理器導(dǎo)入這個(gè) Xml Web Service 相應(yīng)的 .wsdl 和 .disco 文件。
26.您要?jiǎng)?chuàng)建一個(gè)ASP.NET應(yīng)用程序在DataGrid控件中顯示一個(gè)經(jīng)過排序的列表。產(chǎn)品數(shù)據(jù)被存放于一個(gè)名為PubBase的 Microsoft SQL Server 數(shù)據(jù)庫。每個(gè)產(chǎn)品的主鍵是ProductID,Numeric型并且每個(gè)產(chǎn)品有一個(gè)字母描述字段,名為ProductName。您使用一個(gè) SqlDataAdapter對(duì)象和一個(gè)SqlCommand對(duì)象通過調(diào)用一個(gè)存儲(chǔ)過程從數(shù)據(jù)庫中獲取產(chǎn)品數(shù)據(jù)。您將SqlCommand對(duì)象的 CommandType屬性設(shè)置為CommandType.StoredProcedure,并將它的CommandText屬性設(shè)置為 procProductList。您成功的獲取了一個(gè)DataTable對(duì)象,其中是已經(jīng)按ProductID降序排列的產(chǎn)品列表。您打算顯示以相反的字母順序排列的ProductName,請(qǐng)問該怎么做? ( B )
A. 將SqlCommand對(duì)象的CommandType屬性修改為CommandType.Text,將CommandText屬性修改為”SELECT * FROM procProductList ORDER BY ProductName DESC”。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件。
B. 創(chuàng)建一個(gè)基于這個(gè)DataTable對(duì)象的新的DataView并將這個(gè)DataView的Sort屬性設(shè)置為“ProductName DESC”。然后將這個(gè)DataView對(duì)象綁定到DataGrid控件。
C. 將DataGrid控件的AllowSorting屬性設(shè)置為True,并將DataGridColumn的SortExpression屬性設(shè)置為 “ProductName DESC”.以顯示ProductName。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件。
D. 將DataTable對(duì)象的DisplayExpression屬性設(shè)置為 “ORDER BY ProductName DESC”.。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件。
【ASP.NET筆試經(jīng)驗(yàn)心得】相關(guān)文章:
ASP.NET筆試題小匯總02-12
筆試經(jīng)驗(yàn):筆試內(nèi)容準(zhǔn)備11-21
ASP.NET的一套筆試題02-12
奧美筆試經(jīng)驗(yàn)01-14
新浪筆試經(jīng)驗(yàn)01-25
保利筆試經(jīng)驗(yàn)07-06
MTR筆試經(jīng)驗(yàn)12-08
中興筆試經(jīng)驗(yàn)12-10
卡夫筆試經(jīng)驗(yàn)12-13
吉利筆試經(jīng)驗(yàn)03-26