理工学院2011-2012学年第一学期试卷课程:C#程序设计(A)评卷人(签名):复核人(签名):(答案填写在试卷后答题纸上)一、选择题(每题2分,共30分)1.以下那个工具用来将一个COM的TYPELIBRARY转换为一个具有相同定义的.NETASSEMBLY?()A)RegAsm.exeB)TlbExp.exeC)TlbImp.exeD)aximp.exe2.webservice的源文件后缀是:()A).aspxB)asaxC)ascxD)asmx3、.NET框架中的SqlCommand对象的ExecuteReader方法返回一个:()A)XmlReaderB)SqlDataReaderC)SqlDataAdapterD)DataSet4、下面那一个不能作为C#中类修饰符?()A)newB)pubic、privateC)protected、internalD)overrideE)abstract、sealed5、.NET框架中,File对象的OpenText方法,将返回一个:()A)StreamReader对象B)StreamWriter对象C)Stream对象D)File对象6、以下哪些不是C#的关键字?()A)finallyB)importC)interfaceD)unsafeE)sbyte7、以下代码片断()strings=1234567;stringss=s.Remove(3,3);returnss;的返回值是()A)“1234”B)“4567”C)“12345”D)“1237”8、异常是由try来处理,以下那种处理形式不正确A)try—catch(s)B)try---throwC)try---finallyD)try—catch(s)---finally9、对代理的声明方法不正确的有:()A)delegateintd();B)delegateintd(inti);C)publicdelegateint(inti);D)deleageintd;D)[A(“temp”)]delegateintd(inti);10、假定有一个类A,类A中定义一个方法staticvoidf();a1是A的一个对象,则下面对f的引用那一个正确():A)A.f()B)a1.f()C)f()D)都不正确11、接口可以包含一个和多个成员,下面哪个选项不能包含在接口中A)方法、属性B)索引指示器C)事件D)常量、域12、接口不能通过()来实现A)类B)结构C)方法13、下面那一个不是C#中方法的参数的类型A)值类型B)引用型C)输出型D)数组型E)代理型14、C#中的数据类型分为简单类型和引用类型,下面那一个不属于引用类型A)类B)代表C)数组D)接口E)枚举15、下面对属性的格式描述正确的是:()A)只读属性B)只写属性publicstringNamepublicstringName{{getget{{returnname;name=value;}}}}C)只读只写属性D)只读只写属性publicstringNamepublicstringName{{getget{{returnname;publicstringName}returnname;}}publicstringNameset{{setname=value;{name=value;}}}}二、程序填空(每空2分,共10分)下面是代理使用方法的描述,请根据提示把代码补充完整。①声明一个代理,名称为d,带有两个参数,分别为整型变量i,j。__________________________________________publicclassMyClass{publicintinstancemethod(inta,intb)//实例化方法{intc;c=a+b;returnc;}staticpublicintstaticmethod(inta,intb)//静态方法{intc;c=a+b;retunc;}}publicclassMainClass题号一二三四五六七八九总分得分系专业班级姓名考号(密封线内不准答题){staticpublicvoidMain(){intx=3,y=5;MyClassp=newMyClass()②把代理映射到类的实例方法______________________________③调用实例方法______________________________④把代理映射到类的静态方法______________________________⑤调用静态方法______________________________}}三、阅读程序(10分)usingSystem;classJumptest{publicstaticvoidMain(){try{Console.WriteLine(try);gotoleave;}finally{Console.WriteLine(finally);}leave:Console.WriteLine(leave);}}该程序的输出结果为:四、数据库操作题(共20分,具体是1)、2)每空1分共15分,3)小题5分)SQL数据库操作经常使用下面一些类和方法:SQLConnection、SQLCommand、SQLDataReader、DataSet、SQLDataAdapter、SQLCommandBuilder、DataTable、DataRow、ExecuteNonQuery()、ExecuteReader()、ExecuteScalar()、GetString()、GetValue()、Read()、toString()、Trim()、Fill()、Update()等,利用你掌握的ADO.Net数据库知识,完成下面作业。1)下面是利用数据库保存用户名、密码做的一个用户登录界面(如下)请把程序补充完整。表t_password(id,username,pass),结构如下:字段名数据类型长度是否为主键IdInt4是UsernameVarchar20PassVarchar20下面是片断代码,请按要求补充完整:/*利用数据适配器向导配置数据适配器,适配器名字为sqlDataAdapter1*/SqlDataReaderreader=null;reader=this.sqlSelectCommand1._____(1)________;//初始化数据读取器while(_______(2)______){if(this.TextBox1.Text==__(3)_______&&this.TextBox2.Text==___(4)_____{MessageBox.Show(“成功!!!”);break;}}_____(5)___________//关闭数据读取器2.已知表t_student(xh,name,class,sex),结构如下:字段名数据类型长度是否为主键XhInt4是NameVarchar10ClassVarchar10SexChar2给表t_student插入一条记录(1001,”张三”,”02001”,’男’)和查询数据库中姓名等于变量s_name所赋值的记录,请把程序补充完整。usingSystem.Data.SqlClient;stringmyconnectionString;strings_name;if(myConnectionString==){myConnectionString=InitialCatalog=Northwind;DataSource=localhost;IntegratedSecurity=SSPI;}______(1)_____myConnection=new______(2)_____(____(3)_____);//定义连接对象stringmyInsertQuery=_____(4)______;//定义插入数据的字符串stringmySelectQuery=”__(5)__________________”;//查询数据库中姓名等于变量s_name所赋值的记录____(6)____myCommand=new____(7)______(____(8)_______);//定义查询命令对象myCommand.Connection=myConnection;_________(9)_______________//打开连接myCommand.____(10)_____________;//执行命令查询myConnection.Close();3)用数据适配器与数据集(DataSet)运行模型,编制一段程序,完成把一条记录(1002,”张三”,”02001”,’男’)向t_student(xh,name,class,sex)表中插入,连接字符串仍是myConnectionString。五、多文档开发(共15分)多文档开发可能用到窗体的属性有text、IsMdiContainer、WindowState及窗体对象属性MdiParent和菜单项属性MergeOrde、MergeType(ADD、MergeItems)等,根据下面叙述,完成多文档开发作业。假定主窗体为Form1,Form1主菜单的菜单项有file(下拉菜单项有new和close)、help,子窗体Form2,Form2主菜单的菜单项有file(下拉菜单项有open)、edit,现在要求当新建文档时Form1主窗体的主菜单的菜单项排列顺序为file(菜单项的排列顺序为new、open和close)、edit和help,要求完成:1)写出上面多文档的开发步骤(过程)(10分)。2)编写file菜单中new的处理方法(5分)。六、网络应用(共15分)在网络应用中,套接字是一个很重要的概念,在套接字Socket类中,有许多方法是套接字编程中经常使用的,如类中的Bind,Listen,Conect,Accept,Send,Receive等,根据下面要求完成作业。1)服务器的IP地址是172.16.120.110,拟使用的端口是66,下面是服务器端button1按钮Click事件启动监听并接受信息的片断代码,请按要求补充完整(每空1分,共5分):本片断代码用到的私有成员有:IPAddressmyip=IPAddress.Parse(127.0.0.1);IPEndPointmyserver;Socketsock;boolbb=true;Socketaaa;privatevoidbutton1_Click(objectsender,System.EventArgse){myip=____(1)_________________________________;myserver=newIPEndPoint(_(2)_______,___(3)_____);sock=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);sock._____(4)__________;sock._____(5)__________;MessageBox.Show(“开始监听”);aaa=sock.Accept();Threadthread=newThread(newThreadStart(targett));thread.Start();}2)编写代码完成接受信息targett()方法,把接受到的信息添加到richTextBox1中(共10分)/*可能要用到的编码属性和方法:System.Text.Encoding.BigEndianUnicode、Connected、GetString(byte[]bytes)、Receive(byte[]buffer,intsize,SocketFlags.None)、AppendText(stringxx);*/privatevoidtargett(){}薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿