发布时间 : 星期日 文章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 (10 { 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页