C#16章习题答案.docx
- 文档编号:26844401
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:27
- 大小:24.42KB
C#16章习题答案.docx
《C#16章习题答案.docx》由会员分享,可在线阅读,更多相关《C#16章习题答案.docx(27页珍藏版)》请在冰豆网上搜索。
C#16章习题答案
C#习题练习(1-6章)
1.在Visual窗口中,在__________窗口中可以察看当前项目的类和类型的层次信息。(B)
A.解决方案资源管理器
B.类视图
C.资源视图
D.属性
2.C#中每个int类型的变量占用_______个字节的内存。(C)
3.在C#中,表示一个字符串的变量应使用以下哪条语句定义(B)
str;
str;
strasstring
*str;
4.在C#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪条语句(A)
theMoney;
theMoney;
theMoney;
theMoneyasdouble
5.C#中,新建一字符串变量str,并将字符串"Tom'sLivingRoom"保存到串中,则应该使用下列哪条语句(A)
str="Tom\'sLivingRoom";
str="Tom'sLivingRoom";
str("Tom'sLivingRoom");
str("Tom"sLivingRoom");
#中MyClass为一自定义类,其中有以下方法定义:
publicvoidHello(){…}
使用以下语句创建了该类的对象,并使变量obj引用该对象,那么,访问类MyClass的Hello方法正确的是:
(A)
MyClassobj=newMyClass();
分析下列C#语句,注意类MyClass没有访问修饰符:
namespaceClassLibrary1
{
classMyClass
{
publicclasssubclass
{inti;}
}
}
若必须为类MyClass添加访问修饰符,并使MyClass的可访问域保持不变,则应选择_________。(D)
8.分析下列程序:
publicclassclass4
{
privatestring_sData="";
publicstringsData{set{_sData=value;}}
}
在Main函数中,在成功创建该类的对象obj后,下列哪些语句是合法的(A)
="Itisfunny!
";
=100;
分析下列程序中类MyClass的定义
classBaseClass
{publicinti;}
classMyClass:
BaseClass
{publicnewinti;}
则下列语句在Console上的输出为_______.(D)
MyClassy=newMyClass();
BaseClassx=y;
=100;
("{0},{1}",,;在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成____。(C)
方法
方法
方法
方法
11.类MyClass中有下列方法定义:
publicvoidtestParams(paramsint[]arr)
{("使用Params参数!
");}
publicvoidtestParams(intx,inty)
{("使用两个整型参数!
");}
请问上述方法重载有无二义性若没有,则下列语句的输出为_______.(B)
MyClassx=newMyClass();
(0);
(0,1);
(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)
运行时忽略该异常
运行时马上强制退出该程序
运行时继续在MyFunc的调用堆栈中查找提供该异常处理的过程
抛出一个新的“异常处理未找到”的异常
14.在C#中,下列哪条语句能创建一个具有3个初始值为""的元素的字符串数组(C)
StrList[3]("");
[3]StrList={"","",""};
[]StrList={"","",""};
[]StrList=newstring[3];
15.下列语句创建了多少个string对象(D)
string[,]strArray=newstring[3][4];
16.接口Animal定义如下:
publicinterfaceAnimal
{voidMove();}
则下列抽象类的定义中,哪些是不合法的(D)
classCat:
Animal{abstractpublicvoidMove();}
classCat:
Animal{virtualpublicvoidMove(){("Move!
");}}
classCat:
Animal{publicvoidMove(){("Move!
");}}
classCat:
Animal{publicvoidEat(){("Eat!
");}}
17.关于结构类型,下列说法哪些是正确的(A)
A.结构是值类型
B.结构中不允许定义带参数的实例构造函数;
C.结构中不允许定义析构函数
D.结构中可以定义成员方法,但是方法内不能使用this指针
18.下列语句的输出是________。(B)
doubleMyDouble=9;
("{0:
E}",MyDouble);
A.$123,456,
已知在某WindowsForm应用程序中,主窗口类为Form1,程序入口为静态方法。如下所示:
publicclassForm1:
{
newForm1()).Open();
D.(newForm1()).Run();
20.用鼠标右击一个控件时出现的菜单一般称为:
(C)
A.主菜单
B.菜单项
C.快捷菜单
D.子菜单
21.变量openFileDialog1引用一个OpenFileDialog对象。为检查用户在退出对话框时是否单击了“打开”按钮,应检查()的返回值是否等于_______;(A)
C#程序中,为使变量myForm引用的窗体对象显示为对话框,必须:
(A)
A.使用方法显示对话框
B.将myForm对象的isDialog属性设为true
C.将myForm对象的FormBorderStyle枚举属性设置为FixedDialog
D.将变量myForm改为引用类的对象
23.WindowsForm应用程序中,要求下压按钮控件Button1有以下特性:
正常情况下,该按钮是扁平的,当鼠标指针移动到它上面时,按钮升高。那么,在程序中,属性的值应设定为:
(B)
在类的定义中,类的__________描述了该类的对象的行为特征。(A)
A.类名
B.方法
C.所属的名字空间
D.私有域
25.以下类MyClass的属性count属于_____属性.(A)
classMyClass
{
inti;
intcount
{
get{returni;}
}
}
A.只读
B.只写
C.可读写
D.不可读不可写
26.类MyClass中,下列哪条语句定义了一个只读的属性Count(B)
intCount;
intcount;publicintCount{get{returncount;}}
readonlyintCount;
readonlyintCount
{get{returncount;}set{count=value;}}
27.C#中的类型float对应.NET类库中的(A)
判断下列类MyClass的定义中哪些是合法的抽象类(A)抽象成员不能是私有的
classMyClass
{publicabstractintgetCount();}
classMyClass
{abstractintgetCount();}
abstractclassMyClass
{abstractintgetCount();}
abstractclassMyClass
{abstractintgetCount();}
29.已知接口IHello和类Base、MyClass的定义如下
interfaceIHello
{voidHello();}
classBase:
IHello
{publicvoidHello(){"HelloinBase!
");}}
classDerived:
Base
{publicvoidHello(){"HelloinDerived!
");}}
则下列语句在控制台中的输出结果为__(A)___。IHellox=newDerived();();
inBase!
inDerived!
inBase!
HelloinDerived!
inDerived!
HelloinBase!
..
30.为了将字符串str=“123,456”转换成整数123456,应该使用以下哪条语句(A)
Num=(str);
Num=(int);
Num=(int)str;
Num=(str,已知结构Resource的定义如下:
structResource{publicintData=0;
}则下列语句的运行结果为_________。(D)印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)
34.在C#语言中,下面的运算符中,优先级最高的是__(A)__。
A.%
B.++
C./=
D.>>
35.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是__(D)__。
>=10ora<=0
>=10|a<=0
>=10&&a<=0
>=10||a<=0
36.以下程序的输出结果是__(C)__。Usingsystem;
ClassExample1
{
PublicStaticvoidmain(){
Inta=5,b=4,c=6,d;
(“{0}”,d=a>b(a>ca:
c):
b);
}
}
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;
}(“a={0},b={1}”,a,b);
}}的输出结果是(C)以下叙述正确的是__(C)__。
….while语句构成的循环不能用其他语句构成的循环来代替
….while语句构成的循环只能用break语句退出
C.用do….while语句构成的循环,在while后的表达式为true时结束循环
D.用do….while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式
40.以下关于for循环的说法不正确的是__(A)__。
循环只能用于循环次数已经确定的情况
循环是先判定表达式,后执行循环体语句
循环中,可以用break语句跳出循环体
循环体语句中,可以包含多条语句,但要用花括号括起来。
41.假定int类型变量占用两个字节,若有定义:
int[]x=newint[10]{0,2,4,4,5,6,7,8,9,10};
则数组x在内存中所占字节数是___(B)。
42.以下程序的输出结果是:
(C)ClassExample1
{
PublicStaticvoidmain()
{
IntI;
Int[]a=newint[10];
For(i=9;
i>=0;
i--)a[i]=10-I;
(“{0},{1}{2}”,a[2],a[5],a[8]);
}}
43.有定义语句:
int[,]a=newint[5,6];
则下列正确的数组元素的引用是____。(C)
(3,4)
(3)(4)
[3][4]
[3,4]
44.下列的数组定义语句,不正确的是____。(D)
a[]=newint[5]{1,2,3,4,5}
[,]a=newinta[3][4]
[][]a=newint[3][];
[]a={1,2,3,4};
45.关于C#语言的方法,下列叙述中正确的是___(A)_。
A.方法的定义不能嵌套,但方法调用可以嵌套
B.方法的定义可以嵌套,但方法调用不能嵌套
C.方法的定义和调用都不能嵌套
D.方法的定义和调用都可以嵌套
46.以下所列的个方法头部中,正确的是___。_(C)
play(vara:
Integer,varb:
integer)
play(inta,b)
play(inta,intb)
play(aasinteger,basinteger)
47.下列程序的结果是:
(B)
Usingsystem;
ClassExample1
{
Staticlongfib(intn)
{
If(n>2)return(fib(n-1)+fib(n-2));
Elsererurn
(2);
}PublicStaticvoidmain()
{(“{0}”,fib(3));
}}
49.下列程序的执行结果是____。Usingsystem;(C)代码有误,team后面的“=”去掉
ClassExample1
{
enumteam={my,your=4,his,her=his+10};
PublicStaticvoidmain()
{
(“{0},{1},{2},{3}”,(int),(int),(int),(int);
}}
123
4010
4515
4515
50.以下对枚举的定义,正确的是__(B)__。
a={,three}
a
{a1,a2,a3};
a={‘1’,’2’,’3’};
a
{“one”,”two”,”three”};
51.枚举型常量的值不可以是__(D)__类型
52.调用重载方法时,系统根据___(B)_____来选择具体的方法。
A.方法名
B.参数的个数和类型
C.参数名及参数个数
D.方法的返回值类型
53.下列的_______不是构造函数的特征。(D)
A.构造函数的函数名和类名相同
B.构造函数可以重载
C.构造函数可以带有参数
D.可以指定构造函数的返回值
54.类ClassA有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执行的,则修饰M1方法时一定使用了___(B)_____修饰符。ClassAobj=newClassA();
();
55.已知类B是由类A继承而来,类A中有一个为M的非虚方法,现在希望在类B中也定义一个名为M的方法,若希望编译时不出现警告信息,则在类B中声明该方法时,应使用___(B)_____方法。
56.下列关于try…catch…finaly语句的说明中,不正确的是_____(D)____。
块可以有多个
块也是可选的
D.可以只有try块
57.为了能够在程序中捕获所有的异常,在catch语句的括号中使用的类名为_________。(A)
D.以上三个均可
58.关于异常,下列的说法中不正确的是____(D)_____。
A.用户可以根据需要抛出异常
B.在被调用方法可通过throw语句把异常传回给调用方法
C.用户可以自己定义异常
D.在C#中有的异常不能被捕获
59.下列说法中正确的是__(D)_______。
A.在C#中,编译时对数组下标越界将作检查
B.在C#中,程序运行时,数组下标越界也不会产生异常
C.在C#中,程序运行时,数组下标越界是否产生异常由用户确定
D.在C#中,程序运行时,数组下标越界一定会产生异常
60.要使窗体刚运行时,显示在屏幕的中央,应设置窗体的___(B)______属性。
61.要使文本框控件能够显示多行而且能够自动换行,应设置它的___(B)______属性。
和Multline
和WordWrap
和Multline
和WordWrap
63.要使复选框控件能够显示出三种状态,应首先设置它的______(C)___属性。
65.在设计菜单时,若希望某个菜单项前面有一个“√”号,应把该菜单项的__________属性设置为true。(A)_
66.下面对Read()和ReadLine()方法的描述,哪些是正确的_____。(A)(D)
()方法一次只能从输入流中读取一个字符
B.使用Read()方法读取的字符不包含回车和换行符
()方法读取的字符不包含回车和换行符
D.只有当用户按下回车键时,Read()和ReadLine()方法才会返回
67.下面对Write()和WriteLine()方法的描述,哪些是正确的____。(A)(B)(D)
()方法在输出字符串的后面添加换行符
B.使用Write()输出字符串时,光标将会位于字符串的后面
C.使用Write()和WriteLine()方法输出数值变量时,必须要先把数值变量转换成字符串
D.使用不带参数的WriteLine()方法时,将不会产生任何输出
69.以下标识符中,正确的是____。(A)
#
70.以下类型中,不属于值类型的是____。(D)
A.整数类型
B.布尔类型
C.字符类型
D.类类型
71.结构化的程序设计的3种基本结构是_____。(D)
A.顺序结构,If结构,for结构
结构,if…..else结构elseif结构
结构,do….while结构,foreach结构
D.顺序结构,分支结构,循环结构
72已知a,b,c的值分别是4,5,6,执行下面的程序段后,判断变量n的值为____。(C)
if(c
elseif(a+b elseN=a+b; 73.while语句循环结构和do…while语句循环结构的区别在于____。(D) 语句的执行效率较高 …while语句编写程序较复杂 C.无论条件是否成立,while语句都要执行一次循环体 …while循环是先执行循环体,后判断条件表达式是否成立,而while语句是先判断条件表达式,再决定是否执行循环体. 74.下面有关for语句的描述有错误的是____。(A) A.使用for语句时,可以省略其中的某个或多个表达式,但不能同时省略全部3个表达式 B.在省略for语句的某个表达式时,如果该表达式后面原来带有分号,则一定要保留它所带的分号 C.在for语句表达式中,可以直接定义循环变量,以简化代码 语句的表达式可以全部省略 75.下面有关break,continue和goto语句描述正确的是____。(D) 语句和continue语句都是用于终止当前整个循环 B.使用break语句可以一次跳出多重循环 C.使用语句可以方便地跳出多重循环,因而编程时应尽可能多使用goto语句 语句必须和标识符配合使用,break和continue语句则不然76.下面是几条定义初始化一维数组的语句,指出其中正确的是____。(D) arr1[]={6,5,1,2,3}; []arr1=newint[]; []arr1=newint[]{6,5,1,2,3}; []arr1; arr1={6,5,1,2,3}; 77下面是几条动态初始化一维数组的语句,指出其中正确的是____。没有答案 []arr2=newint[]; arr2=newint[4]; []arr2=newint[i]{6,5,1,2,3}; []arr2=newint[4]{6,5,1,2,3}; 78.下面是几条定义并初始化而维数组的语句,指出其中正确的是____。(D) arr3[][]=newint[4,5]; [][]arr3=newint[4,5]; arr3[,]=newint[4,5] [,]arr3=newint[4,5]; 79.下面有关枚举成员赋值说法正确的是____。(D) A.在定义枚举类型时,至少要为其中的一个枚举成员赋一个常量值 B.在定义枚举类型时,直接为某个枚举成员赋值,则其他枚举成员依次取值 C.在把一个枚举成员的值赋给另一个枚举成员时,可以不考虑它们在代码中出现的顺序 D.在定义的一个枚举类型中,任何两个枚举成员都不能具有相同的常量值 80.下列哪一项正确描述了Visual与.NETFramework之间的关系()。(D) 与.NETFramework之间没有关系 B.可以使用VisualIDE或者简单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 16 习题 答案