中国大学C#面向对象程序设计_1答案(mooc完整答案)

地理答案2024-05-19 06:30:1392875抢沙发
中国大学C#面向对象程序设计_1答案(mooc完整答案)摘要: 第1章 了解.NET框架单元测试:了解.NET框架1、.NET框架包括以下哪个部分内容A、BVLB、BCLC、CLRD、CLV2、设置环境变量的批处理工具是A、vsvars32.batB、PEC、CM ...

中国大学C#面向对象程序设计_1答案(mooc完整答案)

第1章 了解.NET框架

单元测试:了解.NET框架

1、中国整答.NET框架包括以下哪个部分内容
A、大学BVL
B、向对象程序设BCL
C、计答CLR
D、案m案CLV

2、中国整答设置环境变量的大学批处理工具是
A、vsvars32.bat
B、向对象程序设PE
C、计答CMD
D、案m案VS.exe

3、中国整答C#项目必要文件包括
A、大学.cs文件
B、向对象程序设.csproj文件
C、计答.avi文件
D、案m案.vb文件

4、C#编译经历了以下哪些过程
A、C#编译器
B、JIT编译器
C、C#源文件
D、本机代码

单元作业:了解.NET框架

1、文字说明c#程序编译过程

第2章 C#编程入门

单元测试:C#编程入门

1、c#程序的入口方法名称是
A、Init()
B、main()
C、Main()
D、run()

2、手工编译c#程序的工具是
A、vsvars32.bat
B、cs.exe
C、csc.exe
D、cmd.exe

3、可以启动C#集成工具编译程序功能的项目浏览器右键菜单命令是
A、Debug
B、生成
C、打开
D、工具

4、Console.WriteLine(" + { 1} = { 2} ",1,2,3)输出结果是
A、3 = 3
B、1 = 2
C、1 + 1 = 3
D、1 + 2 = 3

单元作业:C#编程入门

1、使用手工编译方式建立命令行项目两种方式,将下面的程序编译后,在命令行运行并输出结果,提交编译截屏。 using System; namespace Chapter2 { class Program { public static void Main() { Console.WriteLine("{ 0:d}",123.12); // Console.WriteLine命令行上打印输出内容 } } }

第10章 使用结构体

单元测试: 使用结构体

1、c#表示结构的关键字是
A、class
B、sturct
C、struct
D、structure

2、关于struct描述正确的是
A、struct不可以实现interface
B、struct可以包括无参数的默认构造函数
C、struct可以继承class
D、struct可以包括静态构造函数

3、C#中结构成员修饰符可以包括
A、public
B、protected
C、virtual
D、abstract

单元作业:使用结构体

1、使用结构方式,定义圆形结构,并通过实现下面的接口来计算其面积。提交代码截屏。 public interface Shape { double GetArea(); }

第11章 使用枚举

单元测试:使用枚举

1、c#中声明枚举的关键字是
A、enum
B、Enumeration
C、Iterate
D、Let

2、下面的程序输出结果是 using System; namespace Chapter11 { [Flags] enum MyColor { Empty = 0x03, //使用16进制表示整数1,对应二进制为0000 0000 0000 0000 Red = 0x02, // 使用16进制表示整数1,对应二进制为0000 0000 0000 0001 Blue = 0x01, // 使用16进制表示整数2,对应二进制为0000 0000 0000 0010 Black = 0x00 // 使用16进制表示整数3,对应二进制为0000 0000 0000 0011 } class Program { static void Main(string[] args) { MyColor mc1 = MyColor.Red | MyColor.Blue; MyColor mc2 = MyColor.Red | MyColor.Blue; bool isUsedRed1 = (mc1 & MyColor.Red) == MyColor.Red; bool isUsedRed2 = mc2.HasFlag(MyColor.Red); Console.WriteLine(",{ 1}", isUsedRed1,isUsedRed2); } } }
A、True,True
B、True,False
C、False,True
D、False,False

3、关于枚举类型描述正确的是
A、编译器默认给每个枚举成员赋值一个整数变量
B、Flags特性的作用是通知编译器该枚举值不仅可以单独使用,也可以按位标志组合
C、编译器默认给每个枚举成员赋值首项为1
D、枚举可以进行加法运算

单元作业:使用枚举

1、补充完整下面的程序,完整程序能够让程序循环输出月份信息字符串。提交截屏。 using System; namespace Chapter11 { enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec }; class Program { static void Main(string[] args) { foreach (string str in ___________ (typeof( Months ))) Console.WriteLine(str); } } }

第5章 掌握类的基本概念

单元测试:掌握类的基本概念

1、定义一个类需要使用哪个关键字( )
A、virtual
B、abstract
C、new
D、class

2、分部方法可以使用的返回类型为( )。
A、void
B、int
C、string
D、float

3、C#那种类型是不能显式使用的( )。
A、值类型
B、引用类型
C、指针
D、指令

4、类的主要成员包括那些( )。
A、字段
B、方法
C、属性
D、类别

单元作业:掌握类的基本概念

1、掌握类的基本概念 设计一个person类,实现其中的字段、方法、属性

第6章 使用类的方法

单元测试:使用类的方法

1、下列哪一个不属于程序控制关键字( )。
A、for
B、switch
C、else
D、new

2、在调用方法时可以传入个数不同实参的是( )。
A、引用参数
B、参数数组
C、命名参数
D、输出参数

3、那种返回类型可以不显式的使用return关键字( )。
A、void
B、int
C、string
D、float

4、哪种不能定义为方法签名不同( )。
A、形参个数
B、形参类型
C、返回值
D、形参顺序不同

单元作业:使用类的方法

1、尝试开发一个程序,要求自定义一个结构,该结构中包含圆的半径及圆面积的方法,然后在main方法中调用自定义的结构求指定半径的圆面积。

第13章 使用委托

单元测试:使用委托

1、声明委托使用什么关键字( )。
A、delegate
B、new
C、fuc
D、void

2、下列哪种方法不能初始化委托变量( )。
A、对象的实例方法
B、静态方法
C、匿名表达式
D、delegate关键字

3、下列哪种方法需要=>运算符( )。
A、静态方法
B、匿名方法
C、Lambda表达式
D、对象的实例方法

单元作业:使用委托

1、有个高档的热水器,包含一个加热器,一个报警器和一个现实屏,我们给热水器它通上电,当水温超过95度的时候: 1、报警器会开始发出语音,告诉你水的温度; 2、液晶屏也会改变水温的显示,来提示水已经快烧开了。 请使用观察者模式Observer表述上述三个关系,并在main方法里进行测试。

第14章 事件

单元测试:事件

1、事件是基于哪种OOP技术的( )。
A、委托
B、异常处理
C、继承
D、多态

2、使用事件不包括( )。
A、定义事件
B、订阅事件
C、触发事件
D、销毁事件

3、事件访问器被命名为( )。
A、get和set
B、add和remove
C、namespace
D、void

单元作业:事件

1、有一家三口,妈妈负责做饭,爸爸和孩子负责吃。。。将这三个人,想象成三个类。 妈妈有一个方法,叫做“做饭”。有一个事件,叫做“开饭”。做完饭后,调用开发事件,发布开饭消息。 爸爸和孩子分别有一个方法,叫做“吃饭”。 在main方法里,将爸爸和孩子的“吃饭”方法,注册到妈妈的“开饭”事件。也就是,订阅妈妈的开饭消息。让妈妈做完饭开饭时,发布吃饭消息时,告诉爸爸和孩子一声。

第3章 使用常见类型

单元测试:使用常见类型

1、以下数据类型中不可以使用算术运算运算的是( )
A、bool
B、char
C、decimal
D、sbyte

2、以下数据类型不能表示负数范围的是( )
A、sbyte
B、decimal
C、double
D、unit

3、在C#中,表示一个字符串的变量应使用以下哪条语句定义( )
A、CString str;
B、string str;
C、Dim str as string;
D、char * str;

4、下面属于合法变量名的是( )
A、P_qr
B、123mnp
C、char
D、x-y

5、在C#语言中,下列能够作为变量名的是( )
A、if
B、3ab
C、a_3b
D、a-bc

单元作业:使用常见类型

1、使用手工编译方式,将下面的程序编译后,在命令行运行并输出结果,提交编译截屏。 using System; namespace Ex3 { public class Abs { public static void Main() { int a=0, b=0, s=0; double c=0, d=0, sd=0; string str=” ”; s=a+b; sd=c*d; str=str+a; Console.WriteLine(" { 1} { 2}", s, sd, str); } } }

第4章 表达式和运算符

单元测试:表达式和运算

1、有double x=8.8,y=4.4,则表达式(int)x – y / y的值是( )
A、7
B、7.0
C、7.5
D、8.0

2、请问经过表达式a = 3 + 1 > 5 ? 0 : 1的运算,变量a的最终值是( )
A、4
B、0
C、1
D、3

3、下列哪个运算符可用于字符串的连接( )
A、+
B、*
C、-
D、/

4、C#中,执行下列语句变量x和y的值是( )。 int x=100; int y=++x;
A、x=100 y=100
B、x=101 y=100
C、x=100 y=101
D、x=101 y=101

5、在C#中,下列代码运行后,变量Max的值是( ) int a = 5,b = 10,c = 15,Max = 0; Max = a > b ? a : b; Max = c < Max ? c : Max;
A、0
B、5
C、10
D、15

单元作业:表达式和运算符

1、使用手工编译方式,将下面的程序编译后,在命令行运行并输出结果,提交编译截屏。 class Test { static void Main(string [] args) { int x = 5; int y = x++; System.Console.Write (y + “ ”); y = ++x; System.Console.WriteLine(y); } }

第12章 使用数组

单元测试:使用数组

1、下面哪一种数组声明形式是正确的( )
A、int[] myArray=new int[5] { 1,3, 14};
B、int[] myArray=new int[2] { 1,3, 14};
C、int[3] myArray=new int[] { 1,3, 14};
D、int[] myArray=new int[3] { 1,3, 14};

2、此数组int[ ][ , , ][ , ][]是几维数组( )
A、1维
B、2维
C、3维
D、4维

3、下边哪条语句可以表示int[,] myArray={ { 1,2,3},{ 2,3,4}};的列数( )
A、myArray.Length;
B、myArray.Length(0);
C、myArray.Length(1);
D、myArray [1].Length

4、下列对于foreach语句的说法错误的是( )
A、foreach语句可对数组中的元素进行遍历
B、使用foreach语句遍历多维数组元素时,无须知道其各维的长度
C、可使用foreach对数组中的元素进行改写
D、foreach语句有时可以替代for语句实现的功能

5、下列哪个选项能正确地创建数组( )
A、int[,] array = int[4,5];
B、int size=int.Parse(Console.ReadLine()); int[] pins=new int[size];
C、string[] str=new string[];
D、int pins[] = new int[2];

单元作业:使用数组

1、使用手工编译方式,将下面的程序编译后,在命令行运行并输出结果,提交编译截屏。 class Test { tatic void Main(string[] args) int[]age=new int[]{ 16,18,20,14,22}; foreach(int i in age) { if(i > 18) continue; Console.Write(i + ","); } }

第15章 类型转换

单元测试:类型转换

1、下述类型中,可隐式转换为short型的是( )
A、int
B、long
C、double
D、sbyte

2、下列说法中正确的是( )
A、父类可通过隐式转换为子类
B、拆箱就是把值类型转换成引用类型,装箱就是把引用类型转换成值类型
C、自定义转换使用explicit关键字时,可完成目标类型与源类型的隐式转换
D、可通过强制转换完成由int型到long型的转换

3、进行自定义转换的方法头不需要包括关键字( )
A、public
B、static
C、operator
D、virtual

4、使用了下述哪个关键字,代表进行了自定义的显式转换( )
A、implicit
B、public
C、void
D、explicit

5、关于对下述程序的描述正确的是( ) public static implicit operator Complex (int array) { return new Complex(array, 0); }
A、将Complex类型转换为int型
B、将int类型转换为Complex型
C、完成运算符重载的功能
D、返回一个整型数值

单元作业:类型转换

1、下述程序是对+、-、*运算符的重载,请将 处补充完整: class Complex { private int real; private int imag; public Complex(int real, int imag) { _____________ this.imag = imag; } public static Complex operator +(Complex c1, Complex c2)// 重载+ { return new Complex(c1.real + c2.real, c1.imag + c2.imag); } public static Complex operator -(Complex c1, Complex c2)// 重载- { return new Complex(c1.real - c2.real, c1.imag - c2.imag); output += " + " + imag + "i"; output += " - " + (-imag) + "i"; } public static Complex operator *(Complex c1, Complex c2)// 重载* { return new Complex(c1.real * c2.real - c1.imag * c2.imag, c1.real * c2.imag + c1.imag * c2.real); } public override string ToString()//完成对ToString函数的重载 { string output = real.ToString(); if (imag >= 0) { __________________________; } else { __________________________; } return output; } }

第16章 异常处理

单元测试:异常处理

1、在C#中,程序使用( )语句抛出系统异常
A、run
B、throw
C、catch
D、finally

2、C#中,在方法MyFunc内部的try…catch语句中,如果在try代码块中发生异常,并且在当前的所有catch块中都没有找到合适的catch块,则( )
A、忽略该异常
B、马上强制退出该程序
C、继续在MyFunc的调用堆栈中查找提供该异常处理的过程
D、马上抛出一个新的“异常处理未找到”的异常

3、为了能够在程序中捕获所有的异常,在catch语句的括号中使用的类名为( )
A、Exception
B、DivideByZeroException
C、FormatException
D、以上三个均可

4、下面对异常说法不正确的是( )
A、try/catch块为基本引发异常的组合
B、在捕获异常时,可以有多个catch块
C、无论异常是否发生,finally块总会执行
D、try块和 finally块不能连用

5、通过继承( )类,用户可以创建自己的异常类
A、System.Exception
B、System.SystemException
C、System.ApplicationException
D、System.UserException

单元作业:异常处理

1、使用手工编译方式,将下面的程序编译后,在命令行运行并输出结果,提交编译截屏。 using System; public class ExceptionApp1 { public static void Main() { int[] a = { 4, 8, 16, 32, 64, 128, 256 }; int[] b = { 1, 0, 2, 4, 0 }; for (int i = 0; i < a.Length; i++) { try { Console.Write(a[i] + " / " + b[i] + " = "); Console.WriteLine(a[i] / b[i]); } catch (DivideByZeroException) { Console.WriteLine("can't divide by 0"); } catch (Exception ex) { Console.WriteLine(ex.TargetSite); Console.WriteLine(ex.GetType()); Console.WriteLine(ex.Message); } finally { Console.Write("---------------------"); } Console.WriteLine(" ", i + 1); } Console.WriteLine(); } }

第7章 掌握类的高级概念

单元测试:掌握类的高级概念

1、C#中TestClass为一自定义类,其中有以下属性定义 public void Property{ …} 使用以下语句创建了该类的对象,并使变量obj引用该对象: TestClass obj=new TestClass( ); 那么,可通过什么方式访问类TestClass的Property属性( )。
A、TestClass.Progerty;
B、TestClass. Property();
C、obj. Property;
D、obj. Property();

2、以下类MyClass的属性Count属于( )属性。 class MyClass { int i; Public int Count { get{ return i; } } }
A、只读
B、只写
C、可读写
D、不可读不可写

3、在C#语言中,下列关于属性的描述正确的是( )。
A、属性就是以public关键字修饰的字符
B、属性是访问字段值的一种简单的形式,属性更好地实现了数据的封装和隐藏
C、要定义只读属性只需在属性名前加上readonly关键字
D、属性不可以使用virtual、override和public限定符

4、下列关于构造函数的描述中,哪个选项是正确的?( )。
A、构造函数必须与类名相同
B、构造函数不可以用private修饰
C、构造函数不能带参数
D、构造函数可以声明返回类型

5、下列关于C#中索引器理解正确的是( )。
A、索引器的参数必须是两个或两个以上
B、索引器的参数类型必须是整数型
C、索引器没有名字
D、以上皆非

6、下面的C#代码实现一个索引器: class TestIndex{ public int[]Elements=new int[100]; public intElements[int index] { get{ returnElements[index];} set{ Elements[index]=value;} } } class Class1{ static voidMain(string[]args){ TestIndext i=new TestIndex(); int cnt=0; for(cnt=o;cnt<5;cnt++) { ti.Elements[cnt]=cnt*cnt;} for(cnt=0;cnt<5;cnt++) { Console.WriteLine(ti[cnt].ToString());} Console.ReadLine(); } } 代码最后执行结果为( )。
A、输出:014916
B、代码“public intElements[intindex]”不正确
C、代码“Console.WriteLine(ti[cnt].ToString());”不正确
D、输出:491625

单元测试:掌握类的高级概念

1、C#中TestClass为一自定义类,其中有以下属性定义 public void Property{ …} 使用以下语句创建了该类的对象,并使变量obj引用该对象: TestClass obj=new TestClass( ); 那么,可通过什么方式访问类TestClass的Property属性( )。
A、obj. Property;
B、TestClass.Progerty;
C、TestClass. Property();
D、obj. Property();

2、以下类MyClass的属性Count属于( )属性。 class MyClass { int i; Public int Count { get{ return i; } } }
A、只读
B、只写
C、可读写
D、不可读不可写

3、在C#语言中,下列关于属性的描述正确的是( )。
A、属性是访问字段值的一种简单的形式,属性更好地实现了数据的封装和隐藏
B、属性就是以public关键字修饰的字符
C、要定义只读属性只需在属性名前加上readonly关键字
D、属性不可以使用virtual、override和public限定符

4、下列关于构造函数的描述中,哪个选项是正确的?( )。
A、构造函数必须与类名相同
B、构造函数不可以用private修饰
C、构造函数不能带参数
D、构造函数可以声明返回类型

5、下列关于C#中索引器理解正确的是( )。
A、以上皆非
B、索引器的参数必须是两个或两个以上
C、索引器的参数类型必须是整数型
D、索引器没有名字

6、下面的C#代码实现一个索引器: class TestIndex{ public int[]Elements=new int[100]; public intElements[int index] { get{ returnElements[index];} set{ Elements[index]=value;} } } class Class1{ static voidMain(string[]args){ TestIndext i=new TestIndex(); int cnt=0; for(cnt=o;cnt<5;cnt++) { ti.Elements[cnt]=cnt*cnt;} for(cnt=0;cnt<5;cnt++) { Console.WriteLine(ti[cnt].ToString());} Console.ReadLine(); } } 代码最后执行结果为( )。
A、014916
B、“public intElements[intindex]”不正确
C、Console.WriteLine(ti[cnt].ToString());”不正确
D、491625

单元作业:掌握类的高级概念

1、作业题1 1. 编写一个关于学员的类(Student)其中学员包含学号,姓名,年龄三个成员变量, 题目具体要求说明: 1) 学生学号:只能读取,不能输入,初始学号在构造函数中赋值。 2) 学员姓名:可以读取,也可以输入。 3)学员年龄:可以读取,但是年龄的值必须在0-120之间才能输入,。 4)调用该类,在Main函数中完成对三个变量被允许的操作。(具体允许的操作已经在(1)、(2)、(3)中说明)。

第8章 掌握类的继承

单元测试:掌握类的继承

1、下列关于C#中继承的描述,错误的是( )。
A、一个派生类可以有多个基类
B、通过继承可以实现代码重用
C、派生类还可以添加新的特征或修改已有的特征以满足特定的要求
D、继承是指基于已有类创建新类

2、下列关于抽象类的说法错误的是( )。
A、抽象类可以实例化
B、抽象类可以包含抽象方法
C、抽象类可以包含非抽象成员
D、抽象类可以派生出新的抽象类

3、以下关于继承的说法错误的是( )。
A、一个类只能继承一个基类
B、派生类不能直接访问基类的私有成员
C、protected修饰符既有公有成员的特点,又有私有成员的特点
D、基类对象不能引用派生类对象

4、派生类访问基类的成员,可使用( )关键字。
A、base
B、this
C、out
D、external

5、在C#中利用sealed修饰的类( )。
A、密封,不能继承
B、密封,可以继承
C、表示基类
D、表示抽象类

单元作业:掌握类的继承

1、定义一个交通工具抽象类Antomobile,其中包含一个行驶的抽象方法Move(),并通过小轿车Car类去实现抽象方法,并通过Main函数调用实现后的Move()方法。

第9章 使用接口

单元测试:使用接口

1、在C#中定义接口时,使用的关键字是( )。
A、interface
B、:
C、class
D、overrides

2、在C#中定义派生类时,指定其基类应使用的语句是( )。
A、interface
B、:
C、class
D、overrides

3、在接口的成员中,不能包含( )。
A、属性
B、方法
C、事件
D、常量

4、下列关于C#面向对象应用的描述中,哪项是正确的( )。
A、派生类是基类的扩展:派生类可以添加新的成员,也可去掉已经继承的成员
B、abstract方法的声明必须同时实现
C、声明为sealed的类不能被继承
D、接口像类一样,可以定义并实现方法

5、下列关于多态的说法中,哪个选项是正确的( )。
A、重写虚方法时可以为虚方法指定别称
B、抽象类中不可以包含虚方法
C、虚方法是实现多态的唯一手段
D、多态性是指以相似的手段来处理各不相同的派生类。

6、下列关于接口的说法,哪项是正确的( )。
A、接口可以被类继承,本身也可以继承其他接口
B、定义一个接口,接口名必须使用大写字母I开头
C、接口像类一样,可以定义并实现方法
D、类可以继承多个接口,接口只能继承一个接口

7、以下关于接口的说法,不正确的是( )。
A、接口不能实例化
B、接口中声明的所有成员隐式地为public和abstract
C、接口默认的访问修饰符是private
D、继承接口的任何非抽象类型都必须实现接口的所有成员

8、在C#中,关于接口下面说法错误的是( )。
A、接口是一组规范和标准
B、接口可以约束类的行为
C、接口中只能含有未实现的方法
D、接口中的方法可以指定具体实现,也可以不指定具体实现

单元作业:使用接口

1、2. 已知:接口Interface1, Interface2, Class1的代码如下所示, 题目具体要求说明: 1) 请通过一个新的类Class2,实现对上述两个接口和一个类的多重继承。 2) 并在Main方法中完成对Name的调用,对Add和Mul的调用,Hello方法的调用。 3) 打印输出加法和乘法运算的值,可以自定义参数值,或从键盘输入均可。 interface Interface1 { int Add(int a, int b);//加法运算 int Mul(int a, int b);//乘法运算 } interface Interface2 { string Name { get; set; } } class Class1 { public void Hello(string name) { Console.WriteLine("你好:" + name); } }

考试:结课

C#结课

1、在Array类中,可以对一维数组中的元素进行排序的方法是
A、Sort()
B、Clear()
C、Copy()
D、Reverse()

2、在类的成员中,用于存储属性值的是
A、属性
B、方法
C、事件
D、成员变量

3、下面几条定义一维数组的语句,正确的是
A、int[] arr2 = new int[];
B、int[] arr2 = new int[5];
C、int arr2[] = new int[5]{ 1, 2, 3, 4, 5};
D、int[] arr2 = new int[5]{ 1, 2, 3, 4, 5, 6};

4、将变量从字符串型转换成数值型可以使用的类型转换方法是
A、Str()
B、CChar
C、CStr()
D、int.Parse()

5、数据类型转换的类是
A、Mod
B、Convert
C、Const
D、Single

6、在接口的成员中,不能包含
A、属性
B、方法
C、事件
D、常量

7、在C#中定义接口时,使用的关键字是
A、interface
B、:
C、class
D、overrrides

8、当子类中的成员变量与父类中的成员变量相同时
A、子类中变量无效
B、该声明非法
C、子类中的成员变量隐藏父类中的变量
D、父类中的成员变量隐藏子类中的变量

9、字符串连接运算符是
A、+
B、-
C、*
D、/

10、在C#中,定义派生类时,指定其基类应使用的语句是
A、Inherits
B、:
C、Class
D、Overrides

11、类的以下特性中,可以用于方便地重用已有的代码和数据的是
A、多态
B、封装
C、继承
D、抽象

12、成员变量前的const表示
A、该变量是常量
B、该变量是财务变量
C、该变量类型可以改变
D、以上都不对

13、找出下列数据类型哪个是int类型不能隐式转换的类型
A、long
B、double
C、char
D、decimal

14、二维数组最后一个元素是a[2, 3],则数组a中包含的元素数目是
A、5
B、6
C、7
D、12

15、下面有关接口的说法,哪个是正确的
A、接口与抽象类是相同的概念
B、实现一个接口必须实现接口的所有方法
C、接口之间不能有继承关系
D、一个类可以实现多个接口

16、下面是几条定义类的语句,只能被继承的类是
A、public class student
B、class student
C、abstract class student
D、sealed class student

17、子类重写父类方法后,父类中方法被隐藏,这时想使用父类中的方法,应使用
A、special
B、father
C、base
D、this

18、构造方法何时被调用
A、类定义时
B、创建对象时
C、调用对象方法时
D、使用对象的变量时

19、类与对象的关系是
A、建筑图纸和建筑物的关系
B、汽车和发动机的关系
C、人与黑人的关系
D、没有关系

20、下面那些是调用一个类的方法时不需知道的信息
A、方法的名称
B、方法的参数类型和个数
C、方法返回值的类型
D、方法的实现步骤

21、在Array类中,可以对一维数组中的元素进行置逆的方法是
A、Reverse()
B、Clear()
C、Copy()
D、Sort()

22、下面对C#中类的构造函数描述正确的是
A、构造函数一般被声明成private型
B、构造函数如同方法一样,需要人为调用才能执行其功能
C、与方法不同的是,构造函数只有void这一种返回类型
D、在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数

23、C#的数据类型有
A、值类型和调用类型
B、值类型和引用类型
C、引用类型和关系类型
D、关系类型和调用类型

24、在C#中下列描述错误的是
A、类不可以多重继承而接口可以
B、抽象类自身可以定义成员而接口不可以
C、抽象类和接口都不能被实例化
D、一个类可以有多个基类和多个基接口

25、“A类继承自B类”还可以描述成
A、“A类派生出了B类”
B、“A类是B类的基类”
C、“B类是A类的派生类”
D、“B类派生出了A类”

26、在C#中可以使用const语句定义常量

27、在数据类型转换时,只能通过类型转换关键字或Parse( )来实现

28、类是面向对象程序设计的核心,是对象的模版

29、在派生一个类时,可以从多个基类继承

30、在派生类中重写属性或方法时不允许和基类中的属性或方法同名

31、C#的类支持多继承,接口是实现多继承的另一种形式

32、构造函数没有返回类型,但可以重载

33、C#方法调用时,形式参数的改变都不会引起实参的改变

34、静态方法只能直接访问静态成员变量,非静态方法绝对不能访问静态成员变量

35、子类对象可以被视为是其父类的一个对象

36、在同一行上可以书写多条语句,每条语句用分号分隔

37、可以同时声明定义多个同类型变量,变量之间用逗号分隔

38、在do…while循环中不允许有for循环

39、在定义数组时不允许为数组中的元素赋初值

40、默认数组下标为1,且不允许被修改

41、类是面向对象程序设计的核心,是创建对象的模板

42、方法是封装在类内部的函数,且必须有参数

43、类方法的作用域默认定义为public

44、类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间的关系

45、当一个类拥有另一个类的所有数据和操作时,就称这两个类之间具有多态关系

46、要创建一个类的实例,一般采用AS修饰符

47、如果没有显示指定类成员访问修饰符,默认类型为私有类型(private)修饰符

48、只有嵌套类允许使用private和protected

49、类的是一种数据类型,它是创建对象的一个模板

50、静态构造函数用来初始化一个类,每一个类都需要定义静态构造函数

<正文>

随着时代的进步和科技的发展,计算机已经成为人们生活中必不可少的一部分。而与之相关的计算机语言也是越来越重要。作为一名计算机专业的学生,学习一门编程语言是必不可少的。而C#作为一门重要的编程语言之一,其面向对象的特性更是被广泛应用。

面向对象编程,顾名思义,就是指编程的思想要从对象的角度来考虑,从而更好地组织和管理程序。在C#中,面向对象编程的核心思想就是将现实世界中的事物抽象成一个个对象,然后通过类来描述这些对象的属性和方法,最终实现程序的功能。

C#语言的面向对象特性主要有类、封装、继承、多态。其中,类是C#语言中最基本的面向对象的概念,封装则是一种保护类的成员变量和成员函数不被外部随意访问的机制,继承则是一种实现代码重用的机制,多态则是指同一个方法可以在不同的对象中有不同的实现。

通过使用C#语言的面向对象特性,我们可以更好地组织程序,提高程序的可读性和可维护性。同时,面向对象的编程思想也可以更好地体现出程序员的思考和设计能力,使得写出的程序更加简洁、高效。

总之,作为一门重要的编程语言,C#的面向对象编程思想是我们必须要掌握的一项技能。只有不断地学习和实践,才能在未来的工作中更加游刃有余地应用这门语言。

文章版权及转载声明

本文地址:http://www.zzxhsh.org/55b799433.html发布于 2024-05-19 06:30:13
文章转载或复制请以超链接形式并注明出处五煦查题

评论列表 (暂无评论,44人围观)参与讨论