C#16章习题答案分析Word格式.docx

上传人:b****6 文档编号:17293905 上传时间:2022-12-01 格式:DOCX 页数:25 大小:27.56KB
下载 相关 举报
C#16章习题答案分析Word格式.docx_第1页
第1页 / 共25页
C#16章习题答案分析Word格式.docx_第2页
第2页 / 共25页
C#16章习题答案分析Word格式.docx_第3页
第3页 / 共25页
C#16章习题答案分析Word格式.docx_第4页
第4页 / 共25页
C#16章习题答案分析Word格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C#16章习题答案分析Word格式.docx

《C#16章习题答案分析Word格式.docx》由会员分享,可在线阅读,更多相关《C#16章习题答案分析Word格式.docx(25页珍藏版)》请在冰豆网上搜索。

C#16章习题答案分析Word格式.docx

C.MyClass.Hello();

D.MyClass:

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.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)

使用两个整型参数!

请问上述方法重载有无二义性?

若没有,则下列语句的输出为_______.(B)

MyClassx=newMyClass();

x.testParams(0);

x.testParams(0,1);

x.testParams(0,1,2);

A.有语义二义性;

B.使用Params参数!

C.使用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

D.12

16.接口Animal定义如下:

publicinterfaceAnimal

{voidMove();

则下列抽象类的定义中,哪些是不合法的?

A.abstractclassCat:

Animal{abstractpublicvoidMove();

}

B.abstractclassCat:

Animal{virtualpublicvoidMove(){Console.Write(Console.Write("

Move!

}}

C.abstractclassCat:

Animal{publicvoidMove(){Console.Write(Console.Write("

}}

D.abstractclassCat:

Animal{publicvoidEat(){Console.Write(Console.Write("

Eat!

17.关于结构类型,下列说法哪些是正确的?

A.结构是值类型

B.结构中不允许定义带参数的实例构造函数;

C.结构中不允许定义析构函数

D.结构中可以定义成员方法,但是方法内不能使用this指针

18.下列语句的输出是________。(B)

doubleMyDouble=123456789;

{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.Application.Run(newForm1());

B.Application.Open(newForm1());

C.(newForm1()).Open();

D.(newForm1()).Run();

20.用鼠标右击一个控件时出现的菜单一般称为:

A.主菜单

B.菜单项

C.快捷菜单

D.子菜单

21.变量openFileDialog1引用一个OpenFileDialog对象。为检查用户在退出对话框时是否单击了“打开”按钮,应检查openFileDialog1.ShowDialog()的返回值是否等于_______;

A.DialogResult.OK

B.DialogResult.Yes

C.DialogResult.No

D.DialogResult.Cancel

22.C#程序中,为使变量myForm引用的窗体对象显示为对话框,必须:

A.使用myForm.ShowDailog方法显示对话框

B.将myForm对象的isDialog属性设为true

C.将myForm对象的FormBorderStyle枚举属性设置为FixedDialog

D.将变量myForm改为引用System.Windows.Dialog类的对象

23.WindowsForm应用程序中,要求下压按钮控件Button1有以下特性:

正常情况下,该按钮是扁平的,当鼠标指针移动到它上面时,按钮升高。那么,在程序中,属性Button1.FlatStyle的值应设定为:

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)

inti;

intcount

get{returni;

A.只读

B.只写

C.可读写

D.不可读不可写

26.类MyClass中,下列哪条语句定义了一个只读的属性Count?

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

D.sealedabstractclassMyClass

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!

D.HelloinDerived!

..

30.为了将字符串str=“123,456”转换成整数123456,应该使用以下哪条语句?

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<

C.a>

=10&

&

a<

D.a>

=10||a<

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;

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

{

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.下列程序的结果是:

Usingsystem;

Staticlongfib(intn)

If(n>

2)return(fib(n-1)+fib(n-2));

Elsererurn

(2);

}PublicStaticvoidmain()

{Console.Writeline(“{0}”,fib(3));

A.2

49.下列程序的执行结果是____。Usingsystem;

(C)代码有误,team后面的“=”去掉

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

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.在被调用方法可通过

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1