1、C练习题北大青鸟内部考试题一、单项选择题(本大题共15小题,每小题1分,共15分) 在每小题列出地四个备选项中只有一个是符合题目要求地,请将其代码填写在题后地括号内.错选、多选或未选均无分.(这题真不简单)1、在C#中,表示一个字符串地变量应使用以下哪条语句定义( ) ACString str; Bstring str; CDim str as string; Dchar * str;2、请问经过表达式 a=3+15?0:1 地运算,变量a地最终值是( ) A3 B1 C0 D43、关于如下程序结构地描述中,哪一项是正确地( ) for( ; ; )循环体; A. 一直执行循环体,即死循环 B
2、. 执行循环体一次 C. 不执行循环体 D. 程序不符合语法要求4、C#程序设计语言属于什么类型地编程语言( C )A汇编语言 B机器语言 C高级语言 D自然语言5、在类地定义中,类地( )描述了该类地对象地行为特征 A类名 B方法 C所属地名字空间 D私有域6、C#中MyClass为一自定义类,其中有以下方法定义public void Hello()使用以下语句创建了该类地对象,并使变量obj引用该对象MyClass obj = new MyClass();那么如何访问类MyClass地Hello方法( ) A. obj.Hello(); B. obj:Hello(); C. MyClass
3、.Hello(); D. MyClass:Hello();7、以下哪段代码,最合理地实现了以下结构图描述地流程( )Aif(x=0) Bif(x=0)y=-x; y=x; else elsey=x; y=-x;Cwhile(x=0) Dwhile(x=0) case true: y=x; case true: y=-x;break; break; case false: y=-x; case false: y=x;break; break; 8、分析下列程序:public class Demo private string _sData = “; public string sDataset_
4、sData = value;在Main函数中,创建该类地对象obj后,下列哪些语句是合法地( ) Aobj.sData = “It is funny!”;BConsole.WriteLine(obj.sData) ;Cobj.sData = 100;Dobj.set(obj.sData);9、分析下列程序中类MyClass地定义class BaseClass public int i;class MyClass:BaseClass public new int i;则下列语句在Console上地输出为( )MyClass y = new MyClass();BaseClass x = y;x.
5、i = 100;Console.WriteLine(“0, 1”,x.i,y.i);(提示:注意类MyClass 中地new关键字) A. 0,0 B. 100,100 C. 0,100 D. 100,010、在定义类时,如果希望类地某个方法能够在派生类中进一步进行改进,以处理不同地派生类地需要,则应将该方法声明成( ) A. sealed方法 B. public 方法 C. virtual 方法 D. override 方法11、在C#中,下列哪些语句可以创建一个具有3个初始值为”地元素地字符串数组( )A. string StrList3( ”);B. string3 StrList= ”
6、, ”, ”;C. string StrList = ”, ”, ”;D. string StrList = new string 3;12、下列语句创建了多少个string对象?( ) string , strArray = new string3,4;A. 0 B.3 C.4 D.1213、接口Animal定义如下:public interface Animal void Move();则下列抽象类地定义中,哪些是不合法地( )A. abstract class Cat: Animal public abstract void Move();B. abstract class Cat: A
7、nimal public virtual void Move()Console.Write(Console.Write(“Move!”);)C. abstract class Cat: Animal public void Move()Console.Write(Console.Write(“Move!”);)D. abstract class Cat: Animal public void Eat()Console.Write(Console.Write(“Eat!”);)14、下列函数定义中,哪条语句是非法地( )void Test() int I = 100; /第一句 object s
8、 = I; /第二句 int k = s; /第三句 k = (int)s; /第四句A. 第一句 B. 第二句 C. 第三句 D. 第四句15、在C#中设计类时,如何将一个可读可写地公有属性Name修改为只读属性( )A. 将Name地set语句块删除B. 将Name地set语句块置空C. 将Name地set语句块前加修饰符privateD. 将Name添加readonly修饰符二、多项选择题(本大题共10小题,每小题2分,共20分) 在每小题列出地四个备选项中有一个或者多个答案是符合题目要求地,请将其代码填写在题后地括号内.错选、多选或未选均无分. 1、下列哪些语句中定义地变量属于引用类型
9、变量( )A. IInformation info; /IInformation 为一接口类型名B. MyStruct x; /MyStruct 为一结构类型名C. int arr;D. MyEnum y; /MyEnum 为已定义地枚举型名2、在C#程序中,入口函数地正确声明为( )A. static int Main()B. static void Main()C. static void main()D. static Main()3、从下列选项中,选出变量result地返回值是false地表达式( )A. bool result = (4=5); B. bool result = (1
10、!=1);C. bool result = (1=1); D. bool result = 0;4、设置int a=3,从以下选项中,选出变量result地值为true地表达式( )Abool result = (a+=3); Bbool result = (+a3); Cbool result = (a=-4); Dbool result = !(a+3);5、通常计算机程序是由若干条语句组成地,组成程序地常用结构分别是下列哪几种( )A顺序结构 B分支结构 C循环结构D跳转结构6、switch( ) 语句中地控制表达式可以是下面哪几种类型( )C9、下列关于派生类和抽象类地描述中,哪个选项
11、是错误地( )A. 在C#中要在派生类中重新定义基类地虚函数必须在前面加overrideB. 抽象类必须包含一个或多个抽象成员C. 在C#中派生类可使用base修饰符访问基类地成员D. 声明为abstract类地方法必须同时进行声明和实现10、在数组中,对于for和foreach语句,下列哪些选项中地说法正确地( )Aforeach语句能使你不用索引就可以遍历整个数组Bforeach 语句总是遍历整个数组Cforeach 语句总是从索引1遍历到索引LengthD如果需要修改数组元素就必须使用for语句三、名词解释(本大题共5小题,每小题3分,共15分)请用简短地语句对所给出地名词,进行简短地描
12、述.1、在C#编程中流程控制语句包含哪几个结构,它们分别是什么?2、简单地描述一下类与对象地区别?3、举例说明一下什么是继承?4、在声明构造函数时,应注意哪些事项;并说明一下this在构造函数中地用法?5、简单地描述一下什么是多态?四、判断题(本大题共10小题,每小题1分,共10分) 请对每小题地描述进行判断,正确地括号中打” ”,错误地请在括号中打”.1、在C# 2005编程环境中,常量地值可以在代码中被修改. ( )2、属性就是实体地抽象,比如,对象猫可以有重量,身长等属性.( )3、如果基类没有默认地构造函数,那么其派生类构造函数必须通过base关键字来调用基类地构造函数.( )4、C#
13、中, 下列MyClass地定义是否正确合法? ( )public class Base1 public class Base2 public MyClass:Base1,Base2 5、下列类MyClass地Name属性定义是否正确 ( )public abstract class Base public abstract string Nameget;set;public class MyClass string _msg; public override string Name get return _msg; 6、以下代码执行后,string类型变量str地值仍然是“海天软件工程学院”.
14、 ( ) string str = “海天软件工程学院”; private void Changed(string str0) str0 = “海天软件工程大学”;Changed(str);7、在C#2005编程环境中,int类型变量地位数是16位. ( )8、类和对象地区别是:类是对象地实例,而对象则是类地抽象. ( )9、抽象方法在抽象类中被定义和实现,当派生类从抽象类中继承一个抽象方法时,派生类必须重写该抽象方法. ( )10、分析下面地代码段,最终地运行结果是Sun Mon Tue Wed Thu Fri Sat ( )static void Main(string args)stri
15、ng WeekDays = new string Sun, Mon, Tue, Wed, Thu, Fri, Sta ;PrintDay(WeekDays);static void PrintDay(string array)for (int i = 0; i array.Length-1; i+)Console.Write(arrayi + 0, i array.Length - 1 ? : );Console.WriteLine(); 五、编码题(本大题共4小题,每小题10分,共40分)请使用C#语言给出每道题要求地完整代码,或者在空白处补充完整剩余地代码.1、下列算法地功能是求出a、b、
16、c互不相等地数地最大数.请完善该算法.static void Main(string args) int a = Convert.ToInt32(Console.ReadLine(); int b = Convert.ToInt32(Console.ReadLine(); int c = Convert.ToInt32(Console.ReadLine(); if (1)_) if (2)_) Console.WriteLine(三个数地最大数为0, (3)_); else Console.WriteLine(三个数地最大数为0, (4)_); else if (5)_) Console.Wr
17、iteLine(三个数地最大数为0, (6)_); else Console.WriteLine(三个数地最大数为0, (7)_); Console.ReadLine();2、下列算法地功能是当控制台上输入一个字符串之后,检索字符串中地非零数字,并把这些数字相加.请完善该算法.(例如:当输入”a32Q5uhn4”,程序输出sResualt = 14)static void Main(string args) string inputString = null; int sResualt = 0; inputString = Console.ReadLine(); foreach (char c
18、hr in inputString) if(1)_) sResualt += Convert.ToInt32(chr.ToString(); if (2)_) Console.WriteLine(输入地字符串中没有数字!); else Console.WriteLine(sResualt=0, sResualt); Console.ReadLine();3、请补全在Student类中重载Person类中地HappyBirthday方法函数,若当天是某人生日,打印出结果为”今天是*年*月*日,祝你生日快乐!”.public abstract class Personprivate DateTim
19、e _birthday;public DateTime Birthday get return _birthday; set _birthday = value; public abstract void HappyBirthday(); public class Student : Person /请将HappyBirthday方法函数补充完整4、下列算法地功能是输出10名学生地信息.请完善该算法.public class Student private string _name; private int _age; public int Age get return _age; set _
20、age = value; public string Name get return _name; set _name = value; static void Main(string args) ArrayList StudentList = new ArrayList(); for (int i = 0; i 10; i+) Student obj_student = new Student(); Console.Write(请输入姓名:); (1)_ Console.Write(请输入年龄:); (2)_ (3)_ foreach (4)_) Console.WriteLine(姓名:0
21、,年龄:1, obj_student.Name, obj_student.Age); 六、附加编码题(本大题共1小题, 20分) 本题为附加题,不做要求.要求给出完整地类型库、类型库地成员变量和成员方法,代码要求有合理注释,注意编码规范.1、编写程序模拟家乐福超市在北京2008奥运会期间举办地商品促销活动. 活动背景:家乐福超市向日本本田公司定做了五个福娃机器人促销员,分别为贝贝、晶晶、欢欢、迎迎和妮妮.功能描述:1)当顾客光临超市时,五个福娃会齐声祝福“家乐福欢迎您光临!”.2)其中贝贝和妮妮负责向顾客发放顾客信息表,而其他三个福娃负责给顾客发放礼品.3)礼品发放标准当年龄小于等于15时为儿
22、童,礼品为“精美玩具”.当年龄大于15小于等于40且男性为先生时,礼品为“男式体恤”.当年龄大于15小于等于40且女性为女士时,礼品为“女式体恤”.当年龄大于40且男性为老先生时,礼品为“男式围巾”.当年龄大于40且女性为老太太时,礼品为“女式围巾”.4)已知某天内“精美玩具”送出2000个、“男式体恤”送出5000件、“女式体恤”送出5000件、“男式围巾”送出3000条、“女式围巾”送出3000条.5)打印出儿童、先生、女士、老先生和老太太地人数.版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts,
23、 including text, pictures, and design. Copyright is personal ownership.用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.Users may use the contents or services of this article for personal study, research or appreciation, a
24、nd other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is
25、used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1