第三章,数据和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\n",max);
printf("最大值上溢%e\n",max*);
printf("最小值为%e\n",min);
printf("最小值下溢%e\n",min/);
return ;
}

2.输入ASCLL码对应的数值,打印出对应的字符。
#include <stdio.h>
#include <float.h>
int main(void)
{
char num=;
printf("Plese enter the value of ASCLL___");
scanf("%d",&num);
printf("The value you input corresponds to ASCLL of %c",num);
return ;
}
4.键入一个浮点数,分别以小数点形式,指数形式,p计数法形式显示。
#include <stdio.h>
#include <float.h>
int main(void)
{
float num=;
printf("Plese enter a float___");
scanf("%f",&num);
printf("小数点形式%f,指数形式%e,p计数法式%a",num,num,num);
return ;
}
5.年龄换算为秒
#include <stdio.h>
int main(void)
{
long double age=;
long double second=;
printf("Plese enter your age___");
scanf("%lf",&age);
second=age*3.156e7;
printf("second is %e",second);
return ;
}
6.将输入的夸脱数转化为相应的水分子数量。
#include <stdio.h>
int main(void)
{
double quart1=;
double num1=;
printf("Plese enter quart___");
scanf("%lf",&quart1);
printf("%e\n",quart1);
num1=(quart1*)/(3.0*1e-);
printf("number of water molecules is %e\n",num1); }
8.
因为以杯作为基准,则会出现整数不够用的情况。
第三章,数据和C的更多相关文章
- Laxcus大数据管理系统2.0(5)- 第三章 数据存取
第三章 数据存取 当前的很多大数据处理工作,一次计算产生几十个GB.或者几十个TB的数据已是正常现象,驱动数百.数千.甚至上万个计算机节点并行运行也已经不足为奇.但是在数据处理的后面,对于这种在网络间 ...
- 《驾驭Core Data》 第三章 数据建模
本文由海水的味道编译整理,请勿转载,请勿用于商业用途. 当前版本号:0.1.2 第三章数据建模 Core Data栈配置好之后,接下来的工作就是设计对象图,在Core Data框架中,对象图被表 ...
- C和指针 (pointers on C)——第三章——数据
第三章 数据 本章是非常重要的,在特定范围内使用.链接属性.存储类型.const.extern和statickeyword使用.几乎所有的公司是C++在采访的第一个问题. 总结: 具有external ...
- C和指针 第三章--数据
简要概述: <C和指针>第三章对数据进行了描述. 其中主要讲解了---变量的三个属性:作用域.链接属性和存储类型. 这三个属性决定了该变量在“什么地方可以使用”以及“该变量的值能够保持多久 ...
- Java 螺纹第三版 第三章数据同步 读书笔记
多线程间共享数据问题 一.Synchronizedkeyword atomic一词与"原子"无关,它以前被觉得是物质的最小的单元,不能再被拆解成更小的部分. 当 ...
- c语言学习笔记第三章———数据和C
B站有视频演示 本章将会讲解c语言的数据定义和使用,您将会了解int.float.double.char的含义,了解命名的规则,对c语言会有更加深刻的认识. 变量命名: 我们先讲上次视频没讲的变量命名 ...
- 【数据分析 R语言实战】学习笔记 第三章 数据预处理 (下)
3.3缺失值处理 R中缺失值以NA表示,判断数据是否存在缺失值的函数有两个,最基本的函数是is.na()它可以应用于向量.数据框等多种对象,返回逻辑值. > attach(data) The f ...
- 《C和指针》读书笔记——第三章 数据
1.typedef:为各种数据类型定义新名字 typedef char *ptr_to_char; ptr_to_char a;//声明a是一个指向字符的指针. 2.链接属性:extern;stat ...
- 《Pointers On C》读书笔记(第三章 数据)
1.在C语言中,仅有4种基本数据类型:整型.浮点型.指针和聚合类型(如数组和结构等). 整型家族包括字符.短整型.整型和长整型,它们都分为有符号和无符号两种. 标准规定整型值相互之间大小的规则:长整型 ...
- MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理
目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...
随机推荐
- NO20文件属性--inode--block-企业场景题
壹 Linux文件属性描述:在Linux里一切皆文件Linux系统中的文件或目录的属性主要包括:索引节点(inode).文件类型.权限属性.链接数.所归属的用户和用户组.最近修改时间等内容. 例子: ...
- Java入门基础(类的方法)
方法 1.添加方法 方法表示一个类能做什么.在Java里,方法和属性属于对等的术语,在一个类中,不仅可以添加属性,还可以添加方法. 类 { 属性:描述“我有什么” 方法:描述“我能做什么” } 例子: ...
- 61 C项目------家庭收支软件
1,目标: ①模拟实现一个基于文本界面的<家庭收支软件> ②涉及知识点 局部变量和基本数据类型 循环语句 分支语句 简单的屏幕输出格式控制 2,需求说明: ①模拟实现基于文本界面的< ...
- python merge、join、concat用法与区别
由于合并变化较大,以后函数可能会修改,只给出一些例子作为参考 总结: merge.join 1.当没有索引时:merge.join为按照一定条件合并 2.当有索引.并按照索引合并时,得到结果为两者混 ...
- crackme---攻防世界
首先下载附件之后,查壳 虽然什么也没有发现,但是看一下区段就知道,这个是北斗的壳.所以我们首先载入od开始把壳脱掉 这里面也可以看到pushfd和pushad是北斗壳的特征 这里面我使用是esp定律脱 ...
- Mongoose多表查询
文章来自 两个表关联查询aggregate 多个表关联查询aggregate populate多表关联查询 多表查询的两个方式 一个是aggregate聚合 一个是populate Schema的外表 ...
- 026、Java中改变运算优先级
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- 007、MySQL日期取当前时间,取昨天
#取今天文本格式 SELECT DATE_SUB( curdate( ), INTERVAL DAY ); #取昨天文本格式 SELECT DATE_SUB( curdate( ), INTERVAL ...
- 学会C#
一.字符串插值 (String Interpolation) C# 6之前我们拼接字符串时需要这样 var Name = "Jack"; var results = "H ...
- CAN分帧接收实现
该版本程序实现了上电后先发送MACID检测功能,如果网络上有应答.则一直进行死循环,直到用户更改了本机的ID地址 才可以跳出循环体. 本单片机设置为双滤波 ,使目标地址为0X1F 实现了建立连接命令 ...