zoukankan      html  css  js  c++  java
  • C#总结

    数据类型--变量与常量--运算符与表达式--语句(if,for)--数组--函数--结构体

    一、数据类型: (一)内建类型 整型(int short long byte uint ushort ulong sbyte),浮点(double float decimal),布尔(bool),字符(char)

    对于整型和浮点型都有个ToString("格式化字符串"): #——任意一个数字。有的话就显示,没有就不显示。 0——必须有一个数字,没有的话就补零。 .——小数点 ,——千位分隔。

    (二)常用的类 Math DateTime string Math: Math.Ceiling(double ):大于当前小数的最小整数。 Math.Floor(double):小于当前小数的最大整数。 Math.Round(double):四舍五入 DateTime: Year,Month,Day,Hour,Minute,Second,MilliSecond,DayOfWeek,DayOfYear AddYears(n),AddMonths(),AddDays()......... ToString("格式化字符串"):格式显示。 yyyy,yy——年份。MM,M——月份。dd,d——天。hh,h——时。mm,m——分。ss,s——秒。ms——毫秒

    (三)自定义类型 struct

    二、变量与常量: (一)变量就是装数据容器。——U盘 定义: 数据类型 变量名[ = 值],变量名[ = 值],....; int a,b; int a = 5,b; 变量的命名规则: 1.变量名只能由字母、数字、下划线组成 2.只能字母,下划线开头 3.不能与关键词重复。 赋值: 变量名=值;——注意:变量类型与等号右边的值类型相一致。不一致就需要进行类型转换。 类型转换: 1.自动转换:一般来说自动转换,只要不存在丢数据的可能性,计算就会自动转化。例如:double a = 3+5.0; 2.强制转换:只要存在丢数据的可能性,计算机就不给自动转化,需要手动强制转化。 Convert.Toxxx(); Convert.ToInt32(); double a = 3.14; int b = (int)a; 取值:直接写变量名。 (二)常量:常量也是装数据的容器,但在运算过程中常量不能放在单等的左边。——一次性光盘 分类:字面常量,符号常量。  定义:const int PI = 3.14; 注意:常量在定义的时候必须要赋值。 取值:直接使用常量取值。

    三、运算符: 算术,关系,逻辑,其它 (一)算术——7 + - * / % ++ -- 整数除整数还是整数。 (二)关系——6 == != > >= < <= (三)逻辑——3 &&  ||  ! (四)其它 1.复合运算符:+= -= *= /= %= 2.赋值: = 3.条件运算符:表达式1?表达式2:表达式3

    四、语句:顺序、分支、循环 (一)分支——if if(表达式) { }

    if(表达式) { } else { }

    if(表达式) { } else if(表达式) { } ... else { }

    if(表达式) { if(表达式) { } else { } } else { ... }

    例子: 1.判断闰年,平年 2.一元二次方程根的情况 3.男女体重与身高 4.判断日期是否正确。

    (二)循环 for(初始条件;循环条件;变量改变) { 循环体 } 循环的四要素:

    循环的嵌套:打印星号。

    两类问题:迭代法,穷举法。

    迭代法: 按照某种规律通过循环迭代求解。 求100以内数的和,求阶乘。 1.5个小孩子求年龄 2.棋盘上放粮食 3.折纸与珠峰的高度。 4.落球问题。 5.猴子吃桃子 6.兔子生兔子。

    穷举法:把所有的情况都走一遍,根据条件筛选。 求100以内与7相关的数。 1.买东西。 2.百鸡百钱,百马百石。 3.侦察兵 4.求等式。

    五、数组: 思想:解决大量同类数据存储和操作的问题。 特点:连续,同一类数据。 分类:一维数组,二维数组,多维数组。

    一维数组: 定义: 数据类型[] 数组名 = new 数据类型[数组的长度] [{初始化}]; 赋值: 数组名[下标] = 值; 可以与循环结合起来。 取值: 数组名[下标]; 可以与循环结合起来。

    例子: 1.球员打分 2.选班长 3.36选7 3.青歌赛。

    二维数组: 定义: 数据类型[,] 数组名 = new 数组类型[行数,列数] [{初始化}]; 赋值: 数组名[行下标,列下标] = 值; 取值: 数组名[行下标,列下标]; 例子: 1.学生成绩。 2.推箱子。

    两个应用:二分法查找,冒泡排序。 二分法查找思想:前提是数组有序,每次找中间的值对比,否满足条件就扔一半。 使用最大下标max、最小下标min,中间值下标mid,控制查找的范围。 mid = (max+min)/2;   max = mid+1; min = mid-1; 如果一直查到min>max就结束了,说明没有找到。

    冒泡排序的思想:相邻两个数进行依次对比,互换。 两层循环,外层循环趟数,内层循环每趟的次数。 趟数:n-1 次数:n-i for(int i=1;i<=n-1;i++) { for(int j=1;j<=n-i;j++) { if(a[j] > a[j-1]) { 互换。 } } }

    六、函数: 什么是函数:能够完成某个独立功能模块就可称之为函数。 为什么要用函数:结构清晰,分工开发,代码重用。 四要素:函数名,形参,返回类型,函数体。 定义语法: 返回类型 函数名(形参列表) { 函数体 } 调用: 函数名(实参列表); 数据类型 变量名 = 函数名(实参列表);

    函数的传值与传址的问题。 1.内建类型,日期时间都是默认传值。    ——ref 2.数组,字符串默认都是传址。

    函数的返回值。——return 值或变量;要保持return后面的类型与函数的返回类型要一致。

    递归。自己调自己。 语法思想: 返回类型 函数名(参数) { 1.结束递归的判断。 2.递归运算:函数名(参数); }

    七、结构体: 为什么要用结构体?自己定义的复合类型,更好地模拟生活中的各种对象。

    定义 struct 结构体名 { public 类型 子变量名; public 类型 子变量名; .... }

    使用: 结构体名 结构体变量 = new 结构体名(); 结构体变量.子变量 = 值; 结构体变量.子变量;

    结构体数组: 结构体类型[] 数组名 = new 结构体类型[长度]; 数组名[下标].子变量

    如何使用循环来操作结构体数组。

    例子:学生成绩统计。对战的小游戏。

  • 相关阅读:
    图的连通性问题之tarjan算法
    图的连通性问题之强连通分量初步
    NOIP 2010 引水入城
    最短路经典例题 codevs 1557 热浪
    图的连通性问题之连通和最小环
    最短路径算法
    《数据结构与算法-Javascript描述》
    蓝天白云
    《慢慢来,一切都还来得及》
    聚餐
  • 原文地址:https://www.cnblogs.com/zdc1994/p/4233680.html
Copyright © 2011-2022 走看看