C#期末复习大纲和C#期末题库(带答案)
Less is moree 2024-07-08 17:35:01 阅读 88
基础部分
一、基础
0.1 .NET是平台,提供框架类库和公共语言运行时;
0.2 C#是.NET平台上运行的高级编程语言
0.3 visual stodio 2015, Shap Develop 是集成开发环境(IDE);
0.4 0X开头是16进制,0开头是8进制
C#是面向对象的高级编程语言C#语言源代码文件的后缀名是( .cs )C#编译器名字为csc(或csc.exe);
简单的讲述的话 .cs源文件--->csc编译器--->exe文件
也就是csc.exe编译器会把.cs 源文件编译成exe文件(可执行文件);
二、程序基本的写法
0. 输入和输出
console.writeline()——输出
console.readline()——读入一行字符串
读入后数据类型默认是string类型的,读取的数据如进行计算需要进行类型变换
变int 类型-->int.Parse()方法,变double类型double.Parse()方法
(看编程第一题)
1.C#中的命名方法在绝大多数情况系遵循Pascal规则,也就是每个单词首字母大写
就是包括命名空间的名字,如System;System.Text;类名Object;Console;
方法名Main;这就是C#中程序入口Main方法大写的原因;(java 是小写)
(带括号的一般都是方法(函数))
但是 关键字都小写 如: using ,public ,static ,private
2.变量命名
只能由字母,数字,下划线组成,不能以数字开头;
不能包含关键字,
a.局部变量定义是可以不赋值,但是使用之前要赋值;
(局部变量就是方法内部的变量,作用域只在方法内,包括Main方法)
b.局部变量不能用public,private,protected 等修饰符修饰;
程序基本写法
有命名空间,有类,类里面有方法
引入命名空间,使用关键字using,
6. 三种注释方法:
(1)单行注释:以“//”开头,后面内容为注释内容
(2)多行注释:以“/*”开头,以“*/”结束。
(3)文档注释:在类或方法上面,写“///”就可以
方法重载
方法名相同,方法参数不同,个数不同,参数不同,跟返回值无关
构造方法
a.没有返回值类型 b.方法名与类名相同
三、数据类型
编程语言是有数据类型的,就是你得告诉计算机某个数是小数还是整数,或者告诉计算机某个数据是什么类型的
C#有两种数据类型 1.基本数据类型 2.引用数据类型
(拓展:了解即可
基本数据类型基本上是已经定义好的,与数字有关系的,引用数据类型大多是自定义的
值类型的数据存放在内存栈,引用类型的引用存放在内存栈 ,实际数据存放在内存堆里面)
枚举是值类型(如:编程题第三题)类是引用类型;
Byet 字节型 占一个字节 也就是8 位的空间,表示0---255的数字
short 短整型 占2个字节 也就是16位的空间,那能表示-32768—32767之间的数字
int 4个字节
long 8个字节
char 字符型 占2个字节 也就是16位的空间,范围0---65535
char 字符型是单引号,string是双引号
double 8个字节
float 4个字节
decimal 16个字节
装箱与拆箱:
装箱:值类型变为引用类型
拆箱:引用类型变为值类型
四、运算符(p28)
1.算是运算符 + - * / % ++ --
1.1整数出整数仍然是整数
5除于2等于2 -----------5/2=2
5取模与2等于1--------5%2=1
1.2计算中如果有浮点型参与计算(也就是小数类型),结果是小数
1.3 %取模运算结果一定是非负整数(看下方图)
1.3.一般来说可以用取模运算判断是偶数还是奇数,某个数取模与2,如果结果是0则是偶是,反则是奇数
如10%2=0 ,所以10是偶数
1.4自增和自减
++a是先先把a变成a+1再用,a++是先用a,用完a后,a自己给自己加个1,也就是a+1
如 现在int a=5; int k=++a; 此时k=6,a=6
如现在int b=5; int m=b++; 此时m=5,b=6;
输出下面程序结果_______
答案是21和22
五、面向对象
面向对象三大特性:封装、继承、多态;
ref的用法继承用 符号 :
继承是单重继承,只能继承一个类,但是可以间接继承多个类
比如说如果a继承b,b继承c,那么c也是a的继承
接口是用关键字interface
接口里面不能有字段
5.3关于多态
5.4面向对象有关总结
抽象类和抽象方法
抽象类用关键字abstract,
抽象类用关键字abstract
抽象类不能被实例化,等待被继承,被子类实现
抽象方法没有方法体;
抽象方法可以有普通方法,
普通方法不能有抽象方法
如果父类是抽象类,子类必须重写其里的抽象方法,并使用关键字override
接口方法没有方法体
抽象方法也没有方法体
Virtual虚方法必须有方法体
虚方法(virtual)可以被重写(override),也可以不被重写
接口成员方法必须重写,无需写override关键字
抽象方法必须重写,用关键字override
数组
数组的遍历有关数组元素个数
数组的长度用Get Length()方法Length()方法
冒泡排序
有关关键字
const 常量用关键字const 如const double PI=3.14;
enum 用enum定义枚举类型(p25-p26)
struct 用struct定义结构类型
delegate 是委托的关键字,(委托是存储方法)
new:创建新对象
interface 接口
public:不限制对类的访问
protected:只能从其所在类,和类的子类进行访问
private:只能类里面使用
abstract:抽象类,不允许建立类的实例
sealed:密封类,不允许被继承
有关默认类
字段权限修饰符默认是 private的
字段的默认是int 是0,string是null,double是0.0d float 是0.0f
(和字段类似的是局部变量,但是局部变量没有默认值所以用之前需要
题库部分(答案)
测试题汇编
选择题
1 .NET 是一种( )。
A、编程语言 B、集成开发工具 C、开发平台
2. C#是一种( )。
A、开发平台 B、集成开发环境 C、编程语言
3. 微软开发的Visual Studion,简称VS,它是一种( )。
A、编程语言 B、开发平台 C、集成开发环境
4.当前开发 C# 程序最流行的集成开发环境是( )。
A. SharpDevelop B. Visual Studio C. .NET D. JavaScript
5. .NET框架是.NET战略的基础,是一种新的便捷的开发平台,它具有两个主要的组件,分别是( )和类库。
A. 公共语言运行时
B. Web服务
C. 命名空间
D. Main()函数
6. (单选题)在.NET中,程序员在代码中漏写了一个大括号,这属于( )。
A. 逻辑错误
B. 运行时错误
C. 语法错误
D. 自定义错误
7.Visual Studio.Net开发平台是( )公司提供的.NET应用程序集成开发工具。
A. Borland
B. Microsoft
C. Intel
D. IBM
8.下列不属于C#语言的关键字是( )。
A. public
B. static
C. void
D. String
9.Console是C#语言中的控制台类,它负责向控制台输出不同格式的字符串,在格式字符串中,可以使用( )来实现水平制表输出。
A. \r
B. \t
C. \n
D. \d
10. C#语言中的类Console包含两个输入方法:Write()和WriteLine()。它们之间的唯一区别是( )。
A. WriteLine()方法输出后换行,Write()方法输出后不换行
B. WriteLine()方法可以格式化输出,Write()方法不可以
C. Write()方法输出后换行,WriteLine()方法输出后不换行
D. Write()方法可以格式化输出,WriteLine()方法不可以
11. 在 C#语言中,下列能够作为变量名的是( )。
A. if
B. 3ab
C. a_3b
D. a-bc
12. 下面属于合法变量名的是( )。
A. P_qr
B. 123mnp
C. char
D. x-y
13. 以下选项中,合法的变量命名是( )。
A. **z
B. _ester
C. tc@caac
D. www.eroman.com
14. 下列选项中属于字符串常量的是 ( )。
A. ABC
B. “ABC”
C. abs’
D. ‘a’
15. (多选) .Net Framework的典型特征有:( ABCDEF )
A、公共语言运行时B、框架类库C、语言无关性D、优良的互操作性E、快捷开发特效F、安全
16.C#中的注释有:( ABC )。
A、单行注释“//” B、多行注释“/* ..... */” C、XML注释“///”
17. (单选题)如果一个属性里既有set访问器又有get访问器,那么该属性为( )属性。
A. 只读
B. 只写
C. 读写
D. 自动
18. 要给属性对应的数据成员赋值,通常要使用set访问器,set访问器始终使用( )关键字来设置属性的值。
A. class
B. void
C. static
D. value
19. 在属性中,get访问器必须用( )语句来返回。
A. return
B. static
C. value
D. for
20. 在C#语言中,下列关于属性的描述正确的是( )。
A. 属性系是以public关键字修饰的字段,以public关键字修饰的字段也可称为属性
B. 属性是访问字段值的一种灵活机制,属性更好地实现了数据的封装和隐藏
C. 要定义只读属性只需在属性名前加上readonly关键字
D. 在C#的类中不能自定义属性
21. 下列的( )不是构造函数的特征。
A. 构造函数的函数名和类名相同
B. 构造函数可以重载
C. 构造函数可以带有参数
D. 可以指定构造函数的返回值
22. ( )是将方法作为参数传递给另一方法的一种数据类型。
A. 类
B. 枚举
C. 委托
D. 字符串
23. 委托是一种数据类型,是存有对某个( )的引用的一种数据类型。
A. 对象
B. 字符串
C. 数值
D. 方法
24. 在C#中,一个类( )。
A. 以继承多个类
B. 可以实现多个接口
C. 在一个程序中只能有一个子类
D. 只能实现一个接口
25. ( )关键字用于在C#中从派生类中访问基类的成员。
A. new
B. super
C. this
D. base
26. 在定义类时,若希望类的某个方法能够在派生类中进一步改进,以满足派生类的不同需要,则应将该方法声明为( ) 。
A. new
B. public
C. virtual
D. override
27. 已知类B是由类A继承而来,类A中有一个名为M的非虚方法,现在希望在类B中也定义一个名为M的方法,且两方法的参数个数和类型完全相同,若希望编译时不出现警告信息,则在类B中声明该方法时,应使用( )关键字。
A. static
B. new
C. override
D. virtual
28. 假设类B继承了类A,下列说法错误的是( )。
A.类B中的成员可以访问类A中的保护成员
B.类B中的成员可以访问类A中的私有成员
C. 类B中的成员可以访问类A中的静态成员
D. 类B中的成员可以访问类A中的公有成员
29. 下列关于接口的说法,正确的是( )。
A.接口中定义的方法可以编写其实现代码
B. 继承接口的类可提供被继承接口中部分成员的实现代码
C.接口中的所有方法都必须在其派生类中得到实现。
D. 接口中定义的方法都必须是虚方法
30. 下列关于虚方法的描述中,正确的是( )。
A.在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符
B.在重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符
C.在重写基类的虚方法时,需要同时带上virtual和override修饰符
D. 虚方法能在程序执行时动态确定要调用的方法,因此比非虚方法更灵活
31. 在C#中,以下关于抽象类的叙述中错误的是( )。
A.抽象类可以包含抽象方法
B.含有抽象方法的类一定是抽象类
C.抽象类不能被实例化
D. 抽象类可以是密封类
32.在C#中,以下关于抽象类和接口的叙述中正确的是( )。
A.抽象类可以包含非抽象方法,而接口不包含任何方法的实现
B. 抽象类可以被实例化,而接口不能被实例化
C. 抽象类不能被实例化,而接口可以被实例化
D.抽象类能够被继承,而接口不能被继承
32. 在C#中,以下关于抽象类和接口的叙述中正确的是( )。
A.在抽象类中,所有的方法都是抽象方法
B. 继承自抽象类的子类必须实现其父类(抽象类)中的所有抽象方法
C.在接口的定义中可以有方法实现,在抽象类的定义中不能有方法实现
D.一个类可以从多个接口继承,也可以从多个抽象类继承
33. 下列方法定义中,( )是抽象方法。
A. static void func(){ }
B. virtual void func(){ }
C. abstract void func(){ }
D. overridel void func(){ }
34.C#中的多态不能通过( )实现。
A. 接口
B. 抽象类
C. 密封类
D. 虚方法
35. 接口可以包含一个或多个成员,以下选项中( )不能包含在接口中。
A. 方法
B. 属性
C. 事件
D. 常量
36. 下列叙述中,正确的是( )。
A. 接口中可以有虚方法
B. 一个类可以实现多个接口
C.接口能被实例化
D. 接口中可以包含已实现的方法
简答题
什么是C#程序的基本入口是什么?
什么是方法重载
重写和重载的区别
简述抽象类和抽象方法抽象方法和普通方法区别?
简述继承
Return和break的区别
填空题
C#语言源代码文件的后缀名是( .cs );C#语言规定变量在使用之前必须先( 声明 )后使用。在C#语言中,系统命名空间使用( using )关键字导入常量通过关键字( const )进行声明如果一个属性里只有set 访问器,那么该属性为( 只写 )属性。在实例化类对象时,系统自动调用该类的( 构造 )方法进行初始化。定义委托的关键字是( delegate )。
判断
在一个程序内,不可以包含 2 个及以上的 Main 方法。(√).NET Framework运行环境除了支持C#编程语言,还支持Jscript.NET,ActionScript。(×)在使用变量之前必须先声明类型。(对)在C# 编程环境中,常量的值可以在运行中被修改。(错)在一个类中,可以有多于一个的构造函数。( 对 )构造函数名必须和类名相同。(对)构造函数可以声明返回值类型。(错)构造函数不能带参数。(错)构造函数不可以重载(错)
编程题
1. 控制台接收用户输入两个整数,输出两个整数之和及两整数之积。
2. 定义一个常量PI表示圆周率,接收用户输入的一个半径值,输出圆的周长和面积。
3. 定义一个枚举类型“季节”,枚举值分别为春、夏、秋、冬,在入口方法内,声明一个枚举类型的变量,赋值为“秋”,输出该变量的整数值。
4. 定义接口Ia,该接口有一个getarea方法;
从它派生Rectangle(长方形类)和Square(正方形)两个类,
实现求面积的getarea方法;
分别输出长2宽3的长方形和长5的正方形的面积。
5. 设计游泳Iswim和叫Ishout接口,并根据实际情况实现接口。
橡皮鸭子rubber、木鸭子wood、真实的鸭子realduck。
三个鸭子都会游泳;
木鸭子不会叫,而橡皮鸭子和真实的鸭子都会叫,只是叫声不一样,橡皮鸭子“唧唧”叫,真实地鸭子“嘎嘎”叫。
6. 6.事件机制;
定义闹钟类,里面有响铃方法,定义人物类里面有起床方法,代码实现闹钟响人物起床
7.计算1-100之和
求数组中的最大值或最小值求出100之内的素数求100之内偶数
程序阅读题
输出结_AB_______
2. 输出结_____ m=3,n=6___
3. 输出结_____Class1.MethodA
Class2.MethodB
//考察类的继承(隐藏和重写) 下面是测试过程
4. 输出结____AA CC DD DD____
下面是测试过程
5.输出结____非机动车禁止驶入!____
//5. 阅读下列程序,程序的输出结果是【 】。考察类的继承 下面是测试过程
6.输出结果___成年人不得入内 你的年龄是:25__
public class Person { private int age = 0; public int Age { get { return age; } set { if (value >= 18) Console.Write("成年人"); else Console.Write("未成年人"); age = value; } } } public class People : Person { public People(int age) { Age = age; Console.WriteLine("不得入内"); } } class Program { public static void Main() { People b = new People(25); Console.WriteLine("你的年龄是:{0}", b.Age); Console.Read(); } }
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。