《《C程序设计》期末试卷.doc》由会员分享,可在线阅读,更多相关《《C程序设计》期末试卷.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C#程序设计期末试卷(B)班级 姓名 学号 成绩 一 选择(50分)1下面几个函数,()是重载函数 1.void f1(int) 2.int f1(int) 3.int f1(int,int) 4.float k(int)(A)四个全 (B)1 和 4 (C)2 和 3 (D)3和42异常是在什么时候发生的? (A)编写程序时 (B)编译时 (C)运行时 (D)最终用户发出请求时3如果一个类命名为mywidger,则mywidger的默认构造函数看起来像哪一个? (A) new mywidger(); (C)public class mywidger(B) public mywidger()
2、; ( D) mywidger;4下列说法哪个正确?(A) 不需要定义类,就能创建对象 (C)属性可以定义为抽象的(B) 对象中必须有属性和方法 (D)常量不能作为类成员5关于类成员访问控制权限正确的是(A)public 能被所有类访问 (C)private 能被同一文件中的其它类访问(B)protected能被所有类访问 (D)internal能被所有类访问6构造函数何时被调用?(A) 创建对象时 (B)类定义时 (C)使用对象的方法时 (D) 使用对象的属性时 7int myArray3=new int3new int35,6,2,new int56,9,7,8,3,new int23,2
3、; myArray322的值是()。(A)9 (B)2 (C)6 (D)越界8抽象方法/在许多情况下,在基类中不能对虚函数给出有意义有实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。带有纯虚函数的类称为抽象类。它处于继承层次结构的较上层。抽象类是不能定义对象的,在实际中为了强调一个类是抽象类,可将该类的构造函数说明为保护的访问控制权限.抽象类的主要作用是将有关的组织在一个继承层次结构中,由它来为它们提供一个公共的根,相关的子类是从这个根派生出来的。 pulblic void test()大括号里的是方法体如果没,就没方法体有里面没内容说明方法体为空,但是有方法
4、体test是方法名 方法体就是方法的内容(A)可以有方法体 (C)可以出现在非抽象类中(B)是没有方法体的方法 (D)抽象类中的方法都是抽象方法9关于继承的说法正确的是:(A) 子类将继承父类所有的成员(B) 子类将继承父类的非私有成员(C) 子类只继承父类public成员(D) 子类只继承父类的方法,而不继承属性10下列说法哪个正确?(A) 允许一个子类有多个父类(B) 某个类是一个类的子类,它仍有可能成为另一个类的父类(C) 一个父类只能有一个子类(D) 继承关系最多不能超过4层11关于构造函数的说法哪个正确?(A) 一个类只能有一个构造函数(B) 一个类可以有多个不同名的构造函数(C)
5、构造函数与类同名/每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。(D) 构造函数不能被重载12下面错误很可能位于哪一行? My_prog.cs(35,6):error cs1010: Newline in constant/cs中的35是错误所在行 (A)35 (B)6 (C)1010 (D)没有指出13关于接口哪个正确?(A) 实现一个接口必须实现接口的所有方法(B) 一个类可以实现多个接口(C) 接口间不能有继承关系D 接口和抽象类是同一回事 / 1、抽象类里面可以有非抽象方法但接口里只能有抽象方法 声明方法的存在而不去实现它的
6、类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法。Abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。2、接口(interface)是抽像类的变体。在接口中,所有方法都是抽像的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽像的,没有一个有程序体。接口只可以
7、定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对像上调用接口的方法。由于有抽像类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口14下列选项中,()是引用类型。(A)enum类型 (B)struct类型 (C)string类型 (D)int类型15abstract class BaseClass public virtual vo
8、id MethodA() Console.WriteLine(BaseClass); class Class1: BaseClass public override void MethodA() Console.WriteLine(Class1); class Class2: Class1 public void MethodB() class MainClass public static void Main(string args) BaseClass o = new Class2(); o.MethodA(); /只要类可以声明对象那他就可以声明多个对象。而且这些多个对象占据不同的内存空
9、间。另外new 对象就是在内存中分配空间存储变量的一个过程,不只是你说的初始化,先分配空间然后初始化,如果空间分配不出来就直接异常了。而且分配内存和赋值是一起完成的。print p1 = new print()这句话详细解释就是: print p1 创建了一个p1这个引用。就是指针。new print() 生存了一个print对象。= 就是把p1这个引用指向你创建的那个对象。所以连起来就是 创建引用,再创建对象,然后把指针指向创建的对象请问,此程序输出结果是: (A) BaseClass (B) BassClass Class1 (C) Class1 (D) Class1 BassClass1
10、6以下的C#代码,试图用来定义一个接口:public interface IFile int A; int delFile() A = 3; void disFile();关于以上的代码,以下描述错误的是( )(A)以上的代码中存在的错误包括:不能在接口中定义变量,所以int A代码行将出现错误;(B)以上的代码中存在的错误包括:接口方法delFile是不允许实现的,所以不能编写具体的实现函数;(C)代码void disFile();声明无错误,接口可以没有返回值;(D)代码void disFile();应该编写为void disFile();17以下哪一个命名空间是在进行Sql Server
11、数据库访问时必须加载的?(A) System.Data.Odbc (B) System.Data.SqlClient(C) System.Data.OleDb (D) System.Data.SqlTypes18以下哪一种参数是设置非Windows集成安全下的数据库连接?(A) Trusted_Connection=Yes (B) user id=sa;password=111(C) Integrated Security=True (D) Integrated Security=SSPI19数据库连接中的参数设置Connection Timeout=10表示(A) 设置数据库连接超时为10秒
12、钟 (B) 设置数据库连接超时为10毫秒(C) 设置数据库连接的用户最多为10个(D) 设置数据库连接的次数不能超过10次20SQL语句“delete from department”,需要SqlCommand对象的哪一个方法在执行?(A) ExecuteNonQuery()/create创建update更新,delete删除,insert插入 (B) ExecuteScalar()(C) ExecuteReader()/查询得到一组数据集,下面的例子显示了如何使用SqlCommand对象来得到SqlDataReader对象:/ 1. Instantiate a new command wit
13、h a query and connectionSqlCommand cmd = new SqlCommand(select CategoryName from Categories, conn); (D) ExecuteXmlReader()/返回 XmlReader 对象,该对象可用于进一步处理结果21SQL语句“select count(*) from employee”,需要SqlCommand对象的哪一个方法在执行?(A) ExecuteNonQuery() (B) ExecuteScalar()/执行查询,返回第一行第一列的值(C) ExecuteReader() (D) Exec
14、uteXmlReader()22SQL语句“Create Table department(id integer,name char(10)”,需要SqlCommand对象的哪一个方法在执行?(A) ExecuteNonQuery() (B) ExecuteScalar()(C) ExecuteReader() (D) ExecuteXmlReader()23让控件不可用的属性是以下哪一个(A) AllowDrop (B) Enabled(C) Bounds (D) Visible24让控件不可见的属性是以下哪一个?(A) Cursor (B) Enabled(C) Dock (D) Visi
15、ble25设置控件布局位置的属性是以下哪一个?(A) DisplayRectangle (B) FlatStyle(C) Dock (D) Location二.简答题(40分)1给数据成员加上关键字static有何作用?2.接口和类之间的主要差别在哪里? 3比较C和C+的区别4. 请说出连接环境下和非连接环境下访问数据库的区别及优缺点,并各列举一个适合的情况.5完成下图用户界面DataReader( )( )DataSet( )( )( )数据库五.编程题(20分)Toys 玩具表字段数据类型描述ToyIdint玩具编号ToyNamechar(20)玩具名称ToyRatemoney玩具价格(1
16、) 利用SqlConnection,SqlCommand,SqlDataReader等打印整张表的数据(2) 利用SqlConnection,SqlAdapter,DataSet,DataTable,DataView等打印价格在10元以下的玩具信息.(要求通过DataView过滤的方式查出信息)C#程序设计试卷一、 选择题(每小题3分,共15分)1下面是几条定义类的语句,只能被继承的类是( )Aclass studentBpublic class student Cabstract class studentDsealed class student 2如果要在窗体中始终显示系统的当前时间,应
17、该使用的控件是( )ACheckBox BPanel CRadioButton DTimer 3下面对C#中类的构造函数描述正确的是( )A与方法不同的是,构造函数只有void这一种返回类型 B构造函数如同方法一样,需要人为调用才能执行其功能C构造函数一般被声明成private型 D在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数4下面有关类的继承的说法正确的是( ) A派生类的成员应该与基类的成员一致,不能为派生类增加新成员B在派生类中可通过隐藏继承成员,来删除基类的成员 C在描述类的继承关系时,父类与子类是基类与派生类的另一种说法D所有的类成员都可以被继承 5下面有关
18、事件的描述中,正确的是( )A方法一旦被事件预订后,就不能被撤消B事件的预订一次只能预订一个方法 C创建事件的关键字是delagate D当事件预订了多个方法时,一次只能有一个方法被调用二、判断题 (每小题2分,共20分)1按下按钮会引发事件。( )2事件的预订可以通过“=”来实现。 ( ) 3析构函数可以返回值。 ( )4SQL的INSERT语句不可以对数据库进行更新。 ( )5对象的this引用是对该对象本身的引用。 ( )6属性必须同时定义ge t访问器和se t访问器。 ( ) 7密封类不能被继承。 ( ) 8构造函数不允许重载。 ( ) 9类的static成员可以通过该类的对象来引用
19、。 ( ) 10派生类可以从多个类继承。 ( ) 三、简答题 (每小题5分,共10分)1定义一个类,并完成对该类构造函数和析构函数的创建。2写出在“图书.mdb”数据库中的“book”表中查询书名中包含有“网络”的书的书名、作者和价格的SQL命令。 四、写出下列程序的运行结果(每小题10分,共20分) 1using System;class Test public void F(string s) for (int i=0;i0)return a-;else return 0;class Test static void Main( ) Demo x=new Demo(9 );int k=x.
20、M( );while (k0) Console.Write(“0t ”, k*k); j=x.M( ); 81,64,49,36,25,16,9,4,1五、以下方法的功能是翻转字符串,请把该方法补充完整。(每空5分,共15分)string reverse(string s) string str=null; int j=str.Length-1; while(j=0) (_str+=sj-_); return (_str_) ; 六、编程:定义两个方法,方法的参数分别为输出型参数和引用型参数,并调用这两个方法。 (20分) C#程序设计参考答案一、 C D D C B二、 三、1. class
21、 Test public Test() Test() 2. select 书名,作者,价格 from book where 书名 like %网络%四、1成电机高专学2 81 64 49 36 25 16 9 4 1 五、 str+=sj- str 六、class OutRef public void Ft(out double a) a=Convert.ToDouble(Console.ReadLine();if(a0)a=Math.Sqrt(a);else a=Math.Pow(a,3);Console.WriteLine(n的值=0:f2,a); public string Fr(int
22、 a,ref int b) string s=a.ToString()+b.ToString();b=a+b;return s;class test public static void Main( ) OutRef ot=new OutRef( ); Console.Write(请输入n的值:); double n; ot.Ft(out n); int m=6;Console.WriteLine(ot.Fr(5,ref m);Console.WriteLine(m=0,m); 1.属于C#语言的关键字( )。A. abstract B. camel C. Salary D. Employ答案
23、:A2.C#语言中,值类型包括:基本值类型、结构类型和( )。A.小数类型 B.整数类型 C.类类型 D.枚举类型答案:D3. 假定一个10行20列的二维整型数组,下列哪个定义语句是正确的( )。A. intarr = new int10,20B. intarr = int new10,20C. int,arr = new int10,20 D. int,arr = new int20;10答案:C4在类作用域中能够通过直接使用该类的( )成员名进行访问。A. 私有 B. 公用 C. 保护 D. 任何答案:D5. 以下正确的描述是( )。A. 函数的定义可以嵌套,函数的调用不可以嵌套B. 函数
24、的定义不可以嵌套,函数的调用可以嵌套C. 函数的定义和函数的调用均可以嵌套D. 函数的定义和函数的调用均不可以嵌套答案:B6.小数类型和浮点类型都可以表示小数,正确说法:( )A. 两者没有任何区别B. 小数类型比浮点类型取值范围大C.小数类型比浮点类型精度高D. 小数类型比浮点类型精度低答案:C8能作为C#程序的基本单位是( )。A. 字符 B. 语句 C. 函数 D. 源程序文件答案:B9. 可用作C#程序用户标识符的一组标识符是( )。A. void define +WORD B. a3_b3 _123 YNC. for -abc Case D. 2a DO sizeof答案:B10.引
25、用类型主要有4种:类类型、数组类型、接口类型和( )。A.对象类型 B.字符串类型 C.委托类型 D.整数类型答案:C得 分评卷人二、填空题(每空2分,共20分)1 在switch语句中,每个语句标号所含关键字case后面的表达式必须是 。答案:常量表达式2 在while循环语句中,一定要有修改循环条件的语句,否则,可能造成 .。答案:死循环3 C#数组元素的下标从 开始。答案:04 当在程序中执行到 语句时,将结束所在循环语句中循环体的一次执行。答案:continue5 元素类型为double的2行5列的二维数组共占用 字节的存储空间。答案:806 C#数组类型是一种引用类型,所有的数组都是
26、从System命名空间的 类继承而来的引用对象。 答案:object7 枚举是从System. 类继承而来的类型。答案:Enum8一般将类的构造方法声明为 访问权限。如果声明为private,就不能创建该类的对象。答案:public或公有9.类中声明的属性往往具有get()和 两个函数。答案:set()10.对于方法,参数传递分为值传递和 两种。答案:引用传递得 分评卷人三、判断题(每题2分,20分)1.在C#中,所有类都是直接或间接地继承System.Object类而得来的。答案:对2.在C#中,任何方法都不能实现多继承。答案:错3.在C#中,子类不能继承父类中用private修饰的成员变量
27、和成员方法。答案:对3.在C#类中,this代表了当前类本身。答案:错4.菜单项标题中有含有带下划线的字符,这是快捷键。答案:错5.在C#Net中,窗体父子关系通过“属性”窗口来创建。答案:对6.静态类和实例类的区别在于:静态类不需要初始化即可直接使用,实例类需要进行实例化,生成对象才可使用。答案:对7.使用Directory类的Move()方法可以删除文件。答案:错8.使用FileInfo类的Copy()方法可以复制文件。答案:对9.DataSet对象中的表可以和数据库中的表同名,也可以不同名。答案:对10.Command对象可以执行SQL语句。答案:对得 分评卷人五、简答题(10分,每题5分)1.常见的用户界面有几类?答案:对话框应用程序、单文档界面应用程序SDI和多文档应用程序MDI2.什么是抽象类?答案:抽象类是含有一个或多个抽象方法的类,抽象类不能实例化。