zoukankan      html  css  js  c++  java
  • 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  
    ", com);
    
        printf("请输入圆的半径:");
        scanf_s("%d", &r);
    
        double s = PI * r * r;
        printf("半径为%d的园的面积为:%.2lf 
    ", 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 
     换行", area); 
        }
        else if (width == 0)//多条件分支语句
        {
            //类似于 switch(int/char){case 值1: case 值2:  ... break;case 值3:  ... break; default: ... }
        }
        else
        {
            printf("输入有误! 	 转义字符打印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 天。 
    ", 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("
    ");
    
        //一维数组 语法: 数据类型 变量名[限制的长度] = { 赋值的元素个数取决于长度}
        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 	", i, j, i * j);
            }
            printf("
    ");
        }
    }
    /*四种函数类型
    无参无返:void 函数名(){}
    无参有返:返回值类型 函数名(){ return 返回值;}
    有参无返:void 函数名(参数){}
    有参有返:返回值类型 函数名(参数){ return 返回值;}
    
    一个函数 要么没有返回值 或 最多只有一个返回值。
    */
  • 相关阅读:
    windows 10 安装可视化mycat
    YYModel 源码解读(二)之NSObject+YYModel.h (1)
    NSCharacter​Set 使用说明
    YYModel 源码解读(二)之YYClassInfo.h (3)
    Cocoa深入学习:NSOperationQueue、NSRunLoop和线程安全 (转)
    Swift 必备开发库 (高级篇) (转)
    YYModel 源码解读(二)之YYClassInfo.h (2)
    YYModel 源码解读(二)之YYClassInfo.h (1)
    Runtime应用防止按钮连续点击 (转)
    YYModel 源码解读(一)之YYModel.h
  • 原文地址:https://www.cnblogs.com/longxinyv/p/12161141.html
Copyright © 2011-2022 走看看