C#基礎面試題
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
1.面向對象的思想主要包括什么? 繼承,封裝,多態 2.簡述private、protected、public、internal修飾符權限 Private:私有成員,在類的內部才能訪問 Protected:保護成員,在類的內部和繼承中訪問 Public:公開成員,沒有訪問限制 Internal:當前程序集內訪問 3.什么是override和interface? override用于重寫父類的虛方法和抽象方法,interface用于定義接口 4.Abstract class和interface有什么區別? Abstract class可以定義屬性,字段及實現方法,不能多繼承,只能用于引用類型 interface只能包含方法并且不能實現,可以多繼承,可以用于值類型和引用類型 5.Struct和class的相同和不同? 相同點:都可以定義字段、屬性和方法,可以通過new來初始化對象 不同點:struct是值類型,class是引用類型,struct可以繼承接口不可以繼承class,class既可以繼承接口,又可以繼承class 6.C#中委托時什么?事件是不是一種委托? 委托是一種引用類型,保存的是對函數的引用。事件是一種特殊的委托。 7.堆和棧的區別? 棧是編譯期間就分配好的內存空間 堆是程序運行期間動態分配的內存空間 8.Float f=123.567F; int i=(int)f; i的值現在是123? 9.String s=new String(“xyz”);創建了幾個Object? 兩個string對象 10.Short s1=1;s1=s1+1;有什么錯? Short s1=1;s1+=1;有什么錯? 第一個有可能導致數據溢出,第二個short類型沒有+=運算符 11.C#中,string str=null與string str=””,請盡量用文字說明區別? null 表示沒有引用任何對象,而空字符串 "" 表示引用了一個空對象 12.請簡述一下兩個for循環的優缺點? 第一個for執行的次數可能少于第二個,第二個for循環if判斷的次數少 13.在下面的例子里,當使用 new B()創建B的實例時,產生什么輸出? X=1,y=-1 14.寫出程序的輸出結果 10,21,1,str,string being converted 15.寫出程序的輸出結果 B,B,Fun() 16.寫出程序的輸出結果 2 5 1 6 17.什么是進程和線程? 進程是程序執行的實例,線程是程序執行的最小單位。 18.進程間通信的方式? 管道通信,信號量通信 19.死鎖的必要條件?怎么克服? 互斥,等待; 20.根據線程安全的相關知識,分析以下代碼,當調用test 方法時i>10時是否會引起死鎖?并簡要說明理由。 會引起死鎖,該線程遞歸調用test(i)時,它將再次嘗試獲取同一個鎖。由于鎖不能被釋放,所以這個線程將被阻塞 21.UDP連接和TCP連接的異同? UDP是無連接的TCP是面向連接的 22.實現快速排序 static void QuickSortAlgorithm(int[] arr, int low, int high) { if (low < high) { int pi = Partition(arr, low, high); QuickSortAlgorithm(arr, low, pi - 1); QuickSortAlgorithm(arr, pi + 1, high); } }
static int Partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = (low - 1); // index of smaller element for (int j = low; j < high; j++) { if (arr[j] < pivot) { i++; Swap(arr, i, j); } } Swap(arr, i + 1, high); return i + 1; }
static void Swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } 23.實現單例模式
24.什么是存儲過程?有什么優點? 存儲過程是一組sql語句,有點是執行速度快、減少網絡流量、安全 25.寫出一條Sql語句:取出表A中第31到第40記錄 (SQLSever, 以自動增長的ID作為主鍵,注意:ID可能不是 連續的) select * from(select row_number() over(order by Id asc)as index,* from A)aa where index between 31 and 40 26.用一條SQL語句,查詢出每門課都大于80分的學生姓名 select distinct name from(select min(fenshu) over(partition by name)aa, * from tt) a where aa>80 該文章在 2023/11/16 21:51:05 編輯過 |
關鍵字查詢
相關文章
正在查詢... |