C#复习答案Word格式.docx
- 文档编号:17911582
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:46
- 大小:43.68KB
C#复习答案Word格式.docx
《C#复习答案Word格式.docx》由会员分享,可在线阅读,更多相关《C#复习答案Word格式.docx(46页珍藏版)》请在冰豆网上搜索。
A.StreamRreaderB.StreamWwriter
C.StreamRreader和StreamWwriterD.System.IO
9、下面有关静态成员的说法错误的是:
(D)。
A.静态成员定义的关键词是staticB.静态成员在内存中只有一份
C.静态成员要等到引用程序结束时才会消失D.可以通过实例名来调用静态成员
10、在.NET中,以下关于命名空间的描述,正确的是(D)。
A.命名空间不可以进行嵌套
B.任何一个.cs文件中只能存在一个命名空间
C.使用private修饰命名空间,其内部的类也不允许访问
D.命名空间使得代码更加有条理,结构更清晰
11、在.NET中一些数据类型为引用类型,当引用类型的值为(B)时,表明没有引用任何对象。
A.EemptyB.nullC.NothingD.0
12、在C#中(B)访问修饰符修饰的变量只能由当前程序集访问。
A.publicB.internalC.protectedD.private
13、在.Net中,ArrayList对象位于(C)命名空间内。
A.System.ArrayB.System.IO
C.System.CollectionsD.System.RunTime
14、使用virtual和override时,下面说法不正确的是(A)。
A.字段可以是虚拟的
B.使用virtual修饰符后,不允许再使用static,abstract或override修饰符
C.派生类对象即使被强制转化为基类对象时,所引用的仍然是派生类的成员
D.基类与派生类中的方法名称与参数列表必须完全一致
15、在array类中,可以对一维数组中的元素进行清除的方法是(B)。
A.Sort()B.Clear()C.Copy()D.Reverse()
16、下面程序的运行结果是(D)。
staticvoidMain(string[]args)
{
Console.WriteLine(1+5);
}
A.1B.5C.15D.6
17、下列描述错误的是(D)。
A.类不可以多重继承而接口可以B.抽象类自身可以定义成员而接口不可以
C.抽象类和接口都不能被实例化D.一个类可以有多个基类和多个接口
18、下面定义初始化一维数组的语句,其中正确的是(C)。
A.inta[]={1,2,3,4,5};
B.int[]a=newint[];
C.int[]a=newint[]{1,2,3,4,5};
D.int[]a;
a={1,2,3,4,5};
19、有如下的语句:
int[][]myArray=newint[3][]{newint[3]{1,2,3},newint[5]{4,5,6,7,8},newint[2]{9,10}};
则myArray[1][1]的值是(B)。
A.2B.5C.4D.越界
20、下列关于Hhashtable的说法中,哪个是不正确的(D)。
A.Hhashtable中的key/value的值既可以是值类型也可以是引用类型
B.Hhashtable类可以通过Add方法在其中加入一个键/值对
C.可以对Hhashtable对象的内容进行foreach输出
D.哈希表可以像数组一样,通过索引的方式访问其中的元素
三、是非题
1、Width和Height属性决定了一个Textbox控件的大小。
(T)
2、一个类只能有一个析构函数。
3、静态构造函数最多执行一次。
4、方法中的return语句必须有且只能有一个return语句。
(F)
5、抽象类可以用sealed修饰符。
6、接口成员可以添加访问修饰符。
7、string类型是属于值类型。
8、int类型为值类型,所以int[]类型也是值类型。
9、object类型是所有类型的最终基类。
10、接口可以包含字段。
四、简答题
1、分部类和命名空间在应用程序设计中有何意义?
2、类的继承有什么好处?
五、读程序写结果
1、写成下面程序的运行结果:
classProgram
IndexClassa=newIndexClass();
a[0]="
Rose"
;
a[1]="
Tony"
a[2]="
Alice"
Console.WriteLine("
调用索引器后:
"
);
a[0]="
+a[0]);
a[1]="
+a[1]);
a[2]="
+a[2]);
classIndexClass
privateHashtablename=newHashtable();
publicstringthis[intindex]
get{returnname[index].ToString();
set{name.Add(index,value);
}
2、写成下面程序的运行结果:
classA
publicvirtualvoidMethod()
这是父类"
classB:
A
{
publicoverridevoidMethod()
这是子类"
Bb=newB();
Aa=b;
a.Method();
b.Method();
3、写出下面程序的运行结果:
classProgram
intx=10;
inty=20;
交换前:
{0},{1}"
x,y);
Swap<
int>
s=newSwap<
();
s.Change(refx,refy);
交换后:
x,y);
doublea=100.5;
doubleb=50.5;
a,b);
Swap<
double>
s1=newSwap<
s1.Change(refa,refb);
classSwap<
T>
publicvoidChange(refTx,refTy)
Ttemp;
temp=x;
x=y
y=temp;
六、编程题
1、定义一个名为Add的类,用构造函数实现两个整数和两个双精度类型
数据求和,写一个名为Rresult的方法,把结果返回。
2、定义一个学生抽象类Student,再构造小学生派生类Pupil:
1)每个学生都有的字段为姓名(string)、年龄(int)
2)小学生的字段还有语文(int)、数学(int)这两门课的成绩
3)学生类提供抽象方法Total()来统计总成绩并输出
一、填空题
1.封装2.枚举3.Set
4.private(私有的)5.引用6.把对象转换为流
7.个数8.显式9.把值类型转换为对象
10.语法
题号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
答案
A
C
B
D
√
×
答:
分部类允许将类、结构或接口的定义拆分到两个或多个源文件中,让每个源文件只包含类型定义的一部分,编译时编译器自动把所有部分组合起来进行编译。
有了分部类,一个类的源代码可以分布于多个独立文件中,在处理大型项目时,过去很多只能由一个人进行的编程任务,现在可以由多个人同时进行,这样将大大加快了程序设计的工作进度。
命名空间可以将相互关联的类组织起来,形成一个逻辑上相互关联的层次结构,命名空间既可以对内组织应用程序,也可以对外避免命名冲突。
2、类的继承有什么好处
当一个类从另一个类派生出来时,派生类就具有了基类中的所有成员,这样,基类中定义这些成员的代码,不需要在派生类定义中重写,在派生类定义中,只需定义派生类自己的成员即可。
这样,既提高了代码的重用性,从而提高了程序设计的效率,又提供了已有程序设计的可扩展性。
1、调用索引器后:
a[0]=Rose
a[1]=Tony
a[2]=Alice
2、这是子类
这是子类
3、交换前:
10,20
交换后:
20,10
交换前:
100.5,50.5
50.5,100.5
1、参考答案如下:
整型数据相加"
Addintadd=newAdd(10,20);
intadd.Result();
双精度类型数据相加:
Adddoubleadd=newAdd(10.5,20.5);
doubleadd.Result();
classAdd
publicdoubleadd=0;
publicAdd(doublex,doubley)
add=x+y;
publicAdd(intx,inty)
publicvoidResult()
Console.WriteLine(add);
2、参考答案如下:
Pupilp=newPupil("
张三"
20,90,92);
Console.WriteLine(p.Total());
publicabstractclassStudent
stringname;
intage;
publicStudent(stringname,intage)
this.name=name;
this.age=age;
publicabstractdoubleTotal();
publicclassPupil:
Student
intchinese;
intmath;
publicPupil(stringname,intage,intchinese,intmath)
:
base(name,age)
this.chinese=chinese;
this.math=math;
publicoverridedoubleTotal()
returnchinese+math;
封装、继承和(多态)。
基本值类型、(结构)类型和枚举类型。
3、属性如果是只读的,可以只实现(Get)访问器。
4、默认情况下,顶级类的访问修饰符是(internal)。
5、对于方法,参数传递分为按(值)传递和按引用传递两种。
6、对象的反序列化是指(把流转换为对象)。
7、方法的重载是指方法的参数的个数不同或参数的(类型)不同。
8、C#中数据类型转换可以分为显式转换和(隐式)转换。
9、拆箱是指(对象转换为值类型)。
10、程序运行时出现的错误可以归纳为语法错误,(逻辑)错误和运行时错误。
。
1.销毁一个类的实例对象的时候,系统会调用(A)。
A.析构函数B.Main函数C.构造函数D.都可以
2.C#中导入某一命名空间的关键字是(A)。
A.usingB.useC.importD.include
3、改变窗体的名称,需修改的窗体属性是(B)。
A.TextB.NameC.TitleD.Index
4、设有说明语句double[,,]a=newdouble[3,4,5];
那么下面叙述正确的是(A)。
A.a是一个三维数组,它的元素一共有60个
B.a是一个有三个元素的一维数组,它的元素初始值分别是3,4,5
5、下列关于构造函数的描述正确的是(C)。
A.构造函数可以声明返回类型B.构造函数不可以用private修饰
C.构造函数必须与类同名D.构造函数不能带参数
6、在C#中定义接口时,使用的关键字是(A)。
A.interfaceB.:
C.classD.overrides
7、下列关于抽象类的说法错误的是(A)。
A.抽象类可以被实例化B.抽象类可以包括抽象方法
C.抽象类可以包含抽象属性D.抽象类可以引用派生类的实例
8、(A)类用于按二进制方式读写文件。
A.BinaryReader和BinaryWriterB.BinaryReader
C.BinaryWriterD.System.IO
9、类ClassA有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执行
的,则修饰M1方法时一定使用了(B)修饰符。
ClassAobj=newClassA();
ClassA.M1();
A.publicB.staticC.privateD.virtual
10、加载窗体时触发的事件是(B)。
A.ClickB.LoadC.GotFoucsD.DoubleClick
11、下列关于异常处理的表达式中正确的是(D)。
A.try,catch,finally三个子句必须同时出现,才能正确处理异常
B.catch子句只能且只能出现一次
C.try子句中所抛出的异常一定能被catch子句捕获
D.无论异常是否抛出,finally子句中的内容都会被执行
12、下面程序的运行结果是(C)。
1"
+"
5"
13、在.NET中,Hashtable类所在的命名空间是(A)。
A.System.CollectionsB.System.Threading
C.System.IOD.System
14、关于抽象方法,下列说法正确的是(B)。
A.可以有方法体B.是没有方法体的方法
C.可以出现在非抽象类中D.抽象类中的方法都是抽象方法
15、在array类中,可以对一维数组中的元素进行复制的方法是(C)。
A.Sort()B.Clear()C.Copy()D.Reverse()
16、接口中的方法(B)。
A、默认为public且方法必须实现B、默认为public且方法不实现
C、可以用private访问修饰符修饰D、可以用任意的访问修饰符修饰
17.假定一个3行2列的二维整型数组,下列哪个定义语句是正确的(C)。
A.int[]arr=newint[3,2]B.int[]arr=intnew[3,2]
C.int[,]arr=newint[3,2]D.int[,]arr=newint[3;
2]
18、异常类均为(A)类的对象。
A.System.ExceptionB.System.Aattribute
C.System.ConstD.System.Reflection
int[][]myArray=newint[3][]{newint[3]{91,92,93},newint[5]{94,95,96,97,98},newint[2]{99,100}};
则myArray[1][2]的值是(B)。
A.92B.96C.100D.越界
20、下列说法错误的是(B)。
A.Array的大小是固定的,而ArrayList的大小是可以根据需要自动扩充
B.Array的下限可以自定义,而ArrayList的下限始终为1
C.Array可以具有多个维度,而ArrayList始终只有一维
D.Array一次都只能获取或设置一个值,而ArrayList则可以是多个
1、密封类可以被继承。
2、析构函数既没有修饰符,也没有参数。
3、静态构造函数可以执行多次。
4、变量名不能用汉字开头。
5、定义类时不可以嵌套。
6、接口成员不能添加任何访问修饰符。
7、类是抽象的,不占用内存,而对象是具体的,占用存储空间。
8、int类型可以隐式转换为long类型。
(T)
9、枚举类型的数据元素值在程序运行的时候可以改变。
10、接口不可以包含字段。
1、如何理解多态性?
2、简述抽象类和接口之间的主要区别。
1、写成下面程序的运行结果
a["
Jhon"
]=100;
Amy"
]=200;
Tom"
]=300;
Jhon的编号为:
+a["
]);
Amy的编号为:
Tom的编号为:
classIndexClass
publicintthis[stringaName]
get
returnConvert.ToInt32(name[aName]);
set{name.Add(aName,value);
2、写出下面程序的运行结果:
classA
Console.Write
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 复习 答案