《C#程序设计》习题集.docx
- 文档编号:2522872
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:48
- 大小:40.38KB
《C#程序设计》习题集.docx
《《C#程序设计》习题集.docx》由会员分享,可在线阅读,更多相关《《C#程序设计》习题集.docx(48页珍藏版)》请在冰点文库上搜索。
《C#程序设计》习题集
《C#程序设计》习题集
班级:
__________________
学号:
__________________
姓名:
__________________
2013年3月
第1章.NET平台与VisualStudio2008开发工具
一、选择:
1.下列语句在控制台上的输出是什么?
(b)
staticvoidMain(string[]args)
{
if(true)
System.Console.WriteLine("FirstMessage");
System.Console.WriteLine("SecondMessage");
}
a)无输出b)FirstMessagec)SecondMessaged)FirstMessage
SecondMessage
2.C#中导入某一命名空间的关键字是(B)。
a)useb)usingc)included)import
3.C#源程序文件的拓展名是(D)
A、vbB、cC、cppD、cs
4.以下程序的输出结果是(D)
stringstr="b856ef10";
stringresult="";
for(inti=0;str[i]>='a'&&str[i]<='z';i+=3)
{
result=str[i]+result;
Console.WriteLine(result);
}
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
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#中,表示一个字符串的变量应使用以下哪条语句定义?
(b)
a)CStringstr;b)stringstr;c)Dimstrasstringd)char*str;
5.下列标识符命名正确的是(a)。
a)C_23b)4catsc)&Yearsd)val(8)
6.如果左操作数大于右操作数,( d )运算符返回false。
a)=b) 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: Console.Write(i.ToString());break; case2: Console.Write((i*2).ToString());break; case3: Console.Write((i*3).ToString());break; } } 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) usingSystem; 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;i<=10;i++,sum++); 16、下面循环语句的执行次数为6次。 for(inti=0;i<=10;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语句,下列那些选项中的说法不正确? (b)。 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#面向对象应用的描述中,哪项是正确的? (b)。 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、以下说法不正确的是( B ) 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; Console.WriteLine(y); a)66b)79c)66d)68 2、当month等于6时,下面代码的输出结果是(c)。 intdays=0; switch(month) { case2: days=28; break; case4: case6: case9: case11: days=30; break; default: days=31; break; } a)0b)28c)30d)31 3、下面代码运行后,s的值是(B)。 ints=0; for(inti=1;i<100;i++) { if(s>10) { break; } if(i%2==0) { s+=i; } } a)20b)12c)10d)6 4、下面代码的运行结果是(D) staticvoidMain(string[]args) { intnum1=34; intnum2=55; Increase(refnum1,num2); Console.WriteLine("{0}和{1}",num1,num2); Console.ReadLine(); } privatestaticvoidIncrease(refintnum1,intnum2) { num1++; num2++; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C#程序设计 C# 程序设计 习题集