第一套:用友軟件筆試題目
1、 面向?qū)ο蟮恼Z(yǔ)言具有___封裝__性、___繼承__性、___多態(tài)_性。
2、 能用foreach遍歷訪問(wèn)的對(duì)象需要實(shí)現(xiàn) __ IEnumerable __接口或聲明__GetEnumerator __方法的類(lèi)型。
3、 以下敘述正確的是:
A. 接口中可以有虛方法。 B. 一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。
C. 接口不能被實(shí)例化。 D. 接口中可以包含已實(shí)現(xiàn)的方法。
4、 簡(jiǎn)述 private、 protected、 public、 internal 修飾符的訪問(wèn)權(quán)限。
Private 私有成員:只有本類(lèi)內(nèi)部可以訪問(wèn)
Protected 受保護(hù)成員:只有本類(lèi)和本類(lèi)的子類(lèi)可以訪問(wèn)
Public 公有成員:完全公開(kāi),沒(méi)有訪問(wèn)限制
Internal :在同一命名空間下可以訪問(wèn)
5、寫(xiě)出一條Sql語(yǔ)句: 取出表A中第31到第40記錄(SQLServer, 以自動(dòng)增長(zhǎng)的ID作為主鍵, 注意:ID可能不是連續(xù)的。)
select top 10 from A where id not in (select top 30 id from A)
5、 DataReader與DataSet有什么區(qū)別?
(1)、dataset表示一個(gè)數(shù)據(jù)集,是數(shù)據(jù)在內(nèi)存中的緩存。 可以包括多個(gè)表;
(2)、dataset連接數(shù)據(jù)庫(kù)時(shí)是非面向連接的。把表全部讀到Sql中的緩沖池,并斷開(kāi)于數(shù)據(jù)庫(kù)的連接
(3)、datareader 連接數(shù)據(jù)庫(kù)時(shí)是面向連接的。讀表時(shí),只能向前讀取,讀完數(shù)據(jù)后有用戶決定是否斷開(kāi)連接。
6、 簡(jiǎn)述什么是裝箱?
把一個(gè)值類(lèi)型的數(shù)據(jù)轉(zhuǎn)換為引用類(lèi)型的數(shù)據(jù)的過(guò)程叫裝箱。
7、 下列選項(xiàng)中,(c)是引用類(lèi)型。
a) enum類(lèi)型 b) struct類(lèi)型
c) string類(lèi)型 d) int類(lèi)型
8、 一個(gè)數(shù)據(jù)庫(kù)中的一個(gè)表中有 year 、salary這兩個(gè)字段,原表中數(shù)據(jù)如原表,請(qǐng)用SQL查詢出結(jié)果顯示的數(shù)據(jù):
原表中數(shù)據(jù):
year salary
-----------------------------------------
2000 1000
2001 2000
2002 3000
2003 4000
結(jié)果表中數(shù)據(jù):
year salary
------------------------------------------
2000 1000
2001 3000
2002 6000
2003 10000
寫(xiě)出SQL語(yǔ)句如下:
create table test([year] int ,salary int)
insert test(year,salary) values(2000,1000)
insert test(year,salary) values(2001,2000)
insert test(year,salary) values(2002,3000)
insert test(year,salary) values(2003,4000)
select t1.year, (select sum(salary) from test as t2 where t2.year<=t1.year) as salary from test t1 order by year asc
9、運(yùn)行下列代碼:
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()時(shí),輸出的結(jié)果是:x=?;y=?
x=1;y=0
10、用C#寫(xiě)出singleton(單例)模式的例子?
<一>、我對(duì)單例模式的理解說(shuō)明如下:
單例模式的意圖是:保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)。
它的工作原理是:用一個(gè)特殊的方法來(lái)實(shí)例化所需的對(duì)象。其中最關(guān)鍵的就是這個(gè)特殊的方法:
(1)、調(diào)用這個(gè)方法時(shí),檢查對(duì)象是否已經(jīng)實(shí)例化。如果已經(jīng)實(shí)例化,該方法僅返回對(duì)該對(duì)象的一個(gè)引用。如果尚未實(shí)例化,該方法就實(shí)例化該對(duì)象并返回對(duì)此新實(shí)例的一個(gè)引用。
(2)、為了確保這是實(shí)例化此類(lèi)型對(duì)象的唯一方法,我將這個(gè)類(lèi)的構(gòu)造函數(shù)定義為保護(hù)的或者私有的。
<二>、詳細(xì)實(shí)例如下:
using System;
class Singleton
{
private static Singleton instance;
protected Singleton() {}
public static Singleton Instance()
{
if( instance == null )
instance = new Singleton();
return instance;
}
}
public class Client
{
public static void Main()
{
Singleton s1 = Singleton.Instance();
Singleton s2 = Singleton.Instance();
if( s1 == s2 )
Console.WriteLine( "The same instance" );
}
}