面試題二

1.  簡述  private   protected    public   internal  修飾符的訪問權限。
  . private :    私有成員  ,  在類的內部才能夠訪問。
     protected :  保護成員,該類內部和繼承類中能夠訪問。
     public :     公共成員,徹底公開,沒有訪問限制。
     internal:    在同一命名空間內能夠訪問。
 
2 . 列舉 ASP.NET  頁面之間傳遞值的幾種方式。
. 1. 使用  QueryString,   ....?id=1; response. Redirect()....
    2.  使用 Session 變量
3. 使用  Server.Transfer
4. 使用  Application
5. 使用  Cache
6 使用  HttpContext Item  屬性
7. 使用文件
8. 使用數據庫
9. 使用  Cookie
 
3.  一列數的規則以下 : 1 1  2 3  5 8  13 21  34......   求第 30  位數是多少,  用遞歸算法實現。
答:  public class MainClass
    {
        public static void Main()  
        {
            Console.WriteLine(Foo(30));
        }
        public static int Foo(int i)
        {
            if (i <= 0)
                return 0;
            else if(i > 0 && i <= 2)
                return 1;
            else return Foo(i -1) + Foo(i - 2);
        }
    }
 
4.C# 中的委託是什麼?事件是否是一種委託?
         
  委託能夠把一個方法做爲參數代入另外一個方法。
  委託能夠理解爲指向一個函數的引用。
  是,是一種特殊的委託
 
5.override  與重載的區別
 
 override  與重載的區別。重載是方法的名稱相同。參數或參數類型不一樣,進行屢次重載以適應不一樣的須要
 Override  是進行基類中函數的重寫。實現多態。
 
6. 若是在一個 B/S 結構的系統中須要傳遞變量值,可是又不能使用  Session Cookie   Application ,您有幾種方法進行處理?
 
同第 2 
 
7. 請編程遍歷頁面上全部  TextBox 控件並給它賦值爲 string.Empty
答:
      foreach (System.Windows.Forms.Control control in this.Controls)
      {
 if (control is System.Windows.Forms.TextBox)
 {
     System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;
     tb.Text = String.Empty ;
 }
      }
 
8. 請編程實現一個冒泡排序算法?
答:
        int [] array = new int [*] ;
 int temp = 0 ;
 for (int i = 0 ; i < array.Length - 1 ; i++)
 {
  for (int j = i + 1 ; j < array.Length ; j++)
  {
   if (array[j] < array[i])
   {
    temp = array[i] ;
    array[i] = array[j] ;
    array[j] = temp ;
   }
  }
 }
 
9. 描述一下 C# 中索引器的實現過程,是否只能根據數字進行索引?  ( 索引器是對屬性的封裝  , 具體查看 msdn)
答:不是。能夠用任意類型。
 
10. 求如下表達式的值,寫出您想到的一種或幾種實現方法:  1-2+3-4+……+m
答:
    int Num = this.TextBox1.Text.ToString() ;
 int Sum = 0 ;
 for (int i = 0 ; i < Num + 1 ; i++)
 {
  if((i%2) == 1)
  {
   Sum += i ;
  }
  else
  {
   Sum = Sum  - I ;
  }
 }
 System.Console.WriteLine(Sum.ToString());
 System.Console.ReadLine() ;
 
11. .net   B/S 結構的系統,您是用幾層結構來開發,每一層之間的關係以及爲何要這樣分層?
答:使用  MVC 模式分層
通常爲  3
         數據訪問層,業務層,表示層。
  數據訪問層對數據庫進行增刪查改。
  業務層通常分爲二層,業務表觀層實現與表示層的溝通,業務規則層實現用戶密碼的安全等。
  表示層爲了與用戶交互例如用戶添加表單。
優勢:     分工明確,條理清晰,易於調試,並且具備可擴展性。
缺點:     增長成本。
 
12. 在下面的例子裏
     using System;
     class A
     {
          public A()
           {
                PrintFields();
           }
          public virtual void PrintFields(){}
      }
      class B:A
      {
           int x=1;
           int y;
           public B()
    {
               y=-1;
           }
           public override void PrintFields()
           {
               Console.WriteLine("x={0},y={1}",x,y);
           }
當使用  new B() 建立 B  的實例時,產生什麼輸出?
答:  X=1,Y=0;x= 1 y = -1
 
13. 什麼叫應用程序域?
答:應用程序域能夠理解爲一種輕量級進程。起到安全的做用。佔用資源小。
 
14.CTS  CLS CLR  分別做何解釋?
答:  CTS :通用語言系統。 CLS :通用語言規範。  CLR :公共語言運行庫。
 
15. 什麼是裝箱和拆箱?
答:從值類型接口轉換到引用類型裝箱。從引用類型轉換到值類型拆箱。
 
16. 什麼是受管制 ( 託管 )  的代碼?
答:
         託管代碼是運行  .NET  公共語言運行時 CLR 的代碼
unsafe :非託管代碼。不通過  CLR 運行。程序員自行分配和釋放內存空間
 
17. 什麼是強命名程序集?
答:程序集須要通過加密簽名  , 強命名程序集能夠部署到全局程序集緩存中  , 成爲公共程序集
 
18.net  中讀寫數據庫須要用到那些類?他們的做用?
答:  DataSet: 數據集。
    DataCommand:  執行語句命令。
DataAdapter: 數據的集合,用語填充。
DataReader: 數據只讀器
 
19.ASP.net  的身份驗證方式有哪些?分別是什麼原理?
答:
  Windwos(  默認 )   IIS 控制
From( 窗體  ) 用賬戶
Passport( 密鑰  )
 
20.  什麼是 Code-Behind 技術?
答:代碼後置。
 
21. .net 中,配件的意思是?
答:程序集。(中間語言,源數據,資源,裝配清單)
 
22. 經常使用的調用 WebService 的方法有哪些?
答:  1. 使用 WSDL.exe  命令行工具。
    2.  使用 VS.NET 中的  Add Web Reference 菜單選項
 
23..net Remoting  的工做原理是什麼?
答:服務器端向客戶端發送一個進程編號,一個程序域編號,以肯定對象的位置。
 
24. C #中,  string str = null    string str = 「」  請儘可能使用文字或圖象說明其中的區別。
答:  string str = null  是不給他分配內存空間 ,   string str = ""  給它分配長度爲空字符串的內存空間。
 
25. 請詳述在 dotnet 中類 (class)  與結構 (struct) 的異同?
答:  class 能夠被實例化 , 屬於引用類型  ,class 能夠實現接口和單繼承其餘類  , 還能夠做爲基類型 , 是分配在內存的堆上的
struct 屬於值類型 , 不能做爲基類型  , 可是能夠實現接口 , 是分配在內存的棧上的  .
 
26. 根據委託 (delegate) 的知識,請完成如下用戶控件中代碼片斷的填寫:
namespace test
{
public delegate void OnDBOperate();
public class UserControlBase : System.Windows.Forms.UserControl
{
 public event OnDBOperate   OnNew
 
privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if(e.Button.Equals(BtnNew))
{
// 請在如下補齊代碼用來調用  OnDBOperate 委託簽名的 OnNew 事件。
}
}
}
答:  if( OnNew != null )
    OnNew( this, e );
 
27. 分析如下代碼,完成填空
string strTmp = "abcdefg  某某某 ";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代碼執行完後,  i= j=
答:  i=13,j=10
 
28.SQLSERVER  服務器中,給定表  table1  中有兩個字段  ID LastUpdateDate  ID 表示更新的事務號,  LastUpdateDate 表示更新時的服務器時間,請使用一句  SQL 語句得到最後更新的事務號
答:  Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)
 
29. 根據線程安全的相關知識,分析如下代碼,當調用  test 方法時 i>10 時是否會引發死鎖  ? 並簡要說明理由。
public void test(int i)
{
   lock(this)
 {
   if (i>10)
   {
     i--;
     test(i);
   }
 }
}
答:不會發生死鎖,(但有一點  int 是按值傳遞的,因此每次改變的都只是一個副本,所以不會出現死鎖。但若是把  int 換作一個 object  ,那麼死鎖會發生)
 
30. 簡要談一下您對微軟 .NET  構架下 remoting  webservice 兩項技術的理解以及實際中的應用。
答:  webservice 主要是可利用 HTTP ,穿透防火牆。而  Remoting 能夠利用 TCP/IP  ,二進制傳送提升效率。
 
31. 公司要求開發一個繼承  System.Windows.Forms.ListView  類的組件,要求達到如下的特殊功能:點擊  ListView 各列列頭時,能按照點擊列的每行值進行重排視圖中的全部行  ( 排序的方式如 DataGrid 類似 )  。根據您的知識,請簡要談一下您的思路
答:根據點擊的列頭  , 包該列的 ID  取出 , 按照該  ID 排序後 ,  在給綁定到  ListView 中。
 
32. 給定如下 XML 文件,完成算法流程圖。
<FileSystem>
< DriverC >
<Dir DirName=」MSDOS622」>
<File FileName =」 Command.com」 ></File>
</Dir>
<File FileName =」MSDOS.SYS」 ></File>
<File FileName =」 IO.SYS」 ></File>
</DriverC>
</FileSystem>
請畫出遍歷全部文件名(  FileName )的流程圖 ( 請使用遞歸算法 )
答:
void FindFile( Directory d )
{
   FileOrFolders = d.GetFileOrFolders();
   foreach( FileOrFolder fof in FileOrFolders )
   {
     if( fof is File )
     You Found a file;
     else if ( fof is Directory )
     FindFile( fof );
    }
}
 
33. 寫出一條 Sql 語句:取出表 A 中第  31 到第 40 記錄(  SQLServer, 以自動增加的 ID 做爲主鍵 , 注意:  ID 可能不是連續的。
答:解  1:  select top 10 * from A where id not in (select top 30 id from A)
     2:  select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
 
34. 面向對象的語言具備 ________ 性、 _________  性、 ________
答:封裝、繼承、多態。
 
35. 能用 foreach 遍歷訪問的對象須要實現  ________________ 接口或聲明 ________________ 方法的類型。
答:  IEnumerable    GetEnumerator 
 
36.GC  是什麼 ?  爲何要有 GC?
答:  GC 是垃圾收集器。程序員不用擔憂內存管理,由於垃圾收集器會自動進行管理。要請求垃圾收集,能夠調用下面的方法之一:
  System.gc()
  Runtime.getRuntime().gc()
 
37.String s = new String("xyz");  建立了幾個  String Object?
答:兩個對象,一個是  「xyx」, 一個是指向 「xyx」 的引用對象  s
 
38.abstract class  interface 有什麼區別 ?
答:
聲明方法的存在而不去實現它的類被叫作抽象類(  abstract class ),它用於要建立一個體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的狀況。不能建立  abstract  類的實例。然而能夠建立一個變量,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。  Abstract  類的子類爲它們父類中的全部抽象方法提供實現,不然它們也是抽象類爲。取而代之,在子類中實現該方法。知道其行爲的其它類能夠在類中實現這些方法。
接口( interface  )是抽象類的變體。在接口中,全部方法都是抽象的。多繼承性可經過實現這樣的接口而得到。接口中的全部方法都是抽象的,沒有一個有程序體。接口只能夠定義  static final 成員變量。接口的實現與子類類似,除了該實現類不能從接口定義中繼承行爲。當類實現特殊接口時,它定義(即將程序體給予)全部這種接口的方法。而後,它能夠在實現了該接口的類的任何對象上調用接口的方法。因爲有抽象類,它容許使用接口名做爲引用變量的類型。一般的動態聯編將生效。引用能夠轉換到接口類型或從接口類型轉換,  instanceof  運算符能夠用來決定某對象的類是否實現了接口。
 
39. 啓動一個線程是用 run() 仍是 start()?
答:啓動一個線程是調用  start() 方法,使線程所表明的虛擬處理機處於可運行狀態,這意味着它能夠由  JVM 調度並執行。這並不意味着線程就會當即運行。  run() 方法能夠產生必須退出的標誌來中止一個線程。
 
40. 接口是否可繼承接口 ?  抽象類是否可實現 (implements) 接口 ?  抽象類是否可繼承實體類  (concrete class)?
答:接口能夠繼承接口。
抽象類能夠實現 (implements) 接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。
 
41. 構造器 ( 構造函數  )Constructor 是否可被 override?
答:構造器  Constructor 不能被繼承,所以不能重寫  Overriding ,但能夠被重載 Overloading
 
42. 是否能夠繼承 String ?
答:  String 類是密封類故不能夠繼承。
 
43.try {}  裏有一個  return 語句,那麼緊跟在這個  try 後的 finally {} 裏的  code 會不會被執行,何時被執行,在  return 前仍是後 ?
答:會執行,在  return 前執行。
 
44. 兩個對象值相同 (x.equals(y) == true) ,但卻可有不一樣的 hash code ,這句話對不對 ?
答:不對,有相同的  hash code
 
45. swtich 是否能做用在  byte 上,是否能做用在 long 上,是否能做用在 String ?
答:  switch expr1  )中, expr1 是一個整數表達式。所以傳遞給  switch    case  語句的參數應該是  int   short    char  或者  byte long,string  都不能做用於  swtich
 
47. 當一個線程進入一個對象的一個  synchronized 方法後,其它線程是否可進入此對象的其它方法  ?
不能,一個對象的一個  synchronized 方法只能由一個線程訪問。
 
48.abstract  method 是否可同時是 static, 是否可同時是  native ,是否可同時是 synchronized?
答:都不能。
 
49.List, Set, Map  是否繼承自  Collection 接口 ?
答:  List Set  Map 不是
 
50.Set  裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢  ?  是用 == 仍是  equals()?  它們有何區別 ?
答:  Set 裏的元素是不能重複的,那麼用  iterator() 方法來區分重複與否。 equals() 是判讀兩個  Set 是否相等。
equals() ==  方法決定引用值是否指向同一對象  equals() 在類中被覆蓋,爲的是當兩個分離的對象的內容和類型相配的話,返回真值。
 
51. 數組有沒有 length() 這個方法 ? String 有沒有  length() 這個方法?
答:數組沒有  length() 這個方法,有 length 的屬性。  String 沒有 length()  這個方法,有  length 屬性。
 
52.sleep()    wait()  有什麼區別 ?
答:  sleep() 方法是使線程中止一段時間的方法。在  sleep  時間間隔期滿後,線程不必定當即恢復執行。這是由於在那個時刻,其它線程可能正在運行並且沒有被調度爲放棄執行,除非  (a)「 醒來   的線程具備更高的優先級
(b) 正在運行的線程由於其它緣由而阻塞。
wait() 是線程交互時,若是線程對一個同步對象  x  發出一個 wait()  調用,該線程會暫停執行,被調對象進入等待狀態,直到被喚醒或等待時間到。
 
53.short s1 = 1; s1 = s1 + 1;  有什麼錯  ? short s1 = 1; s1 += 1; 有什麼錯 ?
答:  short s1 = 1; s1 = s1 + 1; 有錯, s1  short 型,  s1+1 int  , 不能顯式轉化爲  short 型。可修改成 s1 =(short)(s1 + 1)    short s1 = 1; s1 += 1 正確。
 
54. 談談 final, finally, finalize 的區別。
答:
final—  修飾符(關鍵字)若是一個類被聲明爲  final ,意味着它不能再派生出新的子類,不能做爲父類被繼承。所以        一個類不能既被聲明爲  abstract 的,又被聲明爲  final 的。將變量或方法聲明爲  final ,能夠保證它們在使用中        不被改變。被聲明爲 final 的變量必須在聲明時給定初值,而在之後的引用中只能讀取,不可修改。被聲明爲       final 的方法也一樣只能使用,不能重載
finally—  再異常處理時提供  finally  塊來執行任何清除操做。若是拋出一個異常,那麼相匹配的  catch  子句就會       執行,而後控制就會進入  finally  塊(若是有的話)。
finalize—  方法名。  Java  技術容許使用  finalize()  方法在垃圾收集器將對象從內存中清除出去以前作必要的清理        工做。這個方法是由垃圾收集器在肯定這個對象沒有被引用時對這個對象調用的。它是在  Object  類中定義的       ,所以全部的類都繼承了它。子類覆蓋  finalize()  方法以整理系統資源或者執行其餘清理工做。  finalize()       方法是在垃圾收集器刪除對象以前對這個對象調用的。
 
55. 如何處理幾十萬條併發數據?
答:用存儲過程或事務。取得最大標識的時候同時更新  .. 注意主鍵不是自增量方式這種方法併發的時候是不會有重複主鍵的  .. 取得最大標識要有一個存儲過程來獲取  .
 
56.Session  有什麼重大  BUG ,微軟提出了什麼方法加以解決?
答:是  iis 中因爲有進程回收機制,系統繁忙的話  Session 會丟失,能夠用 Sate   server   SQL   Server 數據庫的方式存儲  Session 不過這種方式比較慢,並且沒法捕獲  Session END  事件。
 
57. 進程和線程的區別?
答:進程是系統進行資源分配和調度的單位;線程是  CPU 調度和分派的單位,一個進程能夠有多個線程,這些線程共享這個進程的資源。
 
58. 堆和棧的區別?
答:
     棧:由編譯器自動分配、釋放。在函數體中定義的變量一般在棧上。
     堆:通常由程序員分配釋放。用  new malloc  等分配內存函數分配獲得的就是在堆上。
 
59. 成員變量和成員函數前加  static 的做用?
答:它們被稱爲常成員變量和常成員函數,又稱爲類成員變量和類成員函數。分別用來反映類的狀態。好比類成員變量能夠用來統計類實例的數量,類成員函數負責這種統計的動做。
 
60.ASP  NET ASP  相比,主要有哪些進步?
答:  asp 解釋形, aspx  編譯型,性能提升,有利於保護源碼。
 
61. 產生一個 int 數組,長度爲 100 ,並向其中隨機插入  1-100 ,而且不能重複。
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[i]=(int)myList[i];
 
62. 請說明在 .net 中經常使用的幾種頁面間傳遞參數的方法,並說出他們的優缺點。
答:  session(viewstate)  簡單,但易丟失
    application         全局
    cookie              簡單,但可能不支持,可能被僞造
    input ttype="hidden"      簡單,可能被僞造
    url  參數                    簡單,顯示於地址欄,長度有限
     數據庫                     穩定,安全,但性能相對弱
 
63. 請指出 GAC 的含義?
答:全局程序集緩存。
 
64. 向服務器發送請求有幾種方式?
答:  get,post get  通常爲連接方式,  post 通常爲按鈕方式。
 
65.DataReader  Dataset 有什麼區別?
答:一個是隻能向前的只讀遊標,一個是內存中的表。
 
66. 軟件開發過程通常有幾個階段?每一個階段的做用?
答:可行性分析  ( 風險控制 )  ,需求分析,架構設計,代碼編寫,測試,部署,維護
 
67. c#   using new 這兩個關鍵字有什麼意義,請寫出你所知道的意義?  using  指令  語句  new  建立實例  new  隱藏基類中方法。
答:  using  引入名稱空間或者使用非託管資源,使用完對象後自動執行實現了  IDisposable 接口的類的 Dispose 方法
    new  新建實例或者隱藏父類方法
 
68. 須要實現對一個字符串的處理  , 首先將該字符串首尾的空格去掉  , 若是字符串中間還有連續空格的話  , 僅保留一個空格 , 即容許字符串中間有多個空格 , 但連續的空格數不可超過一個 .
答:  string inputStr=" xx   xx  ";
inputStr=Regex.Replace(inputStr.Trim()," *"," ");
 
69. 下面這段代碼輸出什麼?爲何?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
答:不相等,由於比較的是對象
 
70. 什麼叫作 SQL 注入,如何防止?請舉例說明。
答:利用  sql 關鍵字對網站進行攻擊。過濾關鍵字  '
 
71. 什麼是反射?
答:動態獲取程序集信息
 
72. Singleton 如何寫設計模式
答:  static 屬性裏面 new ,  構造函數  private
 
73. 什麼是 Application Pool
答:  Web 應用,相似 Thread Pool ,提升併發性能。
 
74. 什麼是虛函數?什麼是抽象函數?
答:虛函數:沒有實現的,可由子類繼承並重寫的函數。抽象函數:規定其非虛子類必須實現的函數,必須被重寫。
 
75. 什麼是 XML
答:  XML 便可擴展標記語言。 eXtensible Markup Language. 標記是指計算機所能理解的信息符號,經過此種標記,計算機之間能夠處理包含各類信息的文章等。如何定義這些標記,便可以選擇國際通用的標記語言,好比  HTML ,也可使用象 XML 這樣由相關人士自由決定的標記語言,這就是語言的可擴展性。  XML 是從 SGML  中簡化修改出來的。它主要用到的有  XML XSL  XPath 等。
 
76. 什麼是 Web Service   UDDI
答:  Web Service 即是基於網絡的、分佈式的模塊化組件,它執行特定的任務,遵照具體的技術規範,這些規範使得  Web Service 能與其餘兼容的組件進行互操做。
    UDDI  的目的是爲電子商務創建標準;  UDDI 是一套基於 Web 的、分佈式的、爲  Web Service 提供的、信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的  Web Service 註冊,以使別的企業可以發現的訪問協議的實現標準。
 
77. 什麼是 ASP.net 中的用戶控件?
答:用戶控件通常用在內容多爲靜態  , 或者少量會改變的狀況下  .. 用的比較大 .. 相似  ASP 中的 include..  可是功能要強大的多。
 
78. 列舉一下你所瞭解的 XML 技術及其應用
答:  xml 用於配置 ,  用於保存靜態數據類型  . 接觸 XML  最多的是  web Services.. config  ,存儲常用可是不常常修改的數據
 
79.ADO.net  中經常使用的對象有哪些?分別描述一下。
答:  Connection  數據庫鏈接對象
    Command  數據庫命令
    DataReader  數據讀取器
DataSet  數據集
DataAdaprer 數據適配器
 
80. 什麼是 code-Behind 技術。
答:  ASPX,RESX CS  三個後綴的文件,這個就是代碼分離  . 實現了 HTML  代碼和服務器代碼分離  . 方便代碼編寫和整理 .
 
81. 什麼是 SOAP, 有哪些應用。
答:  simple object access protocal, 簡單對象接受協議 .   xml 爲基本編碼結構 , 創建在已有通訊協議上  ( http,  不過聽說  ms 在搞最底層的架構在 tcp/ip 上的  soap) 的一種規範 Web Service 使用的協議  ..
 
82.C#    property    attribute  的區別,他們各有什麼用處,這種機制的好處在哪裏?
答:一個是屬性,用於存取類的字段,一個是特性,用來標識類,方法等的附加性質
 
83.XML    HTML  的主要區別
答:  1. XML 是區分大小寫字母的, HTML 不區分。
    2.  HTML 中,若是上下文清楚地顯示出段落或者列表鍵在何處結尾,那麼你能夠省略  </p> 或者 </li>  之類的結束          標記。在  XML 中,絕對不能省略掉結束標記。
    3.  XML 中,擁有單個標記而沒有匹配的結束標記的元素必須用一個  /  字符做爲結尾。這樣分析器就知道不用          查找結束標記了。
    4.  XML 中,屬性值必須分裝在引號中。在  HTML 中,引號是可用可不用的。
    5.  HTML 中,能夠擁有不帶值的屬性名。在  XML 中,全部的屬性都必須帶有相應的值。
 
84.c#  中的三元運算符是?
答:?:。
 
85. 當整數 a 賦值給一個  object 對象時,整數 a 將會被?
答:裝箱。
 
86. 類成員有 _____ 種可訪問形式?
答:  this.;new Class().Method;
 
87.public static const int A=1;  這段代碼有錯誤麼?是什麼?
答:  const 不能用 static  修飾。
 
88.float f=-123.567F; int i=(int)f;i  的值如今是  _____?
答:  -123
 
89. 委託聲明的關鍵字是 ______?
答:  delegate.
 
90. sealed 修飾的類有什麼特色?
答:密封,不能繼承。
 
91. Asp.net 中全部的自定義用戶控件都必須繼承自  ________?
答:  Control
 
92. .Net 中全部可序列化的類都被標記爲  _____?
答:  [serializable]
 
93. .Net 託管代碼中咱們不用擔憂內存漏洞,這是由於有了  ______?
答:  GC
 
94. 下面的代碼中有什麼錯誤嗎?  _______
     using System;
     class A
     {
          public virtual void F(){
              Console.WriteLine("A.F");
           }
      }
      abstract class B:A
       {
           public abstract override void F();   答: abstract override  是不能夠一塊兒修飾  .
       }                                           // new public abstract void F();
 
95. 當類 T 只聲明瞭私有實例構造函數時,則在  T 的程序文本外部, ___ 能夠 ___  (能夠  or  不能夠)從  T 派生出新的類,不能夠  ____ (能夠  or  不能夠)直接建立  T 的任何實例。
答:不能夠,不能夠。
 
96. 下面這段代碼有錯誤麼?
    switch (i){
    case():         答: //case() 條件不能爲空
        CaseZero();
        break;
    case 1:
        CaseOne();
        break;
    case 2:
        dufault;    答: //wrong ,格式不正確
        CaseTwo();
        break;
   }
 
97. .Net 中,類  System.Web.UI.Page  能夠被繼承麼?
答:能夠。
 
98..net  的錯誤處理機制是什麼?
答:  .net 錯誤處理機制採用 try->catch->finally 結構,發生錯誤時,層層上拋,直到找到匹配的  Catch 爲止。
 
99. 利用 operator 聲明且僅聲明瞭  == ,有什麼錯誤麼 ?
答:要同時修改  Equale GetHash() ?  重載了 "=="  就必須重載  "!="
 
100. .net   C# or vb.net )中如何用戶自定義消息,並在窗體中處理這些消息。
答:在  form 中重載 DefWndProc  函數來處理消息  :
protected override void DefWndProc ( ref System.WinForms.Message m )
{
  switch(m.msg)
  {
    case WM_Lbutton :
    ///string   MFC 中的 CString  Format 函數的使用方法有所不一樣
    string message = string.Format(" 收到消息 !  參數爲 :{0},{1}",m.wParam,m.lParam);
    MessageBox.Show(message);/// 顯示一個消息框
    break;
    case USER:
     處理的代碼
    default:
    base.DefWndProc(ref m);/// 調用基類函數處理非自定義消息。
    break;
  }
}
 
101. .net   C# or vb.net )中如何取消一個窗體的關閉。
答:  private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
   {
      e.Cancel=true;
   }
 
102. .net   C# or vb.net )中, Appplication.Exit  仍是  Form.Close 有什麼不一樣?( winform 題目非 asp.net  題目)
答:一個是退出整個應用程序,一個是關閉其中一個  form
 
103. C# 中有一個  double 型的變量,好比 10321.5 ,好比 122235401.21644  ,做爲貨幣的值如何按各個不一樣國家的習慣來輸出。好比美國用  $10,321.50 $122   235 401.22 而在英國則爲£  10  321.50 和£ 122  235  401.22
答:  System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US");
    //System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB"); 爲英          貨幣類型
    decimal y = 9999999999999999999999999999m;
    string str = String.Format(MyCulture,"My amount = {0:c}",y);
 
104. 某一密碼僅使用 K L  M N  O 5  個字母,密碼中的單詞從左向右排列,密碼單詞必須遵循以下規則:
1           密碼單詞的最小長度是兩個字母,能夠相同,也能夠不一樣
2          K  不多是單詞的第一個字母
3           若是 L 出現,則出現次數不止一次
4          M  不能使最後一個也不能是倒數第二個字母
5          K  出現,則  N 就必定出現
6          O  若是是最後一個字母,則  L 必定出現
問題一:下列哪個字母能夠放在  LO 中的 O  後面,造成一個  3 個字母的密碼單詞?
  A) K   B)L   C) M    D) N
答案  :B
 
問題二:若是能獲得的字母是  K L  M ,那麼可以造成的兩個字母長的密碼單詞的總數是多少?
  A)1   B)3    C)6     D 9 
答案  :A
 
問題三:下列哪個是單詞密碼?
  A) KLLN   B) LOML   C) MLLO   D)NMKO
答案  :C
 
8. 62-63=1  等式不成立,請移動一個數字(不能夠移動減號和等於號),使得等式成立,如何移動?
答案  :62 移動成 2  6 次方
 
105. 對於這樣的一個枚舉類型:
enum Color:byte
{
  Red,
  Green,
  Blue,
  Orange
}
答:  string[] ss=Enum.GetNames(typeof(Color));
    byte[] bb=Enum.GetValues(typeof(Color));
 
106. C#    property    attribute  的區別,他們各有什麼用處,這種機制的好處在哪裏?
答:  attribute: 自定義屬性的基類 ;property : 類中的屬性
 
107.C#  能否對內存進行直接的操做?
答:在  .net 下, .net  引用了垃圾回收(  GC )功能,它替代了程序員     不過在 C#  中,不能直接實現  Finalize 方法,而是在析構函數中調用基類的  Finalize() 方法
 
108.ADO  NET 相對於 ADO  等主要有什麼改進?
答:  1:ado.net 不依賴於 ole db  提供程序  , 而是使用 .net  託管提供的程序  ,2: 不使用 com3:  不在支持動態遊標和服務器端遊  4:, 能夠斷開 connection  而保留當前數據集可用  5: 強類型轉換  6:xml 支持
 
109. 寫一個 HTML 頁面,實現如下功能,左鍵點擊頁面時顯示  您好 ,右鍵點擊時顯示  禁止右鍵 。並在 2  分鐘後自動關閉頁面。
答:  <script language=javascript>
 setTimeout('window.close();',3000);
 function show()
 {
  if (window.event.button == 1)
  {
   alert("  ");
  }
  else if (window.event.button == 2)
  {
   alert("  ");
  }
 }
</script>
 
110. 大概描述一下 ASP NET  服務器控件的生命週期
答:初始化     加載視圖狀態    處理回發數據     加載    發送回發更改通知     處理回發事件    預呈現     保存狀態     呈現    處置    卸載 
 
111.Anonymous Inner Class (  匿名內部類  )  是否能夠 extends( 繼承 )  其它類,是否能夠  implements( 實現 )interface( 接口  )?
答:不能,能夠實現接口
 
112.Static Nested Class    Inner Class 的不一樣,說得越多越好
答:  Static Nested Class 是被聲明爲靜態( static )的內部類,它能夠不依賴於外部類實例被實例化。而一般的內部類須要在外部類實例化後才能實例化。
 
113. &   && 的區別。
& 是位運算符,表示按位與運算,  && 是邏輯運算符,表示邏輯與(  and .
 
114.HashMap  Hashtable 的區別。
答:  HashMap Hashtable  的輕量級實現(非線程安全的實現),他們都完成了  Map 接口,主要區別在於 HashMap 容許空(  null )鍵值( key  , 因爲非線程安全,效率上可能高於  Hashtable.
 
115.short s1 = 1; s1 = s1 + 1;  有什麼錯  ? short s1 = 1; s1 += 1; 有什麼錯 ?
答:  short s1 = 1; s1 = s1 + 1;  s1+1  運算結果是  int 型,須要強制轉換類型)
short s1 = 1; s1 += 1;  (能夠正確編譯)
 
116.Overloaded  的方法是否能夠改變返回值的類型  ?
答:  Overloaded 的方法是能夠改變返回值的類型。
 
117.error  exception 有什麼區別 ?
答:  error  表示恢復不是不可能但很困難的狀況下的一種嚴重問題。好比說內存溢出。不可能期望程序能處理這樣的狀況。
exception  表示一種設計或實現問題。也就是說,它表示若是程序運行正常,從不會發生的狀況。
 
118.<%# %>    <%  %>  有什麼區別?
答:  <%# %> 表示綁定的數據源
    <% %>  是服務器端代碼塊
 
119. 你以爲 ASP.NET 2.0   VS2005 )和你之前使用的開發工具(  .Net 1.0 或其餘)有什麼最大的區別?你在之前的平臺上使用的哪些開發思想(  pattern / architecture )能夠移植到 ASP.NET 2.0   (  或者已經內嵌在  ASP.NET 2.0 )
答:  1  ASP.NET 2.0  把一些代碼進行了封裝打包  , 因此相比 1.0  相同功能減小了不少代碼  .
    2   同時支持代碼分離和頁面嵌入服務器端代碼兩種模式  , 之前 1.0  版本 ,.NET 提示幫助只有在分離的代碼文件  ,           在頁面嵌入服務器端代碼得到幫助提示  ,
    3  代碼和設計界面切換的時候  ,2.0 支持光標定位 . 這個我比較喜歡
    4  在綁定數據  , 作表的分頁 .UPDATE,DELETE, 等操做均可以可視化操做  , 方便了初學者
    5  ASP.NET 中增長了  40 多個新的控件 , 減小了工做量
 
120. 重載與覆蓋的區別?
答:  1 、方法的覆蓋是子類和父類之間的關係,是垂直關係;方法的重載是同一個類中方法之間的關係,是水平關係
    2  、覆蓋只能由一個方法,或只能由一對方法產生關係;方法的重載是多個方法之間的關係。
    3  、覆蓋要求參數列表相同;重載要求參數列表不一樣。
    4  、覆蓋關係中,調用那個方法體,是根據對象的類型(對象對應存儲空間類型)來決定;重載關係,是根據調          用時的實參表與形參表來選擇方法體的。
 
121. 描述一下 C# 中索引器的實現過程,是否只能根據數字進行索引?
答:不是。能夠用任意類型。
 
122. C #中,  string str = null    string str = " "  請儘可能使用文字或圖象說明其中的區別。
答:  null 是沒有空間引用的;
    " "  是空間爲  0 的字符串;
 
123. 分析如下代碼,完成填空
string strTmp = "abcdefg  某某某 ";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代碼執行完後,  i= j=
答:  i=13.j=10
 
124.SQLSERVER  服務器中,給定表  table1  中有兩個字段  ID LastUpdateDate  ID 表示更新的事務號,  LastUpdateDate 表示更新時的服務器時間,請使用一句  SQL 語句得到最後更新的事務號
答:  Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)
 
125. 分析如下代碼。
public static void test(string ConnectString)
 
{
 
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = ConnectString;
try
 
{
conn.Open();
…….
}
catch(Exception Ex)
{
MessageBox.Show(Ex.ToString());
}
finally
{
 
if (!conn.State.Equals(ConnectionState.Closed))
conn.Close();
}
}
請問
 
1) 以上代碼能夠正確使用鏈接池嗎?
 
答:回答:若是傳入的  connectionString 是如出一轍的話,能夠正確使用鏈接池。不過如出一轍的意思是,連字符的空格數,順序徹底一致。
 
2) 以上代碼所使用的異常處理方法,是否全部在  test 方法內的異常均可以被捕捉並顯示出來?
 
答:只能夠捕捉數據庫鏈接中的異常吧  .  finally  中, catch 中,若是有別的可能引起異常的操做,也應該用  try,catch 。因此理論上並不是全部異常都會被捕捉。)
 
126. 公司要求開發一個繼承  System.Windows.Forms.ListView  類的組件,要求達到如下的特殊功能:點擊  ListView 各列列頭時,能按照點擊列的每行值進行重排視圖中的全部行  ( 排序的方式如 DataGrid 類似 )  。根據您的知識,請簡要談一下您的思路:
答:根據點擊的列頭  , 包該列的 ID  取出 , 按照該  ID 排序後 ,  在給綁定到  ListView
 
127. 什麼是 WSE ?目前最新的版本是多少?
答:  WSE (Web Service Extension)  包來提供最新的 WEB 服務安全保證,目前最新版本  2.0
 
128. 在下面的例子裏
     using System;
     class A
     {
          public A(){
                PrintFields();
           }
          public virtual void PrintFields(){}
      }
      class B:A
      {
           int x=1;
           int y;
           public B(){
               y=-1;
           }
           public override void PrintFields(){
               Console.WriteLine("x={0},y={1}",x,y);
           }
當使用  new B() 建立 B 的實例時,產生什麼輸出?
答:  X=1,Y=0
 
129. 下面的例子中
 
     using System;
     class A
     {
          public static int X;
          static A(){
               X=B.Y+1;
          }
      }
      class B
      {
           public static int Y=A.X+1;
           static B(){}
           static void Main(){
                Console.WriteLine("X={0},Y={1}",A.X,B.Y);
           }
       }
產生的輸出結果是什麼?
答:  x=1,y=2
 
130.abstract class  interface 有什麼區別 ?
答:聲明方法的存在而不去實現它的類被叫作抽象類(  abstract class ),它用於要建立一個體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的狀況。不能建立  abstract  類的實例。然而能夠建立一個變量,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。  Abstract  類的子類爲它們父類中的全部抽象方法提供實現,不然它們也是抽象類爲。取而代之,在子類中實現該方法。知道其行爲的其它類能夠在類中實現這些方法。
接口(  interface )是抽象類的變體。在接口中,全部方法都是抽象的。多繼承性可經過實現這樣的接口而得到。接口中的全部方法都是抽象的,沒有一個有程序體。接口只能夠定義  static final 成員變量。接口的實現與子類類似,除了該實現類不能從接口定義中繼承行爲。當類實現特殊接口時,它定義(即將程序體給予)全部這種接口的方法。而後,它能夠在實現了該接口的類的任何對象上調用接口的方法。因爲有抽象類,它容許使用接口名做爲引用變量的類型。一般的動態聯編將生效。引用能夠轉換到接口類型或從接口類型轉換,  instanceof  運算符能夠用來決定某對象的類是否實現了接口。
 
這些是  C#,ASP.NET, 數據庫面試題,所有從網上收集而來,經整理而發表,但願給你們帶來幫助,有錯誤的地方還請各位高手指出,在下傾聽指教。
 
 

如下是083 月新增面試題javascript

1   asp.net   web 應用程序獲取數據的流程:
A.Web Page   B.Fill  C.Sql05  D.Data Sourse      E.DataGrid  F.DataSet  G.Select and Connect
Commands  H.Sql Data Adapter
 
答案:  a,e,d,f,h,g,b,c
 
2   Asp.net 執行模式中各組件填入到對應位置:
A.Output Cache  B.Parser  C.Assembly Cache  D.IE  E.Memory  F.Compiler
WebPage 被第一次請求時:
D->__->__->__->__->D
WebPage 被第二次請求時:
D->__->__->D
WebPage 的頁面輸出緩存被打開時:
D->__->D
 
答案:
WebPage 被第一次請求時:
D->_b_->_f_->_a_->_e_->D
WebPage 被第二次請求時:
D->_b_->_e_->D
WebPage 的頁面輸出緩存被打開時:
D->_a_->D
 
3 .兩個數組   [n] [m]  n>m   第一個數組的數字無序排列  第二個數組爲空  取出第一個數組的最小值  放到第二個數組中第一個位置 ,  依次類推 .  不能改變  A 數組,不能對之進行排序,也不能夠倒到別的數組中。
  int[] a = { -20, 9, 7, 37, 38, 69, 89, -1, 59, 29, 0, -25, 39, 900, 22, 13, 55 };
            int[] b = new int[10];
            int intTmp = a[0], intMaxNum;
            for (int i = 0; i < a.Length; i++)
            {
                intTmp = a[i] > intTmp ? a[i] : intTmp;
            }
            intMaxNum = intTmp;
            for (int j = 0; j < b.Length; j++)
            {
 
                for (int i = 0; i < a.Length; i++)
                {
                    if (j == 0)
                        intTmp = a[i] < intTmp ? a[i] : intTmp;
                    else
                    {
                        if (a[i] > b[j - 1])
                            intTmp = a[i] < intTmp ? a[i] : intTmp;
                    }
                }
                b[j] = intTmp;
                intTmp = intMaxNum;
            }
            foreach (int bb in b)
            {
                Console.WriteLine(bb);
 
            }
            Console.ReadLine();
 
4 .請將字符串 "I am a student" 按單詞逆序輸出  "student a am I"
string S = "I am a student";
            char[] C = new char[] { ' '};
            string[] n =S.Split(C);
            int length = S.Length;
            for (int i =length-1 ; i >=0; i--)
            {
                Console.Write(n[i]);
                if (i != 0)
                {
                    Console.Write(" ");
                }
            }
相關文章
相關標籤/搜索