zoukankan      html  css  js  c++  java
  • 第三章,数据和C

    3.1  数据类型关键字

      

     

     位:计算机内部数据存储的最小存储单位(bit)。

    字节:计算机中数据处理的基本单位(Byte)),1B=8bit。

     字:计算机进行数据处理时,一次存取,加工和传送的数据长度。(word)。

    3.1.1  不同数据类型的表示方法

    在printf()中显示

      十进制 二进制 八进制
    显示数字 %d %o %ox
    显示前缀   %#o %#x()改成X就显示X
    数据类型 转换说明
    char %c
    short %hd
    unsigned short %hu
    int %d
    unsigned int %u
    long %l
    unsigned long %lu
    long long %ll
    unsigned long long %llu

    关于printf(),该语句先将输出发送到一个叫缓冲区的中间储存区域,当储存区满,或遇到换行字符或需要输入时发送输出到屏幕(从缓冲区把数据发送到屏幕或文件的被称为刷新缓冲区)

    3.2  char类型

    ASCLL码

    转义序列

     3.3  可移植类型:stdio.h和inttypes.h

    int32_t:表示有符号的整数类型。为精确宽度整数类型示例。

    int_least8_t:表示可容纳8位有符号整数值的类型中宽度最小的类型的一个别名。

    最小宽度类型:保证所表示的类型一定是至少有指定宽度的最小整数类型。

    int_fast8_t:系统中对8位有符号值而言最快的整数类型别名。

    最快最小宽度类型:使计算达到最快的类型集合。

    intmax_t:最大有符号整数类型。

    3.3  浮点数

    float:必须至少能表示6位有效数字,且取值范围至少是10-37~10+37

    double:必须至少能表示10位有效数字,编译器假定浮点型常量为double。

    打印方法:

    %f表示打印10进制计数法的folat类型。(一定要用%lf表示double类型

    %e表示打印指数计数法的falat和double

    打印long float或long double要用%lf转换说明。

    3.4  复数和虚数类型

    虚数是可选类型。复数的实部和虚部都是基于浮点类型来构成。

    float _complex

    double _complex

    long double _complex

    float  _Imaginary

    double _Imaginary

    long double _Imaginary

    3.5  类型大小

    利用sizeof()来查询各数据类型的大小,一定要避免数据出现上溢和下溢。

    C99和C11利用%zd来转换说明sizeof的返回类型。

    不支持C99和C11的可用%u或%lu。

    利用float.h头文件

    DBL_MAX  double最大值

    DBL_MIN   double最小值

    FLT_MAX   float  最大值

    FLT_MIN    float  最小值

    3.6  编程练习

    1.整数上溢即由最大值变为最小值,下溢即由最小值变为最大值。

    浮点数上溢下溢如下图。

    #include <stdio.h>
    #include <float.h>
    int main(void)
    {
        double max=DBL_MAX;
        double min=DBL_MIN;
        printf("最大值为%e
    ",max);
        printf("最大值上溢%e
    ",max*2);
        printf("最小值为%e
    ",min);
        printf("最小值下溢%e
    ",min/2);
        return 0;
    }

    2.输入ASCLL码对应的数值,打印出对应的字符。

    #include <stdio.h>
    #include <float.h>
    int main(void)
    {
        char num=0;
        printf("Plese enter the value of ASCLL___");
        scanf("%d",&num);
        printf("The value you input corresponds to ASCLL of %c",num);
        return 0;
    }

     4.键入一个浮点数,分别以小数点形式,指数形式,p计数法形式显示。

    #include <stdio.h>
    #include <float.h>
    int main(void)
    {
        float num=0;
        printf("Plese enter a float___");
        scanf("%f",&num);
        printf("小数点形式%f,指数形式%e,p计数法式%a",num,num,num);
        return 0;
    }

    5.年龄换算为秒

    #include <stdio.h>
    int main(void)
    {
        long double  age=0;
        long double  second=0;
        printf("Plese enter your age___");
        scanf("%lf",&age);
        second=age*3.156e7;
        printf("second is %e",second);
        return 0;
    }

    6.将输入的夸脱数转化为相应的水分子数量。

    #include <stdio.h>
    int main(void)
    {
        double  quart1=0;
        double  num1=0;
        printf("Plese enter quart___");
        scanf("%lf",&quart1);
        printf("%e
    ",quart1);
        num1=(quart1*950)/(3.0*1e-23);
        printf("number of water molecules is %e
    ",num1);
    
    }

    8.

    因为以杯作为基准,则会出现整数不够用的情况。

  • 相关阅读:
    9.堆排序
    8.全排列
    37.微信跳一跳辅助开发(C语言+EasyX)
    7.图形化实现快速排序法
    codeforces 632A A. Grandma Laura and Apples(暴力)
    codeforces 633D D. Fibonacci-ish(dfs+暴力+map)
    codeforces 633B B. A Trivial Problem(数论)
    codeforces 633A A. Ebony and Ivory(暴力)
    codeforces 622B B. The Time
    codeforces 622D D. Optimal Number Permutation(找规律)
  • 原文地址:https://www.cnblogs.com/suwencjp/p/12269504.html
Copyright © 2011-2022 走看看