二、C# 部分*13.以下哪些可以作為介面成員?(多選) ( ABDE )A.方法B.屬性C.欄位D.事件E.索引器F.建構函式G.解構函式14.以下關於ref和out的描述哪些項是正確的?(多選) ( ACD )A.使用ref參數,傳遞到ref參數的參數必須最先初始化。B.使用out參數,傳遞到out參數的參數必須最先初始化。C.使用ref參數,必須將參數作為ref參數顯式傳遞到方法。D.使用out參數,必須將參數作為out參數顯式傳遞到方法。15.“存取範圍限定於此程式或那些由它所屬的類派生的類型”是對以下哪個成員可訪問性含義的正確描述?( B )A.public B.protected C.internal D.protected internal16.class Class1{ private static int count = 0; static Class1() { count++; } public Class1() { count++; }}Class1 o1 = new Class1();Class1 o2 = new Class1();請問,o1.Count的值是多少?( C )A.1 B.2 C.3 D.417.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()); }}請問,o.MethodA調用的是: ( A )A.BaseClass.MethodAB.Class2.MethodAC.Class1.MethodAD.都不是18.請敘述屬性與索引器的區別。 屬性 索引器
通過名稱標識。 通過簽名標識。
通過簡單名稱或成員訪問來訪問。 通過元素訪問來訪問。
可以為靜態成員或執行個體成員。 必須為執行個體成員。
屬性的 get 訪問器沒有參數。 索引器的 get 訪問器具有與索引器相同的形參表。
屬性的 set 訪問器包含隱式 value 參數。 除了 value 參數外,索引器的 set 訪問器還具有與索引器相同的形參表。 19.請敘述const與readonly的區別。每一個class至多隻可以定義一個static建構函式,並且不允許增加存取層級關鍵字,參數列必須為空白。
為了不違背編碼規則,通常把static資料成員聲明為private,然後通過statci property提供讀寫訪問。
const 關鍵字用於修改欄位或局部變數的聲明。它指定欄位或局部變數的值不能被修改。常數聲明引入給定類型的一個或多個常數。
const資料成員的聲明式必須包含初值,且初值必須是一個常量運算式。因為它是在編譯時間就需要完全評估。
const成員可以使用另一個const成員來初始化,前提是兩者之間沒有循環相依性。
readonly在運行期評估賦值,使我們得以在確保“唯讀訪問”的前提下,把object的初始化動作延遲到運行期進行。
readonly 關鍵字與 const 關鍵字不同: const 欄位只能在該欄位的聲明中初始化。readonly 欄位可以在聲明或建構函式中初始化。因此,根據所使用的建構函式,readonly 欄位可能具有不同的值。另外,const 欄位是編譯時間常數,而 readonly 欄位可用於運行時常數。
readonly 只能在聲明時或者建構函式裡面初始化,並且不能在 static 修飾的建構函式裡面。 21.您需要建立一個ASP.NET應用程式,公司考慮使用Windows身份認證。
所有的使用者都存在於AllWin這個域中。您想要使用下列認證規則來配置這個應用程式:
a、 匿名使用者不允許訪問這個應用程式。
b、 所有僱員除了Tess和King都允許訪問這個應用程式。
請問您應該使用以下哪一個程式碼片段來配置這個應用程式?( A )
A. <authorization>
<deny users=”allwin"tess, allwin"king”>
<allow users=”*”>
<deny users=”?”>
</authorization>
B. <authorization>
<allow users=”*”>
<deny users=”allwin"tess, allwin"king”>
<deny users=”?”>
</authorization>
C. <authorization>
<deny users=”allwin"tess, allwin"king”>
<deny users=”?”>
<allow users=”*”>
</authorization>
D. <authorization>
<allow users=”allwin"tess, allwin"king”>
<allow users=”*”>
</authorization>
E.<authorization>
<allow users=”*”>
<deny users=”allwin"tess, allwin"king”>
</authorization>22.您要建立一個顯示公司員工列表的應用程式。您使用一個DataGrid控制項顯示員工的列表。您打算修改這個控制項以便在這個Grid的Footer顯示員工合計數。請問您應該怎麼做?( C? )
A.重寫OnPreRender事件,當Grid的Footer行被建立時顯示合計數。
B.重寫OnItemCreated事件,當Grid的Footer行被建立時顯示合計數。
C.重寫OnItemDataBound事件,當Grid的Footer行被建立時顯示合計數。
D. 重寫OnLayout事件,當Grid的Footer行被建立時顯示合計數。23.您 要建立ASP.NET應用程式用於運行AllWin公司內部的Web網站,這個應用程式套件組合含了50個頁面。您想要配置這個應用程式以便當發生一個HTTP 代碼錯誤時它可以顯示一個自訂的錯誤頁面給使用者。您想要花最小的代價完成這些目標,您應該怎麼做?(多選)( CD )
A.在這個應用程式的Global.asax檔案中建立一個Application_Error過程去處理ASP.NET代碼錯誤。
B.在這個應用程式的Web.config檔案中建立一個applicationError節去處理ASP.NET代碼錯誤。
C.在這個應用程式的Global.asax檔案中建立一個CustomErrors事件去處理HTTP錯誤。
D.在這個應用程式的Web.config檔案中建立一個CustomErrors節去處理HTTP錯誤。
E.在這個應用程式的每一頁中添加一個Page指示符去處理ASP.NET 代碼錯誤。
F. 在這個應用程式的每一頁中添加一個Page指示符去處理ASP.NET HTTP錯誤。24.您 的公司有一個DB Server,名為AllWin,其上裝了MS SQLSERVER 2000。現在需要您寫一個資料庫連接字串,用以串連AllWin上SQL SERVER中的一個名為PubBase執行個體的Test庫。請問,應該選擇下面哪一個字串?( 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公司建立了一個ASP.NET應用程式。這個應用程式調用一個 Xml Web Service。這個 Xml Web Service 將返回一個包含了公司僱員列表的DataSet對象。請問您該如何在這個程式中使用這個 Xml Web Service?( ? )
A.在“引用”對話方塊的.Net標籤中選擇 System.Web.Services.dll。
B.在“Web引用”對話方塊中輸入這個 XML Web service 的地址。
C.在您的 Global.asax.cs 中添加一條 using 語句並指定這個 XML Web service 的地址。
D.在您的 Global.asax.cs 中寫一個事件處理器匯入這個 Xml Web Service 相應的 .wsdl 和 .disco 檔案。26.您 要建立一個ASP.NET應用程式在DataGrid控制項中顯示一個經過排序的列表。產品資料被存放於一個名為PubBase的Microsoft SQL Server 資料庫。每個產品的主鍵是ProductID,Numeric型並且每個產品有一個字母描述欄位,名為ProductName。您使用一個 SqlDataAdapter對象和一個SqlCommand對象通過調用一個預存程序從資料庫中擷取產品資料。您將SqlCommand對象的 CommandType屬性設定為CommandType.StoredProcedure,並將它的CommandText屬性設定為 procProductList。您成功的擷取了一個DataTable對象,其中是已經按ProductID降序排列的產品列表。您打算顯示以相反的字 母順序排列的ProductName,請問該怎麼做? ( B )
A. 將SqlCommand對象的CommandType屬性修改為CommandType.Text,將CommandText屬性修改為”SELECT * FROM procProductList ORDER BY ProductName DESC”。然後將這個DataTable對象綁定到DataGrid控制項。
B. 建立一個基於這個DataTable對象的新的DataView並將這個DataView的Sort屬性設定為“ProductName DESC”。然後將這個DataView對象綁定到DataGrid控制項。
C. 將DataGrid控制項的AllowSorting屬性設定為True,並將DataGridColumn的SortExpression屬性設定為 “ProductName DESC”.以顯示ProductName。然後將這個DataTable對象綁定到DataGrid控制項。
D. 將DataTable對象的DisplayExpression屬性設定為 “ORDER BY ProductName DESC”.。然後將這個DataTable對象綁定到DataGrid控制項。
邏輯推理:
-----------------------------------
一人拿一張百元鈔票到商店買了25元的東西,
店主由於手頭沒有零錢,便拿這張百元鈔票到隔壁的小攤販那裡換了100元零錢,
並找了那人75元零錢。
那人拿著25元的東西和75元零錢走了。
過了一會兒,隔壁小攤販找到店主,說剛才店主拿來換零錢的百元鈔票是假鈔。
店主仔細一看,果然是假鈔。
店主只好又拿了一張真的百元鈔票給小攤販。
問:在整個過程中,店主一共虧了多少錢財?
-----------------------------------------------------------------------------------------
先說說答案是200的思路
很簡單
顧客是白賺的 25+75=100
老闆賠的 貨25+現金75+100賠給小販=200
小販不賠不賺
顧客給老闆假錢,是一分不值的,但他卻從老闆這裡拿走了東西和錢.如果老闆不找小販換錢的話,他賠100(貨物的利潤,進價等不計)
但他找了小販換了錢.小販是要他賠償的
老闆另外得掏100給小販
所以老闆得到廢紙一張,給了顧客25東西,75現金
又賠給小販100.總計200
但這是不正確的.原因就在於他那75是小販的,而不是老闆的.
演算法
亂就亂在了小販後來發現錢是假的,又回來找老闆了
如果在開始換錢的時候,老闆不是用的那張假鈔,而是自己的真錢的話,問題就簡單了.他給了小販100真的,換回100另的.可以把小販排除了.這 時,可以看做是老闆自己的100元另錢.這裡沒小販的事了,你可以看做是提前換好的.顧客來了,給了一張費紙(假錢當然是費紙).他拿走了25的貨+75 的零錢,是100.我們可以看做他是搶的,老闆賠了100元
再換一種思路.顧客賺了100,是事實在在的.他是拿著25塊錢的東西和75塊錢走了.但這錢不是老闆的,是小販的一開始這100是小販給買的單(假錢在他那裡)後來,他找到了老闆,老闆賠給他100.等於老闆給顧客買的單.
如果老闆把這假的100又花出去了呢?
那麼他就不賠了!
所以,最終答案是100元(不計商品的利潤,不算假錢老闆又花出去了)