c#基礎知識題庫

2019-08-27 17:55:45

zop個人圖書館 2012-11-13

1.C#中數據類型分為哪兩類?區別是什麼?

值類型、引用類型。值類型保存的是具體的值 引用類型保存的是值的地址

2.基本數據類型有哪些?

bool 布爾類型、int 整數類型、byte位元組型、char字元型、long 長整型、flaot浮點型、 short 短整型、 double 雙精度類型、string字元串類型

3.什麼是裝箱,什麼是拆箱?

裝箱:將值類型轉換為引用類型、拆箱:將裝箱的引用類型轉為值類型。

4.C#中有哪些流程控制語句?

判斷語句、循環語句、跳轉語句

5.什麼是變數?

變數是記憶體中的一塊存儲區域,是存儲數據的基本單元

6.C#提供了哪些一系列豐富的運算符?

算術運算符

關係運算符

邏輯運算符

條件運算符

賦值運算符

7.用戶輸入行數,用* 列印一個直角三角形圖案?

for (int j = 1; j <= 5;j++ )

{

//for (int a = 1; a <= 5 - j; a++) //如果需要列印等邊三角形需要加這個

// Console.Write(" ");

for (int i = 1; i <= 2*j-1; i++)

{

Console.Write("*");

}

Console.WriteLine();

}

Console.ReadKey();

8.C# 提供循環結構?

while 循環,do…while 循環

for 循環,foreach 循環

9.什麼是函式?

函式就是將一堆代碼進行重用的一種機制;函式被稱為方法。

10.字元串的分割?

string[] Split(params char[] separator):將字元串按照指定的分割符分割為字元串數組;

string[] Split(char[] separator, StringSplitOptions options)將字元串按照指定的char分割符分割為字元串數組( options 取

RemoveEmptyEntries的時候移除結果中的空白字元串);

string[] s = str.Split(new string[] { "小" }, StringSplitOptions.RemoveEmptyEntries);

string[] Split(string[] separator, StringSplitOptions options)將字元串按照指定的string分割符分割為字元串數組。

string[] s = a.Split(new char[] { '-' }, StringSplitOptions. None);

11.C#中自定義數據類型是什麼?

枚舉

12.c#提供了哪些類型的選擇結構?

if、if…else、switch…case

13.了解什麼是面向對象?

面向對象就是使用對象進行程式設。面向對象的編程思想:電腦程式中模擬現實世界中的概念,現實世界的所有事物全都被視為對象,在電腦程式中用相似的實體模擬現實世界中的實體,是設計和實現軟體系統的方法。

14.面向對象的基本概念:類?對象?封裝?繼承?多態?

同一類中的事物總是具有一些共性;

類是具有相同屬性和和行為的一組對象的集合。類是用來描述實體的“模板”或“原型”;

對象是面向對象編程的核心部分,是實際存在的具體實體,具有明確定義的狀態和行為;對象其實就是“數據”和“函式”的封裝體。

封裝:封裝其實就是有選擇性地公開或隱藏某些信息,它解決了數據的安全性問題。封裝的特點就是避免非法數據的訪問,保證數據的完整性

例:每個人都有自己的思想,具體想什麼別人都不知道。

繼承:解決了代碼的重用問題;繼承是利用現有的類創建新類的過程,現有的類稱作基類(或父類),創建的新類稱作派生類(子類)。

繼承是利用現有的類創建新類的過程,現有的類稱作基類(或父類),創建的新類稱作派生類(子類)。

多態:指不同對象收到相同訊息時,會產生不同行為。

--------什麼是抽象?

把相同的或相似的對象歸為一類的這個過程就是抽象,所以,抽象就是分析問題的方法;

15.如何定義類,如何創建對象?

定義一個類的方法,必須包括五個要素:方法修飾符,方法名,返回類型,參數,以及方法體,例如Add方法:
public int Add(int x, int y)
{
return x + y;
}

創建對象的一般語法:類名 引用名 = new 類名();

16.訪問控制許可權?

關鍵字public和private是訪問修飾符,用來說明某個成員是否可以從類外部進行訪問;

17.成員運算符?

使用成員運算符(.)來訪問成員屬性或成員方法;

18.什麼是屬性?構造方法?

屬性:對象或實體擁有的特徵在類中表示時稱為屬性。數據表示自身的狀態,也稱作“屬性”或“成員數據。

構造方法:對象實例化的同時就初始化成員變數。構造方法沒有返回值類型,也不能有返回值。構造方法是特殊的成員方法,它與類同名。

19.重載構造方法

構造方法是用來初始化成員變數的特殊方法。可以適當地重載構造方法,使初始化對象的方式更加靈活;

方法重載可以方便方法的調用者,但方法重載應遵循三大原則:

方法名相同,參數列表不同,屬於同一作用域

20.方法重載?

在同一作用域中用於定義一組方法,這些方法具有相同的名稱,並執行類似的操作,但是卻使用不同的參數列表;返回值不同的方法不能構成重載。

21.this關鍵字?靜態成員?static關鍵字?

每個成員方法都有一個隱含的this引用,它總是指向調用它的對象;

聲明靜態變數使用關鍵字static。具有全局變數的生命周期(完成了某些全局變數才能完成的功能);

注意:靜態成員方法沒有this引用;

22.命名空間,namespace關鍵字;導入命名空間,using關鍵字。

23.C# 中常用的字元串處理方法:

Equals()或==:比較兩個字元串的值是否相等

Join():連線字元串

Split():分割字元串

IndexOf():查找某個字元在字元串中的位置

SubString():從字元串中截取子字元串

ToLower():將字元串轉換成小寫形式

Trim():去掉字元串兩邊的空格

Replace(“子字串”,“目標字元串”):將子字元串替換為目標字元串

Format():方法用來格式化字元串

24.時間日期類DateTime

System.DateTime currentTime=new System.DateTime(); //取當前年月日時分秒 currentTime=System.DateTime.Now; //取當前年 int 年=currentTime.Year;

// 取當前月 int 月=currentTime.Month; //取當前日 int 日=currentTime.Day; // 取當前時 int 時=currentTime.Hour; //取當前分 int 分=currentTime.Minute;

// 取當前秒 int 秒=currentTime.Second;

獲得當前時間 n 天后的日期時間 DateTime newDay = DateTime.Now.AddDays(100);

25.什麼是對象數組?

在C#中不但可以聲明由原始數據組成的數組,還可以聲明由對象組成的數組;

//假設已經定義了一個Student類。Student[]stdAry=new Student[5];

26.C#中實現繼承?

實現繼承的一般語法是:

[訪問修飾符] class 派生類名 :基類名

{

成員列表

}

27.訪問控制許可權-protected?

protected修飾符,本類或子類成員友好;受保護的。

28.繼承中的構造方法?

父類的構造方法負責初始化屬於它的成員變數,而子類的構造方法則只需考慮屬於自己的成員變數,不必去關注父類的情況。父類的構造方法執行失敗,那么子類的對象也將無法實例化。

29.base關鍵字?

第一種用途是:在子類的構造方法中,base關鍵字可以顯式地調用父類的構造方法,用於將參數傳遞給它;

class Derived : base(實際參數){

……}

第二種用途:如果父類和子類中有同名成員,在子類中默認訪問是屬於自己的那一個成員;

base關鍵字可以明確地指定要訪問父類中的成員;其一般語法是:

base.成員名;(前提條件是:父類中的該成員不是private的)

30.什麼是引用轉型?

引用轉型(里氏替換原則):基類的引用可以指向派生類的對象,如:

BaseClass obj = new DerivedClass();

31.abstract關鍵字是用來做什麼的?

定義抽象類和抽象方法必須要的abstract

32.抽象方法和抽象類是什麼?

抽象類是特殊的類,只是不能被實例化(不能new),有抽象方法的類必然是抽象類。

33.override關鍵字,virtual關鍵字?

被重寫的方法要是abstract的或virtual的

重寫方法指重寫基類方法,被重寫的方法與原方法原型一模一樣

34.使用虛方法

子類中可以使用override關鍵字重寫基類中用virtual關鍵字修飾的虛擬的基成員

用自己的Cut子類中要重寫Cut

35.什麼是接口和如何實現接口,interface關鍵字?

如果某個類中的所有方法都是抽象方法,那么可以考慮將該類定義為接口;定義接口使用關鍵字interface,一般語法:

[訪問許可權] interface 接口名 {

成員列表

}

注意:接口中不能定義非抽象方法,也就是說接口中不能包含有函式實體;

36.sealed關鍵字是用來做什麼的?

如果將某個成員方法修飾為sealed,則意味著該方法不能被子類覆蓋,一般語法:

[訪問許可權] sealed 返回值類型 方法名(參數列表) {

……

}

37.類與類之間的關係?

繼承關係、實現關係、依賴關係、關聯關係、聚合關係、組合關係。

38.IS/AS關鍵字???

IS判斷對象是否是某個類型

AS類型轉換,只能轉換引用類型

39.運用try塊、catch塊和finally塊處理異常

程式中出現的錯誤被稱為異常;編譯時異常一般是指語法錯誤,可以通過編譯器的提示加以修正,這裡我們不予討論;

運行時異常包括:

運行錯誤:如數組下標越界,除數為0等;

邏輯錯誤:如年齡超過200歲等。

try塊:一般用來監視有可能產生異常的代碼部分;

catch塊:當異常產生後,catch塊捕捉異常,並在其中對異常進行處理。

finally塊可以確保執行所有的清理工作;

40.C#中異常類的繼承體系結構?

41.運用多重catch塊處理異常?

多重catch塊,來分別捕獲不同類型的異常。

42.運用嵌套try/catch塊處理異常?

整個語句塊可以產生異常,而其中的某個部分又可能產生另外的異常,而我們需要分別進行處理;

43.運用關鍵字throw處理異常?

使用顯式 throw 語句來引發異常。在此情況下,控制權將無條件轉到處理異常的部分代碼

44.用戶自定義異常?

可能要創建用戶自定義的異常類;Exception類和其子類都是系統內置的異常,這些異常不一定總能捕獲程式中發生的邏輯異常;

45。理解集合的概念?

ArrayList是一個可動態維護長度的集合;例:

ArrayList students = new ArrayList();

Student scofield = new Student("Scofield", Genders.Male, 28, "越獄獄");

students.Add(scofield);

46.理解泛型概念?

泛型最常見的用途是創建集合類

泛型集合可以約束集合內的元素類型

典型泛型集合List<T>表示該泛型集合中的元素類型

47.C#中提供了按照索引器進行訪問的方法

定義索引器的方式:

string this[int index]{

get { return ""; }

set { }

}

string為索引器的類型

[ ]中是參數列表

48.訪問 List<T> 與 ArrayList 的對比

相同點:通過索引訪問集合的元素;添加對象方法相同;通過索引刪除元素。

不同點:List<T>:增加元素時類型嚴格檢查;無需裝箱拆箱;

ArrayList:可以增加任何類型;需要裝箱拆箱。

49.在for循環里如何做死循環?

括弧里不必須加限制。

for(i=1;;i++) //兩個分號之間的限制條件可以不寫

{

.........

if(條件)break;

j.........

}

n-1.分頁有哪幾種方法?

一般都是用存儲過程,或者寫一個分頁的類

n.如何用c#獲取其他軟體子視窗的標題欄的文字並保存到記事本中???

用spy++和api就能做。
spy++是獲取參數的。
百度一下抓取窗體句柄有很多例子的

用winapi抓句柄

相關文章
精选文章