第一部分==进制转换
重点记忆:
1、任意进制转十进制
按权展开法
p代表进制数,a/b/c...m分别代表进制数p从右往左第1位--第(n-1)位的数
公式:a*p0+b*p1+c*p2+..........+m*P(n-1);
2、十进制转其他进制(二、八或十六进制)
公式:
十进制转二进制:除商取余法,十进制的数整数部分除以除数(2)取余数,余数按照倒序排列;
十进制转八进制:十进制的数先转成二进制,再以小数点为左右起点,3位一组,不足补0,按2---8对应关系转换;
十进制转十六进制:十进制的数先转成二进制,再以小数点位左右起点,4位一组,不足补0,按2----16对应关系转换;
第二部分==语言基础
一、了解程序的大体结构
1、文件后缀
.cs----源文件、程序代码
.sln----解决方案文件
函数的四要素:名称、输入、输出、加工
2、主函数 (在一个项目中,主函数有且仅有一个,既是程序的入口处,也是程序的结束点)
格式:static void Main(string[] args)
{
主函数内容(在这里编写程序)
}
3、输入语句
string s=Console.ReadLine();//读取一行数据,并赋值给s(所读取的数据都默认是字符串型)
4、输出语句
Console.WriteLine("要输出的内容");WriteLine输出后自动换行;
Console.Write("要输出的内容");
二、编写程序必须的语言---数据类型(两大类)
1、值类型
整形:byte、int、short、long
浮点型:float、double、decimal
布尔型:true、false
日期时间型:DateTime
字符型:char+单引号
枚举类型:
Enum E {.....}形式的用户定义类型
结构体类型:
Struct S {.....}形式的用户定义类型
2、引用类型
类类型:object——所有其他类型的最终基类
string——Unicode字符
Class C{.....]形式的用户定义类型
数组类型:一维、多维数组和集合ArrayList,int[]和int[,];
接口类型:
Interface I{.....}形式的用户定义类型
委托类型:
Delegate T.D(....)形式的用户类型
3、变量
1)、变量名:字母、数字、下划线、@、汉字;
2)、定义:数据类型 变量名[= 值]
例:string s="这是一个变量";
3)、使用:赋值、取值
4、常量
1)、分类:符号常量、字面常量
2)、符号常量 变量声明前加const
const int a=3;
3)、使用:不能赋值,只能取值
5、快捷键汇总
1)、语句结束+;(分号)
2)、注释一行://(左斜线)
3)、注释一段区域:/*........*/
4)、删除一行;shift+delete
5)、注释选中行:Ctrl+(K,C)
取消注释选中行:Ctrl+(K,U)
6)、Alt+ →提示,更改
7)、shift+Ctrl+Space 常用于在()中查看如何输入
三、数据类型的转换
分类:
1、自动转换(隐式转换)
2、强制转换(显示转换)
强制转换三种方式:
1)用()。()内是转换后的数据类型,只能转换同一大类
2)用convert.
3)用parse.解析,用于字符串型转相应值类型
四、运算符
分类:
1、数学运算符
2、关系运算符
3、逻辑运算符
4、赋值运算符
5、条件运算符(?:)
第三部分==语句
分类:
选择控制:if,else,switch,case
循环控制:while,do,for,foreach
跳转语句:break,continue(跳出本次循环,继续下面的循环)
异常处理:try,catch(捕获异常),finally
第四部分==类
第五部分==数组
第六部分==集合、特殊集合
集合不同于数组,是一组可变数量的元素的组合,集合能存放不同数据类型的值,不限定长度;而数组只能存放一种数据类型的值;
一、集合的基本操作:
1、定义集合:
ArrayList al=new ArrayList();
2、添加数据:
3、插入数据:
4、移除数据:
5、排序:代替冒泡排序,但是只能从小到大排列;
6、翻转:
7、查某个元素出现的位置放到n里面
某个数出现的最后位置:
8、统计元素个数:
9、清空集合
10、al[i]是直接访问集合中的第i个元素
二、特殊集合
1、Stack---堆集合
2、Queue---队列集合
3、HashTable---哈希表集合
第七部分==结构体
结构体实际是一个自定义的集合,里面可以包含各种类型的数据,用法同集合。
1、定义:
2、用法:
第八部分==枚举类型
第九部分==函数(重点)
一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C#语言中,子程序的作用是由一个主程序和若干个函数构成。有主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用多次。
简单得理解函数,就是把主函数里面大片的程序代码分割到其他函数(即自建的函数)中,便于对主函数的应用,所有的程序在主函数中执行时,都需要从其他函数中调用函数。
在程序设计中,常将一些常用的功能模块编写成函数,放在函数库*公共选用。要善于利用函数,以减少重复编写程序段 的工作量。
一、定义一个名为sum的简单函数,这里的参数叫做形参,并不是实际的参数。
Static void 函数名(数据类型 参数名)
{
函数体
return值;
}
在调用函数的时候,在Main函数中将实参传给函数体,函数体执行完后之后返回一个值到Main函数中,Main函数中定义一个变量来接收传递过来的值完成函数调用。
int a=函数名(实参)
二、函数调用
三、函数前面加注释
/// <summary>
/// 输入一个数字,返回它的和,这里写这个函数的功能
/// </summary>
/// <param name="m"></param>这里写m是做什么的
/// <returns></returns>这里写返回什么,也就是要求的数值
四、函数一个是传值另一个是传址
1、传值就是将实参的值传到所调用的函数里面操作,实参的值并没有发生变化。
2、传址就是将地址传到所调用的函数里面操作,实参的值也会跟着变化,传址的有数组和字符串string,字符串类型比较特殊;
五、结构形式:
修饰符(static/public/private)+ 返回值(有/无返回)+函数名(参数)---作用同主函数,但必须通过主函数的调用这个函数才能真正的起作用。
{
函数体(也就是程序代码,可以写任何程序)
}
函数下面就是主函数的执行:
ststic vioid Main(string[] args)----主函数在一个项目里有且仅有一个,即使程序的入口,也是程序的结束点;
{
主函数的调用
}
注:
1、修饰符有多种:static、public、private等
区别:它们之间可以访问的范围不同
static:是静态的,不能跨类使用,不用初始化;
public:可以在整个命名空间里公共使用,需要初始化;
private:只能在当前类里面使用,必须要初始化;
2、返回值
有返回值:多种数据类型int、string、double等
无返回值:void
3、函数名(有/无参数)如何加参数,参数类型有好多种
例:public void hanshu()/无参数
public string hanshu(int i,double b,string s)/有参数
4、()内不仅能传值,也能返回值---必须+out才能返回值,这是函数特有的
例:public int hanshu(int a,int b,out int s)//注意:这里写参数的顺序跟下面主函数调用时输出参数的顺序保持一致
//s是下面要输出的参数,要用out标识
5、在函数写完时,必须要用return返回,同开始学习时写入的程序必须要打印Console.WriteLine();
6、主函数调用部分:
1)需要返回什么样的数据类型,必须在前面转换成此数据类型
例:string s=hs.hanshu();//就是将这个名为hanshu的函数里面的数据转换成string类型,赋值给s;
2)解决函数中返回多个数值的问题,就是在()内加入要输出的参数+out,需要返回几个值就+几个out;
第十部分==递归
递归的特点就是自己调用自己,return是将数值返回到上一级执行。