經(jīng)典C#面試題

時(shí)間:2022-07-13 14:35:55 面試 我要投稿
  • 相關(guān)推薦

經(jīng)典C#面試題

S1 C#:

經(jīng)典C#面試題

Ch1:

1、= = 與Equals方法的區別?

對于值類(lèi)型:由于值類(lèi)型是存儲在棧中,兩者都是比較的是兩個(gè)變量的在棧中的值是否相等。

對于引用類(lèi)型:引用類(lèi)型是在堆一個(gè)存儲引用,指向堆中的某個(gè)具體值。= =判斷引用地址,equals判斷值

2、Java中的switch于C#中的switch的區別

Java中的switch:只能判斷int, short及比int所占字節還少的類(lèi)型

C#中的switch:可以判斷string及比string所占字節少的類(lèi)型

Ch2:

1、 冒泡排序(c#)口訣

int[] numbers ={ 49, 12, 65, 45, 88, 54 };

//排序前

Console.WriteLine("排序前:");

foreach (int i in numbers)

{

Console.Write(i + " ");

}

//冒泡排序

for (int i = 0; i < numbers.Length; i++ )

{

for (int j = 0; j < numbers.Length - 1 - i; j++ )

{//將最大數交換到最后

if(numbers[j] > numbers[j+1])

{

int temp = numbers[j];

numbers[j] = numbers[j + 1];

numbers[j + 1] = temp;

}

}

}

//排序后

Console.WriteLine("\n排序后:");

foreach (int i in numbers)

{

Console.Write(i + " ");

}

2、 分別寫(xiě)出四種循環(huán)語(yǔ)法

for(int i=0;i

3、 編程求數組中的最大數,打印所有的水仙花數,打印九九乘法表

求最大數:int[] numbers ={ 49, 12, 65, 45, 88, 54 };

int max = 0;

for (int i = 0; i < numbers.Length-1; i++ )

{

if(numbers[i] > numbers[i+1])

{

max = numbers[i];

}

}

Console.WriteLine("最大數為:"+max);

水仙花數:for (int i = 100; i < 1000; i++ )

{

int a = i % 10; //個(gè)位數

int b = i % 100; //十位數

b = b / 10;

int c = i / 100; //百位數

int number = (int)Math.pow(a, 3) + (int)Math.pow(b, 3) + (int)Math.pow(c, 3);

if(number == i)

{

Console.Write(i + " ");

}

}

打印九九乘法表:for (int i = 1; i <= 9; i++ )

{

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

{

Console.Write("{0}×{1}={2}\t", j, i, i * j);

}

Console.WriteLine();

}

Ch3:

1、 命名空間的含義:包,便于管理

2、 引用傳遞和值傳遞的區別:主要是相對于值類(lèi)型,用引用傳遞加ref,就可實(shí)現其值真正的改變。值傳遞,當調用方法結束后,則不會(huì )改變值。

3、 請寫(xiě)出String的常用方法(10個(gè)),并描述功能

Equals():判斷值相等 Split():以…分割每個(gè)字符為string[]數組 IndexOf():返回指定字符的索引

Concat():連接,相當于’+’號 Trim():忽略前后空格 ToUpper():轉換為大寫(xiě) ToLower():轉換為小寫(xiě)

StartsWith():開(kāi)頭字符是否匹配 SubString():截取字符串 ToCharArray():轉換為char[]數組

4、 分別寫(xiě)出數據類(lèi)型轉換(至少四種)的方法,代碼舉例

顯示轉換:int i=(int)12.9;

隱式轉換:double d=12;

int/double/float.parse ()轉換:string s=”13”; int i=int.parse(s);

convert:int x = 13; double d = Convert.ToDouble(x);

Ch4:

1、 partial關(guān)鍵字的含義

partial局部類(lèi)型允許我們將一個(gè)類(lèi)、結構或接口分成幾個(gè)部分,分別實(shí)現在幾個(gè)不同的.cs文件中。

適用于以下情況:(1) 類(lèi)型特別大,不宜放在一個(gè)文件中實(shí)現。(2) 一個(gè)類(lèi)型中的一部分代碼為自動(dòng)化工具生成的代碼,不宜與我們自己編寫(xiě)的代碼混合在一起。(3) 需要多人合作編寫(xiě)一個(gè)類(lèi)

http://blog.csdn.net/dotnet90/archive/2006/12/23/1455796.aspx

2、 Windows窗體的生命周期常用事件有哪些?

Initialize, Load, Activated(窗體被激活時(shí)), Deactivate(窗體被停用時(shí)), FormClosed, FormClosing

3、 寫(xiě)出常用的控件鍵盤(pán)事件和鼠標事件

鍵盤(pán)事件:KeyDown, KeyUp, Keypress

鼠標事件:Click,DoubleClick,MouseClick,MouseDown,MouseEnter,MouseHover,MouseLeave,MouseMove,MouseUp

4、 請寫(xiě)出MessageBox常用的四種類(lèi)型,以及返回值類(lèi)型

MessageBox.Show(“消息內容”); 返回類(lèi)型:DialogResult

MessageBox.Show(“消息內容”,”標題”); 返回類(lèi)型:DialogResult

MessageBox.Show(“消息內容”,”標題”); 返回類(lèi)型:DialogResult

MessageBox.Show(“消息內容”,”標題”, MessageBoxButtons按鈕類(lèi)型); 返回類(lèi)型:DialogResult

MessageBox.Show(“消息內容”,”標題”, MessageBoxButtons按鈕類(lèi)型, MessageBoxIcon圖標類(lèi)型

); 返回類(lèi)型:DialogResult

Ch5:

1、 anchor和dock的區別

anchor(錨定):距離容器邊緣的距離,當控件錨定到某個(gè)邊緣時(shí),與指定邊緣最接近的控件邊緣與指定邊緣之間的距離將保持不變。

dock(?):將控件?吭诖绑w或容器的邊緣,距離為0px

2、 如何創(chuàng )建一個(gè)MDI窗體(步驟),即多文檔窗體

1)設置子窗體:子窗體名稱(chēng) form = new Form(); form.Mdiparent=this(父窗體); form.show();

2)設置父窗體屬性:isMdiContainer=true;

3、 模式窗體和非模式窗體的區別

模式窗體:form.ShowDialog();有返回值:DialogResult;程序會(huì )中斷,主窗體不能激活,必須關(guān)閉模式窗體才能激活主窗體, 只能show出一個(gè)

非模式窗體:form.Show (); 無(wú)返回值,程序不會(huì )中斷;可以show出多個(gè)

4、 使用第三方類(lèi)傳遞窗體間的數據(代碼演示)

public class UserHelpper

{

public static string loginId = ""; //用戶(hù)名

public static string loginType = ""; //登錄類(lèi)型

}

Ch6:

1、 ADO.Net重要組件(那幅圖6.2)

.NetFramework和DateSet

2、 數據提供者程序有哪些

3、 連接字符串的寫(xiě)法(兩種)

"Data Source=.\SQLEXpRESS;Initial Catalog=數據庫名;Integrated security=true;"

"server=.\sqlexpress; database=數據庫名; uid=用戶(hù)名; password=密碼"

4、 Connection對象的屬性和方法:數據庫連接對象

屬性:state 連接狀態(tài), DataBase 獲取連接對象的數據庫名稱(chēng), DataSource連接對象的實(shí)例名

方法:Open()/Close() 打開(kāi)/關(guān)閉數據庫, Dispose() 釋放連接資源, ChangeDatabase() 為打開(kāi)的當前連接對象更改數據庫名。

5、 異常處理各關(guān)鍵字的作用

try:可能發(fā)生異常的代碼塊

catch:捕獲到何種異常,如何去處理, 可以跟多個(gè)catch塊,但子類(lèi)異常必須寫(xiě)在父類(lèi)異常的前面

finally:不管有沒(méi)有異常都將執行的代碼塊

6、 Command對象的屬性和方法:SQL語(yǔ)句執行命令

屬性:CommandText獲取或設置要對數據源執行的 Transact-SQL 語(yǔ)句、表名或存儲過(guò)程。 Connection獲取或設置 SqlCommand 的此實(shí)例使用的 SqlConnection

方法:ExecuteNonQuery() 執行增,刪,改語(yǔ)句,并返回受影響行數; ExecuteScalar() 執行查詢(xún),返回結果的第一行第一列,忽略其他列或行; ExecuteReader() 執行查詢(xún),返回DataReader對象

Ch7:

1、 DataReader對象的主要屬性和方法

屬性:HasRows 有沒(méi)有讀取到DataReader中的數據;IsClosed 是否已關(guān)閉DataReader對象

方法:Read() 讀取一行數據;GetString()/GetDouble()… 獲取何種類(lèi)型的數據值; Close() 關(guān)閉DataReader對象; IsDBNull() 獲取一個(gè)值,用于指示列中是否包含不存在的或缺少的值

2、 請寫(xiě)出獲取并使用DataReader對象的步驟

1) 建立數據庫連接conn=new …Connection(…); 2)創(chuàng )建Command對象cmd= new …Command(sql, conn); 3)執行SQL查詢(xún)命令sdr=cmd. ExecuteReader(); 4)處理數據 while(sdr.Read()){int i=sdr.getInt(0);}

Ch8:

1、 請寫(xiě)出DataSet(臨時(shí)數據庫)的內部結構(圖8.2)

2、 寫(xiě)出填充一個(gè)DataSet的步驟

3、 數據集的工作原理(圖8.3)

4、 如何將數據集中的數據保存到數據庫,請寫(xiě)出步驟

S2 深入.NET

Ch1:

1、 畫(huà)出.NET框架的結構(圖1.7)

.net Framework類(lèi)庫:ASp.Net(Web和Web Service)、WinForms、ADO.Net和XML類(lèi)、基本框架類(lèi)。

CLR:CLS和CTS。

2、 解釋CTS(Common Type System通用類(lèi)型系統)和CLS(Common Language Specification公共語(yǔ)言規范)的含義

CTS:解決不同語(yǔ)言的數據類(lèi)型不同的問(wèn)題。

CLS:實(shí)現多種語(yǔ)言之間的互操作性。

3、


C#編譯器


畫(huà)出.NET編譯過(guò)程(圖1.8)


C#代碼



Microsoft中間語(yǔ)言

(MSIL)



平臺專(zhuān)用代

【經(jīng)典C#面試題】相關(guān)文章:

c面試題08-04

華為面試題07-11

「MySQL」經(jīng)典面試題07-11

采購面試題07-11

面試題集錦07-11

Java面試題07-12

SQL面試題07-12

面試題與技巧07-12

華為面試,C#,南京工資要多少呢,深圳工資開(kāi)多少?07-11

華為面試題(四)07-11

99久久精品免费看国产一区二区三区|baoyu135国产精品t|40分钟97精品国产最大网站|久久综合丝袜日本网|欧美videosdesexo肥婆