C#整理面試試題分類以及sql數據庫(含答案)

1C# property attribute的區別,他們各有什麼用處,這種機制的好處在哪裏?
javascript

propertyattribute漢語都稱之爲屬性。不過property是指類向外提供的數據區域。而attribute則是描述對象在編譯時或運行時屬性的。這二者是有本質區別的。
2 .
列舉ASP.NET 頁面之間傳遞值的幾種方式。java

1.使用QueryString, ....?id=1; response. Redirect().... web

2.使用Session變量面試

3.使用Server.Transfer算法

3. 一列數的規則以下: 112358132134...... 求第30位數是多少, 用遞歸算法實現。
public class MainClasssql

    {數據庫

        //主函數調用輸出低30的數值編程

        public static void Main()安全

        {服務器

            Console.WriteLine(Foo(30));

            Console.ReadLine();

        }

        //方法封裝,參數爲第幾個,求第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.請編程遍歷頁面上全部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 ;

}

}

7.在下面的例子裏
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

8.什麼是裝箱和拆箱?
從值類型接口轉換到引用類型裝箱。從引用類型轉換到值類型拆箱。

例如:

裝箱: int i=0; Object obj=i;

拆箱: int i=0; Object obj=i;
int j=(int)obj;

9經常使用的調用WebService的方法有哪些?
1.使用WSDL.exe命令行工具。

2.使用VS.NET中的Add Web Reference菜單選項

10.簡要談一下您對微軟.NET 構架下remotingwebservice兩項技術的理解以及實際中的應用。
服務器端向客戶端發送一個進程編號,一個程序域編號,以肯定對象的位置。

11.公司要求開發一個繼承System.Windows.Forms.ListView類的組件,要求達到如下的特殊功能:點擊

答:根據點擊的列頭,包該列的ID取出,按照該ID排序後,在給綁定到ListView中。

12.能用foreach遍歷訪問的對象須要實現 ________________接口或聲明________________方法的類型。
答:IEnumerable GetEnumerator

13.abstract classinterface有什麼區別?
答:

聲明方法的存在而不去實現它的類被叫作抽象類(abstract class),它用於要建立一個體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的狀況。不能建立abstract 類的實例。然而能夠建立一個變量,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類爲它們父類中的全部抽象方法提供實現,不然它們也是抽象類爲。取而代之,在子類中實現該方法。知道其行爲的其它類能夠在類中實現這些方法。

接口(interface)是抽象類的變體。在接口中,全部方法都是抽象的。多繼承性可經過實現這樣的接口而得到。接口中的全部方法都是抽象的,沒有一個有程序體。接口只能夠定義static final成員變量。接口的實現與子類類似,除了該實現類不能從接口定義中繼承行爲。當類實現特殊接口時,它定義(即將程序體給予)全部這種接口的方法。而後,它能夠在實現了該接口的類的任何對象上調用接口的方法。因爲有抽象類,它容許使用接口名做爲引用變量的類型。一般的動態聯編將生效。引用能夠轉換到接口類型或從接口類型轉換,instanceof 運算符能夠用來決定某對象的類是否實現了接口。

 

14.sleep() wait() 有什麼區別?
答:sleep()方法是使線程中止一段時間的方法。在sleep 時間間隔期滿後,線程不必定當即恢復執行。這是由於在那個時刻,其它線程可能正在運行並且沒有被調度爲放棄執行,除非(a)「醒來」的線程具備更高的優先級

(b)正在運行的線程由於其它緣由而阻塞。

wait()是線程交互時,若是線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,被調對象進入等待狀態,直到被喚醒或等待時間到。

15.如何處理幾十萬條併發數據?.

答:用存儲過程或事務。取得最大標識的時候同時更新..注意主鍵不是自增量方式這種方法併發的時候是不會有重複主鍵的..取得最大標識要有一個存儲過程來獲取.

16.Session有什麼重大BUG,微軟提出了什麼方法加以解決?
答:是iis中因爲有進程回收機制,系統繁忙的話Session會丟失,能夠用Sate serverSQL Server數據庫的方式存儲Session不過這種方式比較慢,並且沒法捕獲SessionEND事件。

17.進程和線程的區別?
答:進程是系統進行資源分配和調度的單位;線程是CPU調度和分派的單位,一個進程能夠有多個線程,這些線程共享這個進程的資源。
18.
請說明在.net中經常使用的幾種頁面間傳遞參數的方法,並說出他們的優缺點。
答:session(viewstate) 簡單,但易丟失

application 全局 cookie 簡單,但可能不支持,可能被僞造

input  type="hidden" 簡單,可能被僞造

url參數 簡單,顯示於地址欄,長度有限

數據庫 穩定,安全,但性能相對弱

 

19.DataReaderDataset有什麼區別?
一個是隻能向前的只讀遊標,一個是內存中的表。

20.軟件開發過程通常有幾個階段?每一個階段的做用?
需求分析,架構設計,代碼編寫,QA,部署

21.什麼叫作SQL注入,如何防止?請舉例說明。
利用sql關鍵字對網站進行攻擊。過濾關鍵字'

22.ADO.net中經常使用的對象有哪些?分別描述一下。
答:Connection 數據庫鏈接對象

Command 數據庫命令

DataReader 數據讀取器

DataSet 數據集

23.寫一個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>

 

數據庫面試題

 

1.一道SQL語句面試題,關於group by表內容:
2005-05-09

2005-05-09

2005-05-09

2005-05-09

2005-05-10

2005-05-10

2005-05-10

若是要生成下列結果, 該如何寫sql語句?
              

2005-05-09 2 2
2005-05-10 1 2
//建立臨時表 2013-06-24 liangjw

create table #tmp(rq varchar(10),shengfu nchar(1))

 

insert into #tmp values('2005-05-09','')

insert into #tmp values('2005-05-09','')

insert into #tmp values('2005-05-09','')

insert into #tmp values('2005-05-09','')

insert into #tmp values('2005-05-10','')

insert into #tmp values('2005-05-10','')

insert into #tmp values('2005-05-10','')

 

1)select rq, sum(case when shengfu='' then 1 else 0 end)'',sum(case when shengfu='' then 1 else 0 end)'' from #tmp group by rq

 

2. 表中有A B C三列,SQL語句實現:當A列大於B列時選擇A列不然選擇B列,當B列大於C列時選擇B列不然選擇C列。
------------------------------------------

select (case when a>b then a else b end ),

 (case when b>c then b esle c end)

 from table_name

 

3.面試題:一個日期判斷的sql語句?
請取出tb_send表中日期(SendTime字段)爲當天的全部記錄?(SendTime字段爲datetime型,包含日期與時間)

select * from tb where datediff(dd,SendTime,getdate())=0

4.有一張表,裏面有3個字段:語文,數學,英語。其中有3條記錄分別表示語文70分,數學80分,英語58分,請用一條sql語句查詢出這三條記錄並按如下條件顯示出來(並寫出您的思路):  
  
大於或等於80表示優秀,大於或等於60表示及格,小於60分表示不及格。  
      
顯示格式:  
      
語文              數學                英語  
      
及格              優秀                不及格    
------------------------------------------

select

 (case when 語文>=80 then '優秀'

         when 語文>=60 then '及格'

else '不及格') as 語文,

 (case when 數學>=80 then '優秀'

         when 數學>=60 then '及格'

else '不及格') as 數學,

 (case when 英語>=80 then '優秀'

         when 英語>=60 then '及格'

else '不及格') as 英語,

from table

5.sqlserver2000中請用sql建立一張用戶臨時表和系統臨時表,裏面包含兩個字段IDIDValues,類型都是int型,並解釋下二者的區別?
------------------------------------------
用戶臨時表:create table #xx(ID int, IDValues int)

系統臨時表:create table ##xx(ID int, IDValues int)

區別:

用戶臨時表只對建立這個表的用戶的Session可見,對其餘進程是不可見的.

當建立它的進程消失時這個臨時表就自動刪除.

全局臨時表對整個SQL Server實例均可見,可是全部訪問它的Session都消失的時候,它也自動刪除.

8.一個表中的Id有多個記錄,把全部這個id的記錄查出來,並顯示共有多少條記錄數。

select id, Count*) from tb group by id having count(*)>1

 select * from(select count(ID) as count from table group by ID)T where T.count>1

相關文章
相關標籤/搜索