基础部分
一、基础
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. 在定义类时,若希望类的某个方法能够在派生类中进一步改进,以满足派生类的不同需要,则应将该方法