《深入.NET平台和C# 编程》内部测试 笔试题
1:在C#中,關(guān)于文件操作相關(guān)的類說法正確的是(AB) <選擇二項(xiàng)>
A:FileInfo類提供了用于操作文件的實(shí)例方法
B:File類提供了用于操作文件的靜態(tài)方法
C:Directory類提供操作目錄的實(shí)例方法
D:DirectoryInfo類提供了操作目錄的靜態(tài)方法
解析:
DirectoryInfo類提供操作目錄的實(shí)例方法
Directory類提供了操作目錄的靜態(tài)方法
?
2:下面的選項(xiàng)(AD)可以導(dǎo)致下面的代碼出現(xiàn)錯(cuò)誤。<選擇二項(xiàng)>
Student s=new Student();
s.Name="Marry";
A:將Student類中的Name屬性設(shè)置為只讀屬性
B:將Student類中的Name屬性設(shè)置為只寫屬性
C:向Student類中添加無參數(shù)的構(gòu)造函數(shù)
D:向Student類中添加有參數(shù)的構(gòu)造函數(shù)
?
?
3:在.NET中創(chuàng)建文件流的時(shí)候,需要指定文件模式FileMode的值,下面對(duì)FileMode的值解釋正確的是(AC)
<選擇二項(xiàng)>
A:Create:用指定的名稱新建文件。如果文件存在,則覆蓋原有的
B:CreateNew:新建一個(gè)文件。如果已存在,則不做處理
C:Open:打開一個(gè)文件。文件必須存在,否則報(bào)錯(cuò)
D:OpenOrCreate:打開或新建一個(gè)文件。如果文件不存在,則新建但不打開它
解析:
B:CreateNew 新建一個(gè)文件。如果文件存在會(huì)發(fā)生異常,提示文件已經(jīng)存在。
D:OpenOrCreate:如果文件不存在,則用指定的名稱新建一個(gè)文件并打開它
?
4:在.NET中使用文件的時(shí)候,會(huì)經(jīng)常遇到亂碼的問題,下面選項(xiàng)中關(guān)于亂碼說法正確的是(C)
A:處理亂碼使用Encoding,Encoding是一個(gè)枚舉類型
B:在寫入文件內(nèi)容的時(shí)候指定其編碼格式,可以避免出現(xiàn)亂碼
C:在讀取文件的時(shí)候,指定解析文件的編碼格式,可以解決亂碼問題
D:Encoding位于System.Data命名空間
解析:
使用文件出現(xiàn)亂碼本質(zhì)是文件保存的編碼和讀取時(shí)使用的編碼方式不一致。寫入文件指定編碼格式,不能解決問題,在讀取文件時(shí),指定和文本保存時(shí)一致的編碼格式,則不會(huì)出現(xiàn)亂碼;Encoding位于System.Text命名空間
?
5:在.NET中,下列關(guān)于Directory類和DirectoryInfo類說法正確的是(A)
A:Directory類的方法都是靜態(tài)的,可以直接調(diào)用
B:DirectoryInfo類的方法都是靜態(tài)的,可以直接調(diào)用
C:Directory類和DirectoryInfo類都可以用Exist()方法檢驗(yàn)指定目錄是否存在
D:Directory類的GetFile()方法返回的是指定目錄下的FileInfo對(duì)象數(shù)組
解析:
Directory類的方法都是靜態(tài)的,可以直接調(diào)用,DirectoryInfo類的方法不是靜態(tài)的,所以要通過實(shí)例化調(diào)用。Directory包含Exist()方法,DirectoryInfo包含Exist屬性,Directory類的GetFiles()方法返回指定目錄下的文件名字字符串?dāng)?shù)組
?
6:在以下C#代碼中,橫線處填寫(BD)不會(huì)出錯(cuò)。<選擇二項(xiàng)>
Dictionary<int,string>dic=new Dictionary<int,string>();
dic.Add(1,"C#OOP");
Console.WriteLine(_____________);
A:dic["C#OOP"]
B:dic[dic.Count]
C:dic[0]
D:dic[1]
?
7:在C#代碼中,以下代碼輸出的結(jié)果為(C)
class Program
{
int num=10;
static void Main(string[]args)
{
Console.WriteLine(num++);
}
A:11
B:10
C:編譯報(bào)錯(cuò)
D:運(yùn)行報(bào)錯(cuò)
解析:
靜態(tài)成員只能通過類名調(diào)用,在靜態(tài)方法中一般只能調(diào)用靜態(tài)的成員,非靜態(tài)成員必須通過對(duì)象去調(diào)用。因此程序編譯不通過
?
8:在C#中,關(guān)于泛型集合和ArrayList的說法正確的是 (C) ? <選擇一項(xiàng)>
A:向ArrayList中添加元素時(shí),只能添加一種類型的元素 <可添加多種類型元素>
B:從ArrayList中讀取元素時(shí)不需要做類型轉(zhuǎn)換 ?<需要進(jìn)行類型轉(zhuǎn)換>
C:使用泛型集合需引用System.Collections.Generic命名空間
D:ArrayList添加、讀取時(shí)無須裝箱、拆箱 ?<如果向ArrayList中添加的元素是值類型,這些元素就都會(huì)裝箱處理轉(zhuǎn)換為Object引用類型,然后保存>
?
9:在C#中,使用集合初始化器初始化集合的用法正確的是(BC)<選擇二項(xiàng)>
A://SE類為已經(jīng)定義好的類
List<SE>list=new List<SE>(new SE(),new SE());
B://SE類為已經(jīng)定義好的類
List<SE>list=new List<SE>{new SE(),new SE()};
C:ArrayList list=new ArrayList{1,2};
D:ArrayList list=new ArrayList(){1;2};
解析:
初始化多個(gè)元素用{}而不是(),所以A錯(cuò)誤,多個(gè)元素用逗號(hào)而不是分號(hào)分割,所以D錯(cuò),至于集合類型后面可以加括號(hào)也可以不加括號(hào),所以BC都可以
?
10:在C#中,以下代碼執(zhí)行的結(jié)果是(B)。
public struct Test
{
? public int num;
}
?
public class Test1
{
public static void Change(Test t1,ref Test t2)
{
t1.num++;
t2.num++;
}
public static void Main()
{
Test t1;
t1.num=1;
Test t2;
t2.num=2;
Change(t1,ref t2);
Console.Write(t1.num+","+t2.num);
}
}
A:1,1
B:1,3
C:2,2
D:2,1
解析:
ref修飾的值類型按照引用類型傳遞,結(jié)構(gòu)屬于值類型;題目中t1沒有用ref修飾,值不改變,t2使用了ref修飾,值會(huì)改變
?
11:在C#中,定義Apple類為Fruits類的子類,下列語句不能用于將Fruits類型轉(zhuǎn)換為Apple類型的是(AD)<選擇二項(xiàng)>
A:Fruits fru=new Apple();
? ? ?Apple app=fru is Apple;
B: Fruits fru=new Apple();
? ? Apple app=fru as Apple;
C: Fruits fru=new Apple();
? ? Apple app=(Apple)fru;
D: Fruits fru=new Apple();
? ? ?fru.Convert(Apple);
解析:
A is 用于判定 D 沒有Convert這個(gè)語法
?
12:下面的C#代碼運(yùn)行的時(shí)候會(huì)出現(xiàn)錯(cuò)誤的是(BC)<選擇二項(xiàng)>
A:ArrayList a1=new ArrayList();
? ? a1.Add(100);
? ? a1.Add(100);
B: Hashtable ht=new Hashtable();
? ? ht.Add("張三",new object());
? ? ht.Add("張三",new object());
C: List<string>list=new List<string>();
? ? string name=list[0];
D: Dictionary<string,object>dict=new Dictionary<string,object>();
? ? ?foreach(onject p in dict.Values){}
解析:
B 、Hashtable 鍵 ?不能出現(xiàn)重復(fù)。
C、 沒有下標(biāo)0
?
13:在C#中,下面代碼的運(yùn)行結(jié)果是(A)
public class Fruit
{
public virtual void Show()
{
Console.WriteLine("水果的味道不同");
}
}
public class Lemon:Fruit
{
public override void Show()
{
Console.WriteLine("檸檬是酸的!");
}
}
class Program
{
static void Main(string[]args)
{
Fruit lemon =new Fruit(); ?<new的是父類對(duì)象,因此輸出的是父類的方法>
lemon.Show();
}
}
A:輸出“水果的味道不同”
B:輸出“檸檬是酸的!”
C:程序不出錯(cuò),但什么也不輸出
D:程序出錯(cuò),提示對(duì)象類型不一致
?
14:運(yùn)行以下C#代碼,則輸出結(jié)果是(D)
public class Child
{
public virtual void Like()
{
Console.WriteLine("孩子喜歡玩具");
}
}
public class Boy:Child
{
public override void Like(string toys)
{
Console.WriteLine("男孩喜歡"+toys);
}
}
class Program
{
static void Main(string[]args)
{
Child child=new Child();
child.Like("玩具手槍");
}
}
A:孩子喜歡玩具
B:男孩喜歡玩具手槍
C:孩子喜歡玩具
? ? 男孩喜歡玩具手槍
D:程序編譯錯(cuò)誤,什么也不輸出
解析:
Boy.Like(string)沒有找到適合的方法來重寫
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/WJ-163/p/5450706.html
總結(jié)
以上是生活随笔為你收集整理的《深入.NET平台和C# 编程》内部测试 笔试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML特殊编码转换
- 下一篇: 链表——逆置