C#16章习题答案.docx
- 文档编号:26927908
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:31
- 大小:78.10KB
C#16章习题答案.docx
《C#16章习题答案.docx》由会员分享,可在线阅读,更多相关《C#16章习题答案.docx(31页珍藏版)》请在冰豆网上搜索。
C#16章习题答案
C#习题练习(1-6章)
1.在VisualStudio.NET窗口中,在__________窗口中可以察看当前项目的类和类型的层次信息。(B)
A.解决方案资源管理器
B.类视图
C.资源视图
D.属性
2.C#中每个int类型的变量占用_______个字节的内存。(C)
A.1
B.2
C.4
D.8
3.在C#中,表示一个字符串的变量应使用以下哪条语句定义?
(B)
A.CStringstr;
B.stringstr;
C.Dimstrasstring
D.char*str;
4.在C#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪条语句?
(A)
A.decimaltheMoney;
B.inttheMoney;
C.stringtheMoney;
D.DimtheMoneyasdouble
5.C#中,新建一字符串变量str,并将字符串"Tom'sLivingRoom"保存到串中,则应该使用下列哪条语句?
(A)
A.stringstr="Tom\'sLivingRoom";
B.stringstr="Tom'sLivingRoom";
C.stringstr("Tom'sLivingRoom");
D.stringstr("Tom"sLivingRoom");
6.C#中MyClass为一自定义类,其中有以下方法定义:
publicvoidHello(){…}
使用以下语句创建了该类的对象,并使变量obj引用该对象,那么,访问类MyClass的Hello方法正确的是:
(A)
MyClassobj=newMyClass();
A.obj.Hello();
B.obj:
:
Hello();
C.MyClass.Hello();
D.MyClass:
:
Hello();
7.分析下列C#语句,注意类MyClass没有访问修饰符:
namespaceClassLibrary1
{
classMyClass
{
publicclasssubclass
{inti;}
}
}
若必须为类MyClass添加访问修饰符,并使MyClass的可访问域保持不变,则应选择_________。(D)
A.private
B.protected
C.internal
D.public
8.分析下列程序:
publicclassclass4
{
privatestring_sData="";
publicstringsData{set{_sData=value;}}
}
在Main函数中,在成功创建该类的对象obj后,下列哪些语句是合法的?
(A)
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上的输出为_______.(D)
MyClassy=newMyClass();
BaseClassx=y;
x.i=100;
Console.WriteLine("{0},{1}",x.i,y.i);//(提示:
注意类MyClass中的new关键字)
A.0,0
B.100,100
C.0,100
D.100,0
10.在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成____。(C)
A.sealed方法
B.public方法
C.virtual方法
D.override方法
11.类MyClass中有下列方法定义:
publicvoidtestParams(paramsint[]arr)
{Console.Write("使用Params参数!
");}
publicvoidtestParams(intx,inty)
{Console.Write("使用两个整型参数!
");}
请问上述方法重载有无二义性?
若没有,则下列语句的输出为_______.(B)
MyClassx=newMyClass();
x.testParams(0);
x.testParams(0,1);
x.testParams(0,1,2);
A.有语义二义性;
B.使用Params参数!
使用两个整型参数!
使用Params参数!
C.使用Params参数!
使用Params参数!
使用Params参数!
D.使用Params参数!
使用两个整型参数!
使用两个整型参数!
12.C#程序中,可使用try..catch机制来处理程序出现的_____错误。(B)
A.语法
B.运行
C.逻辑
D.拼写
13.C#中,在方法MyFunc内部的try..catch语句中,如果在try代码块中发生异常,并且在当前的所有catch块中都没有找到合适的catch块,则(D)
A.NET运行时忽略该异常
B.NET运行时马上强制退出该程序
C.NET运行时继续在MyFunc的调用堆栈中查找提供该异常处理的过程
D.NET抛出一个新的“异常处理未找到”的异常
14.在C#中,下列哪条语句能创建一个具有3个初始值为""的元素的字符串数组?
(C)
A.stringStrList[3]("");
B.string[3]StrList={"","",""};
C.string[]StrList={"","",""};
D.string[]StrList=newstring[3];
15.下列语句创建了多少个string对象?
(D)
string[,]strArray=newstring[3][4];
A.0
B.3
C.4
D.12
16.接口Animal定义如下:
publicinterfaceAnimal
{voidMove();}
则下列抽象类的定义中,哪些是不合法的?
(D)
A.abstractclassCat:
Animal{abstractpublicvoidMove();}
B.abstractclassCat:
Animal{virtualpublicvoidMove(){Console.Write(Console.Write("Move!
");}}
C.abstractclassCat:
Animal{publicvoidMove(){Console.Write(Console.Write("Move!
");}}
D.abstractclassCat:
Animal{publicvoidEat(){Console.Write(Console.Write("Eat!
");}}
17.关于结构类型,下列说法哪些是正确的?
(A)
A.结构是值类型
B.结构中不允许定义带参数的实例构造函数;
C.结构中不允许定义析构函数
D.结构中可以定义成员方法,但是方法内不能使用this指针
18.下列语句的输出是________。(B)
doubleMyDouble=123456789;
Console.WriteLine("{0:
E}",MyDouble);
A.$123,456,789.00
B.1.234568E+008
C.123,456,789.00
19.已知在某WindowsForm应用程序中,主窗口类为Form1,程序入口为静态方法From1.Main。如下所示:
publicclassForm1:
System.Windows.Forms.Form
{
//其他代码staticvoidMain()
{
//在此添加合适代码}}则在Main方法中打开主窗口的正确代码是:
(A)
A.Application.Run(newForm1());
B.Application.Open(newForm1());
C.(newForm1()).Open();
D.(newForm1()).Run();
20.用鼠标右击一个控件时出现的菜单一般称为:
(C)
A.主菜单
B.菜单项
C.快捷菜单
D.子菜单
21.变量openFileDialog1引用一个OpenFileDialog对象。为检查用户在退出对话框时是否单击了“打开”按钮,应检查openFileDialog1.ShowDialog()的返回值是否等于_______;(A)
A.DialogResult.OK
B.DialogResult.Yes
C.DialogResult.No
D.DialogResult.Cancel
22.C#程序中,为使变量myForm引用的窗体对象显示为对话框,必须:
(A)
A.使用myForm.ShowDailog方法显示对话框
B.将myForm对象的isDialog属性设为true
C.将myForm对象的FormBorderStyle枚举属性设置为FixedDialog
D.将变量myForm改为引用System.Windows.Dialog类的对象
23.WindowsForm应用程序中,要求下压按钮控件Button1有以下特性:
正常情况下,该按钮是扁平的,当鼠标指针移动到它上面时,按钮升高。那么,在程序中,属性Button1.FlatStyle的值应设定为:
(B)
A.System.Windows.Forms.FlatStyle.Flat
B.System.Windows.Forms.FlatStyle.Popup
C.System.Windows.Forms.FlatStyle.Standard
D.System.Windows.Forms.FlatStyle.System
24.在类的定义中,类的__________描述了该类的对象的行为特征。(A)
A.类名
B.方法
C.所属的名字空间
D.私有域
25.以下类MyClass的属性count属于_____属性.(A)
classMyClass
{
inti;
intcount
{
get{returni;}
}
}
A.只读
B.只写
C.可读写
D.不可读不可写
26.类MyClass中,下列哪条语句定义了一个只读的属性Count?
(B)
A.privateintCount;
B.privateintcount;publicintCount{get{returncount;}}
C.publicreadonlyintCount;
D.publicreadonlyintCount
{get{returncount;}set{count=value;}}
27.C#中的类型float对应.NET类库中的(A)
A.System.Single
B.System.Double
C.System.Int32
D.System.Int64
28.判断下列类MyClass的定义中哪些是合法的抽象类?
(A)抽象成员不能是私有的
A.abstractclassMyClass
{publicabstractintgetCount();}
B.abstractclassMyClass
{abstractintgetCount();}
C.privateabstractclassMyClass
{abstractintgetCount();}
D.sealedabstractclassMyClass
{abstractintgetCount();}
29.已知接口IHello和类Base、MyClass的定义如下
interfaceIHello
{voidHello();}
classBase:
IHello
{publicvoidHello(){System.Console.WriteLine("HelloinBase!
");}}
classDerived:
Base
{publicvoidHello(){System.Console.WriteLine("HelloinDerived!
");}}
则下列语句在控制台中的输出结果为__(A)___。IHellox=newDerived();x.Hello();
A.HelloinBase!
B.HelloinDerived!
C.HelloinBase!
HelloinDerived!
D.HelloinDerived!
HelloinBase!
..
30.为了将字符串str=“123,456”转换成整数123456,应该使用以下哪条语句?
(A)
A.intNum=int.Parse(str);
B.intNum=str.Parse(int);
C.intNum=(int)str;
D.intNum=int.Parse(str,Globalization.NumberStyles.AllowThousands);
31.已知结构Resource的定义如下:
structResource{publicintData=0;
}则下列语句的运行结果为_________。(D)//结构中不能有实例字段初始值设定项
Resource[]list=newResource[20];
for(inti=0;i<20;i++){System.Console.WriteLine(“data={0}”,list[i].Data);}
A.打印20行,每行输出都是data=0
B.打印20行,每行输出都是data=null
C.打印20行.第1行输出data=0,第2行输出data=2,.,第20行输出data=19
D.出现运行时异常
32.关于C#程序的书写,下列不正确的说法是____。(D)
A.区分大小写
B.一行可以写多条语句
C.一条语句可写成多行
D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法
33.在C#语言中,下列能够作为变量名的是____。(C)
A.if
B.3ab
C.a_3b
D.a-bc
34.在C#语言中,下面的运算符中,优先级最高的是__(A)__。
A.%
B.++
C./=
D.>>
35.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是__(D)__。
A.a>=10ora<=0
B.a>=10|a<=0
C.a>=10&&a<=0
D.a>=10||a<=0
36.以下程序的输出结果是__(C)__。Usingsystem;
ClassExample1
{
PublicStaticvoidmain(){
Inta=5,b=4,c=6,d;
Console.Writeline(“{0}”,d=a>b?
(a>c?
a:
c):
b);
}
}
A.5
B.4
C.6
D.不确定
37.if语句后面的表达式应该是__(A)__。
A.逻辑表达式
B.条件表达式
C.算术表达式
D.任意表达式
38.有如下程序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);
}}的输出结果是(C)//代码有误,break前面“,”都改为“;”
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
39.以下叙述正确的是__(C)__。
A.do….while语句构成的循环不能用其他语句构成的循环来代替
B.do….while语句构成的循环只能用break语句退出
C.用do….while语句构成的循环,在while后的表达式为true时结束循环
D.用do….while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式
40.以下关于for循环的说法不正确的是__(A)__。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先判定表达式,后执行循环体语句
C.for循环中,可以用break语句跳出循环体
D.for循环体语句中,可以包含多条语句,但要用花括号括起来。
41.假定int类型变量占用两个字节,若有定义:
int[]x=newint[10]{0,2,4,4,5,6,7,8,9,10};
则数组x在内存中所占字节数是___(B)。
A.6
B.20
C.40
D.80
42.以下程序的输出结果是:
(C)ClassExample1
{
PublicStaticvoidmain()
{
IntI;
Int[]a=newint[10];
For(i=9;
i>=0;
i--)a[i]=10-I;
Console.Writeline(“{0},{1}{2}”,a[2],a[5],a[8]);
}}
A.258
B.741
C.852
D.369
43.有定义语句:
int[,]a=newint[5,6];
则下列正确的数组元素的引用是____。(C)
A.a(3,4)
B.a(3)(4)
C.a[3][4]
D.a[3,4]
44.下列的数组定义语句,不正确的是____。(D)
A.inta[]=newint[5]{1,2,3,4,5}
B.int[,]a=newinta[3][4]
C.int[][]a=newint[3][];
D.int[]a={1,2,3,4};
45.关于C#语言的方法,下列叙述中正确的是___(A)_。
A.方法的定义不能嵌套,但方法调用可以嵌套
B.方法的定义可以嵌套,但方法调用不能嵌套
C.方法的定义和调用都不能嵌套
D.方法的定义和调用都可以嵌套
46.以下所列的个方法头部中,正确的是___。_(C)
A.voidplay(vara:
Integer,varb:
integer)
B.voidplay(inta,b)
C.voidplay(inta,intb)
D.Subplay(aasinteger,basinteger)
47.下列程序的结果是:
(B)
Usingsystem;
ClassExample1
{
Staticlongfib(intn)
{
If(n>2)return(fib(n-1)+fib(n-2));
Elsererurn
(2);
}PublicStaticvoidmain()
{Console.Writeline(“{0}”,fib(3));
}}
A.2
B.4
C.6
D.8
49.下列程序的执行结果是____。Usingsystem;(C)代码有误,team后面的“=”去掉
ClassExample1
{
enumteam={my,your=4,his,her=his+10};
PublicStaticvoidmain()
{
Console.Writeline(“{0},{1},{2},{3}”,(int)team.my,(int)team.your,(int)team.his,(int)team.her);
}}
A.0123
B.04010
C.04515
D.14515
50.以下对枚举的定义,正确的是__(B)__。
A.enuma={one.two,three}
B.enuma
{a1,a2,a3};
C.enuma={‘1’,’2’,’3’};
D.enuma
{“one”,”two”,”three”};
51.枚举型常量的值不可以是__(D)__类型
A.int
B.long
C.ushort
D.doule
52.调用重载方法时,系统根据___(B)_____来选择具体的方法。
A.方法名
B.参数的个数和类型
C.参数名及参数个数
D.方法的返回值类型
53.下列的_______不是构造函数的特征。(D)
A.构造函数的函数名和类名相同
B.构造函数可以重载
C.构造函数可以带有参数
D.可以指定构造函数的返回值
54.类ClassA有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执行的,则修饰M1方法时一定使用了___(B)_____修饰符。ClassAobj=newClassA();
ClassA.M1();
A.public
B.static
C.private
D.virtual
55.已知类B是由类A继承而来,类A中有一个为M的非虚方法,现在希望在类B中也定义一个名为M的方法,若希望编译时不出现警告信息,则在类B中声明该方法时,应使用___(B)_____方法。
A.static
B.new
C.override
D.virtual
56.下列关于try…catch…finaly语句的说明中,不正确的是_____(D)____。
A.catch块可以有多个
B.finaly
C.catch块也是可选的
D.可以只有try块
57.为了能够在程序中捕获所有的异常,在catch语句的括号中使用的类名为_________。(A)
A.Exception
B.DivideByZeroException
C.FormatException
D.以上三个均可
58.关于异常,下列的说法中不正确的是____(D)_____。
A.用户可以根据需要抛出异常
B.在被调用方法可通过th
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 16 习题 答案