NET课后习题.docx
《NET课后习题.docx》由会员分享,可在线阅读,更多相关《NET课后习题.docx(27页珍藏版)》请在冰豆网上搜索。
NET课后习题
第一章
一、单选:
1、以下有关.NET平台的叙述,错误的是(C)
A..NET平台的核心是.NETFramework
B.VisualStudio.NET是.NET平台的主要开发工具
C..NET建立在开放体系结构基础之上,具有跨Linux/UNIX的可移植性
D..NET平台完全支持现有的Internet技术
2、以下有关公共语言运行时CLR的叙述,错误的是(D)
A.CLR是.NETFramework的核心
B.CLR的原意思是CommonLanguageRuntime
C..NET应用程序运行时,CLR自动进行JIT编译器
D.CLR内置了内存分配、垃圾回收等托管功能,因此可完全替代操作系统
3、以下有关C#的叙述,错误的是(A)
A.C#源程序不需要编译,托管给CLR之后就可以运行
B.C#是完全面向对象的程序设计语言
C.不允许在程序中使用指针
D.C#能够开发诸如网络通信、动画制作、图像处理等程序
4、以下哪种文件时C#源程序文件(B)
A..slnB..csC..csrpojD..aspx
5、不管是哪种C#程序,必须添加的命名空间是(A)
A.SystemB.System.Text
C.System.Windows.FormsD.System.Web.UI.WebControls
6、以下有关C#源程序叙述错误的是(C)
A.一个C#源程序至少包括一个自定义类
B.C#程序中的每个语句必须以分号结尾
C.C#语言提供了丰富的输入输出方法,例如Console.WriteLine()
D.当程序被编译时,C#程序中的注释将被自动忽略
7、以下有关C#程序叙述错误的是(C)
A.C#控制台应用必须包含一个Main方法
B.C#Windows应用程序必须包含一个Main方法
C.C#Web应用程序必须包含一个Main方法
D.C#程序中的方法由两部分组成,即方法的头部和方法体
8、以下有关控件叙述错误的是(D)
A.控件对象在程序中实质上就是一个变量
B.Label控件可用来显示提示信息或程序的运行结果
C.TextBox控件可用来输入数据
D.Button控件只能相应鼠标单击操作,出发Click事件方法
二、判断:
1、如果把Windows操作系统比作一幢摩天大楼的基地,那么.NETFramework就是摩天大楼中由钢筋和混凝土搭成的框架。
2、.NET平台只支持微软自己的VB、C#、C++、F#等语言开发应用程序。
(X)
3、C#程序经过编译之后生成的可执行文件与传统的可执行文件没有任何区别。
(X)
4、VisualStidio.NET2010集应用程序创建、设计、编辑、编译、调试和运行等功能为一体,因此是C#程序的主要集成开发环境。
(V)
5、因为控件是Windows程序的基本组成元素,因此不能在程序运行时才在窗体中添加控件,必须提前通过工具箱添加。
(X)
第二章一、单选题:
1、当需要使用一种数据类型表达同一类事物的不同状态,比如:
男人、女人、小孩、老人或者春、夏、秋、冬时,C#中最可靠和直观的解决方案是什么(A)
A.使用枚举
B.使用struct结构
C.C#中无法通过一种数据类型表达同一事物的不同状态
D.使用int类型,用不同的数值{0,1,2,…}表示
2、假设a不等于b并且b不等于false,下列哪个表达式的运算结果为false(C)
A.a!
=bB.a=bC.a==bD.a<>b
3、引用数组元素时,数组下标的数据类型可以允许哪项类型(C)
A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式
4、有一个整型数组int[]array=newint{1,2,3,4}。
通过索引访问该数组,当索引为2时,得到的结果是(C)
A.
1B.2
5、某二维数组定义为
A.3B.6
6、某字符串的定义为
A.7B.6
7、以下哪个数组的创建代码是正确的?
(
A.int[]myArray=newint[3]{6,5,9,4}
B.int[]myArray=newint[4]{8.0,7}
C.int[]myArray={9,3,7,2}
D.int[]myArray=newint[5]myArray={9,8,0,2,6}
8、下面哪段代码正确初始化了2行2列的整数二维数组(A)
A.int[,]array=newint[2,2]
B.int[][]array=newint[2][2]
C.int[,]array=newint[2][2]
D.int[][]array=newint[2,2]
9、已经定义了一个Season枚举,它有4个成员Spring、Summer、Autumn、Winter。
现
在需要定义一个名为currentSeason的Season枚举,并将其赋值为Spring,应使用下面哪段
代码?
(D)
A.SeasoncurrentSeason=Spring;
B.currentSeason=Spring;
C.currentSeason=Season.Spring;
D.SeasoncurrentSeason=Season.Spring;二、多项选择:
AC)
1、下列选项的变量名中,哪些项的变量名是不合法的?
(
A.stringB._43ZC.homyu.shinnD.Int
ACD)
2、下列关于C#中声明变量规则的描述中,哪些选项是正确的?
(
A.不能以数字开头
B.不能以“_”开头
C.不能大小写混用
D.不能用“@#!
Y%”等除了“_”以外的符号作为变量名
3、已知变量I有如下定义:
intI=1000;
AD)
则下列类型转换中,哪些出现了数据精度的丢失?
(
A.byteJ=(byte)I;
B.longL=(long)I;
C.doubleD=(double)I;
D.shortS=(short)I;
BD)
4、在以下选项中,下列哪些类型可以成功地进行隐式类型转换?
(
A.int类型到bool类型的转换B.long类型到decimal类型的转换
C.int类型到char类型的转换
D.float类型到double类型的转换
“||”运算符是一种比较运算符
“||”运算符不是关键字
在使用“||”运算符的运算中,如果结果为真,则运算符左右两边的操作数都为真“||”运算符执行短路计算
5、下列关“||”运算符的描述中,哪些是正确的?
(ABD)
A.
B.
C.
D.
6、下列关于字符串的描述中,哪些选项是正确的(AD)
A.string对象是System.Char对象的有序集合,用于表示字符串
B.string对象被创建后,该对象的值是能够被修改的
C.使用“+”操作符连接两个string对象,这两个字符串对象都被修改了
D.字符串是Unicode的有序集合
7、下列关于数组索引的描述中,哪些选项是正确的?
(AC)
A.二维数组有两个索引值B.二维数组只有一个索引值
C.一维数组只有一个索引值D.数组的索引一般都是浮点型的
8、下列关于数组创建的描述中,哪些选项是正确的(ABCD)
A.数组在访问之前必须初始化
B.允许创建大小为0的数组
C.可以不使用new关键字来对数组进行初始化
D.数组在创建实例时,已经被编译器初始化了默认值,因此可以直接访问第二章
一、单选题:
1、当需要使用一种数据类型表达同一类事物的不同状态,比如:
男人、女人、小孩、老
人或者春、夏、秋、冬时,C#中最可靠和直观的解决方案是什么(A)
A.使用枚举
B.使用struct结构
C.C#中无法通过一种数据类型表达同一事物的不同状态
D.使用int类型,用不同的数值{0,1,2,…}表示
2、假设a不等于b并且b不等于false,下列哪个表达式的运算结果为false(C)
A.a!
=bB.a=bC.a==bD.a<>b
3、引用数组元素时,数组下标的数据类型可以允许哪项类型(C)
A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式4、有一个整型数组int[]array=newint{1,2,3,4}。
通过索引访问该数组,当索引为2时,得到的结果是(C)
A.1B.25、某二维数组定义为
A.3B.6
6、某字符串的定义为
A.7B.6
C.3
D.4
int[,]a={{1,2,3,4},{2,3,4,5},{3,4,5,6}},那么a[2,3]的值是(B)
C.5D.4
strings=”helloworld!
”;在该字符串中,字符w的索引是(B)
C.2
D.8
C)
7、以下哪个数组的创建代码是正确的?
(
A.int[]myArray=newint[3]{6,5,9,4}
B.int[]myArray=newint[4]{8.0,7}
C.int[]myArray={9,3,7,2}
D.int[]myArray=newint[5]myArray={9,8,0,2,6}8、下面哪段代码正确初始化了2行2列的整数二维数组(A)
A.int[,]array=newint[2,2]
B.int[][]array=newint[2][2]
C.int[,]array=newint[2][2]
D.int[][]array=newint[2,2]
9、已经定义了一个Season枚举,它有4个成员Spring、Summer、Autumn、Winter。
现
在需要定义一个名为currentSeason的Season枚举,并将其赋值为
代码?
(D)
A.SeasoncurrentSeason=Spring;
B.currentSeason=Spring;
C.currentSeason=Season.Spring;
D.SeasoncurrentSeason=Season.Spring;二、多项选择:
1、下列选项的变量名中,哪些项的变量名是不合法的?
(
A.stringB._43ZC.homyu.shinnD.Int
Spring,应使用下面哪段
AC
2、下列关于C#中声明变量规则的描述中,哪些选项是正确的?
(
A.不能以数字开头
B.不能以“_”开头
C.不能大小写混用
D.不能用“@#!
Y%”等除了“_”以外的符号作为变量名
3、已知变量I有如下定义:
intI=1000;
则下列类型转换中,哪些出现了数据精度的丢失?
(
A.byteJ=(byte)I;
B.longL=(long)I;
C.doubleD=(double)I;
D.shortS=(short)I;
4、在以下选项中,下列哪些类型可以成功地进行隐式类型转换?
(
ACD)
AD
BD)
A.int类型到bool类型的转换
B.10ng类型到decimal类型的转换
C.int类型到char类型的转换
D.fl0at类型到d0uble类型的转换
“||”运算符是一种比较运算符
“||”运算符不是关键字
在使用“||”运算符的运算中,如果结果为真,则运算符左右两边的操作数都为真“||”运算符执行短路计算
5、下列关“||”运算符的描述中,哪些是正确的?
(ABD)
A.
B.
C.
D.
6、下列关于字符串的描述中,哪些选项是正确的(AD)
A.string对象是System.Char对象的有序集合,用于表示字符串
B.string对象被创建后,该对象的值是能够被修改的
C.使用“+”操作符连接两个string对象,这两个字符串对象都被修改了
D.字符串是Unicode的有序集合
7、下列关于数组索引的描述中,哪些选项是正确的?
(AC)
A.二维数组有两个索引值B.二维数组只有一个索引值
ABCD)
C.一维数组只有一个索引值D.数组的索引一般都是浮点型的
8、下列关于数组创建的描述中,哪些选项是正确的(
A.数组在访问之前必须初始化
B.允许创建大小为0的数组
C.可以不使用new关键字来对数组进行初始化
D.
因此可以直接访问
数组在创建实例时,已经被编译器初始化了默认值,第三章
一、单选题:
一月”对应1,“二月”对应2.
1,输出“一月”。
使用下面的
1、一年中的12个月,每个月的中文对应一个数字,如现在输入一个整数,希望能输出数字对应的中文,例如输入哪种代码结构最适合?
(C)
if…else结构
D)
A.单一的if结构B.嵌套的if结构C.switch结构D.嵌套的
3、下列关于switch…case•…和if…else•…的描述中,哪个选项是错误的?
(
A.switch…case••和if…else…都是非常重要的条件语句
B.当程序中只需要进行两个选择,一般采用if…else…语句
C.当程序中有两个以上的选择要选时,可以采用switch…case•…语句
D.在程序中,switch…case•…语句可以代替if…else…语句
A)
B.case后面的表达式是常量表达式
D.switch后面的表达式是控制表达式
4、下列关于语句switch(表达式)和case表达式的描述中,错误的选项是(A.default关键字是不可以省略的C.break关键字可用于跳出switch语句
5、如果希望实现从1到10的累加,并得出结果,
intcount=0;
count+=1;
}
应该在空白处添加下面哪段代码?
(C)
B.for(inti=0;i<=9;i++)
D.for(inti=1;i<10;i++)
A.for(inti=0;i<10;i++)
C.for(inti=1;i<=10;i++)
6、分析下列程序代码:
usingSystem;classProgram{
staticvoidMain(string[]args)
{
stringtestString=”VisualStudio2010”;
stringnewString=string.Empty;
foreach(charchintestString)
{
if(ch=='1'||ch=='u')
continue;
newString+=ch.ToString();
}
Console.WriteLine(newString);
}
}
哪项的输出时正确的?
(C)
A.iuuiB.VC.VsalStdo2010D.VisualStudio2010
7、分析下列程序代码:
usingSystem;
publicclassProgram
{
staticvoidMain(string[]args)
{
for(inti=1;i<=16;i++)
{
if(i%4==0)
Console.WriteLine(i.ToString()+');'
}}
}哪项的输出是正确的(C)
B.416
D.123456…141516
最适合的方法是使用(B)语句。
B.switch…case••语句
D.foreach语句
C)
A.12356791011131415
C.481216
8、实现一个有多路分支的控制表达式,
A.if…else…语句
C.for语句
9、关于如下程序结构的描述中,哪一项是正确的(for(;;)
{循环体;
}
B.程序不符合语法要求
D.不执行循环体
A.执行循环体一次
C.一直执行循环体,即死循环
10、分析些列程序段:
usingSystem;
classProgram
{
staticvoidMain(string[]args)
{
int1=0;sum=0;
do
{
sum++;
}
while(i>0);
Console.WriteLine(“sum={0}”,sum);
}
}
程序运行的输出结果是什么?
(B)
A.sum=0B.sum=1C.sum=2D.sum=3
BCD)
二、多项选择:
1、计算机程序总是由若干条语句组成的,组成程序的常用结构分别是(
A.跳转结构B.循环结构C.分支结构D.顺序结构
2、swich()语句中的控制表达式可以是下面哪几种类型?
(ABCD)
A.char类型B.string类型C.int类型D.Enum类型
4.
5.选择:
封装是指使用类型将数据和基于数据的()包装在一起,封装的主要目的就是达到接口和()的分离?
(A)
A.操作,实现B.接口,实现C.操作,数据D.接口,操作
场景“司令员发号,高个子男人拿起枪射击”经过合理的抽象后,类是()属性是(),方法是()。
(B)
A.个子、发号、射击、人B.人、发号、个子、射击
C.射击、人、发号、个子D.发号、射击、人、个子
C#中Testclass为一自定义类,其中有以下属性定义:
publicvoidProperty{…}
使用一项语句创建该类的对象,并使变量obj引用该对象:
TestClassobj=newTestClass
();那么,可通过什么方式访问类TestClass的Property属性?
(C)
A.MyClass.Progerty;B.obj:
:
Property;
C.obj.Property;D.obj.Property();
4.在C#的类结构中,class关键字前面的关键字是表示访问级别,下面哪个关键字的访问
级别是表示只有在同一个程序集内,内部类型或成员才是可访问的?
(
A)
5.
A.public
分析下列程序:
Publicclassclass4
{Privatestring_sData=
B.private
C.internal
D.protected
((?
?
6.
7.
Publicstrings_Data{set{_sData=value;}}}
在Main函数中,在成功创建该类的对象obj后,下列那个语句是合法的?
(A)
A.obj.sData=”Itisfunny!
”;B.Console.WriteLine(obj.sData);
C.obj._sData=100;D.obj.set(obj.sData);
以下类MyClass的属性count属于()属性。
(A)
ClassMyClass{
Inti;
Intcount{get{returni;}}}
A.只读B.只写
关于重载,以下叙述错误的是(
C.可读写
D)。
D.不可读不可写
8.
A.
B.
重载是指在类的内部存在若干个方法名称一致但是参数列表不同的方法方法重载是指创建多个名称相同的方法,其中每个方法都在某些方面具有唯一性,以便编译器能够正确区分它们
重载构造函数的方式与重载方法的方式相同方法的重载允许两个方法名称和参数列表相同,而返回类型不同
。
(B)
C.
D.
下面有关C#中方法的参数描述正确的是()
A.利用值类型参数调用方法时,对形参的修改会反映到实参上去输出型参数(out)的实参在传递给形参前,不需要明确赋值引用型参数(ref)不另外开辟新的内存区域,这一点是它与输出型参数(同之处
使用Params做数组参数的关键词时,params数组可以不是最后一个参数
B.
C.
out)的不
D.
C#中MyClass为一定义类,其中有以下方法定义:
PublicvoidHello(){…}使用以下语句创建了该类的对象,并使变量obj引用该对象:
MyClassobj=newMyclass();那么,可如何访问类MyClass的Hello方法?
(A)
A.obj.Hello();B.obj:
:
Hello();C.MyClass.Hello();
10.分析下列代码段?
(A)
Classtest{
Privateintz;PrivateintreturnInt(){returnz;}}
上述代码运行后变量z返回的结果是什么?
A.0B.NULLC.Undefined
9.
D.MyClass:
:
Hello();
D.无法编译通过
11.
D)。
下面关于C#中类的构造函数描述正确的是(
A.为了增强类的封装性,构造函数一般被声明成private型
B.构造函数如同方法一样,需要先调用才能执行其功能
C.与方法不同的是,构造函数只有void这一返回类型
D.在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数
12.下列关于构造函数的描述中,哪个选项是正确的?
(A)
A.构造函数必须与类名相同B.构造函数不可以用private修饰
C.构造函数不能带参数D.构造函数可以声明返回类型
第五章
判断:
(1)当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。
(2)
(2)派生类可以继承基类的成员,以及方法的实现;派生的借口继承了父接口的成员方法,并且也继承了父接口方法的实现。
(X)
(3)如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调用
基类的构造函数。
(2)
抽象类中必须包含抽象成员,抽象成员可以不一定包含在抽象类中。
(X
基类的派生非抽象类必须为基类中的抽象方法提供实现。
(2)
基类中对抽象方法不提供实现,但是在基类的派生中必须为该抽象方法提供实现。
(4)
(5)
(6)
(2)
(7)
继承是派生类可以获取其基类特征的能力继承最主要的优点是提高代码性能派生类可以继承多个基类的方法和属性派生类必须通过base关键字调用基类的构造函数
D(3)()关键字可以用来访问当前对象的基类对象。
A.objectB.thisC.asD.base
继承是指派生类可以获取其基类特征的能力在派生类中重写积累方法必须使用override关键字抽象类可以作为基类,所以不可以直接实例化,也不可以被