C#复习资料

2019-06-05 11:33

C#考试复习总结

选择题

1. 下列数据类型中,不属于基本数据类型的是( D )。

A.数值类型 B.字符类型和字符串类型 C.布尔类型与对象类型 D.结构类型

2. 要使用变量score来存储学生某一门课程的成绩(百分制,可能出现小数部分),则最好

将其定义为( C )类型的变量。 A. int B. decimal C. float D. double 3. 下列标示符中,非法的是( B )。 A. MyName B. c_sharp C. abc2cd 4. 已定义下列变量: int n; float f; double df; df = 10; n = 2;

下列语句正确的是( C )。 A. f = 12.3; B. n = df;

C. df = n = 100; D. f=df;

5. 下列表达式中,有语法错误的是( A )。

A. n = 12%3.0(n为int类型) B. 12/3.0; C. 12/3;

D. ‘a’ > ‘b’;

6. 已知a,b,c均为整形变量,下列表达式的值等于( A )。

b = a = ( b = 20 ) + 100 A. 120 B. 100 C. 20 D. true

7. 下列语句中,不能够正确定义长度为4的数组a的语句是( C )。

A. int [] a = new int []{1,2,3,4;} B. int [] a = {1,2,3,4};

C. int [] a = new int[4] {1,2,3}; D. int [] a = new int[4] {1,2,3,4};

8. 若二维数组a有4行6列,那么该数组中第15个元素的访问方法是( D )。

A. a[15] B. a[3,3] C. a[3][3] D. a[2,2]

9. 以下装箱、拆箱语句中,错误的有( B )。 A.object obj = 100; int m = (int)obj; B. object obj = 100; int m = obj;

C. object obj = (int)100; int m = (int)obj; D. object obj = (object)100; int m = (int)obj;

D. _123

10. 下面有关变量和常量的说法,正确的是( C )。

A. 在程序运行过程中,变量的值是不能改变的,而常量是可以改变的。 B. 常量定义必须使用关键词const

C. 在给常量赋值的表达式中不能出现变量

D. 常量在内存中的存储单元式固定的,变量则是变动的

11. 对于语句“if(表达式)语句块”,下列说法正确的是( D )。

A. 语句中的“表达式”可以是任意类型的表达式

B. 语句中的“表达式”可以是整型表达式或者布尔表达式

C. 如果“表达式”的值为非零值则执行后面的语句块,为零则不执行

D. 不管“表达式”的形式如何,但其返回值必须是布尔类型,如果返回true则执行后面的语句块,否则不执行

12. 下列代码段中,语法正确的是( A )。

A. int n=0; B. int n=0; C. for(int I = 0; sum=0; i<10;i++) D. int sum=0; if(n==1) if(n=1) { int i=0; { { sum = sum+i; while(1) int x = n ; int x = n; } {

} } sum=sum+i; if(i==9)break; }

13. 下面关于if语句和switch语句的说法,正确的是( C )。

A. 如果在if语句和switch语句中嵌入break语句,则在程序执行过程中一旦执行到break

语句,则会结束相应语句的执行,而转向执行其后面的语句 B. 凡是能够使用if语句的地方就可以使用switch语句,反之亦然 C. if语句有3种基本形式,if…、if…else…、if…else if… else…

D. if语句本质上是实现“单判断二分支”的选择结构,switch语句则是用于实现“单判断多分支”的选择结构。

14. 下面关于for语句的说法,错误的是( B )。

A. for语句中的3个表达式都可以省略

B. for语句的3个表达式,如果第二个表达式的返回值为true,则执行循环体中的语句,知道第3个表达式的返回值为false

C. for语句的3个表达式中,第二个表达式必须是布尔类型的表达式,其他两个可以是任意类型的表达式

D. for语句的3个表达式中,第一个表达式执行且仅执行一次;每当循环体语句被执行以后,第3个表达式都跟着被执行一次

15. 下面关于while语句和do…while语句的说法,正确的是( A )。

A. 对于do…while语句,当循环条件表达式的值是为true时执行循环体语句,为false时终止语句的执行

B. While语句比do…while语句具有更高的执行效率

C. 对于do..while语句,当循环条件表达式的值为false时执行循环体语句,为false时终止语句的执行

D. 两者的功能是一样的,具体使用哪一种主要有程序员的喜好来决定 16. 对于foreach语句和for语句,下列说法错误的是( B )。

A. for语句与foreach语句在结构上不一样,前者有3个表达式,表达式间用分号隔开;后者仅有一个“表达式”,形式为“数据类型 变量 in 集合表达式”

B. 语句“for(;true;);”是合法的,但是个死循环;“foreach(true);”也是合法的,也是一个死循环

C. 语句“for(;true;);”是合法的,但是个死循环;而“foreach(true);”是非法的 D. 语句块“int*+ a = ,1,2-;foreach(int I in a);”是合法的 17. 对于跳转语句,下列说法错误的是( A )。

A. goto语句可以实现从程序的一个地方跳转到任意一个地方 B. goto语句的跳转功能限于一个同一个语句块内

C. break语句可以终止整个循环语句,而continue只是提前结束本次循环,但循环语句仍在执行

D. 不管在哪里,一旦执行到return语句,会结束当前整个函数的执行 18. 下列关于类的定义,错误的是( D )。

A. class A B. class A C. class A class A

{ { { { void f() {} void f() {} private void f() {return ;} f() {} } } } }

19. 假设类B继承了类A,下列说法错误的是( C )。

A. 类B中的成员可以访问类A中的公有成员 B. 类B中的成员可以访问类A中的保护成员 C. 类B中的成员可以访问类A中的私有成员 D. 类B中的成员可以访问类A中的静态成员

20. 在类A中试图重载构造函数,并使用构造函数创建对象;

class A { A() {}

public void A(int x) {} //语句1 public A(int x, int y) {} //语句2 }

class Program { static void Main(string[] args)

{ A a = new A(); //语句3

A b = new A(100,200); //语句4 } }

其中,正确的语句包括( B )。 A. 语句2和语句4

B. 语句1、语句3和语句5 C. 语句1、语句2和语句3 D. 语句4和语句5 21. 在类A中定义了属性y: Class A(); {

Public int y

{

get{return 1;} Set{} } }

并试图通过下列代码实现对属性y的访问; A b=new A(); b.y = 2; int x=b.y;

对此下列说法正确的是( D )

A属性y可读可写,因此变量x的值为2.

B属性y可读但不可写,因此语句“b.y=2;”是错的。

C属性y可写,但不可读,因此语句“int x=b.y”是错误的。 D 属性y可读可写,变量x的值是1. 22. 静态成员,下列说法正确的是( B )

A 同一个类的静态成员,类实例化后,在不同的对象中形成不同的静态成员。 B 在实例化后,同类型的对象都共享类的静态成员,静态成员只是一个版本。 C 在类定以时静态成员属于类,在类实例化后静态成员属于对象。

D 在类实例化后静态成员也别实例化,因此不同的对象有不同的静态成员。 23. 对于多态,下列说法错误的是( B ) A 多态实上就是重载,他们本质上是一样的 B 多态可以分为编译时多态和运行时多态。前者的特点是在编译时就能确定要调用成员方法的哪个版本,后者则是在程序运行时才能确定要调用成员方法的哪个版本。 C 编译时多态是在程序运行时才能确定要调用成员方法的哪个版本,而运行时多态在编译时就能确定要调用成员方法的哪个版本

D 多态和重载是两个弯曲不同的概念,前者是通过定义虚方法和重写虚方法来实现,后者是通过对同一个函数名编写多个不同的实现代码来完成。 24 下面代码在类A中重载了减号“—”: Class A {

Private int X;

Public static A operator –(A b,A c) {

A a=newA(); a.setx(3); A b=newA();b.setx(6); A c=a-b;

Int n= c.getx(); 结果n的值为( C ) A -3 B -6 C- 18 D 9

25 下面关于接口的说法,错误的是( D )。 A. 接口中定义的方法都必须是虚方法 B. 接口中定义的方法可以编写其实现代码

C. 继承接口的类可以提供被继承接口中部分成员的实现代码 D. 接口中的所有方法都必须在其派生类中得到实现

26 下面关于命名空间的说法,错误的是( C ) A. C#中,命名空间可有可无,看需要来定义和使用

B. 同一个命名空间的成员不能重名,不同命名空间中的成员可以重名

C. 使用命名空间的好处是,不但在不同命名空间中的成员可以重命名,而在同一个命名空间中的成员也可以重名

D. 命名空间为程序的逻辑结构提供了一种良好的组织方法 27 执行下列两条语句,结果S2的值为( D ) string s =”abcdefgh”;

string s2 = s.Substring(2,3);

A. “bc” B “cd” C “bcd” C”cde” 28对于下列生命的委托和定义的类: Class A {

Public int f(int i) {

Return 0; }

public void g(int j) { }

Public static int h(int k) {

Return 0; } }

下面语句中,那些事正确的( B )

MyDelegate d1 = new MyDelegate(A.h); //语句1 A a = new A();

MyDelegate d2 =new MyDelegate(a,f); //语句2 MyDelegate d3 = new MyDelegate(a.g);//语句3 MyDelegate d4 = new Mydelegate(a.h);//语句4

A 语句1、语句2、语句、语句4 B 语句1、语句2 C语句3、语句4 D 语句2、语句3

填空题

1. 标准窗体应用程序有3种类型:对话框界面(Dialog)应用程序、单文档界面(SDI)应用程序和多文档界面(MDI)应用程序。

2. C#中所有的类都继承 Object 类,所有的窗体控件都继承 Control 类。

3. 字体对话框类和打开文件对话框类分别是 FontDialog类 和 OpenFileDialog类 。 4. 控件中用于设置弹出式对话框的属性是 ContextMenuStrip 。

5. Form类(窗体类)的FormClosing(object sender,FormClosingEventArgs e)事件处理函

数中,利用参数e可以阻止窗口的关闭,实现的代码是 e.Cancel = true;。 6. 菜单可以分为两种形式: 主菜单 和 弹出式菜单 。 7. File类中判断给定文件是否存在的方法是 File.Exists() ,Directory类中判断给定文件是否


C#复习资料.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014电大国际经济法案例分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: