2012下C#试卷(含答案)

发布时间 : 星期日 文章2012下C#试卷(含答案)更新完毕开始阅读

《C#程序设计》课程期末考试试卷

考核方式:(闭卷) 考试时量:120分钟 题 号 一 二 三 四 五 总分 合分人 复查人 得 分 得 分 评卷 人 一、单项选择题(本大题共15道小题,每小题2分,共30

分)。在每小题列出的四个备选项中只有一个是符合要求的,

请将其代码填写在下面的方格内。 题号 1 2 3 4 5 6 7 8 9 10 答案 题号 11 12 13 14 15 答案

1、下面对Read()和ReadLine()方法的描述,正确的是

A Read()方法一次只能从输入流中读取一个字符 B Read()方法读取的字符不包含回车与换行符 C ReadLine()方法读取的字符包含回车与换行符 D Read()方法与ReadLine()方法能够返回数值型数据

2、设有代码:double x = 66666.66; Console.WriteLine(\则程序的输出结果为:

A ¥66,666.6600 B ¥66,666.66 C 66,666.6600

D 66,666.66 3、以下标识符中,正确的是

A _nName B typeof

C 6b

D x5# 4、下列类型中,不属于值类型的是:

A 整数类型

B 布尔类型

C 字符类型

D 类类型

5、结构化程序设计的3种结构是:

A 顺序结构,IF结构,FOR结构

共10页 第1页 B IF结构,IF…ELSE结构,ELSE IF结构

C WHILE结构,DO…WHILE结构,FOREACH结构 D 顺序结构,分支结构,循环结构

6、已知a,b,c的值分别是4,5,6,执行下列语句后,判断变量n的值为: if (c

else if (a+b

A 3

B -3

C 9

D 15

7、下面有关break,continue,goto语句描述正确的是:

A break语句和continue语句都是用于中止当前整个循环 B 使用break语句可以一次跳出多重循环

C 使用goto语句可以方便地跳出多重循环,因而编程时应尽可能多的使用goto语句

D goto语句语句必须和标识符配合使用,break语句与continue语句则不然8、假设给出以下代码,

try{ throw new DivideByZeroException (); } catch (FileNotFoundException e) { } catch (OverflowException e) { } catch (SystemExcetion e) { } catch() { } finally { }

下列哪条代码一定会执行。

A catch (FileNotFoundException e) { } B catch (OverflowException e) { }

C catch() { } D finally { }

9、下面几条定义初始化一维数组的语句,正确的是

A int arr[]={1,2,3,4,5}; B int[] arr=new int[];

共10页 第2页

C int[] arr=new int[]{1,2,3,4,5}; D int[] arr;arr={1,2,3,4,5};

10、下面有关枚举成员赋值说法正确的是:

A 在定义枚举类型时,至少要为其中的一个枚举成员赋一个常量值 B 在定义枚举类型时,直接为某个枚举赋值,则其他枚举成员依次取值 C 在把一个枚举成员的值赋给另一个枚举成员时,可以不考虑它们在代码中出现有顺序

D 在定义的一个枚举类型中,任何二个枚举成员都不能有相同一常量值 11、下面有关静态方法的描述中,错误的是:

A 静态方法属于类,不属于实例 B 静态方法可以直接使用类名调用

C 静态方法中,可以定义非静态的局部变量 D 静态方法中,定以访问实例方法 12、在类的外部可以被访问的成员是:

A public成员 B private成员 C protected成员 D protected internal成员

13、关于委托的说法,不正确的描述是:

A 委托属于引用类型 B 委托用于封装方法的引用 C 委托可以封装多个方法 D 委托不必实例化即可被调用 14、下列有关软件架构描述中不正确的是:

A Entity层(实体层)封装了实体的属性

B UI层(用户界面层)封装了应用程序到数据库的连接方法 C BLL层(业务逻辑层)封装了系统所具有的功能方法 D DAL层(数据访问层)封装了系统对数据库的访问方法 15、下列哪个不属于ADO.NET对象

共10页 第3页 A select对象 B connection对象 C DataAdapter对象 D DataSet对象

得 分 评卷 人 二、填空题(本大题共15道小题,每小题2分,共30分)。

1、C#程序从( )方法开始执行。

2、VS2008开发环境具有TAB自动补齐功能,Console.WriteLine()的快速补齐缩写是:( )。

3、C#中,( )是所有类的基类。

4、C#引用类型共分为四类:类类型,数组类型,( ),委托类型。5、装箱和拆箱允许将数据进行类型转换,int k=228; object obj=k;使用了( )转换。

6、已知:int a=13;则 a/2的值为( )。

7、.netFrmae框架的二大核心组件分别是:.net类库和( )。8、按钮对象MyCmd在运行期间不可见的代码是:( )=false。9、面向对象的大三特征是:封装,继承与( )。 10、已知:string st=”中国北京”,st.Length的值为( )。 11、构造函数的名称与( )同名。

12、( )关键字用于从派生类中访问基类的成员。

13、当一个实例方法声明包含一个( )限定符时,这个方法就用相同的属性覆盖一个被继承的虚拟方法,则此方法被称为覆盖方法。 14、定义接口的关键字是( )。

15、语句 cmd.ExecuteNonQuery();的返回值是( )。

得 分 评卷 人 三、程序阅读题(本大题共5道小题,每小题3分,共15分)共10页 第4页

1、指出下列程序代码中的错误原因 do

{ j = i* 3 + 1;

Console.WriteLine(\ j += 3; } while (i<100);

错误原因是:__________________________

2、指出下列程序段的错误原因 int k;

Console.WriteLine(\请输入整数K的值:\ k = int.Parse(Console.ReadLine()); if (k<=10) { k = k + 1; } else if (1030)

{ k = k * 2 - 20; }

Console.WriteLine(\

错误原因是:__________________________

3、下列程序的执行结果是:

class test

{ static void Main(string[] args)

{ int[] a = { 34, 91, 83, 56, 29, 93, 56, 12, 88, 72 }; int i, t = 0, temp = 100; for ( i = 0; i < a.Length; i++)

共10页 第5页 { if (a[i]<=temp)

{ temp = a[i]; t = i; } }

Console.WriteLine(\ }

}

执行结果是:__________________________

4、下列程序的执行结果是: class test

{ enum season { spring, summer = 4, autumn, winter = 5 }; static void Main(string[] args)

{ Console.WriteLine(\}

执行结果是:__________________________

5、给出下列程序的结果: class test

{ static void f(int a, ref int x, out int y) { x = a / 10; y = a % 10; } static void Main(string[] args) { int k = 16; int a=1, b=1; f(k, ref a, out b);

Console.WriteLine(\ }

}

执行结果是:__________________________

共10页 第6页

}

得 分 评卷 人 四、程序填空题(本大题共5道小题,每小题3分,共15分)

1、委托应用

delegate void ________________________; //声明委托 class test

{ static void zs(string s) //定义方法一 { Console.WriteLine(\张三吃:{0}\ static void ww(string s)

//定义方法二

{ Console.WriteLine(\王五吃:{0}\ static void Main(string[] args)

{ EatDelegate eat = new EatDelegate(zs); //让委托指向方法zs eat += ww;

eat(\苹果\ //调用委托 }

}

2、数据库的连接 string strcon; OleDbConnection con;

OleDbCommand cmd=new OleDbCommand(); public DataHelp()

{strcon=@\Source=data.mdb\

con = new OleDbConnection(strcon); }

public OleDbConnection openCon() //打开数据库连接的方法 { if (con.State ==ConnectionState.Closed)

{ ________________________ //打开数据库的连接 } return con;

共10页 第7页 }

3、索引指示器的定义 class test

{ static void Main(string[] args) { exam m = new exam(); for (int i = 0; i < 10; i++) { m[i] = i;

Console.WriteLine(m[i]); } } }

public class exam { int[] a = new int[10];

public int ________________________ //索引指示器的定义 { get { return a[index]; } set { a[index] = value; } } }

4、“打开文件”对话框

OpenFileDialog opf = new OpenFileDialog(); opf.RestoreDirectory = true; opf.Filter = \

文本文件(*.txt)|*.txt | C#文件(*.cs)|*.cs \

if (________________________ == DialogResult.OK) { textBox1.Text = opf.FileName; }

5、文件操作

共10页 第8页

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