




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、单项选择题 1、下列哪个类型的对象是 ADO.NET 在非连接模式下处理数据内容的主要对象?(D ) A. CommandB. ConnectionC. DataAdapterD. DataSet 2、枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类型, 如果类型省略,则定义为(A )。 A. intB. sbyteC. uintD. ulong 3、创建数据库连接使用的对象是( A )。 A. ConnectionB. CommandC. DataReaderD. DataSet 4、C#中导入某一命名空间的关键字是(A )。 A. usingB. useC.importD. include 5、一般情况下,异常类存放在什么命名空间中?( B )。 A. 生成异常类所在的命名空间B. System.Exception 命名空间 C. System.Diagnostics 命名空间 D. System 命名空间 6、若将数据库中的数据填充到数据集,应调用 SqlDataAdapter 的( C )方法。 A. OpenB. CloseC. Fill D. Update 7、若将数据集中所作更改更新回数据库,应调用 SqlAdapter 的(A )方法。 A. Update B. CloseC. Fill D. Open 8、在使用 FileStream 打开一个文件时,通过使用 FileMode 枚举类型的( A)成员, 来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。 A. AppendB. CreateC. CreateNewD. Truncate 9、在菜单项 File 中,为将 F 设为助记符,应将该菜单项的 Text 属性设置为(B )。 A. FileB. B. int age = txtAge.Text; C. int age = Convert.ToInt32(txtAge); D. int age = int.Parse(txtAge.Text); 18、下面(B )代码可以显示一个消息框。 A. Dialog.Show(); B. MessageBox.Show(); C. Form.Show(); D. Form.ShowDialog(); 19、当需要使用一种数据类型表达同一类事物的不同状态,比如:男人、女人、小 孩、老人或者春夏秋冬时,C#中最可靠和直观的解决方案是什么?( B) A.使用 struct 结构 B.使用 enum 枚举 C.使用 int 类型,用不同的数值0,1,2表示 D.C#中无法通过一种数据类型实现同一事务的不同状态。 20、在 C# 中创造一个对象是,系统最先执行的是(B )中的语句。 A. main 方法 B.构造函数 C. 初始化函数D.字符串函数 21、异常捕获发生在(B )块中? A. tryB.catchC. finallyD. throw 22、在 C# 中,程序使用(B)语句抛出系统异常或自定义异常。 A. runB.throw C.catch D.finally 23、创建菜单后,为了实现菜单项的命令功能,应为菜单项添加(C )。事件处理方 法。 A. DrawItemB. PopupC. ClickD. Select 24、C#中 TestClass 为一自定义类,其中有以下属性定义 public void Property 使用 以下语句创建了该类的对象,并使变量 obj 引用该对象: TestClass obj = new stClass(); 那么,可通过什么方式访问类 TestClass 的 Property 属性?( A)。 A. Obj.Property;B. MyClass.Property;C. obj : Property;D. obj.Property (); 25、StreamReader 类的( A)方法用于从流中读取一行字符。如果到达流的末尾,则 返回 null。 AReadLineBReadCWriteLineDWrite 26、NET 框架中的 SqlCommand 对象的 ExecuteReader 方法返回一个:(A )。 A. SqlDataReader B. DataSetC. SqlDataAdapter D.XmlReader 二、判断题 1 当有多个异常要捕获时,应先捕获特殊(具体)异常再捕获普通(一般)异常。 2、在控制台应用程序中,若想从键盘上输入数据,可以使用 Console.Read()和 Console.ReadLine()方法。 3、填充数据集应使用 SqlDataAdapter 的 Update()方法 4、命令对象的 ExecuteScalar()方法是在获取单值的时候使用。 5、被 sealed 关键字修饰的方法不能被继承。 6、委托是将方法作为参数传递给另一方法的一种数据类型。事件与委托没有关系。 7、try、catch、finally 三个字句必须同时出现,才能正确处理异常 8、try 字句中所抛出的异常一定能被 catch 字句捕获 9、无论异常是否抛出,finally 子句中的内容都会被执行。 10、如果使用的整数索引小于 0,或者大于数组的大小,编译器将抛出一个 IndexOutOfRangeException 异常; 三、填空题 1、System.Array 有一个( length)属性,通过它可以获取数组的长度。 2、SQL 语句中删除一个表中记录,使用的关键字是( delete)。 3、封装的对象之间进行通信的一种机制叫做(消息传递)。 4、(Stack )类表示对象的先进后出集合。 5、在异常处理结构中,抛出的异常要用(catch)语句捕捉。 6、Timer 控件的( interval)属性,用来指定时钟空间触发时间的时间间隔,单位毫 秒。 7、在 windows 程序中,若想选中复选框,则应将该控件的(Checked )属性设置为 true。 8、数据库表中的每一行称为一条(记录) 9、要关闭已打开的数据库连接,应使用连接对象的(close)方法。 10、SQL 语句中的选择语句,使用的关键字是(SELECT )。 11、SQL 语句中删除一个表中记录,使用的关键字是( delete)。 12、在 windows 程序中,若想选中复选框,则应将该控件的(checked)属性设置为 true。 13、委托声明的关键字是(delegate )。 14、String 类的(Compare )方法实现的功能是比较两个字符串的值。 15、使用 Message.Show( )方法可以显示消息框,消息框的返回值是一个 (DialogResult)类型。 四、简答题 1 什么是异常?异常有什么作用? 异常是错误的一种,它的结果是导致程序不能正确运行,如系统崩溃、程序非正常退 出、死循环等。当抛出异常后,程序将不正常终止。但是,如果能很好的在程序中俘 获异常并处理异常,可以增强程序的健壮性。 2.C#中处理异常采用的结构化异常处理语句有哪些?并简要说明。 C#中共包含 3 种结构化异常处理语句:trycatch 语句,tryfinally 语句和 try catchfinally 语句。其中:try 块语句中用来指明有可能出现异常的代码;catch 块内 指明对所出现的异常的处理,若没有异常,则 catch 块不执行;finally 块是无论是否发 生异常均要执行的代码,主要用来清理资源或执行要在 try 块末尾执行的其它操作,或 不需要清理代码,则可以不使用该块。 3 什么是委托?委托与函数指针有何不同? 函数指针用指针获取一个函数的入口地址,实现对函数的操作。委托与函数指针 不同,委托是引用类型,是面向对象的,在使用时要先定义后实例化,然后再调用。 委托可以在运行时间接调用一个或多个方法。 4什么是事件? 事件作为 C#的一种类型,主要为类和类的实例定义发出通知的能力,从而将事件 和可执行代码捆绑在一起。事件最常见于窗体编程,如点击按钮事件、鼠标移动事件 等等。 5 如何在程序中定义和使用自定义事件? (1)首先,必须在类中声明事件并确定将要使用的委托和参数。 (2)其次,必须定义在触发事件时要调用的委托。 (3)最后,必须设计事件参数类,该参数类的实例会将信息传递给被调用的方 法。如果使用内置的 EventArgs 对象和 EventHandler 委托,则可以不执行该步骤。 6 对象的方法与对象的事件方法有何异同? 两者都是用一段代码完成特定的功能。事件方法代码是由用户添加的,事件方法 由事件的发生而被自动调用;对象的方法代码是系统预定义的,对用户是隐藏的,不 可见的,而且对象的方法必须在代码中调用。 7 简述按钮、标签和文本框控件的作用。 按钮控件通常用来接收用户的操作信息,激发相应的事件,按钮是用户与程序交 互的最简便的方法。标签控件的主要功能是输出信息,可以用来标识其他无法显示标 题的控件。文本框控件用于数据的输入与输出,文本框中的文本在程序运行时,可以 被用户编辑。 8 单选按钮与复选框控件各有什么作用? RadioButton 控件即单选按钮,提供由两个或两个以上互斥选项组成的选项集。它 支持勾选和不勾选两种状态,在文字前用一个可以勾选的圆点来表示,用户只能在一 组选项中选择一项。CheckBox 控件即复选框控件,通常用来设置选项,用户可以一次 选择任意数量的复选框。 9 实际应用中,菜单分为哪两种形式?C#中设计主菜单使用哪种控件? 实际应用中,菜单分为主菜单和弹出式菜单(上下文菜单)。通常使用 MenuStrip 控件实现主菜单设计。 10 简述已连接环境与非连接环境的区别与优缺点。 已连接环境是指应用程序和数据库之间保持连续的通信,优点是能及时刷新数据 库,安全性较高,缺点是需要固定的数据库连接,不宜多个用户共同使用同一个数据 库,扩展性差。非连接环境是指应用程序能够在与数据库断开的情况下进行操作,优 点是应用程序可以随时连接到数据库获取相应的信息,缺点是获得的数据可能不是最 新的,并且对数据更改时可能引发冲突,因为在某一时刻可能有多个用户同时对统一 数据操作。 11 何谓数据绑定技术? 所谓数据绑定技术就是把已经打开的数据集中某个或者字段绑定到组件的某些属 性上的一种技术,就是把已经打开的数据的某个或者某些字段绑定到 TextBox、 ListBox、ComboBox 等组件能够显示数据的属性上,当对组件完场数据绑定后,其显 示字段的内容将随着数据记录指针的变化而变化。 12 事件是一种委托吗?为什么? 事件不是委托,不过由于事件的性质决定了处理它的程序逻辑能访问的参数,因 此,在 C#中处理事件的逻辑都包装为委托。 13 列举 ADO.NET 中的五个主要对象,并简单描述 Connection 连接对象,Command 执行命令和存储过程,DataReader 向前只读的 数据流,DataAdapter 适配器,支持增删查询,DataSet 数据级对象,相当于内存里的 一张或多张表。 14NET 中读写数据库需要用到那些类?他们的作用? DataSet:数据存储器;DataCommand:执行语句命令;DataAdapter:数据的集合, 用于填充。 15 DataReader 和 DataSet 的异同 DataReader 使用时始终占用 SqlConnection,在线操作数据库任何对 SqlConnection 的操作都会引发 DataReader 的异常因为 DataReader 每次只在内存中加载一条数据, 所以占用的内存是很小的因为 DataReader 的特殊性和高性能.所以 DataReader 是只 进的你读了第一条后就不能再去读取第一条了 DataSet 则是将数据一次性加载在内存中.抛弃数据库连接读取完毕即放弃数据库 连接因为 DataSet 将数据全部加载在内存中.所以比较消耗内存.但是确比 DataReader 要灵活可以动态的添加行,列,数据.对数据库进行回传更新操作. 16 解释 virtual、sealed、override 和 abstract 的区别 virtual 声明虚方法的关键字,说明该方法可以被重写; sealed 说明该类不可被继 承;override 重写基类的方法;abstract 声明抽象类和抽象方法的关键字,抽象方法不 提供实现,由子类实现,抽象类不可实例化。 17 什么叫泛型 (generics)? 使用泛型,可以定义使用类型参数定义的类和/或方法。当客户端代码实例化类型 时,会指定一个特定的类型作为参数。 五、计算题 1、定义方法 float ave(float a)实现求数组的平均值,在主函数中使用委托调用该 方法,求数组(23,45,12,67.8,12.3)的平均值。 public static float ave(float a) float sum = 0; foreach (float n in a) sum = sum + n; return sum / a.Length; public delegate float F(float a); static void Main(string args) float a1 = new float 23, 45, 12, 67.8F, 12.3F ; F f = new F(ave); Console.WriteLine(“数组平均值:0“, f(a1); Console.ReadKey(); 2、List 集合的使用 List listEmail = new List(); static string queryDomain; private void Form1_Load(object sender, EventArgs e) listEmail.Add(““); listEmail.Add(““); listEmail.Add(““); listEmail.Add(““); listEmail.Add(““); listEmail.Add(““); listEmail.Add(““); foreach(string str in listEmail) lstResult.Items.Add(str); 3、使用 Dictionary泛型集合实现学生管理系统 public partial class Form1 : Form public Form1() InitializeComponent(); public class StuInfo private string id; private string name; private string classes; private string telephone; public string Id get return id; set id = value; public string Name get return name; set name = value; public string Classes get return classes; set classes = value; public string Telephone get return telephone; set telephone = value; public StuInfo(string _id, string _name, string _classes, string _telephone) this.id = _id; = _name; this.classes = _classes; this.telephone = _telephone; Dictionary stuDic = new Dictionary(); private void Form1_Load(object sender, EventArgs e) StuInfo zhang = new StuInfo(“1001“,“张三“,“软件 143“,“156844754584“); StuInfo li = new StuInfo(“1002“, “李四“, “软件 143“, ); StuInfo ma = new StuInfo(“1003“, “马玲“, “软件 144“, “167864754456“); StuInfo wang = new StuInfo(“1004“, “王强“, “软件 145“, “156444754866“); stuDic.Add(zhang.Id,zhang); stuDic.Add(li.Id, li); stuDic.Add(ma.Id, ma); stuDic.Add(wang.Id, wang); panel1.Visible = false; this.Height = 270; fillGrid(stuDic); public void fillGrid(Dictionary dic) if (dataGridViewInfo.ColumnCount = 0) DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn(); col1.HeaderText = “学号“; col1.DataPropertyName = “Id“; col1.Name = “No“; dataGridViewInfo.Columns.Add(col1); DataGridViewTextBoxColumn col2 = new DataGridViewTextBoxColumn(); col2.HeaderText = “姓名“; col2.DataPropertyName = “Name“; col2.Name = “Name“; dataGridViewInfo.Columns.Add(col2); DataGridViewTextBoxColumn col3 = new DataGridViewTextBoxColumn(); col3.HeaderText = “班级“; col3.DataPropertyName = “Classes“; col3.Name = “Classes“; dataGridViewInfo.Columns.Add(col3); DataGridViewTextBoxColumn col4 = new DataGridViewTextBoxColumn(); col4.HeaderText = “电?话?“; col4.DataPropertyName = “Telephone“; col4.Name = “Telephone“; dataGridViewInfo.Columns.Add(col4); BindingSource bs = new BindingSource(); bs.DataSource = dic.Values; dataGridViewInfo.DataSource = bs; private void btnQuery_Click(object sender, EventArgs e) if (txtQueryInfo.Text = “) fillGrid(stuDic); return; if (stuDic.ContainsKey(txtQueryInfo.Text) StuInfo stu=stuDictxtQueryInfo.Text; Dictionary subdic = new Dictionary(); subdic.Add(stu.Id,stu); fillGrid(subdic); else MessageBox.Show(“查无此人“,“出 错!“,MessageBoxButtons.OK,MessageBoxIcon.Error); private void btnAdd_Click(object sender, EventArgs e) panel1.Visible = true; this.Height = 400; txtID.Focus(); private void btnSubmit_Click(object sender, EventArgs e) if(txtID.Enabled=true) if (stuDic.ContainsKey(txtID.Text) MessageBox.Show(“学号已存在“, “出错!“, MessageBoxButtons.OK, MessageBoxIcon.Error); return; if(txtID.Text=“|txtName.Text=“|txtClass.Text=“|txtTelephone.Text=“) MessageBox.Show(“信息不能为空!“, “出错“, MessageBoxButtons.OK, MessageBoxIcon.Error); return; StuInfo stu = new StuInfo(txtID.Text,txtName.Text,txtClass.Text,txtTelephone.Text); stuDic.Add(stu.Id,stu); fillGrid(stuDic); txtID.Text=“; txtName.Text=“; txtClass.Text=“; txtTelephone.Text = “; panel1.Visible = false; this.Height = 270; else if ( txtName.Text = “ | txtClass.Text = “ | txtTelephone.Text = “) MessageBox.Show(“信息不能为空“, “出错“, MessageBoxButtons.OK, MessageBoxIcon.Error); return; stuDic.Remove(txtQueryInfo.Text); StuInfo stu = new StuInfo(txtID.Text, txtName.Text, txtClass.Text, txtTelephone.Text); stuDic.Add(stu.Id,stu); fillGrid(stuDic); txtID.Text=“; txtName.Text=“; txtClass.Text=“; txtTelephone.Text = “; panel1.Visible = false; this.Height = 270; txtID.Enabled = true; private void btnCancel_Click(object sender, EventArgs e) txtID.Text = “; txtName.Text = “; txtClass.Text = “; txtTelephone.Text = “; panel1.Visible = false; this.Height = 270; private void dataGridViewInfo_CellContentClick(object sender, DataGridViewCellEventArgs e) private void btnDel_Click(object sender, EventArgs e) if(!stuDic.ContainsKey(txtQueryInfo.Text) MessageBox.Show(“用户不存在“,“错误 “,MessageBoxButtons.OK,MessageBoxIcon.Error); return; else stuDic.Remove(txtQueryInfo.Text); fillGrid(stuDic); txtQueryInfo.Text = “; public MessageBoxButtons Error get; set; private void btnUpdate_Click(object sender, EventArgs e) if (!stuDic.ContainsKey(txtQueryInfo.Text) MessageBox.Show(“用户不存在“, “错误“, MessageBoxButtons.OK, MessageBoxIcon.Error); return; else panel1.Visible = true; StuInfo stu = stuDictxtQueryInfo.Text; txtID.Text = stu.Id; txtName.Text =stu.Name; txtClass.Text = stu.Classes; txtTelephone.Text =stu.Telephone; this.Height = 400; txtID.Enabled
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年企业财务战略规划与实施顾问服务合同
- 环保领域年度工伤赔偿标准与协议执行细则
- 2025年度高端营养保健品市场分析及品牌合作推广服务协议
- 2025年学历类自考英语(二)-马克思主义基本原理参考题库含答案解析(5套试卷)
- 2025年冷链物流叉车租赁市场拓展与供应链管理合作合同
- 2025年高端商务办公区装修设计与施工一体化协议
- 2025年度艺人IP授权与跨界合作合同范本
- 2025年智慧城市基础设施建设电缆配件采购合作协议
- 2025年度生态绿化草坪养护管理技术合作合同
- 2025年度智能化窑炉生产线设备更新合作协议
- 班级卫生打扫课件
- 校家社协同育人专题家长培训
- 2025至2030年中国聚氨酯传送带数据监测研究报告
- 电梯扣款通知函
- 《恩施旅游,介绍》课件
- 《无铅压电陶瓷综述》课件
- UL891标准中文版-2019配电盘十二版
- 2024年司法考试完整真题及答案
- 乡村振兴大讲堂课程设计
- 农业代收代付业务管理规定
- 专业音响灯光租用协议(2024年版)
评论
0/150
提交评论