首页 > 代码库 > C#阶段小结

C#阶段小结

 

一、数据类型:

(一)内建类型:

整型(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,Day Of Week, Day Of Year
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

{

 ...

}

第一题:判断闰年平年

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{    class 闰平年    {        static void Main(string[] agre)        {            Console.Write("请输入一个年份:");            string a = Console.ReadLine();            int year = Convert.ToInt32(a);            if (year % 400 == 0)            {                Console.WriteLine(year + "年是闰年");            }            else if (year % 4 == 0 && year % 100 != 0)            {                Console.WriteLine(year + "年是闰年");                           }            else            {                Console.WriteLine(year + "年是平年");            }        }    }}


第二题:判断一元二次方程根的情况

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            //输入            Console.Write("分别输入a,b,c三个数");            string a1 = Console.ReadLine();            string b1 = Console.ReadLine();            string c1 = Console.ReadLine();            int a = Convert.ToInt32(a1);            int b = Convert.ToInt32(b1);            int c = Convert.ToInt32(c1);            if (a == 0)            {                Console.WriteLine("不是一元二次方程");            }            else            {                int d = b * b - 4 * a * c;                if (d < 0)                {                    Console.WriteLine("一元二次方程无实根");                }                else if (d == 0)                {                    Console.WriteLine("一元二次方程有两个相同实根");                }                else                {                    Console.WriteLine("一元二次方程有两个不同实");                }            }        }    }}

第三题:判断男女的身高体重是否正常

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{    class 体重    {        static void Main(string[] agre)        {            Console.Write("请输入你的性别(男,女):");            string sex = Console.ReadLine();            Console.Write("请输入你的身高(cm):");            string h = Console.ReadLine();            int high = Convert.ToInt32(h);            Console.Write("请输入你的体重(KG):");            string m = Console.ReadLine();            int t = Convert.ToInt32(m);            if (sex == "")            {                if (t > high - 100 + 3)                 {                    Console.WriteLine("你的体重偏胖。");                }                else if (t < high - 100 - 3)                {                    Console.WriteLine("你的体重偏瘦。");                }                else if (t >=high - 100 -3&& t<= high -100 +3)                {                    Console.WriteLine("你的体重正常");                }            }            else if (sex == "")            {                if (t > high - 110 + 3)                {                    Console.WriteLine("你的体重偏胖。");                }                else if (t < high - 110 - 3)                {                    Console.WriteLine("你的体重偏瘦。");                }                else                {                    Console.WriteLine("你的体重正常");                }            }            else            {                Console.WriteLine("输入的不正确,请核实。");            }        }    }}

第四题:输入一个日期判断是否正确

 static void Main(string[] args)        {            int year = 0, month = 0, day = 0;            //输入            Console.Write("请输入年:");            year = Convert.ToInt32(Console.ReadLine());            Console.Write("请输入月:");            month = Convert.ToInt32(Console.ReadLine());            Console.Write("请输入日:");            day = Convert.ToInt32(Console.ReadLine());            //判断运算输出            //判断年份是否正确            if(year < 0 || year>9999)            {                Console.WriteLine("年输入不正确");            }            else            {                Console.WriteLine("年正确");            }            //判断月份是否正确            if (month < 1 || month > 12)            {                Console.WriteLine("月输入不正确");            }            else            {                Console.WriteLine("月正确");            }            //判断天是否正确            if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)            {                if(day < 1 || day>31)                {                    Console.WriteLine("天输入错误,大月份最多是31天");                }                else                {                    Console.WriteLine("天正确");                }            }            else if (month == 4 || month == 6 || month == 9 || month == 11)            {                if (day < 1 || day > 30)                {                    Console.WriteLine("天输入错误,小月份最多是30天");                }                else                {                    Console.WriteLine("天正确");                }            }            else if(month == 2)            {                //闰年与平年的判断                if(year%400==0 || year%4==0&&year%100!=0)                {                    //闰年                    if (day < 1 || day > 29)                    {                        Console.WriteLine("天输入错误,闰年2月份最多是29天");                    }                    else                    {                        Console.WriteLine("天正确");                    }                }                else                {                    //平年                    if (day < 1 || day > 28)                    {                        Console.WriteLine("天输入错误,平年2月份最多是28天");                    }                    else                    {                        Console.WriteLine("天正确");                    }                }            }        }    }}

 

(二)循环

for(初始条件;循环条件;变量改变)

{  

循环体

}

循环的四要素:

循环的嵌套:打印星号。

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

迭代法: 按照某种规律通过循环迭代求解。

 

第一题:求100以内所有数的和。

 

 

 

技术分享

 

技术分享

 

 

 

第二题:求阶乘!(6的阶乘)

 

技术分享

 

 

 

技术分享

 

 

 

第三题:求年龄。(有6个小孩子排在一起,问第一个多大年龄,她说:比第二个小2岁,问第二个多大年龄,她说:比第三个小2岁,以此类推,问第六个多大年龄,她说:自己16岁,问第一个小孩子几岁?

 

技术分享

 

技术分享

 

第四题:一张纸的厚度是:0.15mm,假设这张纸足够大可以无限次对折,问:折26次的高度是多少?

 

技术分享

 

 

 

技术分享

 

第五题:棋盘放粮食(请在第一个格子放1粒粮食,第二个格子放2粒,第三个格子放四粒,以此类推,每个格子放的粮食都是前一个格子里粮食的2倍,直到放到第64个格子,请问第64个格子需要多少粮食?假如1粒粮食重量0.02克,那么棋盘64个格子的粮食一共重多少千克?

 

技术分享

 

技术分享

 

第六题:公园里有一只猴子和一堆桃子,猴子每天吃掉桃子数量的一半,把剩下的一半数量中扔掉一个坏的,到了第七天,猴子睁开眼发现只剩下一个桃子了,问公园原来有多少桃子?

 

技术分享

 

技术分享

 

 

 

第七题:落球问题(一个球从10米高度落下,每次弹起2/3的高度。问第五次弹起后的高度是多少?)

 

技术分享

 

技术分享

 

第八题:兔子小兔子的问题(一对新生兔,到三个月开始生一对小兔,以后每个月都会生一对小兔,小兔不断长大也会生小兔。假设兔子不死,每次只能生一对(公母),问第24个月末有多少只兔子?)

 

技术分享

 

 

 

技术分享

 

二、穷举法: 用循环把各种可能的情况都给走一遍,然后用if条件把满足要求的结果给筛选出来。

 

第一题:找出100以内的与7有关的数。

 

技术分享

 

 

 

技术分享

 

第二题:有三种硬币若干:1分,2分,5分。要组合1毛5,有哪些组合方式?

 

技术分享技术分享

 

第三题:买东西。小张过元旦发了100元的购物券,他要买香皂(5元),牙刷(2元),洗发水(20元)。要想把100元正好花完,如何买这三样东西?

 

技术分享

 

技术分享

 

第四题:百鸡百钱。有100文钱,要买100只鸡回家。公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只。如何买?

 

技术分享

 

技术分享

 

第五题:百马百石。有100石粮食,母匹大马驮2石,每匹中马驮1石,每两匹小马驹一起驮1石。要用100匹马驮完100石粮食,如何按排?

 

技术分享

 

技术分享

 

第六题:某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:
A和B两人中至少去一人;                                 a+b>=1
A和D不能一起去;                                          a+d<=1
A、E和F三人中要派两人去;                             a+e+f==2
B和C都去或都不去;                  注释:             b+c!=1
C和D两人中去一个;                                        c+d==1
若D不去,则E也不去。                                   d+e==0||d==1
问应当让哪几个人去?

 

技术分享

 

技术分享

 

第七题:123()45()67()8()9=100;要求在()里面填写+或-使等式成立。

 

技术分享

 

 

 

技术分享

 

 

五、数组:

思想:解决大量同类数据存储和操作的问题。

特点:连续,同一类数据。

分类:一维数组,二维数组,多维数组。

 

一维数组:

定义: 数据类型[] 数组名 = new 数据类型[数组的长度] [{初始化}];

         赋值: 数组名[下标] = 值;

         可以与循环结合起来。

         取值: 数组名[下标];

         可以与循环结合起来。

 

第一题:做一个教练为6位球员打分的程序。并在此基础上显示球员总分和平均分,最高分和最低分,以及球员的代号。

 

class Class2    {        static void Main(string[] args)        {            int[] a = new int[6];            Console.WriteLine("********球员训练记录********");            for (int i=0;i<a.Length;i++)            {                Console.Write("请输入第"+(i+1)+"个球员的成绩:");                a[i] =Convert.ToInt32( Console.ReadLine());            }            for (int m = 0; m < a.Length; m++)            {                Console.WriteLine(""+(m+1)+"个球员的成绩是"+a[m]+"");            }            int sum = 0;            double ave = 0;             for (int n = 0; n < a.Length;n++ )            {                sum = sum + a[n];            }            ave = 1.0 * sum / a.Length;            Console.WriteLine("球员总成绩是"+sum+",平均成绩是"+ave+"");            int max = 0,min=200;            int maxSub = -1, minSub = -1;            for (int b = 0; b < a.Length;b++ )            {                max = max > a[b] ? max : a[b];                maxSub = b;            }            for (int c = 0; c < a.Length; c++)            {                if(min>a[c])                {                    min=a[c];                    minSub=c;                }            }            Console.WriteLine((maxSub+1)+"球员中最高成绩是" + max + ","+(minSub+1)+"最差成绩是"+min+"");        }    }}

 

 

 

 

 

 

 

C#阶段小结