手機(jī)網(wǎng)站開(kāi)發(fā)蘋(píng)果5 鍵盤(pán)彈出遮擋網(wǎng)絡(luò)運(yùn)營(yíng)好學(xué)嗎
??
一、單項(xiàng)選擇題
1.short 類型的變量在內(nèi)存中占據(jù)的位數(shù)是 (??? )。
A.? 8?? ?
B. 16?? ?
C. 32
D. 64
?
2.對(duì)千 int[ 4,5]型的數(shù)組 a, 數(shù)組元素 a[2,3] 存在數(shù)組第 (??? )個(gè)位置上。
A.? 11?? ?
B.? 12?? ?
C.? 14?? ?
D.? 15
?
3.設(shè) int 類型變量 x,y,z 的值分別是2、3、6 , 那么執(zhí)行完語(yǔ)句(z=y=x=z) 后他們的值為 (??? )。
A.? 2,3,6 ??
B.? 2,2,2
C.? 6,6,6??
D.? 3,3,3
?
4.以下說(shuō)法中不正確的是 (??? )。
A.構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能有返回值
B.構(gòu)造函數(shù)可以是靜態(tài)的
C. 一個(gè)類只能有一個(gè)構(gòu)造函數(shù)
D.一個(gè)類只能有一個(gè)析構(gòu)函數(shù)
?
5.以下不屬千object 類型的成員方法是 (??? )。
A.ToString()?? ?B.Dispose()?? ?C.Equals()??? .GetType()
?
6.語(yǔ)句ReadLine()方法用來(lái)從控制臺(tái)的鍵盤(pán)上,讀取(??????? ),直到用戶按下Enter鍵它才會(huì)放回。
A.一行字符?? B.一個(gè)字符
7.下面代碼:
X=2;
Y=X++;
Console.Write (X);
Console.Write (Y);
完成后,最后值為:
A.32? B.33? C.23? D.22
?
8.下列能夠被創(chuàng)建對(duì)象的是 (??? )。
A.接口
B.抽象類
C.委托
D.只有私有構(gòu)造函數(shù)的類
?
9. 關(guān)千接口和抽象類,下列說(shuō)法中正確的是 (??? )。
A.接口不能創(chuàng)建對(duì)象,而抽象類可以?? ?
B.接口不能包含字段, 而抽象類可以
C.抽象類中的方法必須是抽象方法?? ?
D.接口中的方法也可以有實(shí)現(xiàn)代碼
?
10.關(guān)于 finally 代碼段,下列是說(shuō)法正確的是 (??? )。
A.僅在程序正常時(shí)執(zhí)行?? ?
B.僅在程序發(fā)生異常時(shí)執(zhí)行
C.在程序發(fā)生異常時(shí)會(huì)被跳過(guò)?? ?
D.無(wú)論程序是否發(fā)生異常都會(huì)被執(zhí)行
11.C#中的值類型分為三種:
A.簡(jiǎn)單類型、結(jié)構(gòu)類型和枚舉類型? B.整數(shù)、小數(shù)、布爾類型? C.結(jié)構(gòu)類型、枚舉類型、類類型
12.C#語(yǔ)言是一種類型安全的、現(xiàn)代的、簡(jiǎn)單的,由C和C++衍生處理的的( ? ? ? )的編程語(yǔ)言。
A.面向接口 ?B.面向過(guò)程 ?C.面向?qū)ο?/u> ?D.面向剖面
13. C#語(yǔ)言是由美國(guó)的哪一個(gè)公司發(fā)明的?
A.谷歌? B.微軟? C.IBM? D.Oracle
14.WriteLine()的方法的作用是:
A.從鍵盤(pán)上接收一個(gè)字符
B.從鍵盤(pán)上接收一行信息
C.將信息輸出到鍵盤(pán)上
D.將信息輸出到屏幕上,并自動(dòng)換行
15.語(yǔ)句Console.WriteLine(“{0:n2}”,12.345) 輸出結(jié)果是: [單選題] *
A.12.345
B.12.3
C.12.35
D.12.34
16.整數(shù)7除以3,商為2,余數(shù)為1,下面說(shuō)法正確的是: *
A.用/取商,用%取余
B.用\取商,用%取余
C.用%取商,用/取余
17.while 語(yǔ)句循環(huán)結(jié)構(gòu)和do...while語(yǔ)句循環(huán)結(jié)構(gòu)的區(qū)別在于:
A.while語(yǔ)句的執(zhí)行效率較高
B.do...while的語(yǔ)句編程程序較復(fù)雜
C.無(wú)論條件是否成功,do...while語(yǔ)句至少執(zhí)行一次循環(huán)體
D.do...while循環(huán)是先執(zhí)行循環(huán)體,后判斷條件表達(dá)式是否成立,而while語(yǔ)句是先判斷條件表達(dá)式,再?zèng)Q定是否執(zhí)行循環(huán)體,兩者的實(shí)際執(zhí)行效果是一樣的
18. 關(guān)于break和continue和goto語(yǔ)句描述正確的:
A.continue語(yǔ)句用于終止并退出當(dāng)前循環(huán)
B.使用break語(yǔ)句只可以跳出外圍最近的一層循環(huán)
C.使用goto語(yǔ)句可以方便地跳出多重循環(huán),因而編程時(shí)盡可能多地使用goto語(yǔ)句
二、填空題
1.一般將類的構(gòu)造方法聲明為( 公有 public? )訪問(wèn)權(quán)限。如果聲明為 private, 就不能創(chuàng)建該類
的對(duì)象。
2.在方法定義中, virtual 含義:(虛方法? )。?? ?
3.C#數(shù)組元素的下標(biāo)從( 0 )開(kāi)始。
4.元素類型為 double 的 2 行 5 列的二維數(shù)組共占用(80)字節(jié)的存儲(chǔ)空間。
5.對(duì)于方法,參數(shù)傳遞分為值傳遞和(引用傳遞)兩種。
6.傳入某個(gè)屬性的 SET 方法的隱含參數(shù)的名稱是(value)。
7.能用 foreach 遍歷訪問(wèn)的對(duì)象需要實(shí)現(xiàn)( IEnumerable) 接口。
8.委托聲明的關(guān)鍵字是 ( delegate ? )。?? ?
9.C#的類不支持多重繼承, 但可以用( 接口 Interface)來(lái)實(shí)現(xiàn)。
10.C#中所有的類型實(shí)質(zhì)上都是從( object?? )類派生而來(lái)的。
?
?
?
三、判斷題(正確打√, 錯(cuò)誤打 X )
1.不能指定接口中方法的修飾符。 (?√? )
2.DotNet 包含兩個(gè)部分,即公共語(yǔ)言運(yùn)行時(shí)和框架類庫(kù)。 (?X?? )
3.在同一行上可以書(shū)寫(xiě)多條語(yǔ)句,每條語(yǔ)句間用分號(hào)分隔。 (√? )
4.在數(shù)據(jù)類型轉(zhuǎn)化時(shí),只能通過(guò)類型轉(zhuǎn)換關(guān)鍵字或 Convert? 類實(shí)現(xiàn)。 (?X?? )
5.在定義數(shù)組時(shí)不允許為數(shù)組中的元素賦值。? (?X?? )
6.定義枚舉時(shí)至少為其中的一個(gè)枚舉成員賦值。 (?X?? )
7.通過(guò)類的繼承,保證對(duì)象品種的傳承;通過(guò)接口繼承,保證對(duì)象技能的增強(qiáng)。 (√? )
8.委托是將方法作為參數(shù)傳遞給另一方法的一種數(shù)據(jù)類型,事件與委托沒(méi)有關(guān)系。? (?X?? )
9.如果要實(shí)現(xiàn)重寫(xiě),在基類的方法中必須使用 virtual 關(guān)鍵字,在派生類的方法中必須使用
override關(guān)鍵字。 (???√ )
10.在 C#類中, this 代表了當(dāng)前類本身。 (??X? )
?
四、讀代碼回答問(wèn)題
1.現(xiàn)實(shí)生活當(dāng)中的插頭(Plug)與插座(Socket),國(guó)家為其建立了國(guó)家標(biāo)準(zhǔn);廠家生產(chǎn)的插頭和插座要和國(guó)家標(biāo)準(zhǔn)匹配;生產(chǎn)廠家雖然有很多,但都要符合國(guó)家標(biāo)準(zhǔn)。廠家的具體工藝及實(shí)現(xiàn)方法,可以有所不同。插頭與插座也許分屬不同品牌,但可以共同作用,可完成插頭與插座的連接匹配及電流傳導(dǎo)相關(guān)測(cè)試。
using System;namespace InterfaceInOutDemo
{interface ISocket{void JoinPlug(IPlug plug);}interface IPlug{int EQuantity { get; set; } }public class Socket:ISocket{void ISocket.JoinPlug(IPlug plug){Console.WriteLine("插座接收到插頭的電流:"+plug.EQuantity);}}public class Plug : IPlug{private int eQuantity;int IPlug.EQuantity{ get{return eQuantity;}set{eQuantity = value;Console.WriteLine("插頭向插座輸出電流:" + eQuantity);}} }class Program{static void Main(string[] args){Plug pg = new Plug();Socket sk = new Socket(); ((IPlug)pg).EQuantity = 120; ((ISocket)sk).JoinPlug(pg); }}
}
請(qǐng)用引喻的方法描述解讀上方的代碼:
?2.下方代碼課堂演練過(guò):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace EventDemo
{//public delegate void MsgHandler(string msg);public class PinDuoDuo{public event Action<string> msgHandler;public void Order(User user){Console.WriteLine("{0}已拼單", user.Name);msgHandler += user.OnMessage;}public void UnOrder(User user){Console.WriteLine("{0}取消拼單", user.Name);msgHandler -= user.OnMessage;}public void ShipGoods(string msg){Console.WriteLine("發(fā)貨");msgHandler?.Invoke(msg);}}public class User{public User(string name){Name = name;}public string Name { get; set; }public void OnMessage(string msg){Console.WriteLine("{0}收到消息:{1}", Name, msg);}}public class Program{ public static void Main(){PinDuoDuo pdd = new PinDuoDuo();User zs = new User("張三");User lisi = new User("李四");User wmz = new User("王麻子");pdd.Order(zs);pdd.Order(lisi);pdd.Order(wmz);pdd.UnOrder(lisi);pdd.ShipGoods("貨已發(fā)出");}}
}
問(wèn)題1:請(qǐng)解釋代碼
Action<string>
的含義.
問(wèn)題2:假如上述代碼是
Func<int,string>
請(qǐng)解釋含義。
問(wèn)題3:請(qǐng)解釋代碼
msgHandler += user.OnMessage;
的含義。
問(wèn)題4: 請(qǐng)解釋代碼
msgHandler?.Invoke(msg);
的含義。
問(wèn)題5:請(qǐng)解釋代碼
?User zs = new User("張三");
的含義。
問(wèn)題6:請(qǐng)解釋代碼
? pdd.Order(zs);
的含義。
問(wèn)題7:請(qǐng)解釋代碼
?pdd.UnOrder(lisi);
的含義。
問(wèn)題8:請(qǐng)解釋代碼
?pdd.ShipGoods("貨已發(fā)出");
的含義。
五.寫(xiě)代碼:
利用循環(huán)語(yǔ)句顯示出 1-100之間同時(shí)能被7整除和能被3整除的數(shù)據(jù)序列(注:只寫(xiě)出Main函數(shù)中的關(guān)鍵代碼即可)。
?
?