c#考试选择题

更新时间:2023-12-07 06:09:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1类的成员中,可以定义为静态的有属性

2下面有关抽象类的说法,正确的有抽象类中不一定有抽象方法

3已知类B是由类A继承而来,类A中有一个名为M的非虚方法,现在希望在类B中也定义一个名为M的方法,若希望编译时不出现警告信息,则在类B中声明该方法时,应使用new修饰符。

4以下不能作为复合赋值操作符被重载的有&= 5 C#中的方法重写使用关键字override

6下面关于索引函数说法不正确的是索引函数可以是静态的 7将事件通知其他对象的对象称为发布方

8以下说法正确的是一个委托在某一时刻可以指向多个方法 9分析下列语句: namespace TestCS {

public delegate void Hello(string target); }

该语句的作用是:在TestCS 命名空间中定义了一个名为Hello 的委托类型; 10 C#中MyClass 为一自定义类,其中定义了方法: public void Hello() { … }

使用以下语句创建了该类的对象,并使变量obj 引用该对象: MyClass obj = new MyClass();

那么,以下obj.Hello()可访问类MyClass的Hello方法?

11设int类型变量x的值为9,那么表达式--x+--x+--x的值为21 12下面程序的正确运行结果是1 1 12 1 12 12 namespace test {

class Program {

delegate void FunCompute(int x, int y); static void Main(string[] args) {

FunCompute f = Div; f = f + Mod + Mul; f(4, 3); f = f - Div; f(4, 3); f = f - Mod; f(4, 3); f = f - Mul; }

static void Div(int x, int y) {

Console.WriteLine( x / y); }

static void Mod(int x, int y) {

Console.WriteLine( x % y); }

static void Mul(int x, int y) {

Console.WriteLine( x * y); } } }

13下面\短路\效应会增加不确定性,降低程序运行效率说法不正确?

14关于一元操作符\和\,说法不正确的是前缀的特点是:先使用,再增减 15下面输出结果为整数的是Console.WriteLine(5 / 2);

16数组型参数,下列说法不正确的是当实参是数组变量时,必须指定该数组的长度。 17不可以作用于结构类型中数据成员的访问限制修饰符有protected 18输出型参数out,下列说法不正确的是输出型实参变量必须初始化

19如果是引用类型的形参,不使用ref,则下面说法这时形参的变化,影响实参。是正确的

20如果没有在对象创建表达式中为字段赋值,那么每个字段的初始值都是其类型的默认值。下面说法正确的是对于枚举类型,其默认值是0 21从高精度类型向低精度类型转换,进行的是显式转换

22下列说法中,C#规定,值类型的数组之间可以进行转换,但要显式转换。是不正确的 23若多维数组a有4行3列,那么数组中第10个元素的写法是a[3,0] 24下面decimal数据类型表示数的范围最大

25delegate int Mydelegate(int x,int y)定义了委托类型,能给该委托对象赋值的方法是int Sum(int m,int n);

26以下叙述正确的是用do….while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式

27以下语句会产生死循环的有for(;;);

28while语句循环结构和do…while 语句循环结构的区别在于do…while循环是先执行循环体,后判断条件表达式是否成立;而while语句是先判断条件表达式,再决定是否执行循环体。

29下面语句执行后y的值为512 int x = 1, y = 1; do y <<= (++x); while (x < 4);

30下面语句执行后y的值为30 int x = 0, y = 0;

while (x < 10) y += (x += 2);

31执行下面的代码后,字符串s2的值为HELLO string s1 = null;

string s2 = s1; s1 = \

s2 = s1.ToUpper();

32以下程序运行后, z的值为VISUAL C#.NET2.0设计教程 string x = \程序设计\string y = \应用教程方案之一\

string z = x.Replace(\程序\

33在C#中,下列string [] StrList = {\语句可以创建一个具有3 个初始值为\的元素的字符串数组?

34已知string str=\则把str中所有字符转为大写的是str=str.ToUpper(); 35若 x=\则以下表达式中,结果为\的是x.Substring(0,5)+y.Substring(7,2);

36以下指定泛型参数的目标类型继承自某个类或接口的语句,public class GT where T:IA,A是错误的。(其中A是类名,IA、IB是接口) 37类型参数在泛型类中不可以用作构造函数的类型参数

38以下public class G where S:struct泛型定义中,可将类型参数的目标类型限制为值类型。

39对于类型参数,C#通过关键字default来描述其默认值 40可以为索引器指定一个或多个索引参数。

41设int类型变量x和y的取值分别为3和2,那么执行下面语句后z的值为1 int z = (x++ % y == 0) ? ++x : (x / y == 1) ? ++y : --y;

42使用File的下列方法打开文件时,如果指定文件不存在会引发异常的有AppendAllText

43FileStream fs = new

Filestream(\e);

针对如上C#代码段以下说话正确的是如果c盘根目录下不存在文件test.txt,则建立一个内容为空的test.txt文件

44关于注释的说法,下面\四线注释是错误的? 45CLR的全称是公共语言运行时

46C#程序的执行过程是从程序的Main方法开始,到Main方法结束。 47下列说法正确的有属性通过使用访问器来读写类中的字段,从而为保护类中字段提供了可能

48类的成员中,可以定义为静态的有构造函数 49如果需要主动引发异常,可使用Throw语句

50能够捕获方法的无效参数的异常类型是ArgumentException 51C#程序中,可使用try..catch 机制来处理程序出现的运行错误

52在C#中,下列关于抽象类和接口的说法,正确的是继承自抽象类的子类必须实现其父类(抽象类)中的所有抽象方法

53在c#中,关于继承和接口,以下说法正确的是c#允许多接口实现,但不允许多重继承 54多态性允许对类的某个方法进行调用而无需考虑该方法所提供的特定实现,例如,可能有名为Road的类,它调用另一个类的Drive方法,另一个类可能是SportsCar 或

SmallCar,但二者都提供Drive方法,虽然Drive 方法的实现因类的不同而异,但Road 类仍可以调用它,并且它提供的结果可由Road 类使用和解释。在 .NET 中,可以由以下的方式来实现组件中多态性,除了( 通过受保护的成员函数来实现多态性)。

55对下面的C # 程序: using System;

public interface IAccount {

void PosInterest();

void DeductFees(int feeSchedule); }

class BusinessAccount : IAccount {

int A;

public static void Main() {

BusinessAccount B = new BusinessAccount(); Console.WriteLine(B.A); Console.ReadLine(); }

public void IAccount.PostInterest() {

A = A + 1; }

public void IAccount.DeductFees(int feeSchedule) {

A = A + feeSchedule; } }

以下的说法正确的是程序将出现编译错误,指示public关键字对接口项无效 56以下关于C#代码的说法正确的是该段代码正确 public abstract class Animal {

public abstract void Eat(); public void Sleep() { } }

57声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是int receive(int num)

58集合类型ArrayList对应的泛型集合类型是List

59下面有关构造函数和析构函数的说法,不正确的有一个类可以多个析构函数 60下列操作符是右结合的是=

1、要从派生类中访问基类的成员,应使用关键字___base_。

2、下列说法中,正确的是__派生类对象可以强制转换为基类对象_派生类对象可以强制转换为基类对象____。

3、继承具有_传递性______,即当基类本身也是某一类的派生类时,派生类会自动继承间接基类的成员。 4、

以下的C#代码定义一个接口: public interface Ifile {

int A;

int delFile() {

A = 3; }

void disFile(); }

关于以上的代码,以下描述错误的是( 代码void disFile();应该编写为void disFile(){} )

5、关于虚方法实现多态,下列说法错误的是___关键字virtual可以与override一起使用 ____。

6、调用重载方法时,系统根据_参数的个数和类型 ____来选择具体的方法。

7、下面关于this关键字说法错误的是__可以在静态成员中使用_____。 8、以下的C#代码: using System;

using System.Theading; class App{

Public static void Main() {

Timer timer = new Timer(new TimerCallback(CheckStatus),null,0,2000); Console.Read(); }

Static void CheckStatus(Object state) {

Console.WriteLine(\正在运行检查……\} }

在使用代码创建定时器对象的时候,同时指定了定时器的事件,程序运行时将每隔两秒钟打印一行\正在运行检查……\,因此,TimerCallback是一个__委托_____ 9、分析下列程序: public class Class1 {

} }

若必须为类MyClass 添加访问修饰符,并使MyClass 的可访问域保持不变,则应选择___internal______。

10. 以下类MyClass 的属性count 属于__只读___属性. class MyClass {

int i; int count { get {

return i; } } }

11. 创建表达式new操作符,下面____new不可以创建整数类型的实例。__不正确? 12. _as_____不是比较运算符?

13. 下面程序的正确运行结果是___YWW_____。 namespace test {

class Program {

static void Main(string[] args) {

char ch = 'Y';

Console.Write (ch--); Console.Write (--ch); Console.Write (ch); } } }

14. 下面输出结果为整数的是___Console.WriteLine(5 / 2);___? 15. 关于一元操作符\和\,说法不正确的是____前缀的特点是:先使用,再增减。____。

16. 方法中的return语句,_如果无返回值的方法,则执行代码中不允许出现return语句。如果无返回值的方法,则执行代码中不允许出现return语句。_____是不正确的? 17. 下面____string s=null;

Console.WriteLine(s);__代码能通过编译运行。

18. 在类与结构的定义中,是否可以在定义成员的同时为其指定初始值。下面说法正确的是_______类中字段可以,结构成员不可以。_

19.如果没有在对象创建表达式中为字段赋值,那么每个字段的初始值都是其类型的默

认值。下面说法正确的是_对于枚举类型,其默认值是0。_______。

20. 如果参数的类型是值类型,下面__值传递,形参获得的是实参的值,形参变化,实参也变化。____说法是不正确的。

21. 下面____\\b__转义字符是用于表示退格。

22. 下面___decimal___数据类型表示数的范围最大。

23. 在C#中,Array类中的__Length属性____成员,可以获得数组的长度。 24. 下面__结构____不是引用类型。

25. 以下拆箱转换语句中,不正确的是__object o;int i=(int)o;______。 26. 运行如下程序,输出结果是__a=1,b=0___。 using System; class Example1 {

public static void Main() {

int x = 1, a = 0, b = 0; switch (x) {

case 0: b++; break; case 1: a++; break;

case 2: a++; b++; break; }

Console.WriteLine(\} }

27. 以下叙述正确的是_用do….while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式___。

28. 以下关于for循环的说法不正确的是__for循环只能用于循环次数已经确定的情况__。

29. 下面语句执行后y的值为_30___。 int x = 0, y = 0;

while (x < 10) y += (x += 2);

30. 下面有关break、continue 和goto语句描述正确的是___goto语句必须和标识符配合使用,break和continue语句则不然_。

31. 已知string str=\则把str中所有字符转为大写的是str=str.ToUpper();_____。 32. 在C#中,下列__string [] StrList = {\__语句可以创建一个具有3 个初始值为\的元素的字符串数组?

33. 执行下面的代码后,字符串s2的值为___HELLO_。 string s1 = null; string s2 = s1; s1 = \

s2 = s1.ToUpper();

34. 能够同时去除字符串前导和尾部空白的方法是____Trim_ 。

35. C#中,新建一字符串变量str,并将字符串\保存到串中,则应

该使用下列____string str = \__语句? 36. C#从____2.0__版开始引入泛型。

37. 以下______public class G where S:struct__泛型定义中,可将类型参数的目标类型限制为值类型。

38. 对于类型参数,C#通过关键字___default_____来描述其默认值。 39. 类型参数在泛型类中不可以用作___构造函数的类型参数_____。 40. 类的成员中,可以定义为静态的有___构造函数_。

41. 设int类型变量x的值为9,那么表达式--x+--x+--x的值为_____21___。 42. FileStream fs = new

Filestream(\e);

针对如上C#代码段以下说话正确的是____如果c盘根目录下不存在文件test.txt,则建立一个内容为空的test.txt文件 _____。 43. StreamWriter对象的下列方法,可以向文本文件写入一行带回车和换行的文本的是___WriteLine()____。

44. CLR的全称是_____公共语言运行时。

45. 关于注释的说法,下面____\四线注释__是错误的? 46. C#语言经编译后得到的是___CIL中间语言指令_____。 47. 将事件通知其他对象的对象称为___发布方____。

48. 声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是__int receive(int num)___。 49. 通过继承____System.ApplicationException ___ 类,用户可以创建自己的异常类。 50. C#中,在方法MyFunc 内部的try..catch 语句中,如果在try 代码块中发生异常,并且在当前的所有catch 块中都没有找到合适的catch 块,则 ____.NET 运行时继续在MyFunc 的调用堆栈中查找提供该异常处理的过程____ 。 51. 在C#异常处理结构语句中,将正常情况下需要执行的语句段放在____try语句_____中。

52. 下面有关抽象类的说法,不正确的有_____抽象方法不可以是保护方法__。 53. 下列代码运行结果是____学生都要考试___。 using System;

public class Student {

public virtual void Exam() {

Console.Write (\学生都要考试\} }

public class Undergraduate : Student {

public new void Exam() {

base.Exam();

Console.Write (\大学生有选择考试科目的权利\}

}

public class Test {

static void Main() {

Student stu = new Undergraduate(); stu.Exam(); } }

54. 以下不能作为复合赋值操作符被重载的有___&=_。

55. 判断下列类MyClass 的定义中___abstract class MyClass {

public abstract int getCount(); }____是合法的抽象类?

56. 以下关于C#代码的说法正确的是_____该段代码正确__。 public abstract class Animal {

public abstract void Eat(); public void Sleep() { } }

57. 分析下列语句: namespace TestCS {

public delegate void Hello(string target); }

该语句的作用是:在TestCS 命名空间中定义了一个名为Hello 的委托类型 58. 集合类型ArrayList对应的泛型集合类型是__List______。

59. 下面有关构造函数和析构函数的说法,不正确的有_一个类可以多个析构函数___。 60. 下列操作符是右结合的是__=__。

1. 判断下列类MyClass 的定义中__abstract class MyClass {

public abstract int getCount(); }_____是合法的抽象类

2. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成____virtual 方法_____。 3. 下面有关虚拟方法和抽象方法的说法,正确的有_二者都不提供方法的实现代码___。 4. 类的以下特性中,可以用于方便地重用已有的代码和数据的是_______。继承

5. 在C#中,允许多接口继承,从多个接口时,使用\:\后跟继承的接口的名字,多个接口名称之间使用_______符号进行分隔。\

6. 下列关于重载的说法,错误的是_____方法可以通过指定不同的返回值类型重载

__。

7. 下面关于操作符重载说法错误的是__重载操作符可以声明为静态,也可以声明为非静态的_____。

8. 将事件通知其他对象的对象称为__发布方_____。

9. 下面关于析构函数说法不正确的是__析构函数需要显式调用______。 10. 调用重载方法时,系统根据__参数的个数和类型___来选择具体的方法。 11. 下面输出结果为整数的是__Console.WriteLine(5 / 2);____? 12. ____as__不是比较运算符?

13. 下面程序的正确运行结果是__YWW______。 namespace test {

class Program {

static void Main(string[] args) {

char ch = 'Y';

Console.Write (ch--); Console.Write (--ch); Console.Write (ch); } } }

14. 关于操作符,__逻辑操作符是右结合的,在优先级相同的情况下,表达式按照从右向左的顺序进行运算。____说法是不正确的?

15. 创建表达式new操作符,下面__new不可以创建整数类型的实例____不正确? 16. 下面关于可选参数,说法不正确的是____可选参数可以是引用型(ref)或输出型(out)参数。____。

17. 关于修饰符的访问限制的级别,说法不正确的是_如果一个类型是嵌套定义在另一个类型中,则内部类型的访问限制级别要高于外部类型。_______。

18. 下列说法不正确的是___类的静态字段为这个类的所有对象所共享,该类创建了多少个实例,在内存中就有多少份存储。_____。 19. 如果没有在对象创建表达式中为字段赋值,那么每个字段的初始值都是其类型的默认值。下面说法正确的是___对于枚举类型,其默认值是0。_____。

20. 如果参数的类型是值类型,下面__值传递,形参获得的是实参的值,形参变化,实参也变化。____说法是不正确的。

21. 从基类到派生类进行的是__显式转换______

22. 以下属于C#简单值数据类型的有___char_____类型。

23. 对于不规则多维数组,调用其Length属性得到的是__第一维的长度______。 24. 下面__结构____不是引用类型。

25. 若多维数组a有4行3列,那么数组中第10个元素的写法是___a[3,0]_____。 26. 下面语句所计算的数学表达式为__1! + 2! + 3! + … + 10!__。 for (int x = 0, y = 1, z = 1; z < 10; x += y, y *= ++z){}

27. 以下叙述正确的是__用do….while语句构成的循环,在while后的表达式应为关系

表达式或逻辑表达式__。

28. 下面有关break、continue 和goto语句描述正确的是____。 goto语句必须和标识符配合使用,break和continue语句则不然 29. 运行如下程序,输出结果是______。 using System; class Example1 {

public static void Main() {

int x = 1, a = 0, b = 0; switch (x) {

case 0: b++; break; case 1: a++; break;

case 2: a++; b++; break; }

Console.WriteLine(\} }

a=1,b=0

30. 下面语句执行后y的值为___512 _。

int x = 1, y = 1; do y <<= (++x); while (x < 4);

31. 为了将字符串str = \转换成整数123456,应该使用以下_______语句? int Num = int.Parse(str,System.Globalization.NumberStyles.AllowThousands); 32. 用户输入两个字符串后,想知道第二个字符串在第一个字符串中的起始位置,应该使用String类的____方法。 IndexOf

33. 设字符串s的内容为\,那么语句s = s.Substring(5).Substring(2,5)将其值变为_\___。

34. C#中,新建一字符串变量str,并将字符串\保存到串中,则应该使用下列______语句?

string str = \

35. 若 x=\则以下表达式中,结果为\的是__x.Substring(0,5)+y.Substring(7,2);____ 。

36. 对于泛型类P中的静态方法成员Calu(),以下________是正确的调用方法。 P.Calu();

37. 泛型和___继承_____是提高程序可重用性的两大关键技术。

38. 以下________泛型定义中,可将类型参数的目标类型限制为值类型。 public class G where S:struct

39. 设变量t的类型是泛型中的类型参数T,下面表达式__t=null______是不正确的。 40. 以下的C#代码:

using System;

using System.Theading; class App{

Public static void Main() {

Timer timer = new Timer(new TimerCallback(CheckStatus),null,0,2000); Console.Read(); }

Static void CheckStatus(Object state) {

Console.WriteLine(\正在运行检查……\} }

在使用代码创建定时器对象的时候,同时指定了定时器的事件,程序运行时将每隔两秒钟打印一行\正在运行检查……\,因此,TimerCallback是一个__委托_____

1. 设int类型变量x和y的取值分别为3和2,那么执行下面语句后z的值为__1______。 int z = (x++ % y == 0) ? ++x : (x / y == 1) ? ++y : --y; 2. 变量openFileDialog1 引用一个OpenFileDialog 对象。为检查用户在退出对话框时是否单击了\打开\按钮,应检查openFileDialog1.ShowDialog()的返回值是否等于____DialogResult.OK___。

3. 在C#中,将路径名\存入字符串变量path中的正确语句是______。 path = \

4. CLR的全称是_公共语言运行时____。

5. 在C#环境中__Ctrl+F5____组合键,可生成解决方案并执行程序,在自动打开的控制台窗口中看到程序的输出。

6. 关于注释的说法,下面___\四线注释___是错误的? 7. 分析下列C#语句,注意类MyClass 没有访问修饰符: namespace ClassLibrary1 {

class MyClass {

public class subclass {

int i; } } }

若必须为类MyClass 添加访问修饰符,并使MyClass 的可访问域保持不变,则应选择____internal_____。

8. 以下类MyClass 的属性count 属于_只读____属性. class MyClass {

int i; int count

{ get {

return i; } } }

9. 能够捕获运算溢出的异常类型是__SystemException_________。 10. 下面的程序段最终引发的异常有_______。 try{

try { throw new FormatException(); }

catch{ throw new ArgumentNullException(); } } catch {

try { throw new OverflowException();}

finally{throw new NullReferenceException(); } }

finally {

try { throw new ArgumentOutOfRangeException(); } catch { throw new ApplicationException(); } }

OverflowException 11. Exception有两个常用的派生类,其中_______表示开发人员在程序中所引发的异常。 ApplicationException

12. C#中的方法重写使用关键字___override____。 13. 下列代码输出为______。 class Father{

public void F() { Console.WriteLine(\

public virtual void G() { Console.WriteLine(\}

class Son: Father{

new public void F() { Console.WriteLine(\

public override void G() { Console.WriteLine(\}

class override_new{ static void Main() { Son b = new Son(); Father a = b; a.F(); b.F(); a.G();

b.G(); } }

A.F B.F B.G B.G

14. 在C#中,接口与抽象基类的区别在于___抽象基类可以包含非抽象方法,而接口只能包含抽象方法___。

15. 以下不能作为复合赋值操作符被重载的有_&=___。

16. 多态性允许对类的某个方法进行调用而无需考虑该方法所提供的特定实现,例如,可能有名为Road的类,它调用另一个类的Drive方法,另一个类可能是SportsCar 或SmallCar,但二者都提供Drive方法,虽然Drive 方法的实现因类的不同而异,但Road 类仍可以调用它,并且它提供的结果可由Road 类使用和解释。在 .NET 中,可以由以下的方式来实现组件中多态性,除了( 通过受保护的成员函数来实现多态性 )。 17. 分析下列程序: public class Class1 {

private string _sData = \public string sData { set {

_sData = value; } } }

在Main 函数中,在成功创建该类的对象obj 后,下列________语句是合法的? obj.sData = \

18. System程序集中定义了可比较的泛型接口___IComparable____。

19. 下面有关构造函数和析构函数的说法,不正确的有__一个类可以多个析构函数__。 20. 下列操作符是右结合的是__=__。

1、 C#中的方法重写使用关键字_override______。

2、多态性允许对类的某个方法进行调用而无需考虑该方法所提供的特定实现,例如,可能有名为Road的类,它调用另一个类的Drive方法,另一个类可能是SportsCar 或SmallCar,但二者都提供Drive方法,虽然Drive 方法的实现因类的不同而异,但Road 类仍可以调用它,并且它提供的结果可由Road 类使用和解释。在 .NET 中,可以由以下的方式来实现组件中多态性,除了( 通过受保护的成员函数来实现多态性 )。

3、在C#中,允许多接口继承,从多个接口时,使用\:\后跟继承的接口的名字,多个接口名称之间使用___\____符号进行分隔。

判断下列类MyClass 的定义中__abstract class MyClass

{

public abstract int getCount(); }___是合法的抽象类?

4、判断下列类MyClass 的定义中___abstract class MyClass

{

public abstract int getCount(); }____是合法的抽象类?

5、关于虚方法实现多态,下列说法错误的是____关键字virtual可以与override一起使用___。

6、分析下列C#语句,注意类MyClass 没有访问修饰符: namespace ClassLibrary1 {

class MyClass {

public class subclass {

int i; } } }

若必须为类MyClass 添加访问修饰符,并使MyClass 的可访问域保持不变,则应选择_internal________。

7、调用重载方法时,系统根据___参数的个数和类型__来选择具体的方法。 8、以下说法正确的是__一个委托在某一时刻可以指向多个方法。_____。 9、下面关于索引函数说法不正确的是____索引函数可以是静态的____。 10、类MyClass 中有下列方法定义:

public void testParams(params int[] arr) {

Console.Write (\使用Params参数!\}

public void testParams(int x,int y) {

Console.Write (\使用两个整型参数!\}

则下列语句的输出为______使用Params 参数!使用两个整型参数!使用Params 参数!___.

MyClass x = new MyClass(); x.testParams(0); x.testParams(0,1); x.testParams(0,1,2);

11、设int类型变量x和y的取值分别为3和2,那么执行下面语句后z的值为______1__。 int z = (x++ % y == 0) ? ++x : (x / y == 1) ? ++y : --y; 12下面程序的正确运行结果是__YWW ______。

namespace test {

class Program {

本文来源:https://www.bwwdw.com/article/76gt.html

Top