C#复习题

发布时间 : 星期六 文章C#复习题更新完毕开始阅读

一. 知识点串讲 项目一: C#与.NET

1)掌握visual studio 2010 的安装。了解.NET框架的基础知识。(.Microsoft .NET Framework,它是一个开发平台,包括公共语言运行时CLR和.NET类库两部分,在这个平台上,可以使用VB.NET、C#,C++,Delphi.net等语言进行程序开发。) 2)C#是从C, C++派生出来的一种面向对象的编程语言,它具有面向对象的一切特性:封装、继承、多态, 去掉了在C, C++中常被使用的指针操作。

3)C#程序的运行是从主方法main()开始的。在程序中,使用using关键字引入命名空间,使用namespace关键字定义声明名称空间。 通常使用快捷键ctrl+f5进行程序的执行。 项目二: C#语法基础

1)C#语言中个,变量的命名,以字母、下划线或@符号开始的字符序列,后面可以跟字母、数字或下划线。

2)C#程序书写时要遵循原则

3)注释(行注释 // 多行注释 /* */ XML注释方式 ///开头,并包含xml标签。

4)C#中的数据类型P26 值类型与引用类型:

值类型:简单类型、枚举类型、结构类型

引用类型:类类型、接口类型、数组类型、委托类型 5)数据类型转换:隐式转换和显式转换

隐式转换: 字符类型——>整型(浮点型) 低精度——>高精度类型

显式转换: ()转换 convert类转换 parse方法转换 tostring()转换 项目三: 方法

1)方法:相当于C(C++)中的函数,是包含系列语句的代码块,是类中的重要成员。 2)方法的修饰符:

特殊功能修饰符: static virtual override new sealed abstract extern 访问修饰符:public private protected internal protected internal 缺省为private修饰符 3)变量的作用域

方法体内声明的变量在方法体内作用,符合语句中定义的变量在符合语句内起作用。类的成员变量在类的花括号内起作用。

4)方法调用: 静态方法通过类名称调用,非静态方法要通过对象名称来调用, 不能再静态方法中使用this。

5)方法的参数有4中类型: 值参数、 引用形参数、输出参数、数组参数 值参数:将实参赋值一份传递给形参

引用型参数:ref修饰,将实参的地址传递给形参,当在方法体内修改了形参,实参也跟着变化

输出型参数:使用out修饰符,不需用初始化,但在方法体内需要给输出参数赋值 数组型参数:使用params修饰符。

6)方法的重载:在一个类中可以定义多个同名的方法,这些方法通过不同的参数类型或者参数个数来区分,这种方法称为方法的重载。仅返回类型不同的同名函数不能通过编译。 项目四,项目五 分支语句与循环语句。

1) C#语言同C等结构化程序设计语言一样,也有三种基本语句控制结构:顺序、选择、循

环。

2) 条件运算(三目运算、三元运算) 条件?第一表达式:第二表达式 例如: 已知 a=5, b=8, c=4, 则d=a>b?c:b d的值为: 3) while循环

4) foreach语句: foreach(类型 变量名 in 表达式) 循环体;

注意: 循环变量是只读的,更改它的值会引发错误。

5) break 语句,终止对循环的执行,跳转到当前循环外执行。 Continue: 结束本次循环,接着只想下一次循环 项目六 异常处理 1)。程序代码中的错误大致可以分为:语法错误、语义错误(运行错误)和逻辑错误

2)异常类 Exception类是所有异常类的基类,该类的对象可以捕获任何类型的异常,其他派生类的对象只能捕获相应类型的异常。 3)异常处理语句 try??catch??finally

4)在抛出自定义异常时,需要使用throw语句抛出异常。 项目七 类与对象

1)类的定义,注意类的修饰符,缺省为internal p119

2)类的函数成员有:方法,属性,索引器、事件、运算符、构造函数和析构函数。 3)类的数据成员:字段(静态字段、实例字段、只读字段)和常量(const修饰) 4)构造函数 二. 选择题

1. C#与.NET框架关系的描述正确地是(C)。

A. C#是.NET框架的一部分 B. C#支持的特性,.NET都支持 C. C#不是.NET的一部分 D. C# 与.NET是一样的。 2. 以下有关C#源程序叙述错误的是(C)。

A. C#控制台应用程序必须包含一个Main方法。

B. C# Windows窗体应用程序必须包含一个Main方法。 C. C# Web应用程序必须包含一个Main方法。

D. C#中的方法由两部分组成,即方法的头部和方法体。 3. C# 是一种面向(C)的语言。

A. 机器 B. 过程 C. 对象 D. 事物

4. Visual Studio 2010中,在(A)窗口可以查看当前项目的类和类型的层次信息 A. 解决资源方案管理器 B. 类视图 C. 工具箱窗口 D 属性窗口 5. C#程序的运行是从(C)开始的。

A. 按钮的单击事件 B. 自定义的方法 C. 主方法main() D. 随机 6. C# 源程序文件的默认扩展名为(A) A. .cs B. .exe C. .cpp E. .link

7. 引用类型主要有4钟,类类型、数组类型、接口类型和(C)。 A. 对象类型 B. 字符串类型 C. 委托类型 D. 整数类型 8. 下面那些类型不是值类型(B)

A. 布尔类型 B.类类型 C. 枚举类型 D. String类型 9. 以下选项中,哪些类型可以成功地进行隐式转换(A,B,D) A. int 类型到float类型的转换

B. long类型到decimal类型的转换 C. int 类型到char类型的转换

D. float类型到double类型的转换 10. 值参数是( A)的参数。

A. 按值传递 B. 按地址传递 C. 按引用传递 D. 什么也不传递 11. 有关break 语句的描述中,正确地是(B)。 A. 循环体内的break语句用于结束本次循环。 B. 循环体内的break语句用于跳出循环体。 C.在循环体内的break语句可以被执行多次。

D. 当嵌套循环时,break语句可以退出最外层循环。 12 下列有关foreach语句的描述中,不正确的是(D)。 A. foreach 语句是一种循环结构语句。

B. 可以使用foreach语句读取集合或数组中的元素。 C. 可以遍历数组或集合

D.可以使用foreach语句给集合或数组中的元素赋值 13. 关于C#语言的方法,下列中叙述中正确的是(A)。 A. 方法的定义不能嵌套,但方法调用可以嵌套。 B.方法的定义可以嵌套,但方法调用不能嵌套。 C. 方法的定义和调用都不能嵌套。 D. 方法的定义和调用都可以嵌套。

14. 调用重载方法时,系统根据(B)来选择具体的方法

A. 方法名 B. 参数的个数和类型 C. 参数名及参数个数 D. 方法的返回值类型 15. 有两个具有相同名称的函数,当只满足下列选项的(A)条件时,他们不能算作重载函数。

A. 返回值类型不同 B. 参数数目不同 C.参数类型不同 D. 参数的顺序不同

16. 类Class A 有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执行的的,则修饰M1方法时一定使用了(B)修饰符。 ClassA obj=new ClassA(); ClassA.M1();

A. public B. static C. private D. virtual 17. 下面有关重载方法的说法中,正确的是(B)。 A. 重载函数的参数个数必须不同。

B.重载函数必须具有不同的形参列表。 C. 重载函数必须具有不同的返回值类型。 D. 重载函数的参数类型必须不同。

18 下面关于类和对象的说法中,不正确的是(A)。 A. 类是一种系统提供的数据类型。 B. 对象是类的实例。

C.类和对象的关系是抽象和具体的关系。 D.任何对象只能属于一个具体的类。

19. 下面关于类和对象的说法中,不正确的是(C)。 A. 对象是类的一个实例。

B.任何一个对象只能属于一个具体的类。 C.一个类只能有一个对象。

D. 类与对象的关系和数据类型与变量的关系相似。 20. 以下关于类的构造函数说法不正确的是(C)

A. 构造函数必须与类同名 B. 一个类中可以有多个构造函数 C. 构造函数可以声明为virtual D. 默认的构造函数不带任何参数 21. (C)的功能是对对象进行初始化

A. 析构函数 B. 数据成员 C. 构造函数 D. 静态成员函数

22. 当引用数组元素时,关于数组下标的数据类型以下(D )是错误的。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 23. 分析下列C#语句:

namespace classlibrary1 {

class myclass {

public class subclass {

int i; } }

}

是否正确,若需要为myclass 类添加访问修饰符,则应选择(D) A. private B. protected C. internal D. public

24. 类的以下特性中,可以用于方便地重用已有代码和数据的是(C)。 A. 多态 B. 封装 C. 继承 D. 抽象 25. 继承具有(B),即当基类本身也是某一类的派生类时,派生类会自动继承间接基类的成员。

A. 规律性 B. 传递性 C. 重复性 D. 多样性

26. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成(C)。

A. sealed B. public C. virtual D. override

27. 已知类B是由类A继承而来。类A中有一个为M的非虚方法,现在希望在类B中也定义一个名为M 的方法,若希望编译时不出现警告信息,则在类B中声明该方法时,应该使用(B)方法。

A. static B. new C. override D. virtual

28. 下面关于析构函数的书法中个,不正确的是(C)。 A.析构函数中不可以包含return 语句。 B.一个类中只能有一个析构函数。 C. 用户可以定义有参析构函数。

D. 析构函数在对象被撤销时被自动调用。

29. 下面关于派生类的描述中,不正确的是(A) A. 派生类可以继承基类的构造函数。 B.派生类可以隐藏和重载基类的成员。 C.派生类不能访问基类的私有成员。 D.派生类只能有一个直接基类。

30. 如果要从派生类中访问基类的成员,可以使用(D)。

A. this 关键字 B. me关键字 C. override 关键字 D. base关键字

联系合同范文客服:xxxxx#qq.com(#替换为@)