C#复习习题 联系客服

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

C#复习习题

一、选择题:

1, 使用变量a存放数据—389,则将变量a声明为(B)类型最合适。 A.byte B. short C. int D. long 2,(D)是decimal类型数据。

A.123L B. 123.4 C. 123.4 F D. 123.4M 3,以下数组声明语句中,正确的是(D)

A.int a[3] B. int[3]a C. int[][]a=new int[][] D. int[]a={1,2,3} 4,表达式“abcde”= =“abcde” + “2006”的值为(C) A.true2006 B. true C. false D. 0 5,下列程序所计算的数学式是(C) Int a=0,i=2;

While(i<100){a+=i;i+=2;} Console.writelint(“a={0}”,a);

A.a=1+2+4+.....+98 B. 1+2+4+....+100 C. 2+4+6+....+98 D. 2+4+6+??..+100 6,下面关于Switch语句的描述中,正确的是(D) A,Switch语句中,每个case分支必须有break语句

B. Switch语句中,CASE分支中的常量表达式的类型必须与SWITCH表达式的类型完全一样。

C. Switch语句中,default语句必须放在最后 D. Switch语句中,default语句可有可无。 7,下面关于break语句的描述中,正确的是(B) A,在循环体内的break语句,用于结束本次循环。 B. 在循环体内的break语句,用于跳出循环 C. 在循环体内,break语句可以被执行多次。

D. 在嵌套循环时,break语句可以退出最外层循环。 8: 下面有关重载函数的说法中,完全正确的是(B) A.重载函数的参数个数必须不同 B.重载函数必须有不同的形参列表 C.重载函数必须具有不同的返回值类型 D.重载函数的参数类型必须不同. 9: 已知: int a=100;

void func (ref int b){}

则以下函数调用正确的是(D)

A. Func (ref (10*a)); B. Func(ref 10); C. Func(a); D. Func(ref a);

10: 下面有关构造函数的说法中,不正确的是(B) A.构造函数中,不可以包含return语句 B.一个类中只能有一个构造函数

C.构造函数在生成类实例时被自动调用.

D.用户可以定义无参构造函数

11: 以下关于类和对象的说法中,不正确的是 (D)

A. 类包含了数据和对数据的操作 B.一个对象一定属于某个类 C. 密封类不能被继承 D.可由抽象类生成对象 12: 在类的外部可以被访问的成员是 (A) A. Public 成员 B. private 成员

C. Protected 成员 D. protected internal成员 13: 下面有关析构函数的说法中,不正确的是(C )

A.析构函数不可以包含return 语句 B. 一个类中只能有一个析构函数

C.用户可定义有参析构函数 D. 析构函数在对象被撤消时,被自动调用 14: 派生类不可以访问基类的(B )

A. public成员 B. private 成员

C. protected成员 D. protected internal 成员 15: 有关sealed修饰符,描述正确的是(D )

A. 密封类可以被继承 B. abstract修饰符可以和sealed修饰符一起使用 C. 密封类不能实例化 D. 使用sealed修饰符可保证此类不能被派生 16: 若想从派生类中访问基类的成员,可以使用( C) A. this 关键字 B. me 关键字

C. base 关键字 D. override 关键字 17: 下面有关派生类的描述中,不正确的是( A)

A.派生类可以继承基类的构造函数 B. 派生类可以隐藏和重载基类的成员 C.派生类不能访问基类的私有成员 D. 派生类只能有一个直接基类

18: C#的类一般有两方面的应用: 一是实例化,生成对象,完成它的任务; 二是通过(C) ,派

生出新的类

A. 抽象 B. 封装 C.继承 D.多态

19: C#中,继承具有(A),即A 类派生 B 类,B 类又派生 C 类,则C类会继承 B类中的成员

和 A 类中的成员

A.传递性 B. 多态性 C.单继承 D.多继承 20: 下面关于抽象类的描述中,正确的是(B)

A. 因为抽象类不能实例化, 所以抽象类不能包含构造函数

B. 基类是抽象类,该基类的派生类可以是抽象类,也可以不是抽象类 C. 抽象类中,只能包含抽象方法,不能包含实例方法

D. 抽象类中的抽象方法可以具有公有,私有,保护访问权限 21: 下列方法中,哪个是抽象方法(C )

A. static void Func() {} B. virtual void Func() C. abstract void Func() D. override void Func() 22: 下面对派生类和基类的关系描述中,错误的是(D)

A. 派生类是基类的子集 B. 派生类是对基类的进一步扩充 C. 派生类也可以作为另一个派生类的基类

D. 派生类不但继承了基类的公有成员和保护成员,还继承了私有成员

23: 当一个方法被定义成对不同的数据类型完成同一个任务,此方法被称为(B ) A. 重载函数 B.泛型方法 C. 构造函数 D. 析构函数 24:C#源程序的扩展名是(D)

A . .vb B. .c C. .cpp D. .cs

25:以下说法中,不正确的是(B)

A.C#程序中,必须要有一个Main函数,程序从Main函数的第一条语句开始执行的 B.一个C#程序中,可以有多个Main函数 C.Main函数的位置是不固定的

D.Main函数必须出现在某一个类中 26:以下程序的输出结果是(D) Using system; Class Program

{ static void Main() {

int a=10;

int b; b=2*a+20; Console.WriteLine(b); } }

A.10 B.20 C.30 D.40

27: 可以在(C)中设置窗体及窗体上个控件的属性. A. 代码编辑器窗口 B. 工具箱窗口 C. 属性窗口

D. 解决方案资源管理器窗口 28: C#可执行程序的入口点是(B) A. main函数 B. Main函数 C. Run函数

D. Form_Load函数

29: C#程序的执行总是(D)

A. 从本程序的第一个函数开始,到本程序的最后一个函数结束 B. 从本程序的Main函数开始, 到本程序的最后一个函数结束 C. 从本程序的第一个函数开始, 从本程序的Main函数结束 D. 从本程序的Main函数开始, 从Main函数结束 30: 以下叙述中,不正确的是(D)

A. 一个C#程序只能有一个Main函数 B. Main函数必须是静态函数 C. C#程序可由一个以上函数组成 D. C#程序可以不包含任何类 31: 以下叙述中,正确的是(D)

A. C#程序中的注释只能出现在语句的后面 B. C#程序中,只有一种单行注释 C. C#程序中,只有一种多行注释 D. 程序执行时,不会执行注释语句 32: 解决方案文件的扩展名是(C)

A. .cs B. .csproj C. .sln D. .resx

33: 一下有关注释语句的描述中,不正确的是(C) A. C#提供两种注释,即“//”和“/*?..*/” B. 注释语句可以放在程序的任何位置

C. 注释语句也可以被执行,只不过它没有输出结果

D. 程序中加入注释语句的主要目的是提高程序的可读性 34: 编写Windows应用程序的基本步骤是(B) A. 新建项目,设计界面,编写时间的响应过程 B. 新建项目,编写代码,保存项目 C. 设计界面,编写代码,调试项目 D. 编写代码,保存项目,运行项目

35:以下不属于C#语言中的简单数据类型的是 (D) A.整数类型 B.浮点类型 C.字符类型 D.枚举类型

36:已知大写字母A的ASCⅡ码是65,小写字母a的ASCⅡ码是97,则十六进制字符常量’\B’表示(D)

A.字符a B 字符A C 字符b D字符B 37:对于跳转语句break和continue说法正确的是(A) A. continue语句只能用于循环体中 B. break语句只能用于循环体中

C. continue和break语句的跳转范围不明确,容易产生歧义 D. break语句是无条件跳转语句,continue语句不是 38:若有两个函数: void f1(int a,int b) { int tmp=a; a=b; b=tmp; }

void f2(ref int a,ref int b) { int tmp=a; a=b; b=tmp; }

则有关这两个函数的叙述中,正确的是(D)

A. 函数f1和函数f2均能实现交换两个实参值的功能 B. 函数f1和函数f2都不能实现交换两个实参值的功能

C. 函数f1能实现交换两个实参值的功能,函数f2不能实现交换两个实参值的功能 D. 函数f1不能实现交换两个实参值的功能,函数f2能实现交换两个实参值的功能 39:若有两个函数 int fun1(int a, int b) {

b=++a; return a+b; }