ASP.NET筆試題淺析
ASP.NET筆試題會(huì)考察程序員的方方面面,那么什么樣的問(wèn)題將會(huì)在面試中出現(xiàn)呢?
1.在C#中,string str = null 與 string str = “” 請(qǐng)盡量使用文字或圖象說(shuō)明其中的區(qū)別。
string str = null 是不給他分配內(nèi)存空間,而string str = “”給它分配長(zhǎng)度為空字符竄的內(nèi)存空間.
2.請(qǐng)?jiān)斒鲈赿otnet中類(class)與結(jié)構(gòu)(struct)的異同:(10分)
Class可以被實(shí)例化,屬于引用類型,是分配在內(nèi)存的堆上的,Struct屬于值類型,是分配在內(nèi)存的棧上的.
3.根據(jù)委托(delegate)的知識(shí),請(qǐng)完成以下用戶控件中代碼片段的填寫:(10)
- namespace test
- {
- public delegate voidonDBOperate();
- public class UserControlBase : System.Windows.Forms.UserControl
- {
- public eventonDBOperateonNew;
- privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)
- {
- if(e.Button.Equals(BtnNew))
- {
- //請(qǐng)?jiān)谝韵卵a(bǔ)齊代碼用來(lái)調(diào)用OnDBOperate委托簽名的OnNew事件。
- }
- }
- }
- }
- __________________________________________
- if(onNew != null )
- OnNew( this, e );
4.分析以下代碼,完成填空(10分)
- string strTmp = "abcdefg某某某";
- int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
- int j= strTmp.Length;
以上代碼執(zhí)行完后,i= j= i還真的不知道, j=10
5.SQLSERVER服務(wù)器中,給定表 table1 中有兩個(gè)字段 ID、LastUpdateDate,ID表示更新的事務(wù)號(hào), LastUpdateDate表示更新時(shí)的服務(wù)器時(shí)間,請(qǐng)使用一句SQL語(yǔ)句獲得最后更新的事務(wù)號(hào)。(10)
select top ID from table1 order by LastUpdateData desc
6.簡(jiǎn)要談一下您對(duì)微軟.NET 構(gòu)架下remoting和webservice兩項(xiàng)技術(shù)的理解以及實(shí)際中的應(yīng)用。(10)
remoting是.net 中用來(lái)跨越machine, process, appdomain 進(jìn)行方法調(diào)用的技術(shù),對(duì)于三成結(jié)構(gòu)的程序,就可以使用remoting技術(shù)來(lái)構(gòu)建.它是分布應(yīng)用的基礎(chǔ)技術(shù).相當(dāng)于以前的DCOM Web Service是一種構(gòu)建應(yīng)用程序的普通模型,并能在所有支持internet網(wǎng)通訊的操作系統(tǒng)上實(shí)施。Web Service令基于組件的開發(fā)和web的結(jié)合達(dá)到最佳,基于組件的對(duì)象模型。
7.什么叫做SQL注入,如何防止?請(qǐng)舉例說(shuō)明。
利用sql關(guān)鍵字對(duì)網(wǎng)站進(jìn)行攻擊。過(guò)濾關(guān)鍵字??等
所謂SQL注入(SQL Injection),就是利用程序員對(duì)用戶輸入數(shù)據(jù)的合法性檢測(cè)不嚴(yán)或不檢測(cè)的特點(diǎn),故意從客戶端提交特殊的代碼,從而收集程序及服務(wù)器的信息,從而獲取想得到的資料。http://localhost/lawjia/show.asp?ID=444 and user>0,這時(shí),服務(wù)器運(yùn)行Select * from 表名 where 字段=444 and user>0這樣的查詢,當(dāng)然,這個(gè)語(yǔ)句是運(yùn)行不下去的,肯定出錯(cuò),錯(cuò)誤信息如下:
·錯(cuò)誤類型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]
將 nvarchar 值 ??sonybb?? 轉(zhuǎn)換為數(shù)據(jù)類型為 int 的列時(shí)發(fā)生語(yǔ)法錯(cuò)誤。
8.產(chǎn)生一個(gè)int數(shù)組,長(zhǎng)度為100,并向其中隨機(jī)插入1-100,并且不能重復(fù)。
- 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;
9.請(qǐng)解釋ASP。NET中的web頁(yè)面與其隱藏類之間的關(guān)系?
一個(gè)ASP.NET頁(yè)面一般都對(duì)應(yīng)一個(gè)隱藏類,一般都在ASP.NET頁(yè)面的聲明中指定了隱藏類例如一個(gè)頁(yè)面Tst1.aspx的頁(yè)面聲明如下 Codebehind="Tst1.aspx.cs" 表明經(jīng)編譯此頁(yè)面時(shí)使用哪一個(gè)代碼文件
Inherits="T1.Tst1" 表用運(yùn)行時(shí)使用哪一個(gè)隱藏類
10.什么是viewstate,能否禁用?是否所用控件都可以禁用?
Viewstate是保存狀態(tài)的一種機(jī)制,EnableViewState屬性設(shè)置為false即可禁用
11.當(dāng)發(fā)現(xiàn)不能讀取頁(yè)面上的輸入的數(shù)據(jù)時(shí)很有可能是什么原因造成的?怎么解決
很有可能是在Page_Load中數(shù)據(jù)處理時(shí)沒(méi)有進(jìn)行Page的IsPostBack屬性判斷
12.請(qǐng)解釋什么是上下文對(duì)象,在什么情況下要使用上下文對(duì)象
上下文對(duì)象是指HttpContext類的Current 屬性,當(dāng)我們?cè)谝粋€(gè)普通類中要訪問(wèn)內(nèi)置對(duì)象(Response,Request,Session,Server,Appliction等)時(shí)就要以使用此對(duì)象
13.請(qǐng)解釋轉(zhuǎn)發(fā)與跳轉(zhuǎn)的區(qū)別?
轉(zhuǎn)發(fā)就是服務(wù)端的跳轉(zhuǎn)A頁(yè)面提交數(shù)據(jù)到B頁(yè)面,B頁(yè)面進(jìn)行處理然后從服務(wù)端跳轉(zhuǎn)到其它頁(yè)面
跳轉(zhuǎn)就是指客戶端的跳轉(zhuǎn)
14.請(qǐng)簡(jiǎn)述一下用Socket進(jìn)行同步通訊編程的詳細(xì)步驟
1)、在應(yīng)用程序和遠(yuǎn)程設(shè)備中使用協(xié)議和網(wǎng)絡(luò)地址初始化套接字
2)、在應(yīng)用程序中通過(guò)指定端口和地址建立監(jiān)聽
3)、遠(yuǎn)程設(shè)備發(fā)出連接請(qǐng)求
4)、應(yīng)用程序接受連接產(chǎn)生通信scoket
5)、應(yīng)用程序和遠(yuǎn)程設(shè)備開始通訊(在通訊中應(yīng)用程序?qū)炱鹬钡酵ㄓ嵔Y(jié)束)
6)、通訊結(jié)束,關(guān)閉應(yīng)用程序和遠(yuǎn)程設(shè)備的Socket回收資源
15.請(qǐng)敘述類與結(jié)構(gòu)的區(qū)別。
1)、結(jié)構(gòu)是值類型;
2)、結(jié)構(gòu)不支持繼承;
3)、結(jié)構(gòu)不能定義默認(rèn)的構(gòu)造函數(shù);
4)、結(jié)構(gòu)不能定義析構(gòu)函數(shù);
5)、結(jié)構(gòu)不能使用初始值設(shè)置域值。
ASP.NET筆試題的情況就向你介紹到這里,希望對(duì)你在ASP.NET筆試題的準(zhǔn)備上有所幫助。
【編輯推薦】