.Net筆試(二)


1.XML Web Service的原理:利用SOAP(簡單對象訪問協議)在http上執行遠程方法的調用,也可以使用WSDL(web服務描述語言)來完成完整的描述web服務,然后用UDDI注冊各個服務提供商提供的服務

 

2..net Remoting 的工作原理: 服務器端向客戶端發送一個進程編號,一個程序域編號,以確定對象的位置

 

3.PDB是用於保存調試和項目狀態信息的文件,在debug的時候將產生pdb文件,調試的時候應該放在和對應應用程序集相同的目錄

 

4.反射和序列化

   反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態地創建類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。然后,可以調用類型的方法或訪問其字段和屬性。

 

  序列化:序列化是將對象轉換為容易傳輸的格式的過程。例如,可以序列化一個對象,然后使用 HTTP 通過 Internet 在客戶端和服務器之間傳輸該對象。在另一端,反序列化將從該流重新構造對象。

 

5.對象一致是指兩個對象是同一對象,引用相同;對象相等是指兩個對象的值相等,但引用不一定相同

  a.Equals(b)表示a與b一致, a==b表示a與b的值相等

 

6.webconfig重要節點:

  system.web 系統配置

  compilation 動態調試編譯設置

  customErrors 自定義錯誤信息設置

  authentication 身份驗證,該節設置應用程序的身份驗證策略

  authorization 授權,此節點設置應用程序的授權策略

 

7.上下文對象是指HttpContext類的Current 屬性,當我們在一個普通類中要訪問內置對象(Response,Request,Session,Server,Appliction等)時就要以使用此對象

 

 

9.一個長度為10000的字符串,通過隨機從a-z中抽取10000個字符組成。請用c#語言編寫主要程序來實現。

using System.Text; 
StringBuilder sb = new StringBuilder(0, 10000); 
string strABC = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"; 
string[] ABC = strABC.Split(','); 
int len = ABC.Length; 
Random rd = new Random(); 
for (int i = 0; i < 10000; i++) 
{ 
  sb.Append(ABC[rd.Next(len)]); 
}

 

10.產生一個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];

 

11.用C#寫一段選擇排序算法,要求用自己的編程風格。

    private int min; 
    public void xuanZhe(int[] list)//選擇排序 
    { 
        for (int i = 0; i < list.Length - 1; i++) 
        { 
            min = i;
            for (int j = i + 1; j < list.Length; j++) 
            { 
                if (list[j] < list[min])

                    min = j;

            }
            int t = list[min];

            list[min] = list[i];

            list[i] = t;

        } 
    }

 

12.寫一個函數計算當參數為N的值:1-2+3-4+5-6+7……+N

public int returnSum(int n) 
    { 
        int sum = 0; 
        for (int i = 1; i <= n; i++) 
        { 
            int k = i; 
            if (i % 2 == 0) 
            { 
                k = -k; 
            } 
            sum = sum + k; 
        } 
        return sum; 
    }

 方法二:

對於1-2+3-4+5-6+7+...+n,可以分為2種情況,分別為:
 
(1)當n是偶數時,1-2+3-4+5-6+7+...+n=(1-2)+(3-4)+(5-6)+……+[(n-1)-n]
                                  =-1×(n/2
                                  =-n/2
 
(2)當n是奇數時,1-2+3-4+5-6+7+...+n=(1-2)+(3-4)+(5-6)+……+[(n-2)-(n-1)]+n
                                    =-1×(n-1)/2 +n
                                    =(n+1)/2
因此,最終的算法如下:
public static int CalculateCrossNumberSequence(int index)
{ 
 if (index <= 0)
  {
     return 0;
  }
     return index % 2 == 0 ? -index / 2 : (index + 1) / 2;
}

 13.寫出一條Sql語句:取出表A中第31到第40記錄(SQLServer,以自動增長的id作為主鍵,注意:id可能不是連續的)

解1:select top10 * from A  where id not in(select top30 id from A)

解2:select top10 * from A where id >(select Max(id) from (select top30  id from A ) as A)

 

 14.有一張表tb有A、B、C三列?如何寫一條sql語句實現如下功能:如果A>B 則顯示A,B>C則選出B

select case when a>b then a when b>c then b else c end as result from tb

 

 15.簡單說明一下泛型的有什么好處?

   泛型:通過參數化類型來實現在同一份代碼上操作多種數據類型;利用“參數化類型”將類型抽象化,從而實現靈活的復用

   好處是:類型安全、減少拆箱裝箱、提高性能和質量、減少重復性的編程任務

 

16.什么是sql注入?

   1' or 1=1

 

 

 
 
 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM