c语言-走进编程语言第一章

在vs编辑器创建c++空项目,下的源文件里面创建 文件名.cpp 文件,就是c++文件, 即可开始学习c语言!

//程序的定义:为了让计算机执行某些操作或解决某个问题,而编写的一系列有序指令的集合。

//c语言属于高级语言:而计算机采用的是二进制系统,c语言想在电脑上运行,就需要一个编译器,将c语言代码翻译成0和1的二进制 这种过程叫代码编译
//c语言的运行过程:源代码,以“.c”结尾的文件,先将源代码编译成目标文件,后缀为“.o”或“.obj”,在和c语言函数库连接,最终生成可执行的“.exe”文件。

//c语言的特点:1.模块化的程序设计,层次清晰 2.语言简洁 3.功能强大,可以开发系统软件,也可以开发应用软件 4.移植性好,可以在不同操作系统上运行。

//include 包含,以.h结尾的文件 称为头文件。
#include <stdio.h> //预处理指令,也叫引用头文件,编译下面的c语言代码必须引入

//想要随机数:就需要引入的两个头文件
#include <stdlib.h> //随机数rand()函数所在的头文件,得到一个随机int整数, 值规定,想要发生变化需要引入时间
#include <time.h> //时间:让随机数随时间变化而变化, 不引入这个随机数虽然产生 ,但不会发生变化,一直是那个值

#define PI 3.14  //define定义常量:在程序里一直保持不变的量叫常量。语法:#define 常量名 值
int r;//定义全局变量,定义在函数体方法体外面的叫全局变量,里面的叫局部变量,区别(全局可以拿到局部去用,局部不可以拿出方法体外面来用)

//自定义函数的原型声明:声明时不需要写{函数体}
void jjxfb();//当自定义函数写在main函数后面的时候,main函数需要调用,就要声明放到前面来才能找到他,如果本就定义在main函数前面,就不需要声明。


//main 入口函数 所有c语言都必须有入口函数, 相当于大楼的入口
void main()//void表示没有返回值的意思
{
    //产生一个1-3的随机数
    srand(time(NULL));
    int com = rand() % 3 + 1;//随机种子
    printf("随机数为:%d  \n", com);

    printf("请输入圆的半径:");
    scanf_s("%d", &r);

    double s = PI * r * r;
    printf("半径为%d的园的面积为:%.2lf \n", r, s);

    //定义变量
    int a = 2, b = 3; double c = 5.23;
    //b = a++;//先赋值在自加 a=3 b=2 
    //b = ++a;//先自加后赋值 a=3 b=3
    //a += a + b;//a=7  a+b=5   a+=5 = 2+5 = 7
    //b = (a += 5, a - 5, a * 5, a / 5); //逗号运算符
    b = (int)(a + c);//强制类型转换
    printf("a=%d,b=%d",a,b);

    //数据大小排序:char 1 < short 2 < int 4 = float = long < double 8
    printf("获取某个数据类型的大小:",sizeof(a));//还可以这样写sizeof a 或者是 sizeof(int)  三种写法 数据类型不能省略括号 变量名可以

    int width, height, area;
    printf("请输入长和宽:");
    //fflush(stdin);//作用:清空缓存,清楚回车键 
    scanf_s("%d%d", &width, &height);//不加,号就默认用空格和回车代替

    if (width>0 && height>0)
    {
        area = width * height;
        printf("面积是:%d \n 换行", area); 
    }
    else if (width == 0)//多条件分支语句
    {
        //类似于 switch(int/char){case 值1: case 值2:  ... break;case 值3:  ... break; default: ... }
    }
    else
    {
        printf("输入有误! \t 转义字符打印8个空格");
    }

    /*基本数据类型 %占位符都是小写的
    整形
        短整形 short int 或 short   %h   2byte 表示2字节
        * 整形           int        %d    4字节
        长整形 long  int 或者 long   %ld   4字节

    浮点型
        单精度  float   %f   4字节   //最多保留7位有效数字
        双精度  double  %lf  8字节  //可以保留16位有效数字

    字符 单引号 ‘’ 单个字节  char  %c   如:'2'+'2' =d 的结果

    */


    //switch语法**********************************************************************
    int year, month, day;
    printf("请输入年-月:");
    scanf_s("%d-%d", &year, &month);

    //判断月份有多少天
    switch (month)
    {
        //大月
        case 1:    
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            day = 31;
            break; //跳出结构的意思 没有break就程序会继续执行后面的代码
        //小月
        case 4:
        case 6:
        case 9:
        case 11:
            day = 30;
            break;
        //2月有闰年29天,平年28天
        case 2:
            day = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? 29 : 28;
            break;
        //前面所有条件都不满足的时候长这些的代码
        default:
            break;
    }
    printf("%d 年 %d 月 有 %d 天。 \n", year, month, day);

    //while(条件)循环
    while (true)//条件:true 就代表了死循环,可以改变其他条件
    {
        //循环体:需要循环操作的代码,先判断条件,在这些循环体
        break;//利用break;来退出循环体
    }

    //do-while(条件)循环
    do {
        //循环体:不管while条件是否满足,先执行一次循环体, 在去判断条件,不满足就退出,满足就继续下一次循环。
    } while (false);

    int cont = 1;
    for (int i = 1; i <= 10; i++)
    {
        if (i == 5) continue;//跳出当前循环继续下一次循环

        if (i > 8) break;//跳出整个循环

        cont++;//外部变量 需要外部定义才能用
        printf("%d ",i);
        //for循环里面还可以放for循环,循环 都是可以嵌套的
    }
    printf("\n");

    //一维数组 语法: 数据类型 变量名[限制的长度] = { 赋值的元素个数取决于长度}
    int ss[3] = { 1,2,3 }; //相当于旅馆一样给3个房间一人一个,第四个住不下, 写是第四个元素就报错
    int score[] = { 1,2,3,4 };//[不赋值]表示长度不固定,取决于元素的个数,有多少个元素,长度是多少
    //取数组值用索引 语法: 变量名[索引值]  其中索引值就是元素小标,0代表第一个元素,1代表第一个元素.....以此类推 索引不能大于 长度-1


    jjxfb();//调用函数,封装好一部分代码的函数,拿过来main函数执行, 不调用他是不会执行的
    
    //如果调用的函数有返回值就可以用变量来接收,如:数据类型 变量名 = 函数名();//接收函数方法的返回值
}

//定义一个函数 语法:  返回值类型 函数名(参数){ 函数体代码块 }
void jjxfb()//九九乘法表(无参无返的函数)
{
    for (int i = 1; i <= 9; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            printf("%d*%d=%d \t", i, j, i * j);
        }
        printf("\n");
    }
}
/*四种函数类型
无参无返:void 函数名(){}
无参有返:返回值类型 函数名(){ return 返回值;}
有参无返:void 函数名(参数){}
有参有返:返回值类型 函数名(参数){ return 返回值;}

一个函数 要么没有返回值 或 最多只有一个返回值。
*/

猜你喜欢

转载自www.cnblogs.com/longxinyv/p/12161141.html