《深入.NET平台和C# 编程》内测纠错记录
1. .NET框架的核心组件包括(BD)(选择两项)
A.CTS (通用类型系统)
B.CLR (公共语言运行时,.NET的基础)
C.CLS (公共语言规范)
D.FCL (框架类库,.NET一个综合性的面向对象集合)
2. 在C#中下列选项说法正确的是(B)。
A.一个类允许有一个以上的父类 (单根性)
B.父类包含公开属性A,则子类构造函数内部可以访问A
C.一个类的继承层次不允许超过3层 (传递性)
D.如果X是Y的子类,Z是Y的父类,则Z是X的子类 (X是子类,Y是父类,Y是Z的子类,X是Z的子类)
3. 在C#中,关于文件操作相关的类说法正确的是(AB)(选择两项)。
A. FileInfo类提供了用于操作文件的实例方法
B. File类提供了用于操作文件的静态方法
C. Directory类提供了操作目录的实例方法 (Directory类提供了操作目录的静态方法)
D. DirectoryInfo类提供了操作目录的静态方法 (DirectoryInfo类提供操作目录的实例方法)
4.关于C#抽象类和抽象方法,以下说法错误的是(C)。
A.定义抽象类和抽象方法时使用abstract修饰
B.抽象方法不能定义方法主体
C.抽象方法和虚方法一样,可以定义在除了密封类之外的所有类之中
D.使用抽象类和抽象方法可以实现多态
5.下列关于List<T> 的说法错误的是(D)。
A.List<T>类的用法类似于ArrayList
B.List<T>要比ArrayList有更大程度的类型安全性
C.访问List<T>中的元素是无须做类型转换
D.List<T>中的T只能是值类型 (string也可以)
6.在C#中,如果要实现父类的成员在父类及其子类中可以访问,而且他类中无法访问,应使用()修饰
符修饰该成员。
A.public
B.private
C.base
D.protected (受保护的)
7.在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类型的带参方法
8.在.NET中,下面关于.NET Framework描述错误的是(D)
A. .NET框架可以安装在Wiondows操作系统上
B. .NET框架是运行在操作系统之上的
C. .NET框架支持C#,VB.NET,C++等开发语言
D. .NET应用程序不能运行在Linux上
9. 在.NET中创建文件流的时候,需要指定文件模式FileMode的值,下面对FileMode的值解释正确的是(AC)
(选择两项)
A:Create:用指定的名称新建文件。如果文件存在,则覆盖原有的
B:CreateNew:新建一个文件。如果已存在,则不做处理 (CreateNew 新建一个文件。如果文件存在会发生异常,提示文件已经存在。)
C:Open:打开一个文件。文件必须存在,否则报错
D:OpenOrCreate:打开或新建一个文件。如果文件不存在,则新建但不打开它 (OpenOrCreate:如果文件不存在,则用指定的名称新建一个文件并打开它)
10.在.NET中使用文件的时候,会经常遇到乱码的问题,下面选项中关于乱码说法正确的是(C)
A:处理乱码使用Encoding,Encoding是一个枚举类型
B:在写入文件内容的时候指定其编码格式,可以避免出现乱码
C:在读取文件的时候,指定解析文件的编码格式,可以解决乱码问题
D:Encoding位于System.Data命名空间
解析:
使用文件出现乱码本质是文件保存的编码和读取时使用的编码方式不一致。写入文件指定编码格式,不能解决问题,在读取文件时,指定和文本保存时一致的编码格式,则不会出现乱码;Encoding位于System.Text命名空间
11.在.NET中,下列关于Directory类和DirectoryInfo类说法正确的是(A)
A:Directory类的方法都是静态的,可以直接调用
B:DirectoryInfo类的方法都是静态的,可以直接调用
C:Directory类和DirectoryInfo类都可以用Exist()方法检验指定目录是否存在
D:Directory类的GetFile()方法返回的是指定目录下的FileInfo对象数组
解析:
Directory类的方法都是静态的,可以直接调用,DirectoryInfo类的方法不是静态的,所以要通过实例化调用。Directory包含Exist()方法,DirectoryInfo包含Exist属性,Directory类的GetFiles()方法返回指定目录下的文件名字字符串数组
12.在以下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]
13.在C#代码中,以下代码输出的结果为(C)
class Program
{
int num=10;
static void Main(string[]args)
{
Console.WriteLine(num++);
}
A:11
B:10
C:编译报错
D:运行报错
解析:
静态成员只能通过类名调用,在静态方法中一般只能调用静态的成员,
非静态成员必须通过对象去调用。因此程序编译不通过
14.在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}; (多个元素用逗号而不是分号分割)
15.在C#中,以下代码执行的结果是(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修饰的值类型按照引用类型传递,结构属于值类型;
题目中t1没有用ref修饰,值不改变,t2使用了ref修饰,值会改变
16.在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不能用在这里)
17.下面的C#代码运行的时候会出现错误的是(BC)<选择二项>
A:ArrayList a1=new ArrayList();
a1.Add(100);
a1.Add(100);
B: Hashtable ht=new Hashtable();
ht.Add("张三",new object()); (Hashtable 键 出现重复)
ht.Add("张三",new object());
C: List<string>list=new List<string>();
string name=list[0]; (无下标0)
D: Dictionary<string,object>dict=new Dictionary<string,object>();
foreach(onject p in dict.Values){}
18.在C#中,选项中的方法跟下面的方法属于重载的是(D)。
public void Add(int a,int b)
A.public int Add(int a,int b)
B.public void AddNum(double a,double b)
C.public void Add(int b,int a)
D.public void Add(int a,double b)
解析:
方法重载是指方法名相同,而参数类型和参数个数不同,在同一个类中,构造函数和普通方法都可以重载
19:在C#中,下面代码的运行结果是(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的是父类对象,因此输出的是父类的方法>
lemon.Show();
}
}
A:输出“水果的味道不同”
B:输出“柠檬是酸的!”
C:程序不出错,但什么也不输出
D:程序出错,提示对象类型不一致
20.运行以下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)没有找到适合的方法来重写
《深入.NET平台和C# 编程》内测纠错记录的更多相关文章
- S2---深入.NET平台和C#编程的完美总结
1.NET简单解说 l 面向对象提升 OOP(Object Oriented Programming)面向对象编程 AOP:(Aspache Oriented Programming):面向切面编 ...
- 深入.net平台和c#编程 学习笔记
深入.net平台和c#编程 一:理解.nteFramwork与c# 1.1,:Microsoft.net框架概述 1.2:.net框架结构 1.3.:c#语言概述 1.4:体验框架类库的强大功能 二: ...
- 使用ReactiveCocoa实现iOS平台响应式编程
使用ReactiveCocoa实现iOS平台响应式编程 ReactiveCocoa和响应式编程 在说ReactiveCocoa之前,先要介绍一下FRP(Functional Reactive Prog ...
- [转]使用ReactiveCocoa实现iOS平台响应式编程
原文:http://www.itiger.me/?p=38 使用ReactiveCocoa实现iOS平台响应式编程 ReactiveCocoa和响应式编程 在说ReactiveCocoa之前,先要介绍 ...
- 《深入.NET平台和C#编程》内部测试题-笔试试卷答案
1) 以下关于序列化和反序列化的描述错误的是( C). a) 序列化是将对象的状态存储到特定存储介质中的过程 b) 二进制格式化器的Serialize()和Deseria ...
- 我们可以用JAX-WS轻松实现JAVA平台与其他编程环境(.net等)的互操作
在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP,在使用JAX-WS过程中,开发者不需要编写任何生成和处理SOAP消息的代码.JAX-WS的运行时实现会将这些API的调用转换 ...
- ROS Learning-029 (提高篇-007 A Mobile Base-05) 控制移动平台 --- (Python编程)控制虚拟机器人的移动(精确的制定目标位置)
ROS 提高篇 之 A Mobile Base-05 - 控制移动平台 - (Python编程)控制虚拟机器人的移动(精确的制定目标位置) 使用 odometry 消息类型 重写 out_and_ba ...
- ROS Learning-028 (提高篇-006 A Mobile Base-04) 控制移动平台 --- (Python编程)控制虚拟机器人的移动(不精确的制定目标位置)
ROS 提高篇 之 A Mobile Base-04 - 控制移动平台 - (Python编程)控制虚拟机器人的移动(不精确的制定目标位置) 我使用的虚拟机软件:VMware Workstation ...
- .NET平台和C#编程的总结
第一章 简单认识.NET框架 (1)首先我们得知道 .NET框架具有两个主要组件:公共语言进行时CLR(Common Language Runtime)和框架类库FCL(Framework ...
随机推荐
- h264 profile & level
转自:http://blog.csdn.net/sphone89/article/details/17492433 H.264 Profiles H.264有四种profile,每个profile支持 ...
- 初识RPC协议
什么是rpc框架 先回答第一个问题:什么是RPC框架? 如果用一句话概括RPC就是:远程调用框架(Remote Procedure Call) 那什么是远程调用? 通常我们调用一个php中的方法,比如 ...
- 第二十一篇:SOUI中的控件注册机制
Win32编程中,用户需要一个新控件时,需要向系统注册一个新的控件类型.注册以后,调用::CreateWindow时才能根据标识控件类型的字符串创建出一个新的控件窗口对象. 为了能够从XML描述的字符 ...
- mybatis 中#和$的区别
#{…}是一个参数标记,将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是1,那么解析成sql时的值为order by " ...
- 外观模式/facade模式/结构型模式
外观模式 为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 外观模式三要素(client-facade-subSystem) 外观角色 ...
- VIM学习笔记
参考: http://linux.chinaunix.net/techdoc/beginner/2009/12/20/1150108.shtml VIM命令大全 光标控制命令 命令 ...
- PrograssBar的setIndeterminateDrawable不起作用
是设置绘制不显示进度的进度条的Drawable对象 使用中发现,在xml中设置IndeterminateDrawable可以正常使用,但是如果需要在代码中更换图片使用setIndeterminateD ...
- 看懂UML类图与时序图
看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图 ...
- .NET C# Tostring() format 格式化字符串大全
C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...
- 简单的c#插件框架
插件式架构,一种全新的.开放性的.高扩展性的架构体系.插件式架构设计近年来非常流行,基于插件的设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现.扩展功能与框架以一种很松的 ...