C试题Word格式文档下载.docx
- 文档编号:18613518
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:16
- 大小:21.80KB
C试题Word格式文档下载.docx
《C试题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C试题Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
Console.WriteLine("
int:
i={0}"
i);
object:
obj={0}"
obj);
输出结果为
i=20;
obj=10;
5、说明下面给出了一些变量名的例子是合法的还是非法的
inti;
//合法
intNo.1;
//不合法含有非法字符
stringtotal;
charuse;
//不合法与关键字名称相同
char@use;
floatMain;
//不合法与函数名称相同
6、写出下面程序运行的结果
usingSystem;
enumWeekday
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
};
classTest
publicstaticvoidMain()
Weekdayday;
day=(Weekday)3;
Console.WriteLine(day);
程序的输出是
3
7、写出计算函数值
程序,尽量简短
floatx,y,z;
try{
z=Math.Sqrt(x*x-y*y);
}
catch{
z=Math.Sqrt(y*y-x*x);
finally{
z=z+x;
8、简述Coad与Yourdon方法的五个层次和四个组成部分(8、9、10任选一题目)
Coad与Yourdon在设计阶段继续采用面向对象分析阶段中提到的五个层次(对象、和类、结构、属性、服务和主题)这有助于从分析到设计的过渡。
按照Coad与Yourdon面向对象设计方法,在设计阶段中利用这五个层次,建立系统的四个组成成分:
问题论域,用户界面,任务管理和数据管理。
9、类的成员有哪几种类型
成员常量代表与类相关联的常量值
域即类中的变量
成员方法复杂执行类中的计算和其它操作
属性用于定义类中的值并对它们进行读写
事件用于说明发生了什么事情
索引指示器允许像使用数组那样为类添加路径列表
操作符定义类中特有的操作
构造函数和析构函数分别用于对类的实例进行初始化和销毁
10、同set访问器和get访问器写一个程序片段表示:
旅馆对住宿人员进行登记,要记录的信息有:
客人姓名、性别、所住的房间号、已住宿的天数。
这里,客人的姓名和性别一经确定就不能再更改了,用户可以要求改变房间,住宿的天数当然也是不断变化的。
程序清单
我们在类的构造函数中对客人的姓名和性别进行初始化,在四个属性中,客人的姓名和性别是只读的故只具有get访问器;
房间号和住宿天数允许改变同时具有set访问器和get访问器
publicclassCustomer
publicenumsex
man,
woman,
privatestrings_name;
publicstringName
get{
returns_name;
privatesexm_sex;
publicsexSex
returnm_sex;
privatestrings_no;
publicstringNo
returns_no;
set{
if(s_no!
=value){
s_no=value;
privateinti_day;
publicintDay{
returni_day;
if(i_day!
i_day=value;
publicvoidCustomer(stringname,sexsex,stringno,intday)
s_name=name;
m_sex=sex;
s_no=no;
i_day=day;
11、事件的预订是通过OkButton.Click+=newEventHandler(OkButtonClick);
来实现的那么事件的撤消是采用
OkButton.Click-=newEventHandler(OkButtonClick);
12、看下面的例子
abstractclassA
publicabstractvoidF();
sealedclassB:
A
publicoverridevoidF(){
//F的具体实现代码
如果我们尝试写下面的代码
classC:
B{}
请问是否会报错,如果报错请说明原因。
会报错
C#会指出这个错误告诉你B是一个密封类不能试图从B中派生任何类
13、读下列代码看是否有错误,如果有请指出,并写出正确的代码:
namespaceN1.N2
classA{}
namespaceN3
usingN1;
classB:
N2.A{}
错误内容:
N2.A{}//错误,N2未知
正确代码:
classB{}
usingN1.N2;
14、文件的同步操作和异步操作的区别在那里
同步和异步操作之间的主要区别:
在同步I/O操作中,方法将一直处于等待状态,直到I/O操作完成。
而在异步I/O操作中,在开始了I/O操作后,程序的方法可以转移去执行其它的操作,这样大大提高了程序执行的效率。
15、说说文件和流之间的区别和联系
文件(file)和流(stream)即有区别又有联系。
文件是在各种媒质上(可移动磁盘、硬盘、CD等)永久存储的数据的有序集合。
它是一种进行数据读写操作的基本对象。
通常情况下文件按照树状目录进行组织,每个文件都有文件名,文件所在路径,创建时间访问、权限等属性。
流非常类似于单独的磁盘文件,它也是进行数据读取操作的基本对象。
流为我们提供了连续的字节流存储空间,虽然数据实际存储的位置可以不连续,甚至可以分布在多个磁盘上,但我们看到的是封装以后的数据结构,是连续的字节流抽象结构。
这和一个文件也可以分布在磁盘上的多个扇区一样。
除了和磁盘文件直接相关的文件流以外,流有多种类型,流可以分布在网络中、内存中或者是磁带中。
16、程序清单
classVehicle//定义汽车类
publicintwheels;
//公有成员轮子个数
protectedfloatweight;
//保护成员重量
publicvoidF(){
wheels=4;
//允许访问自身成员
weight=10;
//允许访问自身成员
classtrain//定义火车类
publicintnum;
//公有成员车厢数目
privateintpassengers;
//私有成员乘客数
privatefloatweight;
//私有成员重量
num=5;
weight=100;
Vehiclev1=newVehicle();
v1.wheels=4;
//允许访问v1的公有成员
weight=6;
classCar:
Vehicle//定义轿车类
intpassengers;
V1.wheels=4;
V1.weight=6;
//允许访问v1的保护成员
根据上述代码中关于车辆的类的代码示例,请添加上构造函数,验证一下构造函数中参数的传递
publicVehicle(){;
publicVehicle(intw,floatg){
wheels=w;
weight=g;
publicvoidShow(){
Console.WriteLine(“thewheelofvehicleis:
{0}”,wheels);
Console.WriteLine(“theweightofvehicleis:
{0}”,weight);
publicTrain(){;
publicTrain(intn,intp,floatw){
num=n;
passengers=p;
weight=w;
Console.WriteLine(“thenumoftrainis:
{0}”,num);
Console.WriteLine(“theweightoftrainis:
Console.WriteLine(“thePassengerstraincaris:
{0}”,Passengers);
publicCar(intw,floatg,intp):
base(w,g)
newpublicvoidShow(){
Console.WriteLine(“thewheelofcaris:
Console.WriteLine(“theweightofcaris:
Console.WriteLine(“thePassengersofcaris:
publicstaticvoidMain(){
Vehiclev1=newVehicle(4,5);
Traint1=newTrain();
Traint2=newTrain(10,100,100);
Carc1=newCar(4,2,4);
v1.show();
t1.show();
t2.show();
c1.show();
程序的运行结果为:
thewheelofvehicleis:
theweightofvehicleis:
0
thenumoftrainis:
theweightoftrainis:
thePassengersoftrainis:
10
100
thewheelofcaris:
4
theweightofcaris:
2
thePassengersofcaris4
17、请解释一下析构函数及其作用,在C#语言中可否省略析构函数?
析构函数的名字与类名相同,只是在前面加了一个符号“~”。
析构函数不接受任
何参数,也不返回任何值。
如果你试图声明其它任何一个以符号“~”开头而不与类名相同的方法。
和试图让析构函数返回一个值一样,编译器都会产生一个错误。
在类的实例超出范围时,我们希望确保它所占的存储能被收回。
C#中提供了析构
函数,用于专门释放被占用的系统资源。
可以省略,而在C#中垃圾收集器会帮助我们完成析构函数做的工作。
18、已知一棵具有n个结点的完全二叉树被顺序存储于一维数组的A[1]-A[n]元素中,试编写一个算法打印出编号为i的结点的双亲和所有孩子。
主要程序清单如下:
voidRequest(intA[],intn,inti)
if(i>
n)
System.Windows.Forms.MessageBox.Show(“编号为”+i.ToString()+“的结点不存在!
”);
else
intj=i/2;
//下标为J的结点是下标为I的结点的双亲
if(j>
0)
{
System.Windows.Forms.MessageBox.Show(i.ToString()+“双亲编号为:
”+A[j].ToString());
else
System.Windows.Forms.MessageBox.Show(i.ToString()+“没有双亲结点”);
if(2*i<
System.Windows.Forms.MessageBox.Show(i.ToString()+“左子女是”+A[2*i].ToString());
System.Windows.Forms.MessageBox.Show(i.ToString()+“右子女是”+A[2*i+1].ToString());
elseif(2*i==n)
System.Windows.Forms.MessageBox.Show(i.ToString()+“没有右子女”);
System.Windows.Forms.MessageBox.Show(i.ToString()+“没有子女”);
19、下面的例子则用于删除当前目录下的所有文件
usingSystem.IO;
classFileTest
Areyousuretodeleteallthefilesincurrentdirectory?
"
Press'
Y'
thenentertocontinue,anyotherkeytoabort"
inta=Console.Read();
if(a=='
||a=='
y'
){
Deletingthefiles..."
else{
canceledbyuser"
return;
Directorydir=newDirectory("
."
foreach(Filefindir.GetFiles())
f.Delete();
把程序稍做改动,删除当前目录下的所有扩展名为.exe的文件
把最后一段代码改写为
foreach(Filefindir.GetFiles(“*.exe”))
20、下面的代码中利用Directory的CreateDirectory和CreateDirectories方法创建一级和二级子目录
classDirectoryTest
Directoryd=newDirectory("
c:
\\c#"
Directoryd1;
Directoryd2;
Try
d1=d.CreateSubdirectory("
file1"
catch(IOExceptione)
directoryfile1failedbecause:
{0}"
e);
try
d2=d.CreateSubdirectories("
file1\\file2"
//等于d2=d1.CreateSubDirectory("
file2"
directoryfile2failedbecause:
Createdirectorysuccessfully!
同样我们可以进行目录删除操作请写出程序清单:
\\c#\\file1"
Directory[]subdir;
subdir=d.GetDirectories();
catch(DirectoryNotFoundExceptione)
Cannotfindsuchadirectorybecause:
foreach(Directorydirinsubdir){
dir.Delete();
d.Delete();
Deletesuccessfully!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试题