C#学习笔记 面试提要

04-08 1189阅读 0评论

冒泡

 for (int m = 0; m

 {

     for (int n = 0; n

     {

         if (arr[n] > arr[n+1])

         {

             int temp = arr[n];

             arr[n] = arr[n + 1];

             arr[n+1] = temp;

         }

     }

 }

选择

for (int m = 0; m

{

    int index = 0;

    for (int n = 1; n

    {

        if (arr[index]

        {

            index = n;

        }

    }

    if (index != arr.Length - 1 - m)

    {

        int temp = arr[index];

        arr[index] = arr[arr.Length - 1 - m];

        arr[arr.Length - 1 - m] = temp;

    }

}

委托是函数的容器

是用来传递函数的方法

Action是可以传n个参数的委托  1-16个参数

Func是可以穿n个参数 并且有返回值的委托 1-16个参数

命名空间 工具包

类 工具

函数 工具能做的事情

#region 折叠代码

#endregion

有符号的整形变量  能存储一定范围内的正负数 包括0的变量类型

sbyte -128 - 127  占一个字节 0000 0000 标粉的那一位 是符号位 所以 能表示正负

short -32768 - 32768 占两个字节

int  -21亿 -  21亿 占四个字节

long -9百万兆 - 9百万兆 占八个字节

无符号的整型变量 一定范围内 0和正数的变量类型 

byte 0- 255 占一个字节 

ushort 0- 65535 占两个字节

uint 0- 42亿 占四个字节

ulong 0 - 18百万兆 占八个字节

浮点数 小数

float 存储7/8位 有效数字 根据编译器的不同可能不一样   占四个字节

float = 0.1234567f 

加f是因为c#默认的小数是double

有效数字 是从左到右 从非0数开始算有效数字

double

double 存储15-17位 有效数字 根据编译器的不同可能不一样 占八个字节

decimal 存储27-28位 有效数字 根据编译器的不同可能不一样 占十六个字节

decimal = 0.1231321321321321m;

特殊类型

bool   占一个字节

char 用来存储单个字符的变量类型  占二个字节

char c = 'a';

char c = '然';可以中文一个字符

string 用来存储多个字符 没有上限 长度可变

string s = “string”;

1byte = 8bit 1byte = 0000 0000 8个数 就叫8位 一个字节

1kb = 1024 byte

1mb = 1024kb

1gb = 1024mb

1tb = 1024gb

通过sizeof 可以知道变量类型所占的空间 单位 字节

常量必须初始化

常量不能被修改

const

string s = @“\\\\” 取消转义字符

值类型 数字类型  默认值 是0 bool 默认值是 false

引用类型 的默认值是null

隐式转换 大范围装小范围

decimal 不能隐式转换

无符号不能装有符号 有符号不能隐式转换为无符号

有符号能装无符号的 范围要在有符号的范围内

浮点数能装任何类型的整数 很大的数会转成科学计数法

char可以隐式转换为整型 其实是转为int 然后int可以转为其他int可转的 对于short byte等小的范围 无法表现为隐式转换

double -》 float -》整形(有符号 无符号)-》char

decimal -》 整形(有符号 无符号)-》char

显式转换

高精度转低精度 括号强制转换 可能会出现范围问题

浮点数会丢失精度

浮点强转整形时 会直接抛弃小数

parse法 将字符串类型转成对应的类型 字符串必须转换成对应的类型

int I = int.parse("asdf");

Convert法 更准确的将各个类型进行转换 填写的变量要正确 会四舍五入

int I = Convert.ToInt("123123");

toint16 是转为short touint 是ushort

toint32 是转为int  同上

toint64 是转为long 同上

float是tosingle

double是todouble

decimal  todecimal

还有 变量类型.ToString();

进行字符串拼接时+++ 自动调用了tostring

异常捕获

try

{

    //希望进行异常捕获的代码

}catch (Exception ex) {

    //如果出错 则会执行catch的代码

}finally {

    //不论有没有出现异常 都会执行的代码

}

默认的整数是 int 如果要得数是小数 则在运算时 要有浮点数的特征 f/m

乘除取余 高于加减 算术运算符的优先级

调换 交换

            int a2 = 99;

            int b2 = 87;

            a2 = a2 + b2;//a2 = 99 + 87

            b2 = a2 - b2;//b2 = 99 + 87 - 87

            a2 = a2 - b2;//a2 = 99 + 87 - 99

 //99999秒转为 多少天多少时多少分钟多少秒来显示

 int daySec = 60 * 60 * 24;

 int hourSec = 60 * 60;

 int minSec = 60;

 int day = 99999 / daySec;//int会抛弃除不尽的小数 正好除不尽的小数是不足一天的秒数

 int hour = 99999 % daySec /hourSec;//取余出来的余数 就是不足一天的秒数 用来除hoursec 正好就是几个小时 同时int会抛弃除不尽的小数

 int min = 99999 % hourSec /minSec;//同上 取余就是不足一小时的秒数 再除于minSec 正好是几分钟

 int sec = 99999 % minSec;

字符串拼接

直接用+号拼接 注意的是

string s = “”+1+2+3+4

输出1234

string s =1+2+3+4

输出 10

string s = "1";

s += 1 + 2 + 3 + 4;

输出

110

string.format({0},{1},{2},1,2,3)后面的东西可以是任意的变量类型 占位符

console.writeLine({0},{1},{2},1,2,3)  也一样可以用占位符

条件运算符 优先级低于算数运算符

逻辑运算符<条件运算符<算数运算符<!

!>&&>||

逻辑运算符的短路规则

只要满足条件判断左边的内容 则右边的内容不重要

如逻辑与 有假则假 左边假 右边不用看

逻辑或 有真则真 左边真 右边不用看

位运算符

转为2进制后 对位运算

位与 类似逻辑与 有0则0

位或 类似逻辑或 有1则1

异或 相同为0不同为1

位取反 0变1 1变0

左移 向左移几位就在右侧补几个0

右移 向右移几位 就删最右侧几个数

异或加密

位运算与buff

三目运算符

int year = int.Parse(Console.ReadLine());

//年份能被400整除 或

//年份能被4整除但不能被100整除

Console.WriteLine(year % 400 ==0 || year % 4 == 0 && year % 100!=0 ? "闰年" :"平年");

switch

贯穿

C#学习笔记 面试提要

int num = int.Parse(Console.ReadKey().KeyChar.ToString());//获取输入的一个字符 转为string之后 再转为int

//如果直接获得char 是直接获取ascii码所以要转成string

斐波那契数列

int index = 0;

int result = 0;

int n1 = 1;

int n2 = 1;

while (index

{

    index++;

    if (index == 1)

    {

        result = n1;

    }

    else if (index == 2)

    {

        result = n2;

    }

    else

    {

        result = n1 + n2;

        //这里要注意的是 把n1 n2 后移了

        n1 = n2;

        n2 = result;

    }

}

Console.WriteLine(result);

//1-100的素数

int num = 2;

while (num

{

    int i = 2;

    while (i

    {

        if (num % i ==0)

        {

            //不是素数

            break;

        }

        i++;

    }

    if (i == num)

    {

        //是素数

        Console.WriteLine("{0}是素数", num);

    }

    num++;

}

static bool IsPrime(int num)

{

    for (int i = 2; i

    {

        if (num % i == 0) {

            return false;

        }

    }

    return true;

}

//水仙花数

for (int i = 100; i

{

    int hundred = i / 100;

    int ten = i % 100 /10;

    int ge = i % 10;

    if (hundred * hundred * hundred + ten* ten * ten + ge * ge * ge == i)

    {

        Console.WriteLine(i);

    }

}

   //九九乘法表

   for (int i = 1; i


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1189人围观)

还没有评论,来说两句吧...

目录[+]