《C#程序设计》习题集Word格式.docx
《《C#程序设计》习题集Word格式.docx》由会员分享,可在线阅读,更多相关《《C#程序设计》习题集Word格式.docx(48页珍藏版)》请在冰点文库上搜索。
A、10fe658bB、febC、10658D、b
5.VisualStudio.Net开发平台是(B)公司提供的.NET应用程序集成开发工具。
A)BorlandB)MicrosoftC)IntelD)IBM
6.在VisualStudio.NET窗口,(B)窗口显示了当前VisualStudio解决方案的树型结构。
A.类视图B.解决方案资源管理器C.资源视图D.属性
7.在C#中,引用命名空间System的正确语句是(A)
A.usingSystem;
B.#import<
System>
C.usesSystem;
D.#include<
二、填空:
1.在C#程序中,程序的执行总是从(Main)方法开始的
2.可使用Console类的(ReadLine)方法,在控制台程序运行时输入信息。
3.数据类型说明符用来说明方法返回值的类型,如果没有返回值,则其类型说明符应为(void)。
4.C#语言源代码文件的后缀名是(.cs)。
5.Console.WriteLine(“RP”);
和Console.Write(“RP”);
的区别是(第一个输出RP后换行,
第二个不换)。
6.引入命名空间的关键字是(using)。
第2章C#2008语法基础
1.装箱是把值类型转换到(c)类型。
a)stringb)charc)引用d)数组
2.下列标识符命名正确的是(d)。
a)C.23b)4boysc)int(8)d)_mypanada
3.下列类型中,哪个不属于引用类型?
(b)。
a)Stringb)doublec)Classd)Delegate
4.在C#中,表示一个字符串的变量应使用以下哪条语句定义?
a)CStringstr;
b)stringstr;
c)Dimstrasstringd)char*str;
5.下列标识符命名正确的是(a)。
a)C_23b)4catsc)&
Yearsd)val(8)
6.如果左操作数大于右操作数,( d )运算符返回false。
a)=b)<
c)<
=d)以上都是
7.下列标识符命名正确的是(c)。
a)exam-1b)Mainc)_monthsd)X.25
8.下面属于合法变量名的是(A)。
a)P_qrb)123mnpc)chard)x-y
9.可用作C#程序用户标识符的一组标识符是(B)。
A.voiddefine+WORDB.a3_b3_123YN
C.for-abcCaseD.2aDOsizeof
10.字符串连接运算符包括&
和(A)。
A.+B.-C.*D./
11.在C#中,下列代码的运行结果是(a)
usingSystem;
classTest
staticvoidMain(string[]args)
string[]strings={"
a"
"
b"
c"
};
foreach(stringinfoinstrings)
Console.Write(info);
}
a)abcb)ac)bd)C
12、在C#中,下列代码的运行结果是(c)
int[]age=newint[]{16,18,20,14,22};
foreach(intiinage){
if(i>
18)
continue;
Console.Write(i.ToString()+””);
a)16,18,20,14,22b)16,18,14,22c)16,18,14d)16,18
13、以下关于C#代码的说法正确的是(d)
for(inti=0;
i<
=3;
i++)
switch(i)
case0:
Console.Write(i.ToString());
break;
case1:
case2:
Console.Write((i*2).ToString());
case3:
Console.Write((i*3).ToString());
a)正确运行,但没有输出
b)输出0149c)输山0123
d)有编译错误,提示case标签不能贯穿到另一个标签,不能运行
14、在c#的条件判断语句switchcase结构中,(d)子句用于指定在找不到匹配项时执行的动作
a)continueb)gotoc)elsed)default
15、C#程序的(D)方法被成为程序的大门,应用程序从这里开始运行
a)main()b)Begin()c)Start()d)Main()
16、在以下C#类中,(b)是控制台类,利用它我们可以方便的进行控制台的输入输出。
a)Controlb)Consolec)Canceld)Write
17、关于C#中的switchcase语句,以下说法正确的是(c)
a)switch判断的表达式可以是整型或者字符型,但不能是字符串型
b)在该语句中最多不能超过5个case子句
c)在该语句中只能有一个default子句
d)在该句中只能有一个break语句
18、在下列C#代码中,程序的命名空间是(a)
namespaceTest{
classProgram{
staticvoidMain(string[]args){
Console.Write(“HelloWorld!
”);
}
a)Testb)Mainc)namespaced)Program
19、C#语言与Java语言一样,也是一种面向对象的语言,C#语言中声明类的关键字是(b)。
a)usingb)classc)namespaced)Main
20、在.NET中,程序员在代码中漏写了一个大括号,这属于(C
)
A逻辑错误
B运行时错误C语法错误
D自定义错误
21、以下数据类型中不可以使用算术运算运算的是(A)
A.
boolB.
charC.
decimalD.
sbyte
22、在C#语言中,运算符"
="
和"
=="
的功能分别是( B )
A.关系运算和赋值运算B.赋值运算和关系运算
C.都是关系运算D.都是赋值运算
23.在C#中,关于continue和break,以下说法正确的是(
B)
Abreak是中断本次循环Bcontinue是中断本次循环,进入一下次的循环
Cbreak是中断本次循环,进入一下次的循环Dcontinue是中断整个循环
1.(+=)运算符将左右操作数相加的结果赋值给左操作数
2.常量通过关键字(const)进行声明。
3、在C#中,进行注释有两种方法:
使用//和使用“/**/”符号对,其中(//)只能进行单行注释。
4、布尔型的变量可以赋值为关键字(true)或(false)。
5.C#通过(装箱)和(拆箱)机制,可以实现值类型和引用类型之间的转换。
6、c#中bool类型只有两个值分别是(true)和(false)。
7、浮点类型包括(float)、(double)和(decimal)。
8、枚举类型使用(enum)关键字声明。
9、当整数a赋值给一个obiect对象时,整数a将会被(装箱)。
10、SubString()函数的功能是(获取子字符串)。
第3章程序流程控制
1.关于如下程序结构的描述中,哪一项是正确的?
(c)
for(;
;
{循环体;
a)执行循环体一次b)不执行循环体
c)一直执行循环体,即死循环d)程序不符合语法要求
2.下列关于异常处理的表述中哪些是正确的(A)?
A无论异常是否抛出,finally子句中的内容都会被执行。
Bcatch字句能且只能出现一次
Ctry字句中所抛出的异常一定能被catch字句捕获
Dtry、catch、finally三个字句必须同时出现,才能正确处理异常
3.一般情况下,异常类存放在什么命名空间中?
(c)。
a)System命名空间b)System.Diagnostics命名空间
c)System.Exception命名空间d)生成异常类所在的命名空间
4.程序运行可能会出现两种错误:
可预料的错误和不可预料的错误,对于不可预料的错误,可以通过C#语言提供的哪个方法来处理这种情形(D)
A。
中断调试B。
逻辑判断C。
跳过异常D。
异常处理
5.异常捕获发生在(B)块中?
A.tryB.catchC.finallyD.throw
6.在C#语言中,下列异常处理结构中有错误的是(a)
a)catch{}finally{}b)try{}finally{}c)try{}catch{}finally{}
d)try{}catch{}
7.C#的数据类型有(B)
A值类型和调用类型B值类型和引用类型
C引用类型和关系类型D关系类型和调用类型
8、C#程序中的类myClass中的成员变量var1如下:
publicclassmyClass{
privateintvar1;
则可以访问var1的有(A)。
a)在myClass类中b)myClass的继承类
c)myClass的父类d)和myClass在同一命名空间下的类
9、以下(c)是用于声明枚举类型的关键字。
a)staticb)structc)enumd)delegate
10、在C#中,某程序在一个类中编写了两个同名的方法,该段代码的运行结果是(C)。
publicclassMusician
publicvoidSong()
Console.WriteLine("
忘记你我做不到"
publicvoidSong(stringmusicName)
Console.WriteLine(musicName);
staticvoidMain()
Musicianmusician=newMusician();
stringmusicName="
还是觉得你最好"
musician.Song("
分手总要在雨天"
}
A)忘记你我做不到B)还是觉得你最好C)分手总要在雨天D)没有输出
1.在C#语言中,实现循环的主要语句有while,do-while,for和(foreach)语句。
2、在C#语言中,可以用来遍历数组元素的循环语句是(foreach)。
3、在异常处理结构中,抛出的异常要用(catch)语句捕捉。
4、在异常处理结构中,对异常处理的代码应放在(catch)块中。
5、在do-while循环结构中,循环体至少要执行
(1)次。
6、在C#中,可以通过(throw)语句无条件抛出异常。
7、在循环结构中,continue语句的作用是(结束本次循环,继续下一次循环)。
8、在循环执行过程中,希望当某个条件满足时退出循环,使用(break)语句
9、(try)块封装了可能引发异常的代码。
10、在switch语句中,(default)语句是可选的,且若存在,只能有一个。
11、结构化的程序设计的3种基本结构是(顺序结构),(选择结构)和(循环结构)。
12、在C#中,下列for循环的运行结果是(12345)。
for(inti=0;
i<
5;
i++)
{
Console.Write(++i);
13、在C#中,下列代码的运行结果是(654321)。
for(inti=6;
i>
0;
i--)
Console.Write(i--);
14、在C#中,下列代码的运行结果是(246)。
int[]price=newint[]{1,2,3,4,5,6};
foreach(intpinprice)
if(p%2==0)
Console.Write(p);
15、下面程序段执行后,sum的值为11
inti,sum=0;
for(i=0,sum=0;
=10;
i++,sum++);
16、下面循环语句的执行次数为6次。
i+=2){}
第4章数组与集合
1.数组pins的定义如下:
int[]pins=newint[4]{9,2,3,1};
则pins[1]=(b)
a)1b)2c)3d)9
2.有说明语句double[,]tab=newdouble[3,4];
那么下面叙述正确的是(c)。
a)tab是一个数组维数不确定的数组,使用时可以任意调整
b)tab是一个有两个元素的一维数组,它的元素初始值分别是3,4
c)tab是一个二维数组,它的元素个数一共有12个
d)tab是一个不规则数组,数组元素的个数可以变化
3.在数组中对于for和foreach语句,下列那些选项中的说法不正确?
a)foreach语句能使你不用索引就可以遍历整个数组
b)foreach语句总是从索引1遍历到索引Length
c)foreach总是遍历整个数组
d)如果需要修改数组元素就必须使用for语句
4.假定一个10行20列的二维整型数组,下列哪个定义语句是正确的(C)。
A.int[]arr=newint[10,20]
B.int[]arr=intnew[10,20]
C.int[,]arr=newint[10,20]
D.int[,]arr=newint[20;
10]
5.下列语句创建了(D)个string对象
string[,]strArray=newstring[3,4]
A.0B.3C.4D.12
1.(Array)是所有数组的基类。
2.System.Array有一个(Length)属性,通过它可以获取数组的长度。
4、集合类是由命名空间(System.Collections)提供。
5、数组定义与赋值语句如下:
int[]a={1,2,3,4,5};
则a[2]的值是(3)
6、下列程序段执行后,a[4]的值为(4)。
int[]a={1,2,3,4,5};
a[4]=a[a[2]];
7.在Array类中,可以对一维数组中的元素进行排序的方法是(Sort)。
8、声明一个10行20列的二维整形数组的语句为:
(int[,]a=newint[10,20])。
第5章C#面向对象程序设计基础
1.静态构造函数只能对(a)数据成员进行初始化。
a)静态b)动态c)实例d)静态和实例
2.在C#的类结构中,class关键字前面的关键字是表示访问级别,下面哪个关键字表示该类只能被这个类的成员或派生类成员访问?
(d)。
a)publicb)privatec)internald)protected
3.下列关于C#面向对象应用的描述中,哪项是正确的?
a)接口像类一样,可以定义并实现方法
b)声明为sealed的类不能被继承
c)abstract方法在声明时必须实现方法的具体内容
d)派生类是基类的扩展,派生类可以添加新的成员,也可去掉已经继承的成员
4.在类的定义中,类的(b)描述了该类的对象的行为特征。
a)类名b)方法c)所属的命名空间d)私有域
5.面向对象三个基本原则是(c)。
a)抽象,继承,派生b)类,对象,方法
c)继承,封装,多态d)对象,属性,方法
6.在C#编程中,访问修饰符控制程序对类中成员的访问,如果不写访问修饰符,类的默认访问类型是(b)。
ApublicBprivateCinternalDprotected
7.在C#中创建类的实例需要使用的关键字是(C)
A:
thisB:
baseCnewD:
as
8.在C#语言中,以下关于继承的说法错误的是(B)。
A.一个子类不能同时继承多个父类B任何类都是可以被继承的
C.子类继承父类,也可以说父类派生了一个子类D.Object类是所有类的基类
9.以下关于C#中的构造函数说法正确的是(B)。
A.构造函数有返回值B.构造函数可以有参数
C.一般情况下,构造函数总是private类型的D.构造函数可以通过类的实例调用
10.在C#中,如果类C继承自类B,类B继承自类A,则以下描述正确的是(d)。
a)C不能继承了A或B中的成员
b)C只继承了B中的成员
c)C只继承了A中的成员
d)C不仅继承了B中的成员,同样也继承了A中的成员
11.派生类访问基类的成员,可使用(A)关键字
A.baseB.thisC.outD.external
12.在C#中,一个类(B).
A.可以继承多个类B.可以实现多个接口
C.在一个程序中只能有一个子类D.只能实现一个接口
13.以下说法正确的是(
B
A.构造函数名不必和类名相同B.一个类可以声明多个构造函数
C.构造函数可以有返回值D.编译器可以提供一个默认的带一个参数的构造函数
14、以下说法不正确的是(
A.一个类可以实现多个接口B.一个派生类可以继承多个基类
C.在C#中实现多态,派生类中重写基类的虚函数必须在前面加override
D.子类能添加新方法
15.下列关键字中哪些不能作为修饰类(C)
A:
sealedB:
abstractC:
overrideD:
public
1.接口只能定义方法,实现要由(类)完成。
2、任何事物都是(对象),它可以是现实世界中的一个物理对象,可以是抽象的概念或规则。
3.如果一个类包含一个或多个抽象方法,它是一个(抽象)类。
4.(构造函数)提供了对对象进行初始化的方法,而且它在声明时没有任何返回值。
5.使用关键字(abstract)声明抽象类。
6.面向对象语言都应至少具有的三个特性是封装、(继承)和多态。
7.在实例化类对象时,系统自动调用该类的(构造函数)进行初始化。
8.类的静态成员属于(类)所有,非静态成员属于类的实例所有。
9.在声明类时,在类名前(abstract)修饰符,则声明的类只能作为其他类的基类,不能被实例化。
10.(类)是具有相同或相似性质的对象的抽象。
11、(属性)是对现实世界中事物特征进行的抽象。
12、(封装)是指使用抽象数据类型将数据和基于数据的操作包装在一起。
13、C#是一种面向(对象)的语言。
14、在类的成员声明时,若使用了(protected)修饰符则该成员只能在该类或其派生类中使用。
15、类的方法声明中,若没有显式指定方法的访问修饰符,则默认为(private)。
第6章域、属性与事件
1.下面代码的输出结果是(d)。
intx=6;
inty=x++;
Console.WriteLine(y);
y=++x;
a)66b)79c)66d)68
2、当month等于6时,下面代码的输出结果是(c)。
intdays=0;
switch(month)
days=28;
case4:
case6:
case9:
case11:
days=30;
default:
days=31;
a)0b)28c)30d)31
3、下面代码运行后,s的值是(B)。
ints=0;
for(inti=1;
100;
{
if(s>
10)
if(i%2==0)
s+=i;
a)20b)12c)10d)6
4、下面代码的运行结果是(D)
staticvoidMain(string[]args)
intnum1=34;
intnum2=55;
Increase(refnum1,num2);
{0}和{1}"
num1,num2);
Console.ReadLine();
privatestaticvoidIncrease(refintnum1,intnum2)
num1++;
num2++;