C#程序设计 实验指导书 物联网1301,1302 福建工程学院信息科学与工程学院 软件工程教研室聂作先 2014-2015学年第二学期
1 C#程序设计 实 验 指 导 书 物联网 1301,1302 福建工程学院 信息科学与工程学院 软件工程教研室 聂作先 2014-2015 学年第二学期
实验一c#程序设计基础训练 、实验目的 1、熟悉 Visual studio2008集成开发环境及安装步骤; 2、掌握 Visual studio2008创建常用应用程序的主要步骤; 3、掌握C#.NET中值类型和引用类型的区别; 4、掌握数组和集合类的使用方法; 5、熟练在.NET下调试程序的方法。 实验内容 1.选择题 1)以下关于C#代码的说法正确的是Q。 using System; class test static void Maino for (int i=1:i<=3: i++) switch (i) case 1 Console. Write(i ToString)
2 实验一 C#程序设计基础训练 一、实验目的: 1、熟悉 Visual Studio 2008 集成开发环境及安装步骤; 2、掌握 Visual Studio 2008 创建常用应用程序的主要步骤; 3、掌握 C#.NET 中值类型和引用类型的区别; 4、掌握数组和集合类的使用方法; 5、熟练在.NET 下调试程序的方法。 二、实验内容: 1.选择题 1)以下关于 C#代码的说法正确的是()。 using System; class Test { static void Main() { for (int i = 1; i <= 3; i++) { switch (i) { case 1: Console.Write(i.ToString());
case 2 Console. Write((i *k 2).Te 0) Console. Write((i=k 3). ToString o) a)程序将报告编译错误,提示case标签不能贯穿到另一个标签, 不能运行 b)运行是输出149 c)运行时输出123246369 d)运行时在屏幕上没有输出 2)C#的数据类型有() a)值类型和调用类型 b)值类型和引用类型 c)引用类型和关系类型 d)关系类型和调用类型 3)在NET中,一些数据类型为引用类型,当引用类型的值为()时, 表明没有引用任何对象。 Emp b) null
3 case 2: Console.Write((i * 2).ToString()); case 3: Console.Write((i * 3).ToString()); } } } } a) 程序将报告编译错误,提示 case 标签不能贯穿到另一个标签, 不能运行 b) 运行是输出 149 c) 运行时输出 123246369 d) 运行时在屏幕上没有输出 2)C#的数据类型有( )。 a) 值类型和调用类型 b) 值类型和引用类型 c) 引用类型和关系类型 d) 关系类型和调用类型 3) 在.NET 中,一些数据类型为引用类型,当引用类型的值为()时, 表明没有引用任何对象。 a) Empty b) null
c) Nothing d)0 4)下面关于C#中值类型和引用类型的描述正确的是() a)结构属于引用类型 b)字符串属于值类型 c)所有内置的数据类型都是值类型,所有用户定义的数据类型都是 引用类型 d)值类型变量直接存放真正的数据,引用类型变量存放的是指向真 正的数据的存放地址 5)以下对 Object类型的叙述中,错误的是()。 a) Object类型有个别名为 ob ject b)可以将任何类型的值赋给 Ob ject类型的变量 c)在C#的统一类型系统中,所有类型(预定义类型、用户定义 类型、引用类型和值类型)都是直接或间接从0 bject继承的 d)不能直接定义 Object类型的对象 6)在C#中,下列哪个关键字用于抛出异常:()。 a) throw b) try c) catch d) finally 7)在C#中,用户自定义异常类需要从以下哪个类继承:() a) Exception
4 c) Nothing d) 0 4) 下面关于 C#中值类型和引用类型的描述正确的是()。 a)结构属于引用类型 b)字符串属于值类型 c)所有内置的数据类型都是值类型,所有用户定义的数据类型都是 引用类型 d)值类型变量直接存放真正的数据,引用类型变量存放的是指向真 正的数据的存放地址 5)以下对 Object 类型的叙述中,错误的是()。 a) Object 类型有个别名为 object b) 可以将任何类型的值赋给 Object 类型的变量 c) 在 C# 的统一类型系统中,所有类型(预定义类型、用户定义 类型、引用类型和值类型)都是直接或间接从 Object 继承的 d) 不能直接定义 Object 类型的对象 6)在 C#中,下列哪个关键字用于抛出异常:()。 a) throw b) try c) catch d) finally 7) 在 C#中,用户自定义异常类需要从以下哪个类继承:()。 a) Exception
b) CustomException c)Application Exception d)BaseException 8)在C#程序中,下列用来处理异常的结构,错误的是() a) catchI finally t b) try finally t c)try f catchffinally d)try catcht 9)在〔中,对于代码ω b ject obj=123;要想把obj的值赋给int 类型的变量num,请问哪个是错误的答案()。 a) int num ob b) int num =(int)ob j c) int num =Convert. ToInt 32(ob j) d)int num =int Parse(obj) 10)以下代码段体现了C#中的()概念,该概念使得对象模型变得简 单易懂。 int val=10: Ob ject obj= val a)继承 b)重载 c)装箱 d)委托
5 b) CustomException c) ApplicationException d) BaseException 8) 在 C#程序中,下列用来处理异常的结构,错误的是()。 a) catch{}finally{} b) try{}finally{} c) try{}catch{}finally{} d) try{}catch{} 9)在 C#中,对于代码 Object obj = 123; 要想把 obj 的值赋给 int 类型的变量 num,请问哪个是错误的答案()。 a) int num = obj; b) int num = (int)obj; c) int num = Convert.ToInt32(obj); d) int num = int.Parse(obj); 10)以下代码段体现了 C#中的()概念,该概念使得对象模型变得简 单易懂。 int val = 10; Object obj = val; a) 继承 b) 重载 c) 装箱 d) 委托
2.简答题 1)浅析.NET代码的编译过程。 2)谈谈值类型和引用类型的区别。 3.设计题 编写一个控制台应用程序,完成教师档案的增、删、改、查功能。 1)创建教师信息类 Teacher,包括如下字段:工号,姓名,性别, 出生日期,照片,系部,学位,职称,毕业院校;(其中出生日期用 DateTime类型,照片字段用字符串类型保存照片所在的路径即可) 2)教师信息保存在集合类 List中;
6 2.简答题 1)浅析.NET 代码的编译过程。 2)谈谈值类型和引用类型的区别。 3.设计题 编写一个控制台应用程序,完成教师档案的增、删、改、查功能。 1)创建教师信息类 Teacher,包括如下字段:工号,姓名,性别, 出生日期,照片,系部,学位,职称,毕业院校;(其中出生日期用 DateTime 类型,照片字段用字符串类型保存照片所在的路径即可) 2)教师信息保存在集合类 List中;
实验二c#面向对象程序设计训练 、实验目的 1、熟练C#面向对象程序设计思想; 2、掌握.NET基础类库的使用方法; 掌握C#类、抽象类、接口的定义及使用方法; 4、掌握C#属性、索引、委托、事件的定义及使用方法 5、熟练在.NET下调试程序的方法。 实验内容 1.选择题 1)在.NET中,以下关于命名空间的描述,正确的是() a)命名空间不可以进行嵌套 b)任一个.cs文件中,只能存在一个命名空间 c)用 private修饰的命名空间,其内部的类也不允许访问 d)命名空间使得代码更加有条理、结构更清晰 2)在C#中,关键字 usIng不具有的功能是() a)引用名字空间 b)引入程序集 c)给名字空间取别名 d)确保资源释放 3)在C#中,关于构造函数的说法正确的是()。 a)在一个类中允许有多个构造函数,构造函数在创建对象时调用
7 实验二 C#面向对象程序设计训练 一、实验目的: 1、熟练 C#面向对象程序设计思想; 2、掌握.NET 基础类库的使用方法; 3、掌握 C#类、抽象类、接口的定义及使用方法; 4、掌握 C#属性、索引、委托、事件的定义及使用方法; 5、熟练在.NET 下调试程序的方法。 二、实验内容: 1.选择题 1) 在.NET 中,以下关于命名空间的描述,正确的是()。 a) 命名空间不可以进行嵌套 b) 任一个.cs 文件中,只能存在一个命名空间 c) 用 private 修饰的命名空间,其内部的类也不允许访问 d) 命名空间使得代码更加有条理、结构更清晰 2) 在 C#中,关键字 using 不具有的功能是()。 a)引用名字空间 b)引入程序集 c)给名字空间取别名 d)确保资源释放 3) 在 C#中,关于构造函数的说法正确的是()。 a) 在一个类中允许有多个构造函数,构造函数在创建对象时调用
b)在一个类中允许有多个不同名称的构造函数 c)一个类至少声明有一个构造函数 d)一个类只能有一个构造函数 4)在C#中,()访问修饰符修饰的类成员只能由当前程序集访问 a) public protected c) internal d) private 5)在C#中,以下关于ref和out的描述不正确的是?()。 a)使用ref参数,传递到ref参数的参数必须先初始化 b)使用out参数,传递到out参数的参数必须先初始化 c)使用ref参数,必须将参数作为ref参数显式传递到方法 d)使用out参数,必须将参数作为out参数显式传递到方法 6)在C#类中,关于属性的说法不正确的是() a)属性可以是只读的 b)属性可以是只写的 c)属性可以是可读可写的 d)属性不能只是可写的 7)C#中,下列关于索引器的说法,正确的是()。 a)索引器没有返回类型 b)索引器一般用来访问类中的数组元素或集合元素 c)索引器的参数类型必须是int的类型
8 b) 在一个类中允许有多个不同名称的构造函数 c) 一个类至少声明有一个构造函数 d) 一个类只能有一个构造函数 4) 在 C#中,()访问修饰符修饰的类成员只能由当前程序集访问。 a) public b) protected c) internal d) private 5) 在 C#中,以下关于 ref 和 out 的描述不正确的是?()。 a) 使用 ref 参数,传递到 ref 参数的参数必须先初始化 b) 使用 out 参数,传递到 out 参数的参数必须先初始化 c) 使用 ref 参数,必须将参数作为 ref 参数显式传递到方法 d) 使用 out 参数,必须将参数作为 out 参数显式传递到方法 6)在 C#类中,关于属性的说法不正确的是()。 a) 属性可以是只读的 b) 属性可以是只写的 c) 属性可以是可读可写的 d) 属性不能只是可写的 7) C#中,下列关于索引器的说法,正确的是()。 a) 索引器没有返回类型 b) 索引器一般用来访问类中的数组元素或集合元素 c) 索引器的参数类型必须是 int 的类型
d)索引器的声明可以使用类名或this关键字 8)在C#中,假如有一个名为” Mes sageDe legate”的委托类型,下列 能够正确定义一个事件的是()。 a) public delegate Message Delegate messageEvent b) public MessageDelegate messageEvent c) private event MessageDelegate(me sage Event) d) public event Message Delegate messageEvent 9)在C#中,下列()关键字用于重写基类的虚拟方法 a) override new c) base d) virtual 10)在C#类中,可以通过编写()实现方法重载 a)具有不同返回类型的同名函数 b)具有不同代码行数的同名函数 c)具有不同参数列表的同名函数 d)具有不同访问修饰符的同名函数 11)以下关于C#中代码的说法正确的是()。 public abstract class animal public abstract void EatO public void Sleepout
9 d) 索引器的声明可以使用类名或 this 关键字 8) 在 C#中,假如有一个名为”MessageDelegate”的委托类型,下列 能够正确定义一个事件的是()。 a) public delegate MessageDelegate messageEvent; b) public MessageDelegate messageEvent; c) private event MessageDelegate(mesageEvent); d) public event MessageDelegate messageEvent; 9) 在 C#中,下列()关键字用于重写基类的虚拟方法。 a) override b) new c) base d) virtual 10)在 C#类中,可以通过编写()实现方法重载。 a) 具有不同返回类型的同名函数 b) 具有不同代码行数的同名函数 c) 具有不同参数列表的同名函数 d) 具有不同访问修饰符的同名函数 11) 以下关于 C#中代码的说法正确的是()。 public abstract class Animal { public abstract void Eat(); public void Sleep(){}
a)该代码正确 b)代码错误,因为类中存在非抽象方法 c)代码错误,因为类中方法没有实现 d)通过代码" Animal an= new Anima0;"可以创建 An l对象 12)接口是一种引用类型,在接口中可以声明(),但不可以声明公 有的域或私有的成员变量。 a)方法、属性、索引器和事件 b)方法、构造函数、属性 c)索引器和字段 d)事件和字段 13)在C#中,下列关于抽象类和接口的说法,正确的是()。 a)抽象类中,所有的方法都是抽象方法 b)继承自接口的非抽象类必须实现父类中的所有成员 c)在接口中,可以有方法实现,在抽象类中不能有方法实现 d)一个类可以从多个接口实现,也可以从多个抽象类继承 14)在C#语法中,对于密封类( sealed)的说法,正确的是()。 a)密封类可以当作基类 b) abstract修饰符可以和 sealed一起修饰某个类 c)密封类中不能包含有字段 d)密封类不能派生出子类 15)在C#中,定义分部类型,即允许将类、结构或接口的定义拆分到
10 } a)该代码正确 b)代码错误,因为类中存在非抽象方法 c)代码错误,因为类中方法没有实现 d)通过代码"Animal an = new Animal();"可以创建 Animal 对象 12) 接口是一种引用类型,在接口中可以声明(),但不可以声明公 有的域或私有的成员变量。 a) 方法、属性、索引器和事件 b) 方法、构造函数、属性 c) 索引器和字段 d) 事件和字段 13) 在 C#中,下列关于抽象类和接口的说法,正确的是()。 a) 抽象类中,所有的方法都是抽象方法 b) 继承自接口的非抽象类必须实现父类中的所有成员 c) 在接口中,可以有方法实现,在抽象类中不能有方法实现 d) 一个类可以从多个接口实现,也可以从多个抽象类继承 14) 在 C#语法中,对于密封类(sealed)的说法,正确的是()。 a) 密封类可以当作基类 b) abstract 修饰符可以和 sealed 一起修饰某个类 c) 密封类中不能包含有字段 d) 密封类不能派生出子类 15) 在 C#中,定义分部类型,即允许将类、结构或接口的定义拆分到