欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    《c#程序设计》练习题.doc

    • 资源ID:78960729       资源大小:160KB        全文页数:13页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《c#程序设计》练习题.doc

    c#程序设计练习题一、判断题( )1在C# 2008编程环境中,常量的值可以在代码中被修改。( )2对象与对象之间的关系可以分为三类:包含、继承和关联。( )3属性就是实体特征的抽象,比如,对象猫可以有重量,身长等属性。 ( )4派生类可以继承基类的成员,以及方法的实现;派生的接口继承了父接口的成员方法,并且也继承父接口方法的实现。( )5当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。 ( )6如果在try块之后没有任何catch块,那么finally块也是可选的。( )7如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调用基类的构造函数。 ( )8try块是不可以实现嵌套的,但是一个try块可以对应多个catch块。( )9密封类不允许被继承,因而不能由密封类派生岀其他类。 ( )10方法的重载允许两个方法的名称和参数列表相同,而返回类型不同。( )11“+、-、*、/、%、+、-均属于二元运算符。 ( )12字符串类型属性引用类型。 ( )13Visual Studio控件的属性窗口中,按钮“A->Z”点击后,属性列表会先按照功能分类排列属性后在每个单元中以名称排序。 ( )14隐式类型转换就是不需要声明目标类型就可以进行的转换。 ( )15. 在C#中在派生类中重新定义基类类的虚函数必须在前面加override。 ( )16C中方法的参数中输出型参数(out)的实参在传递给形参前,不需要明确赋值,但需在方法返回前对该参数明确赋值。( )17在类中可以重载构造函数,C会根据参数匹配原则来选择执行合适的构造函数。( )18在 C#的方法中定义一个常量要用 const 关键字。 ( )19数组、类和接口都是引用数据类型。( )20C#异常处理中可以使用多个 catch 子句, 此时应将高级别异常类的 catch 子句放在前面。( )21实现一个接口,则在类中一定要实现接口中的所有方法。 ( )22 构造函数用于创建类的实例对象, 构造函数名应与类名相同, 在类中必须定义构造函数, 且只能定义一个构造函数。( )23类体中 private 修饰的变量在本类中能访问,类生成的对象也能访问。( )24委托是将方法作为参数传递给另一方法的一种数据类型,事件与委托没有关系。 二、选择题1. C#的数据类型有数值类型和( )类型两种。A结构类型 B关系类型 C调用类型 D引用类型 2. C#中,新建一字符串变量str,并将字符串"Tom's Living Room"保存到串中,则应该使用下列哪条语句?( )A. string str = "Tom's Living Room" B. string str = "Tom's Living Room" C. string str("Tom's Living Room"); D. string str("Tom"s Living Room");3. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成( )。A. sealed 方法 B. public 方法 C. virtual 方法 D. override 方法4. 用关于重载,以下叙述错误的是( )。A. 重载是指在类的内部存在若干个方法名称一致但是参数列表不同的方法B. 方法重载是指创建多个名称相同的方法,其中每个方法都在某些方面具有唯一性,以便编译器能够正确区别它们C. 重载构造函数的方式与重载方法的方式相同D. 方法的重载允许两个方法的名称和参数列表相同,而返回类型不同5. 下面是一个派生类的定义语句:public class car: vehicle private string model=”L”; private int wheelNo=4;请指出针对该定义的正确的说法( )。A. vehicle类是car类的一个特例,因而它可以被继承B. car类是父类,vehicle类是子类C. 在car类中定义的成员model和wheelNo会删除vehicle类中同名的成员D. car类是vehicle类的一个特例,它可以继承vehicle类中除构造函数和析构函数以外的所有成员6.( )关键字可以用来访问当前对象的基类对象。Aobject Bthis Cas Dbase7. 下面有关虚方法的描述正确的是( )。A. 虚方法能在程序运行时,动态确定要调用的方法,因而比非虚方法更灵活,更方便B. 在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符C. 重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符D. 在重写虚方法时,需要同时带上override和virtual修饰符8. 分析下列代码段:static void Main(string args) String words=new string"a","b","c" foreach (string word in words) word = "abc" Console.WriteLine(word); Console.ReadKey(); 最终的运行结果是什么?( )A. bc ac ab B. abc abc abc C. 不能正确编译 D. a b c9. 已知类MyClass 中事件MouseClicked 定义如下: public static event MouseClickedListener MouseClicked;执行下列语句:MouseClicked += new MouseClickedListener(obj.DoSomething);MouseClicked += new MouseClickedListener(obj.DoSomething);然后引发该MouseClicked 事件,其结果为:( )A. obj.DoSomething 方法被调用4 次B. obj.DoSomething 方法被调用2 次C. obj.DoSomething 方法被调用1 D. obj. DoSomething 方法不会被调用10. 下列关于多态的说法中,那个是正确的?( )A. 虚方法是实现多态的唯一手段B. 重写虚方法时可以为虚方法指定别称C. 多态性是指以相似的手段来处理不相同的派生类D. 抽象类中不可以包含虚方法 11. C#中TestClass为一自定义类,其中有以下属性定义public void Property使用以下语句创建了该类的对象,并使变量obj引用该对象:TestClass obj=new TestClass();那么,可通过什么方式访问类TestClass的Property属性( )。A.MyClass.Progerty; B.obj: Property; C.obj. Property; D.obj. Property();12. 下列关于继承说法中,哪个选项是正确的?( )A. 继承是指派生类可以获取其基类特征的能力B. 继承最主要的优点是提高代码性能C. 派生类可以继承多个基类的方法和属性D. 派生类必须通过base关键字调用基类的构造函数13.对于trycatchfinally如下结构,下面说法中,哪项是正确的?( )A. 在finaly块中放置return语句,编译可以通过B. 无论程序是否出现异常,finally块总是被执行的C. 一个try块只能和一个catch块对应D. 异常处理时,try块是可以省略的14. 分析下列程序代码:using System;class Program static void Main(string args) string testString = "Visual Studio 2008" string newString = string.Empty; foreach (char ch in testString) if (ch = 'i' | ch = 'u') continue; newString += ch.ToString(); Console.WriteLine(newString); 哪项的输出是正确的?( )A. iu ui B. VC. Vsal Stdo 2008 D. Visual Studio 200815在使用FileStream 打开一个文件时,通过使用FileMode 枚举类型的( )成员,来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。A. Append B. Create C. CreateNew D. Truncate 16. 以下类型中,不属于值类型的是( )。A. 整数类型 B. 布尔类型 C. 枚举 D. 类类型17. 用户自定义的异常类应该从哪个类中继承( )。A. System.ArgumentException B. System.IO.IOExceptionC. System.SystemException D. System.ApplicationException18. 以下关于抽象类的说法,其中错误的是( )。A. 抽象类可以实例化B. 抽象类可以包含抽象方法C. 抽象类可以包含非抽象方法D. 抽象类中可以定义成员变量19. 下列语句声明了一个委托:public delegate int myCallBack(int x);则用该委托产生的回调方法的原型应该是( )。A.void receive (int x) B.int receive(int num)C.int receive( ) D.不确定的20. 类MyClass 中有下列方法定义:public void testParams(params int arr) Console.Write ("使用Params参数!");public void testParams(int x,int y) Console.Write ("使用两个整型参数!");请问上述方法重载有无二义性?若没有,则下列语句的输出为( )。MyClass x = new MyClass();x.testParams(0); x.testParams(0,1);x.testParams(0,1,2);A. 有语义二义性; B. 使用Params 参数!使用两个整型参数!使用Params 参数!C. 使用Params 参数!使用Params 参数!使用Params 参数! D. 使用Params 参数!使用两个整型参数!使用两个整型参数!21. 下列关于接口的说法中,哪个选项是正确的?( )。A. 一个类可以有多个基类和多个基接口B. 抽象类和接口都不能被实例化C. 抽象类和接口都可以对成员方法进行实现D.派生类可以不实现抽象基类的抽象方法,但必须实现继承的接口的方法22. 下列关于多态的说法中,那个是正确的?( )A. 虚方法是实现多态的唯一手段B. 重写虚方法时可以为虚方法指定别称C. 多态性是指以相似的手段来处理不相同的派生类D. 抽象类中不可以包含虚方法23. 已知类Base、MyClass 的定义如下class Base public void Hello()System.Console.WriteLine("Hello in Base!");class Derived : Basepublic void Hello()System.Console.WriteLine("Hello in Derived!");则下列语句在控制台中的输出结果为( )。Derived x = new Derived();x.Hello();A. Hello in Base! B. Hello in Derived!C. Hello in Base! D. Hello in Derived!Hello in Derived! Hello in Base!24. 下面哪一个不是C#关键字? ( )A.true B. sizeof C. super D. void25. 以下是几条定义、创建并初始化一维数组的语句,其中错误的是( )。A. int score = new int 3 10, 20, 30; B. int score; score = new int 3 10, 20, 30;C. int score = 10, 20, 30; D. int score = new int 4 10, 20, 30;26. 下列的( )不是构造函数的特征。A. 构造函数的函数名和类名相同 B. 构造函数可以重载 C. 构造函数可以带有参数 D. 可以指定构造函数的返回值27. 在类TestClass中的构造函数有如下重载: public TestClass(params int _value) Console.WriteLine(“params contrctor!”); public TestClass(int x,int y) Console.WriteLine(“two int contructor!”);运行下面的代码后,TestClass obj1=new TestClass(0);TestClass obj2=new TestClass(1,3);TestClass obj3=new TestClass(1,3,4);最后的输出结果是什么?( )A. params contrctor!two int contructor!two int contructor!B. params contrctor! params contrctor! params contrctor!C.无法编译通过D. params contrctor! two int contructor! params contrctor!28. 下面关于Hashtable与Dictionary<K,V>的区别,正确的是( )。A. Hashtable和Dictionary<K,V>中都可以添加任何类型的对象B. Hashtable和Dictionary<K,V>都需要强制转换后才能访问集合元素C. 在定义Hashtable对象时,无需指定键、值的类型,而定义Dictionary<K,V>对象时,必须指定键、值的类型DHashtable和Dictionary<K,V>都可以使用Remove方法,利用Key删除指定元素29. 以下关于类的继承的说法,其中错误的是( )A子类只能派生于一个父类B一个父类可以有多个子类C所有的类成员都可以被继承D子类是对父类的扩展,子类可以添加新的成员30. 分析下列程序:public class class4private string _sData = ""public string sDataset_sData = value;在Main 函数中,在成功创建该类的对象obj 后,下列哪个语句是合法的?( )A. obj.sData = "It is funny!" B. Console.WriteLine(obj.sData);C. obj._sData = 100; D. obj.set(obj.sData);31. 对下面的代码,哪段描述是错误的?( )public class Doorpublic class Housepublic House ()Door door = new Door();A、Door是一个类 B、House是一个从Door继承的类C、House的构造函数中声明了一个名为door的变量D、door是一个对象32. 设置“打开”对话框的Filter属性,可指定将要打开的文件类型,现在希望用户只能打开图片文件,则需要使用以下( )选项作为筛选器字符串。A图片文件(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIFB文本文件(*.txt)|*.txtC所有文件(*.*)|*.*D. Office文档(*.doc;*.xls;*.ppt)|*.doc;*.xls;*.ppt三、综合题1下面这段程序要完成的功能是:从输入的字符串中找出小写字母并输出到终端。请检查下列代码,找出所有错误的代码,并写出该行完整的正确代码。(把错误代码在原题标出,并在旁边纠正。)using System;public class Programstatic void Main(string args) string inputString=Console.ReadLine(); string lowerCase=string.Empty; foreach (char ch in inputString) if (ch>='a'|ch<='z') lowerCase+=ch.ToString; Console.WriteLine("小写字母有:"+lowerCase); 2. 下述代码用于重写Message方法。请分析下述代码,并更正错误代码行。(把错误代码在原题标出,并在旁边纠正。)interface IMsg void Message();public class MyClass : IMsg public virtual void Message() Console.WriteLine("MyClass"); public class MyDerivedClass : MyClass public void Message() Console.WriteLine("MyDerivedClass"); 3. 下面代码的功能是遍历整个数组并将其显示出来。请分析下述代码,并更正错误代码行。(把错误代码在原题标出,并在旁边纠正。)static void Main(string args) string myArray = new string "C#","C+","VB","java" for (int i = 0; i <myArray.Length - 1; i+) Console.WriteLine(myArrayi); System.Console.ReadKey(); 4. 请补充程序,使输出结果为:a=20,b=10。(在原题填空。)class Program static void Main() int a = 10, b = 20; Swap( , ); Console.WriteLine("引用传递: a = 0, b = 1", a, b); Console.ReadLine(); public static void Swap( , ) int z = x; x = y; y = z; 5.下面程序中两个方法需要实现的功能是:int数组相加,即数组中的每项相加,以及string类型的相加,即把一串字符串接到另一串字符串后面。请分析下列代码段,并在空白行补全visual C#代码。(在原题填空。) int result=new intarray1.Length ; for (int i=0;i<array1.Length ;i+) resulti =array1i +array2i; return result; string spaceStr = " ", result = null; result = str1 + spaceStr + str2; return result;static void Main(string arges) int a = 1, 2, 3, , b = 4, 5, 6 ; int sumArray = new int3; string str1 = "visual", str2 = "studio" string sumString = null; sumArray = Add(a, b); sumString = Add(str1, str2);6.定义一个抽象类Vehicle,然后再定义它的一个派生类Truck,Truck类实现Vehicle类抽象方法和虚拟方法。请把程序补充完整。(在原题填空。)public class Vehicle private float speed; public float Speed get return speed; set speed = value; public Vehicle(float speed) this.speed = speed; public virtual float Run(float distance) return distance / speed; public abstract void Speak(); public class Truck : Vehicle private float weight; public float Weight get return weight; private float load; public float Load get return load; public Truck(int weight, int load) : base(50) this.weight = weight; this.load = load; public float Run(float distance) return (1 + load / Weight / 2) * base.Run(distance); public void Speak() Console.WriteLine("叭.叭."); 7.下面这段程序的功能是:把数列a1=1,a2=1, (n>2)的每一项求出来写到文件C:num.txt文件中去,然后我们根据要求的数列项从文件中把该项读出来。请把程序补充完整。(在原题填空。) static void Main() FileStream fs1 = new FileStream( , FileMode.Create); for (ushort a = 1, b = 1; a <= 10000; ) ushort t = b; b = a; a = t; fs1.WriteByte(byte)(a / 256); /写入前8位 fs1.WriteByte(byte)(a % 256); /写入后8位 fs1.Position = 0; Console.Write("请输入要读取的数列项: ");int i = int.Parse(Console.ReadLine(); fs1.Position = 2 * i; int x = ; Console.WriteLine("数列项为: " + x); fs1.Close(); Console.ReadLine();8.实现一个类A,在A中有一个受保护的整型变量num,定义构造函数对num进行初始化,并实现可读写属性Num获取和设置num的值。实现类B从A继承,重载Num,使其返回num的2倍。9.比尔在教他的女儿面向对象的知识。他写了一个类Bill和一个接口IPrintname。现在他希望女儿能够写一个类Jennifer,继承自Bill,重写基类函数WhoAmI(),将输出改为“Jennifer”;并且实现接口IPrintname,该接口只有一个方法Print,这个方法的实现会在控制台打印调用WhoAmI函数的结果(即:“Jennifer”)。public class Bill public virtual string WhoAmI() return "Bill" public interface IPrintname void Print();10.下列Shape类是一个表示形状的抽象类,Area( )为求图形面积的函数,Total( )则是一个通用的用求不同形状的图形面积总和的函数。请从Shape类派生矩形类(Rectangle)、圆形类(Circle),给出具体的求面积函数。并在主函数中写出计算如图所示图形面积的语句。

    注意事项

    本文(《c#程序设计》练习题.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开