zoukankan      html  css  js  c++  java
  • C语言 第二章 数据类型、变量和输入函数

    一、数据类型简介

    在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。

    类型转换:

    类型存储大小值范围
    char 1 字节 -128 到 127 或 0 到 255
    unsigned char 1 字节 0 到 255
    signed char 1 字节 -128 到 127
    int 2 或 4 字节 -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
    unsigned int 2 或 4 字节 0 到 65,535 或 0 到 4,294,967,295
    short 2 字节 -32,768 到 32,767
    unsigned short 2 字节 0 到 65,535
    long 4 字节 -2,147,483,648 到 2,147,483,647
    unsigned long 4 字节 0 到 4,294,967,295

    1.2、获得数据类型的长度

    复制代码
    #include "stdio.h"
    void main()
    {
        //sizeof用于获得数字类型的长度
        //sizeof是一个关键字(32个)
        printf("char占用字节数:%d 
    ",sizeof(char));
        printf("short占用字节数:%d 
    ",sizeof(short));
        printf("int占用字节数:%d 
    ",sizeof(int));
        printf("long占用字节数:%d 
    ",sizeof(long));
        printf("float占用字节数:%d 
    ",sizeof(float));
        printf("double占用字节数:%d 
    ",sizeof(double));     
    }
    复制代码

    二、变量定义

    是用数据类型在内存中开辟的空间。
    一个变量应该有一个名字,也就是我们程序员给该空间取的名──叫变量名。
    它在内存中占据一定的存储单元。
    变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分。

    变量:在程序运行过程中可以变化的量。

    常量:在程序运行过程中不可以变化的量。

    复制代码
    #include "stdio.h"
    void main()
    {
        int i=100;
        i++;   //i=i+1
        printf("i=%d 
    ",i); //101
        i--;  //i=i-1
        printf("i=%d 
    ",i); //100
        i+=100;  //i=i+100    
        printf("i=%d 
    ",i);  //200
        i/=3;  //i=200/3=66.666667=66      
        printf("i=%d 
    ",i);  //66
        i+7;  //在内存中66+7完成运算,但值没有写回            
        printf("i=%d 
    ",i);  //66
    }
    复制代码

    2.1、变量名的取名规则

    第一个字符只能是字母或下划线( _ );

    第一个字符的后而只能跟字母、数字和下划线( _ );

    关键字(写上去会变色的那些单词)不能用作变量名;

    区分大小写;

    第一位(a-zA-Z_)后续(a-zA-Z_0-9)

    请问下面那些是非法的,为什么?

    1name
    _product
    _9527
    Double
    int
    _producT
    _product
    total

    2.2、变量定义的多种形式

    复制代码
    /* Note:Your choice is C IDE */
    #include "stdio.h"
    void main()
    {
        //定义变量并赋值
        int i=100;
        
        //先定义再赋值
        float j;
        //j=99.5f; 错误,变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分
        
        //同时定义多个变量
        char a,b,c;
        
        //同时定义多个变量并赋值
        double x=1.5,y=1.6,z;
        
        j=99.5f;
        z=x+y;
        
    }
    复制代码

    三、整型(int)

    复制代码
    #include "stdio.h"
    void main()
    {
        int i;
        i++;   //i=i+1
        printf("i=%d 
    ",i); //101
        i--;  //i=i-1
        printf("i=%d 
    ",i); //100
        i+=100;  //i=i+100    
        printf("i=%d 
    ",i);  //200
        i/=3;  //i=200/3=66.666667=66      
        printf("i=%d 
    ",i);  //66
        i+7;  //在内存中66+7完成运算,但值没有写回            
        printf("i=%d 
    ",i);  //66
    }
    复制代码

    四、字符型(char)

    五、单精度浮点型(float)

    六、双精度浮点型(double)

    七、输入scanf

    复制代码
    #include "stdio.h"
    void main()
    {
        //判断年龄如果小于18岁则提示年轻真好,否则输出年龄
        
        //定义变量
        int age;
        
        //用户输入年龄
        printf("请输入年龄:");
        //从键盘输入,&表示取变量地址
        scanf("%d",&age);
        
        //条件判断
        if(age<18){  //如果条件成立
           printf("年轻真好");
        }
        else{  //如果条件不成立
           //输出
           printf("您的年龄是:%d",age);
        }
    }
    复制代码

    scanf("格式控制",地址列表); 
    “格式控制”的含义同printf函数;
    “地址列表”是由若干个地址组成的表列,可以是变量的地址,或字符串首地址

    %f 单精度

    %lf 双精度 

    %c 从键盘接收一个字符
    %d 从键盘接收十进制整数
    %s 从键盘接收一个字符串,遇空格、制表 符或换行符表示接收完毕。
    %[] 从键盘接收一包含在括号内的字符,只 要遇到有一个不在其内的字符,便表 示接收完毕。

    输入时如果遇到 空格 回车 Tab则表示结束

    7.1、输入时指定分隔符

    复制代码
    #include "stdio.h"
    void main()
    {
        int a,b,c;
        printf("请输入年-月-日:");
        scanf("%d-%d-%d",&a,&b,&c);
        printf("%d年%d月%d日",a,b,c);
    }
    复制代码

    7.2、清除缓冲

    复制代码
    #include "stdio.h"
    void main()
    {
        char x,y,z;
        printf("输入:");
        scanf("%c",&x);
        printf("输入:");
        scanf("%c",&y);
        printf("输入:");
        scanf("%c",&z);
        printf("%c,%c,%c",x,y,z);
    }
    复制代码

     

    复制代码
    #include "stdio.h"
    void main()
    {
        char x,y,z;
        printf("输入:");
        scanf("%c",&x);
        fflush(stdin);  //清除缓冲
        printf("输入:");
        scanf("%c",&y);
        fflush(stdin);  //清除缓冲
        printf("输入:");
        scanf("%c",&z);
        fflush(stdin);  //清除缓冲
        printf("%c,%c,%c",x,y,z);
    }
    复制代码

    7.3、输入字符串

    复制代码
    #include "stdio.h"
    void main()
    {
        char a[100];  //数组,char只能是单个字符
        scanf("%s",a);  //不要取地址
        printf("%s",a);
    }
    复制代码

    7.4、限定输入范围

    复制代码
    #include "stdio.h"
    void main()
    {
        //限定输入范围
        char a[100];
        scanf("%[0123456789]s",a);//只能输入0-9,其它表示结束
        printf("%s",a);
    }
    复制代码

     

    7.5、限定输入范围取反

    复制代码
    #include "stdio.h"
    void main()
    {
        char a[100];
        scanf("%[^a]s",a);  //^取反,如果是a则表示结束
        //scanf("%[^
    ]s",a);  //如果是换行则结束,其它字符都可以
        printf("%s",a);
    }
    复制代码

     练习:

    复制代码
    #include "stdio.h"
    void main()
    {
        int nianling;  //年龄
        float fenshu;  //分数
        char aihao[30];  //爱好
        printf("请输入年龄:");
        scanf("%d",&nianling);
        
        printf("请输入分数:");
        scanf("%f",&fenshu);
        
        printf("请输入爱好:");
        scanf("%s",aihao);
        
        printf("您的年龄是%d,分数:%f,爱好:%s",nianling,fenshu,aihao);
    }
    复制代码

  • 相关阅读:
    【BZOJ 4151 The Cave】
    【POJ 3080 Blue Jeans】
    【ZBH选讲·树变环】
    【ZBH选讲·拍照】
    【ZBH选讲·模数和】
    【CF Edu 28 C. Four Segments】
    【CF Edu 28 A. Curriculum Vitae】
    【CF Edu 28 B. Math Show】
    【CF Round 439 E. The Untended Antiquity】
    【CF Round 439 C. The Intriguing Obsession】
  • 原文地址:https://www.cnblogs.com/Jansens520/p/6538175.html
Copyright © 2011-2022 走看看