C练习题北大青鸟内部考试题.docx
《C练习题北大青鸟内部考试题.docx》由会员分享,可在线阅读,更多相关《C练习题北大青鸟内部考试题.docx(13页珍藏版)》请在冰豆网上搜索。
![C练习题北大青鸟内部考试题.docx](https://file1.bdocx.com/fileroot1/2022-11/25/c2ba5906-4ab1-40cd-925f-468da3353dca/c2ba5906-4ab1-40cd-925f-468da3353dca1.gif)
C练习题北大青鸟内部考试题
一、单项选择题(本大题共15小题,每小题1分,共15分)
在每小题列出地四个备选项中只有一个是符合题目要求地,请将其代码填写在题后地括号内.错选、多选或未选均无分.(这题真不简单)
1、在C#中,表示一个字符串地变量应使用以下哪条语句定义()
A.CStringstr;B.stringstr;C.Dimstrasstring;D.char*str;
2、请问经过表达式a=3+1>5?
0:
1地运算,变量a地最终值是()
A.3B.1C.0D.4
3、关于如下程序结构地描述中,哪一项是正确地()
for(;;)
{
循环体;
}
A.一直执行循环体,即死循环B.执行循环体一次
C.不执行循环体D.程序不符合语法要求
4、C#程序设计语言属于什么类型地编程语言(C)
A.汇编语言B.机器语言C.高级语言D.自然语言
5、在类地定义中,类地()描述了该类地对象地行为特征
A.类名B.方法C.所属地名字空间D.私有域
6、C#中MyClass为一自定义类,其中有以下方法定义publicvoidHello(){…}使用以下语句创建了该类地对象,并使变量obj引用该对象MyClassobj=newMyClass();那么如何访问类MyClass地Hello方法()
A.obj.Hello();
B.obj:
:
Hello();
C.MyClass.Hello();
D.MyClass:
:
Hello();
7、以下哪段代码,最合理地实现了以下结构图描述地流程()
A.if(x>=0)B.if(x>=0)
y=-x;y=x;
elseelse
y=x;y=-x;
C.while(x>=0)D.while(x>=0)
{{
casetrue:
y=x;casetrue:
y=-x;
break;break;
casefalse:
y=-x;casefalse:
y=x;
break;break;
}}
8、分析下列程序:
publicclassDemo
{
privatestring_sData=““;
publicstringsData{set{_sData=value;}}
}
在Main函数中,创建该类地对象obj后,下列哪些语句是合法地()
A.obj.sData=“Itisfunny!
”;
B.Console.WriteLine(obj.sData);
C.obj.sData=100;
D.obj.set(obj.sData);
9、分析下列程序中类MyClass地定义
classBaseClass
{
publicinti;
}
classMyClass:
BaseClass
{
publicnewinti;
}
则下列语句在Console上地输出为()
MyClassy=newMyClass();
BaseClassx=y;
x.i=100;
Console.WriteLine(“{0},{1}”,x.i,y.i);
(提示:
注意类MyClass中地new关键字)
A.0,0B.100,100C.0,100D.100,0
10、在定义类时,如果希望类地某个方法能够在派生类中进一步进行改进,以处理不同地派生类地需要,则应将该方法声明成()
A.sealed方法B.public方法C.virtual方法D.override方法
11、在C#中,下列哪些语句可以创建一个具有3个初始值为””地元素地字符串数组()
A.stringStrList[3](””);
B.string[3]StrList={””,””,””};
C.string[]StrList={””,””,””};
D.string[]StrList=newstring[3];
12、下列语句创建了多少个string对象?
()
string[,]strArray=newstring[3,4];
A.0B.3C.4D.12
13、接口Animal定义如下:
publicinterfaceAnimal
{
voidMove();
}
则下列抽象类地定义中,哪些是不合法地()
A.abstractclassCat:
Animal
{
publicabstractvoidMove();
}
B.abstractclassCat:
Animal
{
publicvirtualvoidMove(){Console.Write(Console.Write(“Move!
”);)}
}
C.abstractclassCat:
Animal
{
publicvoidMove(){Console.Write(Console.Write(“Move!
”);)}
}
D.abstractclassCat:
Animal
{
publicvoidEat(){Console.Write(Console.Write(“Eat!
”);)}
}
14、下列函数定义中,哪条语句是非法地()
voidTest()
{
intI=100;//第一句
objects=I;//第二句
intk=s;//第三句
k=(int)s;//第四句
}
A.第一句B.第二句C.第三句D.第四句
15、在C#中设计类时,如何将一个可读可写地公有属性Name修改为只读属性()
A.将Name地set语句块删除
B.将Name地set语句块置空
C.将Name地set语句块前加修饰符private
D.将Name添加readonly修饰符
二、多项选择题(本大题共10小题,每小题2分,共20分)
在每小题列出地四个备选项中有一个或者多个答案是符合题目要求地,请将其代码填写在题后地括号内.错选、多选或未选均无分.
1、下列哪些语句中定义地变量属于引用类型变量()
A.IInformationinfo;//IInformation为一接口类型名
B.MyStructx;//MyStruct为一结构类型名
C.int[]arr;
D.MyEnumy ;//MyEnum为已定义地枚举型名
2、在C#程序中,入口函数地正确声明为()
A.staticintMain(){……}
B.staticvoidMain(){……}
C.staticvoidmain(){……}
D.staticMain(){……}
3、从下列选项中,选出变量result地返回值是false地表达式()
A.boolresult=(4==5);B.boolresult=(1!
=1);
C.boolresult=(1==1);D.boolresult=0;
4、设置inta=3,从以下选项中,选出变量result地值为true地表达式()
A.boolresult=(a++>=3);
B.boolresult=(++a>3);
C.boolresult=(~a==-4);
D.boolresult=!
(a++>3);
5、通常计算机程序是由若干条语句组成地,组成程序地常用结构分别是下列哪几种()
A.顺序结构B.分支结构C.循环结构 D.跳转结构
6、switch()语句中地控制表达式可以是下面哪几种类型()
C
9、下列关于派生类和抽象类地描述中,哪个选项是错误地()
A.在C#中要在派生类中重新定义基类地虚函数必须在前面加override
B.抽象类必须包含一个或多个抽象成员
C.在C#中派生类可使用base修饰符访问基类地成员
D.声明为abstract类地方法必须同时进行声明和实现
10、在数组中,对于for和foreach语句,下列哪些选项中地说法正确地()
A.foreach语句能使你不用索引就可以遍历整个数组
B.foreach语句总是遍历整个数组
C.foreach语句总是从索引1遍历到索引Length
D.如果需要修改数组元素就必须使用for语句
三、名词解释(本大题共5小题,每小题3分,共15分)
请用简短地语句对所给出地名词,进行简短地描述.
1、在C#编程中流程控制语句包含哪几个结构,它们分别是什么?
2、简单地描述一下类与对象地区别?
3、举例说明一下什么是继承?
4、在声明构造函数时,应注意哪些事项;并说明一下this在构造函数中地用法?
5、简单地描述一下什么是多态?
四、判断题(本大题共10小题,每小题1分,共10分)
请对每小题地描述进行判断,正确地括号中打”√”,错误地请在括号中打”×”.
1、在C#2005编程环境中,常量地值可以在代码中被修改.()
2、属性就是实体地抽象,比如,对象猫可以有重量,身长等属性.()
3、如果基类没有默认地构造函数,那么其派生类构造函数必须通过base关键字来调用基类地构造函数.()
4、C#中,下列MyClass地定义是否正确合法?
()
publicclassBase1{}
publicclassBase2{}
publicMyClass:
Base1,Base2{}
5、下列类MyClass地Name属性定义是否正确()
publicabstractclassBase
{
publicabstractstringName{get;set;}
}
publicclassMyClass
{
string_msg;
publicoverridestringName
{
get{return_msg;}
}
}
6、以下代码执行后,string类型变量str地值仍然是“海天软件工程学院”.()
stringstr=“海天软件工程学院”;
privatevoidChanged(stringstr0)
{
str0=“海天软件工程大学”;
}
Changed(str);
7、在C#2005编程环境中,int类型变量地位数是16位.()
8、类和对象地区别是:
类是对象地实例,而对象则是类地抽象.()
9、抽象方法在抽象类中被定义和实现,当派生类从抽象类中继承一个抽象方法时,派生类必须重写该抽象方法.()
10、分析下面地代码段,最终地运行结果是SunMonTueWedThuFriSat()
staticvoidMain(string[]args)
{
string[]WeekDays=newstring[]{"Sun","Mon","Tue","Wed","Thu","Fri","Sta"};
PrintDay(WeekDays);
}
staticvoidPrintDay(string[]array)
{
for(inti=0;i{
Console.Write(array[i]+"{0}",i"":
"");
}
Console.WriteLine();
}
五、编码题(本大题共4小题,每小题10分,共40分)
请使用C#语言给出每道题要求地完整代码,或者在空白处补充完整剩余地代码.
1、下列算法地功能是求出a、b、c互不相等地数地最大数.请完善该算法.
staticvoidMain(string[]args)
{
inta=Convert.ToInt32(Console.ReadLine());
intb=Convert.ToInt32(Console.ReadLine());
intc=Convert.ToInt32(Console.ReadLine());
if(
(1)____________________)
{
if(
(2)____________________)
{
Console.WriteLine("三个数地最大数为{0}",(3)____________________);
}
else
{
Console.WriteLine("三个数地最大数为{0}",(4)____________________);
}
}
else
{
if((5)____________________)
{
Console.WriteLine("三个数地最大数为{0}",(6)____________________);
}
else
{
Console.WriteLine("三个数地最大数为{0}",(7)____________________);
}
}
Console.ReadLine();
}
2、下列算法地功能是当控制台上输入一个字符串之后,检索字符串中地非零数字,并把这些数字相加.请完善该算法.(例如:
当输入”a32Q5uhn4”,程序输出sResualt=14)
staticvoidMain(string[]args)
{
stringinputString=null;
intsResualt=0;
inputString=Console.ReadLine();
foreach(charchrininputString)
{
if(
(1)____________________)
{
sResualt+=Convert.ToInt32(chr.ToString());
}
}
if(
(2)____________________)
{
Console.WriteLine("输入地字符串中没有数字!
");
}
else
{
Console.WriteLine("sResualt={0}",sResualt);
}
Console.ReadLine();
}
3、请补全在Student类中重载Person类中地HappyBirthday方法函数,若当天是某人生日,打印出结果为”今天是****年**月**日,祝你生日快乐!
”.
publicabstractclassPerson
{
privateDateTime_birthday;
publicDateTimeBirthday
{
get{return_birthday;}
set{_birthday=value;}
}
publicabstractvoidHappyBirthday();
}
publicclassStudent:
Person
{
//请将HappyBirthday方法函数补充完整
4、下列算法地功能是输出10名学生地信息.请完善该算法.
publicclassStudent
{
privatestring_name;
privateint_age;
publicintAge
{
get{return_age;}
set{_age=value;}
}
publicstringName
{
get{return_name;}
set{_name=value;}
}
}
staticvoidMain(string[]args)
{
ArrayListStudentList=newArrayList();
for(inti=0;i<10;i++)
{
Studentobj_student=newStudent();
Console.Write("请输入姓名:
");
(1)____________________
Console.Write("请输入年龄:
");
(2)____________________
(3)____________________
}
foreach((4)____________________)
{
Console.WriteLine("姓名:
{0},年龄:
{1}",obj_student.Name,obj_student.Age);
}
}
六、附加编码题(本大题共1小题,20分)
本题为附加题,不做要求.要求给出完整地类型库、类型库地成员变量和成员方法,代码要求有合理注释,注意编码规范.
1、编写程序模拟家乐福超市在北京2008奥运会期间举办地商品促销活动.
活动背景:
家乐福超市向日本本田公司定做了五个福娃机器人促销员,分别为贝贝、晶晶、欢欢、迎迎和妮妮.
功能描述:
1)当顾客光临超市时,五个福娃会齐声祝福“家乐福欢迎您光临!
”.
2)其中贝贝和妮妮负责向顾客发放顾客信息表,而其他三个福娃负责给顾客发放礼品.
3)礼品发放标准
当年龄小于等于15时为儿童,礼品为“精美玩具”.
当年龄大于15小于等于40且男性为先生时,礼品为“男式体恤”.
当年龄大于15小于等于40且女性为女士时,礼品为“女式体恤”.
当年龄大于40且男性为老先生时,礼品为“男式围巾”.
当年龄大于40且女性为老太太时,礼品为“女式围巾”.
4)已知某天内“精美玩具”送出2000个、“男式体恤”送出5000件、“女式体恤”送出5000件、“男式围巾”送出3000条、“女式围巾”送出3000条.
5)打印出儿童、先生、女士、老先生和老太太地人数.
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有
Thisarticleincludessomeparts,includingtext,pictures,anddesign.Copyrightispersonalownership.
用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.
Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.
转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.
Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.