华南理工大学广州学院

发布时间:2022-11-10 13:37:21   来源:文档文库   
字号:
华南理工大学广州学院
C#桌面程序应用开发》复习题 一、 选择题 1、装箱是把值类型转换到( b )类型。 a数组 b引用 cchar dstring 2、下列哪个类型的对象是ADO.NET在非连接模式下处理数据内容的主要对象?( d a Command b Connection c DataAdapter d DataSet 3、枚举类型是一组命名的常量集合,所有整型都可以作为枚举类型的基本类型,如果类型
省略,则定义为( a )。 aintb sbyte c uint d ulong 4、面向对象编程中的“继承”的概念是指 b a 对象之间通过消息进行交互 b)派生自同一个基类的不同类的对象具有一些共同特征 c对象的内部细节被隐藏 d 派生类对象可以不受限制地访问所有的基类对象 5C#的类结构中,class关键字前面的关键字是表示访问级别,下面哪个关键字表示该类只能被这个类的成员或派生类成员访问? ( d a public b private c internal d protected 6、下列类型中, 哪些不属于引用类型? b )。 a String b int c Class d Delegate 7、数组pins的定义如下: int[] pins=new int[4]{9,2,3,1}; pins[1]=( b a 1 b 2 c 3 d 9 8创建数据库连接使用的对象是 a a Connection b Command c DataReader d DataSet 9、调用方法时,如果想给方法传递任意个数的参数时,应选用哪个关键字 c )。 a ref b out c params d 无特殊要求 10C#TestClass为一自定义类,其中有以下属性定义 public void Property{}开卷考 使用以下语句创建了该类的对象,并使变量obj引用该对象: TestClass obj = new TestClass(; 1 / 11


那么,可通过什么方式访问类TestClassProperty属性? a a Obj,Property; b MyClass.Property; c obj :: Property; d obj.Property (; 11、下列关于C#面向对象应用的描述中,哪项是正确的? c )。 a 派生类是基类的扩展,派生类可以添加新的成员,也可去掉已经继承的成 b abstract方法的声明必须同时实现 c 声明为sealed的类不能被继承 d接口像类一样,可以定义并实现方法 12C#中导入某一命名空间的关键字是( a )。 ausingb use cimport d include 13、一般情况下,异常类存放在什么命名空间中?( b )。 a 生成异常类所在的命名空间b System.Exception命名空间 c System.Diagnostics命名空间d System命名空间 14、若将数据库中的数据填充到数据集,应调用SqlDataAdapter的( c )方法。 a Open b Close c Fill d Update 15若将数据集中所作更改更新回数据库,应调用SqlAdapter a 方法。
a Update b Close c Fill d Open 16C#MyClass 为一自定义类,其中有以下方法定义public void Hello({??} 使用以下语句创建了该类的对象,并使变量obj 引用该对象:MyClass obj = new MyClass(; 那么,可如何访问类MyClass Hello 方法?( a a obj.Hello(; b obj::Hello(; c MyClass.Hello(; dMyClass::Hello(; 17在使用FileStream 打开一个文件时,通过使用FileMode 枚举类型的( a 成员, 来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。 a AppendbCreate c CreateNewd Truncate 18、有说明语句double[,] tab=new double[2,3];那么下面叙述正确的是( c )。 a tab是一个数组维数不确定的数组,使用时可以任意调整 b tab是一个有两个元素的一维数组,它的元素初始值分别是23 c tab是一个二维数组,它 2 / 11


的元素个数一共有6 d tab是一个不规则数组,数组元素的个数可以变化 19、以下说法正确的是( b )。 a 虚方法必须在派生类中重写,抽象方法不需要重写 b虚方法可以在派生类中重写,抽象方法必须重写 c虚方法必须在派生类中重写,抽象方法必须重写 d 虚方法可以在派生类中重写,抽象方法也不需要重写 20在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,处理不同的派生类的需要,则应将该方法声明成( c )。 a sealed方法 bpublic方法 cvitual方法 doverride方法 21、面向对象三个基本原则是( c )。 a抽象,继承,派生 b 类,对象,方法 c继承,封装,多态 d 对象,属性,方法 22、在数组中对于for foreach 语句,下列那些选项中的说法不正确? b )。 a foreach语句能使你不用索引就可以遍历整个数组 b foreach语句总是从索引1遍历到索引Length c foreach总是遍历整个数组 d 如果需要修改数组元素就必须使用for语句 23c#的引用类型包括类、接口、数组、委托、objectstring.其中object d )根类。 a 只是引用类型的 b 只是值类型的 c 只是string 类型的 d 是所有值类型和引用类型的 24C#的构造函数分为实例构造函数和静态构造函数,实例构造函数可以对 b )进行初始化,静态构造函数只能对静态成员进行初始化。 a 静态成员 b 静态成员和非静态成员c 非静态成员d动态成员 25当运行程序时,系统自动执行启动窗体的 C 事件。 a Click bDoubleClick c Load d Activated 26、若要使命令按钮不可操作,要对( B )属性进行设置。 a Visible bEnabled c BackColor d Text 27、在设计窗口,可以通过( A )属性向列表框控件如ListBox的列表添加项。 a Items bItems.Count c Text d SelectedIndex 3 / 11


28、在VS集成开发环境中有两类窗口,分别为浮动窗口和固定窗口,下面不属于浮动窗口的是( D a 工具箱 b)属性 c 工具栏 d窗体 29、引用ListBox(列表框最后一个数据项应使用( C )语句 a ListBox1.Items[ListBox1.Items.Count] bListBox1.Items[ListBox1.SelectedIndex] c ListBox1.Items[ListBox1.Items.Count-1] d ListBox1.Items[ListBox1.SelectedIndex-1] 30、引用ListBox(列表框当前被选中的数据项应使用( B )语句 a ListBox1.Items[ListBox1.Items.Count] bListBox1.Items[ListBox1.SelectedIndex] c ListBox1.Items[ListBox1.Items.Count-1] d ListBox1.Items[ListBox1.SelectedIndex-1] 31下面代码的输出结果是d
int x = 5; int y = x++; Console.WriteLine(y; y = ++x; Console.WriteLine(y; a5 6 b 6 7 c 5 6 d 5 7 34、在C#语言的main方法定义体中,下面()是错误的。 C A static voidMain(string[] args{ } B static int Main(string[] args{ } C static Main(string[] args{ } 缺少定义返回类型 D static int Main( { } 35C#语言中,下面的关于公共类型常量定义正确的是() A A public const int dayMax=7; B public const dayMax=7; C const int dayMax=7; D public const int day-Max=7; 变量名错误,不能有“- 36、在C#中,关于下面代码的输出结果正确的是()。 D static void Main(string[] args { int[] array = new int[3] { 0, 1, 2}; foreach(int temp in array { temp++; forach循环只能读,不能更改 Console.WriteLine(temp; } } A 0 B 1C 2D 编译错误 4 / 11


37、下面C#中,使用String类把字符串“abcd”截取成“cd”,应采用的方法是()。D A Compare( B IndexOf(C Join( D Substring( 38、在C#中,int num=2 采用Convert方法转换为单精度浮点型,应采用()方法。 B A Convert.ToInt32( 转换为int B Convert.ToSingle( 转换为单精度浮点型 C Convert.ToDouble( 转换为双精度型 D Convert.ToString( 39、在sql server中,下面()不属于sql server数据库的数据类型。 A A bool B datetime C bitD image 40、在SQL Server假设订单表order用来存储订单信息,cid代表客户编号现在要查询每个客户的订购次数以及客户编号,以下语句正确的是()。D A select conut(ciD,cid from orders B select conut(ciD,cid form orders order by cid C select count(ciD,cid form orders having count(ciD>0 D select count(ciD,cid from orders group by cid 要查询每个客户,要进行分组查询 41SQL Server中,现有订单表orders包含用户信息userid产品信息productid以下()语句能够返回至少被订购过两回的productid D A select productid from orders group by productid where count(productiD>1 B select productid from orders having count(productiD>1 order by productid C select productid from orders where having count(productiD>1 group by productid D select productid from orders group by productid having count(productiD>1 先进行分组,再用having筛选 42、在表Employee中有一列为EmpName,执行删除语句: B DELETE FROM Employee WHERE EmpName LIKE _[a e]% 下面包含EmpName 列的()值的数据行可能被删除。 A Whyte B Carson 只允许第二个字母为ae C Annet D Hunyer 43、在C#中,下列代码的运行结果是()。 A string appName=\.NET\ foreach(char ch in appName{ if(ch=='4' break;
5 / 11


Console.Write(ch; } A ACCP 截取四个之后,ACCPB 40 C ASP.NETD ACCPASP.NET 44C#语言的类定义体中,下面()访问修饰符可以访问该类的成员。 D A privateB publicC internalD 以上选项均可 45、下列执行数据的删除语句在运行时不会产生错误信息的是() B C (选择二项) A delete * from employee where sgrade='6' deletefrom之间不允许有任何东西 B delete from employee where sgrade='6' C delete employee where sgrade='6' D delete employee set sgrade='6' 不符合delete语法 46C#,要使用ExecuteReader(方法查询获取数据库中的数据集,需要创(类型对象. A (选择一项) A SqlCommand 返回SqlDataReader B SqlConnection C SqlDataAdapter D DataSet 47、在c#中,关于命名空间说法正确的是()。B C (选择二项) A 采用import关键字添加命名空间引用 Java中用import B 采用using关键字添加命名空间引用 C 添加命名空间引用必须添加在当前命名空间外部 D 添加命名空间引用可以添加在当前命名空间内部 48、在c#中,下面关于int.Parse(方法使用正确的是()。 A A String value=\ int temp=int.Parse(value; B int temp=int.Parse(24.5; C int temp=int.Parse(\D int temp=int.Parse(24; 49下面关于命名空间说法错误的是( C A 命名空间用于组织相关的类型 B 命名空间可以嵌套 C 在同一个应用程序中,不同的命名空间中不允许有相同名称的类允许有 D using关键字用于引用命名空间 50、下面关于DataSet描述正确的是() A A 不直接和数据库打交道,与数据库类型没有关系关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且 6 / 11


可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。 B 用于读取只读的数据 C DataSet中的数据存储在数据库服务器的内存中 D 在断开数据库连接时,不可以操作数据库 51、在C#,下面关于属性(UserName定义正确的是( C D (选择二项) A string UserName{get} get少; B string UserName{set;} C string UserName{set;get;} D private string userName; public string UserName { set{userName=value;} get{return userName;} } 52、以下选项中,(符合\类和对象\的关系 B A 猫和老虎同属于动物类 B 大学和北京大学从属关系 C 学生和中学生 D 中国和中国人 53、下面选项中,(是对常量正确的声明 B A int MaxCount=1; 不符合常量定义语法:const 数据类型变量名; B const int MaxCount=1; C int const MaxCount=1; comst顺序与int错误 D const MaxCount=1; 有定义变量类型 54、设 Students 表有三列number1,number2,number3 ,并且都是整数类型,则以下(查询语句能按照number2列进行分组,并在每一组取number3的平均值 C (选择一项) A select avg(number3 from students 没有分组 B select avg(number3 from students order by number2 不需要排序 C select avg(number3 from students group by number2 使用avg()得number3平均值,并进行number2的分组 D select avg(number3 from students group by number3,number2 55conn是一个可用的数据库连接对象,下面一段代码再生成解决方案时出错,错误在第()行。 C 1 string sql=\ //编写sql语句 2 SqlCommand cmd=new SqlCommand(sql,conn; //创建command对象 3 conn.Open(); //打开数据库连接 4 int num=cmd.ExecuteScalar();应改int num = (int cmd.ExecuteScalar(); 7 / 11


原因:.ExecuteScalar()方法的返回值是odject类型的用该方法的返回值为其他变量进行赋值操作时,必须进行显示的类型转换 5 conn.Close(; //关闭数据库连接 A 2 B 3 C 4 D 5 56c#中,引用命名空间关键字是() B A namespace 命名空间 B using C import Java D input 57C#中,要获取select * from student的查询结果,则通过SqlCommand对象的()方法实现 B A ExecuteNonQuery B ExecuteReader C ExecuteScalarCount(* D Fill 58、在c#中,下面关于访问修饰符描述正确的是()D A private定义的字段在类外可以调用 private私有 B public定义的字段只能在类外调用公开的,任何时候可以调用 C privatepublic定义的字段在任何地方都可以调用 D 以上全部分错误 59、在c#中,关于引用传递说法正确的是()C A 引用传递不用加ref关键字 B 使用引用传递值不会发生改变 C 使用引用传递值会发生改变 D 引用类型和值传递结果一样 60、在c#,下列关于属性说法,正确的是( D A set为只读属性,可以用来读取值 get只读属性,set读取属性 B get只写属性,可以设置值 C set为只写属性,可以用来读取值 D 定义一个属性,类型必须与它所访问的字段类型一致 61c#中,要向数据库发送如下sql语句,最好使用SqlCommand类的()方法。A update 学生表 set 年龄=年龄+1 where 年龄 max max = a[i]; if (a[i] 0 { ZengNum++; } else if (num == 0 {zeroNum++; } else { FuNum++;_ } }//for_end Console.WriteLine(\正数:{0}、负数: {1}、零:{2}\ 6.比尔在教他的女儿面向对象的知识。他写了一个类Bill和一个接口IPrintname。现在他希望女儿能够写一个类Jennifer,继承自Bill,重写基类函数WhoAmI(,将输出改为“Jennifer”;并且实现接口IPrintname,该接口 8 / 11


只有一个方法Print,这个方法的实现会在控制台打印调用WhoAmI函数的结果(即:“Jennifer”)。请改正错误的代码。 public class Bill { public string WhoAmI( //这一行改为public virtual string WhoAmI( { return \ } } public void interface IPrintname //本行应更正为:public interface IPrintname,即接口不应该有void { void Print(; } public class Jennifer : Bill, IPrintname { public override string WhoAmI( { return \ } public void Print( { Console.WriteLine(WhoAmI(; } }
7. We have two integers: m and n, write an function to compute m in power of n. And how you test it? static float pow(int m, int n { if (m == 0 return 1;//某些领域为1,或者抛出异常 else { if (n == 0 return 1; if (n > 0 return m * pow(m, n - 1; else return 1 / pow(m, -n; } } 测试: pow(0,0 ? 1 Pow(0, -0?1 Pow(1, 0? 1 Pow (-2, 0 Pow (3, 2 Pow (3, -2 Pow (300, 100 Pow (300, -100 8. 接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么? 9 / 11


从形式上看 接口无实现方法只有方法声明 而抽象类有实现方法也有方法声明,从偶合度来说 由于抽象类 有实现的方法 所以容易紧偶合 而接口就比较好的实现了松散偶合。 I. 一般在仅实现单继承用途时, 尽量用基类; 反之使用接. II. 如果基类不作为业务对象(在应用时不需要声明其实例, 则尽量声明为抽象类; 否则声明为一般基类. III. 各个子类如果 公共(重用代码较多, 建议使用类继承方式, 把公共代码抽象到基类中. 请自行举例说明。 9. What is the different between data Set and data Reader in ADO.NET? dataset表示一个数据集,是数据在内存中的缓存。 可以包括多个表 DatSet 连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接 datareader 连接数据库时是面向连接的。读表时只能向前读取,读完数据后有用户决定是否断开连接。 10. Reverse every word in a String (abc def becomes cba fed. private static string ReverseStringByWord(string input { if (string.IsNullOrEmpty(input throw new ArgumentNullException(\ char[] sb = new char[input.Length]; int lastIndex = input.Length; while ((lastIndex > 0 && char.IsWhiteSpace(input[lastIndex - 1] lastIndex--; int appendIndex = 0; . for (int i = lastIndex - 1; i >= 0; i-- { char c = input[i]; // if (char.IsWhiteSpace(input[i] if ( c == ' ' || c == '\\t' || c == '\\n' || c == '\\r' { for (int j = i + 1; j =1;i--{ Console.Write(\ for (int j = 1; j a[j + 1] { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } foreach (int k in a Console.WriteLine(k; Console.ReadLine(; } 10 / 11


掌握常用的排序算法。 7.C#中常用控件的用法,重点要求掌握文本框、标签框、复选框、单选框、组合框、图像框、下拉框(组合框的用法,以及文件对话框的使用。请参考下面两 (1.复选框、单选框、组合框 实现如图所示的功能。要求对相应控件做了设置之后,马上见到对应的字体效果。清除按钮用来清除文本框中的文字内容(textbox1.clear(方法退出按钮用来退出程序(Application.Exit(方法 (2. 创建个人简历应用程序,参见上机指导 编写一个简单的个人简历程序,要求可以通过文本框输入姓名,通过单选按钮设置性别,通过下拉列表框选择文化程度,通过文本区域填写其他个人信息;过文件对话框选择照片并显示;通过两个下拉列表框来关联选择籍贯。 8. C#中连接和使用数据库:要求掌握连接Sql Server的几个主要步骤(连接字符串设置、打开及关闭、使用DataAdapter对象(DataReader对象Command对象、DataSet对象以及主要控件的数据绑定方法,请参考以下几个示例。 (1 在下划线处填上合适的内容,使程序变得正确完整,程序要实现的功能是:完成向数据集中填充数据,然后DataGridView1控件绑定到此数据集。 string connString=\ SqlConnection conn= ___new_____ SqlConnection(connString; string strsql=\ SqlDataAdapter adapter=new SqlDataAdapter(strsql , ____strsq1_____ ; DataSet dataset=new DataSet( ; adapter.Fill(______dataset_________; this.dataGridView1.DataSource=dataset.Tables[0]; (2图形界面的SqlAdapterDataSet应用 (3DataReader的使用
11 / 11


本文来源:https://www.2haoxitong.net/k/doc/d81092d77b563c1ec5da50e2524de518974bd3d9.html

《华南理工大学广州学院.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式