啦啦啦 啦啦 啦 啦 啦 啦啦 啦 啦 啦
1.在C#中,关于文件操作相关的类说法正确的是(AB)(选择两项)。
A. FileInfo类提供了用于操作文件的实例方法
B. File类提供了用于操作文件的静态方法
C. Directory类提供了操作目录的实例方法 (Directory类提供了操作目录的静态方法)
D. DirectoryInfo类提供了操作目录的静态方法 (DirectoryInfo类提供操作目录的实例方法)
2.在C#中,如果要实现父类的成员在父类及其子类中可以访问,而且他类中无法访问,应使用(D)修饰
符修饰该成员。
A.public
B.private
C.base
D.protected (受保护的)
3.以下C#的数据类型中,(AB)属于值类型。
A.bool
B.struct
C.class (在C#中类是引用类型)
D.string (字符串也是引用类型)
4.在C#中,以下(BD)集合是通过键和值来组织。
A.ArrayList ()
B.Hashtable
C.List<T>
D.Dictionary<k,v>
5.下列关于List<T> 的说法错误的是(D)。
A.List<T>类的用法类似于ArrayList
B.List<T>要比ArrayList有更大程度的类型安全性
C.访问List<T>中的元素是无须做类型转换
D.List<T>中的T只能是值类型 (string也可以)
6.在C#中,以下Teacher类中的构造函数的写法正确的是(AC)(选择两项)。
A. public Teacher(){}
B. private void Teacher(){} 一个私有的Teacher方法,返回值为空
C. private Teacher (int id,string name){}
D. public int Teacher (int id,string name){} 返回值为int类型的带参方法
7.在.NET中创建文件流的时候,需要指定文件模式FileMode的值,下面对FileMode的值解释正确的是(AC)
(选择两项)
A:Create:用指定的名称新建文件。如果文件存在,则覆盖原有的
B:CreateNew:新建一个文件。如果已存在,则不做处理 (CreateNew 新建一个文件。如果文件存在会发生异常,提示文件已经存在。)
C:Open:打开一个文件。文件必须存在,否则报错
D:OpenOrCreate:打开或新建一个文件。如果文件不存在,则新建但不打开它 (OpenOrCreate:如果文件不存在,则用指定的名称新建一个文件并打开它)
8.在.NET中,下列关于Directory类和DirectoryInfo类说法正确的是(A)
A:Directory类的方法都是静态的,可以直接调用
B:DirectoryInfo类的方法都是静态的,可以直接调用
C:Directory类和DirectoryInfo类都可以用Exist()方法检验指定目录是否存在
D:Directory类的GetFile()方法返回的是指定目录下的FileInfo对象数组
解析:
Directory类的方法都是静态的,可以直接调用,DirectoryInfo类的方法不是静态的,所以要通过实例化调用。Directory包含Exist()方法,DirectoryInfo包含Exist属性,Directory类的GetFiles()方法返回指定目录下的文件名字字符串数组
8.在.NET中,下面关于.NET Framework描述错误的是(D)
A. .NET框架可以安装在Wiondows操作系统上
B. .NET框架是运行在操作系统之上的
C. .NET框架支持C#,VB.NET,C++等开发语言
D. .NET应用程序不能运行在Linux上
9.在以下C#代码中,横线处填写(BD)不会出错。<选择二项>
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]
10.在C#代码中,以下代码输出的结果为(C)
class Program
{
int num=10;
static void Main(string[]args)
{
Console.WriteLine(num++);
}
A:11
B:10
C:编译报错
D:运行报错
解析:
静态成员只能通过类名调用,在静态方法中一般只能调用静态的成员,
非静态成员必须通过对象去调用。因此程序编译不通过
10.在.NET中使用文件的时候,会经常遇到乱码的问题,下面选项中关于乱码说法正确的是(C)
A:处理乱码使用Encoding,Encoding是一个枚举类型
B:在写入文件内容的时候指定其编码格式,可以避免出现乱码
C:在读取文件的时候,指定解析文件的编码格式,可以解决乱码问题
D:Encoding位于System.Data命名空间
解析:
使用文件出现乱码本质是文件保存的编码和读取时使用的编码方式不一致。写入文件指定编码格式,不能解决问题,在读取文件时,指定和文本保存时一致的编码格式,则不会出现乱码;Encoding位于System.Text命名空间
11.在C#,关于泛型集合和ArrayList的说法正确的是(C)
A.向ArrayList中添加元素时,只能添加一种类型的元素
B.从ArrayList中读取元素时不需要做类型转换
C.使用泛型集合需引用System.Collections.Generic命名空间
D.ArrayList添加、读取时无须装箱、拆箱
12.在C#中,使用集合初始化器初始化集合的用法正确的是(BC)<选择二项>
A://SE类为已经定义好的类
List<SE>list=new List<SE>(new SE(),new SE()); (初始化多个元素用{}而不是())
B://SE类为已经定义好的类
List<SE>list=new List<SE>{new SE(),new SE()};
C:ArrayList list=new ArrayList{1,2};
D:ArrayList list=new ArrayList(){1;2}; (多个元素用逗号而不是分号分割)
13.在C#中,下列关于泛型集合Dictionary<K,V>说法错误的是(B)。
A.Dictionary<K,V>访问元素无须类型转换
B.添加、读取值类型元素需要拆箱、装箱 (无需装箱,拆箱)
C.可以通过Key获取Value
D.Dictionary<K,V>是通过键、值对保存元素的
14.在C#中,定义Apple类为Fruits类的子类,下列语句不能用于将Fruits类型转换为Apple类型的是(AD)<选择二项>
A:Fruits fru=new Apple();
Apple app=fru is Apple; (is用于判定)
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); (Convert不能用在这里)
15.关于C#的base关键字,说法错误的是(A)
A.在父类中用base关键字修饰的成员,子类都base来访问 (base 不是修饰关键字)
B.base关键字可以调用父类的属性
C.base关键字可以调用父类的方法
D.base关键字可以调用父类的构造函数
16.在C#,关于装箱拆箱的说法正确的(AD)。
A.将值类行转换为引用类型的过程称为装箱,反之,称为拆箱
B.拆箱是隐式进行的,不需要显示转换
C.在实际开发中,装箱和拆箱操作会提高程序的性能
D.读取泛型集合元素是无需拆箱装箱
17.运行以下C#代码,则输出结果是(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:程序编译错误,什么也不输出
解析:
Boy.Like(string)没有找到适合的方法来重写