C#程序设计期末A卷以及答案.docx
- 文档编号:11484700
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:19
- 大小:22.33KB
C#程序设计期末A卷以及答案.docx
《C#程序设计期末A卷以及答案.docx》由会员分享,可在线阅读,更多相关《C#程序设计期末A卷以及答案.docx(19页珍藏版)》请在冰豆网上搜索。
C#程序设计期末A卷以及答案
洛阳理工学院2010/2011学年第一学期面向对象程序设计期末考试试题卷(A)
适用班级:
B100513/14/15/16考试时间:
120分钟
注意:
看清题目要求,书写整洁!
1、选择题(每小题2分,30题共计60分)
1.C#中每个int类型的变量占用()个字节的内存。
A.1B.2C.4D.8
2.在C#中,表示一个字符串的变量应使用以下哪条语句定义?
()
A.CStringstr;B.stringstr;C.DimstrasstringD.char*str;
3.在C#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪条语句?
()
A.decimaltheMoney;B.inttheMoney;C.stringtheMoney;D.DimtheMoneyasdouble
4.C#中,新建一字符串变量str,并将字符串"Tom'sLivingRoom"保存到串中,
则应该使用下列哪条语句?
()
A.stringstr="Tom\'sLivingRoom";B.stringstr="Tom'sLivingRoom";
C.stringstr("Tom'sLivingRoom");D.stringstr("Tom"sLivingRoom");
5.C#中MyClass为一自定义类,其中定义了以下方法
publicvoidHello()
{
…
}
使用以下语句创建了该类的对象,并使变量obj引用该对象:
MyClassobj=newMyClass();
那么,可如何访问类MyClass的Hello方法?
()
A.obj.Hello();B.obj:
:
Hello();C.MyClass.Hello();D.MyClass:
:
Hello();
6.分析下列C#语句,注意类MyClass没有访问修饰符:
namespaceClassLibrary1
{
classMyClass
{
publicclasssubclass
{
inti;
}
}
}
若必须为类MyClass添加访问修饰符,并使MyClass的可访问域保持不变,则应选择()。
A.privateB.protectedC.internalD.public
7.分析下列程序:
publicclassclass4
{
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);
8.在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成()。
A.sealed方法B.public方法C.virtual方法D.override方法
9.类MyClass中有下列方法定义:
publicvoidtestParams(paramsint[]arr)
{
Console.Write("使用Params参数!
");
}
publicvoidtestParams(intx,inty)
{
Console.Write("使用两个整型参数!
");
}
请问上述方法重载有无二义性?
若没有,则下列语句的输出为().
MyClassx=newMyClass();
x.testParams(0);
x.testParams(0,1);
x.testParams(0,1,2);
A.有语义二义性;B.使用Params参数!
使用两个整型参数!
使用Params参数!
C.使用Params参数!
使用Params参数!
使用Params参数!
D.使用Params参数!
使用两个整型参数!
使用两个整型参数!
10.C#程序中,可使用try…catch机制来处理程序出现的()错误。
A.语法B.运行C.逻辑D.拼写
11.下列语句创建了多少个string对象?
()
string[,]strArray=newstring[3,4];
A.0B.3C.4D.12
12.接口Animal定义如下:
publicinterfaceAnimal
{
voidMove();
}
则下列抽象类的定义中,哪些是不合法的?
()
A.abstractclassCat:
Animal
{
abstractpublicvoidMove();
}
B.abstractclassCat:
Animal
{
virtualpublicvoidMove()
{
Console.Write("Move!
");
}
}
C.abstractclassCat:
Animal
{
publicvoidMove()
{
Console.Write("Move!
");
}
}
D.abstractclassCat:
Animal
{
publicvoidEat()
{
Console.Write("Eat!
");
}
}
13.在使用FileStream打开一个文件时,通过使用FileMode枚举类型的()成员,来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。
A.AppendB.CreateC.CreateNewD.Truncate
14.在类的定义中,类的()描述了该类的对象的行为特征。
A.类名B.方法C.所属的名字空间D.私有域
15.以下类MyClass的属性count属于()属性.
classMyClass
{
inti;
intcount
{
get
{
returni;
}
}
}
A.只读B.只写C.可读写D.不可读不可写
16.已知类MyClass中事件MouseClicked定义如下:
publicstaticeventMouseClickedListenerMouseClicked;
执行下列语句:
MouseClicked+=newMouseClickedListener(obj.DoSomething);
MouseClicked+=newMouseClickedListener(obj.DoSomething);
然后引发该MouseClicked事件,其结果为:
()
A.obj.DoSomething方法被调用4次B.obj.DoSomething方法被调用2次
C.obj.DoSomething方法被调用1次D.obj.DoSomething方法不会被调用
17.假设变量x的值为25,要输出x的值,下列正确的语句是()。
A.System.Console.writeline(“x”);B.System.Console.WriteLine(“x”);
C.System.Console.WriteLine(“x={0}”,x);D.System.Console.WriteLine(“x={x}”);
18.关于C#程序的书写,下列不正确的说法是()。
A.区分大小写B.一行可以写多条语句
C.一条语句可写成多行D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法
19.在C#语言中,下列能够作为变量名的是()。
A.ifB.3abC.a_3bD.a-bc
20.在C#语言中,下面的运算符中,优先级最高的是()。
A.%B.++C./=D.>>
21.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是()。
A.a>=10ora<=0B.a>=10|a<=0C.a>=10&&a<=0D.a>=10||a<=0
22.以下程序的输出结果是()。
usingSystem;
classExample1
{
publicstaticvoidMain()
{
inta=5,b=4,c=6,d;
Console.WriteLine(“{0}”,d=a>b?
(a>c?
a:
c):
b);
}
}
A.5B.4C.6D.不确定
23.有如下程序:
usingSystem;
classExample1
{
publicstaticvoidMain()
{
intx=1,a=0,b=0;
switch(x)
{
case0:
b++;
break;
case1:
a++;
break;
case2:
a++;
b++;
break;
}
Console.WriteLine(“a={0},b={1}”,a,b);
}
}
的输出结果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
24.以下关于for循环的说法不正确的是()。
A.for循环只能用于循环次数已经确定的情况B.for循环是先判定表达式,后执行循环体语句
C.for循环体语句中,可以用break语句跳出循环体
D.for循环体语句中,可以包含多条语句,但要用花括号括起来
25.关于C#语言的方法,下列叙述中正确的是()。
A.方法的定义不能嵌套,但方法调用可以嵌套B.方法的定义可以嵌套,但方法调用不能嵌套
C.方法的定义和调用都不能嵌套D.方法的定义和调用都可以嵌套
26.以下所列的各个方法头中,正确的是()。
A.voidplay(vara:
Integer,varb:
Integer)B.voidplay(inta,b)
C.voidplay(inta,intb)D.Subplay(aasinteger,basinteger)
27.下列程序的输出结果是()。
usingSystem;
classExample1
{
staticlongsub(intx,inty)
{
intz;
z=x*x+y*y;
returnz;
}
publicstaticvoidMain()
{
inta=30;
sub(5,2);
Console.WriteLine(“{0}”,a);
}
}
A.0B.29C.30D.无定值
28.以下对枚举的定义,正确的是()。
A.enuma={one,two,three}B.enuma{a1,a2,a3};
C.enuma={‘1’,’2’,’3’};D.enuma{“one”,”two”,”three”};
29.调用重载方法时,系统根据()来选择具体的方法。
A.方法名B.参数的个数和类型C.参数名及参数个数D.方法的返回值类型
30.下列的()不是构造函数的特征。
A.构造函数的函数名和类名相同B.构造函数可以重载
C.构造函数可以带有参数D.可以指定构造函数的返回值
2、程序填空题(每空2分,10空共计20分)
1.请补充程序,使输出结果为:
a=20,b=10
classProgram
{
staticvoidMain()
{
inta=10,b=20;
Swap(1,2);
Console.WriteLine("引用传递:
a={0},b={1}",a,b);
Console.ReadLine();
}
publicstaticvoidSwap(3,4)
{
intz=x;
x=y;
y=z;
}
}
2.定义一个抽象类Vehicle,然后再定义它的一个派生类Truck,Truck类实现Vehicle类抽象方法和虚拟方法。
请把程序补充完整。
public5classVehicle
{
privatefloatspeed;
publicfloatSpeed
{
get{returnspeed;}
set{speed=value;}
}
publicVehicle(floatspeed)
{
this.speed=speed;
}
publicvirtualfloatRun(floatdistance)
{
returndistance/speed;
}
publicabstractvoidSpeak();
}
publicclassTruck:
Vehicle
{
privatefloatweight;
publicfloatWeight
{
get{returnweight;}
}
privatefloatload;
publicfloatLoad
{
get{returnload;}
}
publicTruck(intweight,intload):
base(50)
{
this.weight=weight;
this.load=load;
}
public6floatRun(floatdistance)
{
return(1+load/Weight/2)*base.Run(distance);
}
public7voidSpeak()
{
Console.WriteLine("叭...叭...");
}
}
3.下面这段程序的功能是:
把数列a1=1,a2=1,
(n>2)的每一项求出来写到文件C:
\num.txt文件中去,然后我们根据要求的数列项从文件中把该项读出来。
请把程序补充完整。
staticvoidMain()
{
FileStreamfs1=newFileStream(8,FileMode.Create);
for(ushorta=1,b=1;a<=10000;9)
{
ushortt=b;
b=a;
a=t;
fs1.WriteByte((byte)(a/256));//写入前8位
fs1.WriteByte((byte)(a%256));//写入后8位
}
fs1.Position=0;
Console.Write("请输入要读取的数列项:
");
inti=int.Parse(Console.ReadLine());
fs1.Position=2*i;
intx=10;
Console.WriteLine("数列项为:
"+x);
fs1.Close();
Console.ReadLine();
}
3、编程题(每题10分,2题共计20分)
1.编写一个矩形类,私有数据成员为矩形的长(len)和宽(wid),无参构造函数将len和wid设置为0,有参构造函数设置长(len)和宽(wid)的值。
另外,类还包括求矩形的周长、求矩形的面积、取矩形的长度、取矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。
2.编写出一个通用的人员类(Person),该类具有姓名(Name)、性别(Sex)、年龄(Age)等域。
然后对Person类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩,要求对该类的构造函数进行重载,至少给出三个形式。
最后编程对Student类的功能进行验证。
洛阳理工学院2010/2011学年第一学期面向对象程序设计期末考试评分标准(A)
适用班级:
B100513/14/15/16考试时间:
120分钟
注意:
看清题目要求,书写整洁!
4、选择题(每小题2分,30题共60分)
1-5:
CBAAA6-10:
CACBB
11-15:
DDABA16-20:
BCDCB
21-25:
DCCAA26-30:
CCBBD
5、程序填空题(每空2分,10空共计20分)
1.refa2.refb3.refintx4.refinty
5.abstract6.override7.override
8."C:
\\num.txt"或@"C:
\num.txt"9.a+=b或a=a+b10.256*fs1.ReadByte()+fs1.ReadByte()
6、编程题(每题10分,2题共计20分)
1.编写一个矩形类,私有数据成员为矩形的长(len)和宽(wid),无参构造函数将len和wid设置为0,有参构造函数设置长(len)和宽(wid)的值。
另外,类还包括求矩形的周长、求矩形的面积、取矩形的长度、取矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。
参考答案:
classRectangle。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
privatefloatlen;//长
privatefloatwid;//宽。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
//无参构造函数
publicRectangle()。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
this.len=0;
this.wid=0;
}
//有参构造函数
publicRectangle(floatlength,floatwidth)。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
this.len=length;
this.wid=width;
}
//取矩形的长度
publicfloatGetLength()。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
returnthis.len;
}
//取矩形的宽度
publicfloatGetWidth()。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
returnthis.wid;
}
//修改矩形的长度
publicvoidSetLegth(floatlength)。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
this.len=length;
}
//修改矩形的宽度
publicvoidSetWidth(floatwidth)。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
this.wid=width;
}
//求矩形的周长
publicfloatGetGirth()。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
return(this.len+this.wid)*2;
}
//求矩形的面积
publicfloatGetArea()。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
returnthis.len*this.wid;
}
}
2.编写出一个通用的人员类(Person),该类具有姓名(Name)、性别(Sex)、年龄(Age)等域。
然后对Person类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩,要求对该类的构造函数进行重载,至少给出三个形式。
最后编程对Student类的功能进行验证。
参考答案:
//通用的人员类:
Person
classPerson。
。
。
。
。
。
。
。
。
。
。
。
。
。
2分
{
protectedstringName;
protectedstringSex;
protectedintAge;
publicPerson()
{
}
publicPerson(stringname,stringsex,intage)
{
this.Name=name;
this.Sex=sex;
this.Age=age;
}
}
//继承自人员类的学生类:
Student
classStudent:
Person。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
//用于存储5门课成绩的整型数组
privateint[]Score;
//构造函数1
publicStudent()
{
this.Name="张三";
this.Sex="男";
this.Age=20;
this.Score=newint[]{60,70,80,90,100};
}
//构造函数2
publicStudent(stringname,stringsex,intage,int[]score)
:
base(name,sex,age)
{
this.Score=score;
}
//构造函数3
publicStudent(int[]score)。
。
。
。
。
。
。
。
。
。
。
。
。
。
2分
{
this.Name="王五";
this.Sex="男";
this.Age=19;
this.Score=score;
}
//求平均成绩
publicfloatAvg()。
。
。
。
。
。
。
。
。
。
。
。
。
。
1分
{
inttotal=0;
for(inti=0;i { total=total+Score[i]; } returntotal/Score.Length; } publicvoidDisplay()。 。 。 。 。 。 。 。 。 。 。 。 。 。 1分 { Console.WriteLine("姓名: {0}",this.Name); Console.WriteLine("性别: {0}",this.Sex); Console.WriteLine("年龄: {0}",this.Age); Con
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 程序设计 期末 以及 答案