版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三讲基本数据类型第三讲基本数据类型引例变量与常量预备知识内储存器的组织数据类型基本数据类型整数类型字符浮点类型C语言程序设计2引例引例问题计算任意一个圆的面积。源程序(cw02-01.c)基本数据类型#include<stdio.h>voidmain(){floatr,area;//定义变量scanf(“%f”,&r);//读取输入的半径area=3.14*r*r;//计算圆的面积printf(“area=%f”,area);//输出}1area=3.140000areararea=Лr23变量与常量数据(Data)程序需要使用数据。数据是信息的载体。数据有多种形式:数、字符、图片等。常量(Constants)在程序运行之前可以预先设定,并在整个运行过程中没有变化的数据。例如引例中的圆周率3.14。变量(Variables)在程序运行过程中可能变化或被赋值的数据。例如引例中的半径和面积。基本数据类型4数据类型数据类型的作用决定数据的存储方式和占用的存储空间的大小。决定可以进行的操作。C语言的数据类型基本类型 整型(integer),字符型(character),浮点型(floating-point),枚举类型(enumeration)构造类型 结构体(structure),共用体(union),数组(array)指针类型(pointer)空类型(void)基本数据类型5位、字节和字内存储器的组织基本数据类型位(bit):最小的存储单位,可以容纳两个值之一,即0或1。200020012002字节(Byte):基本的存储单位,8位。字(word):自然的存储单位,包含若干个字节。例如32位机的一个字就是32位。地址:以字节为单位从0开始编号。6整数的存储方式有符号的正整数在内存中以二进制补码形式存放。正整数的补码与原码相同。例如:10基本数据类型符号位00000000000010100000000000001010RAM数轴0215-1=32767可表示的数的范围-215=-327687整数的存储方式有符号的负整数在内存中以二进制补码的形式存放。例如:-10基本数据类型符号位11111111111101101111111111110110RAM-10的原码100000000000101011111111111101011111111111110110按位取反加一后得到-10的补码符号位不变8整数的存储方式无符号整数所有二进制位都存放数值。例如:65535基本数据类型11111111111111111111111111111111RAM0216-1=65535可表示的数的范围9整数的类型C语言提供多种整数类型为程序员提供了针对不同用途的多种选择。基本数据类型C标准只规定:short≤int≤long最大最小值参考<limits.h>仅供参考,实际值与所使用的操作系统、编译系统、机器有关。10整型常量整型常量有三种形式:十进制(decimal)整数126565535八进制(octal)整数:带前缀0(zero)01401010177777十六进制(hexadecimal)整数:带前缀0x或0X0xc0x410xffff默认类型是int,即有符号的基本整型。可以加上后缀u或U表示无符号整数,或者l或L表示长整数。0xb5Lu基本数据类型11RAM整型变量声明变量(Declaration)变量在使用之前必须被声明。声明语句的格式:举例基本数据类型<类型说明符><变量名>[,<变量名>[,...]];intcounter;intwidth,height;shortx,y;longnumber;变量声明创建了变量:为变量分配了存储空间。height12整型变量初始化(Initialize)变量为变量赋一个初始值。可以在声明语句中初始化变量。举例变量获得值的方法直接赋值输入初始化基本数据类型intcounter=0;intwidth=352,height=288;初始化式RAM288height13整型变量输出变量的值可以使用printf()函数。与int类型对应的格式说明符是%d。举例(cw02-02a.c)基本数据类型#include<stdio.h>voidmain(){inta,b;a=32767;b=-32768;printf("a=%d,b=%d\n",a,b);}a=32767,b=-3276814整数的溢出溢出整数太大,超出了整数类型的数值范围。使用printf()时与unsignedint类型对应的格式说明符是%u。举例(cw02-02b.c)基本数据类型#include<stdio.h>voidmain(){inta,b;unsignedc,d;a=2147483647;b=a+1;c=4294967295;d=c+1;printf("a=%d,b=%d\n",a,b);printf("c=%u,d=%u",c,d);}a=2147483647,b=-2147483648c=4294967295,d=0???15整数的溢出溢出结果分析结论a+1的结果(2147483648)超出了基本整型变量b所能容纳(表示)的数值范围(-2147483648~2147483647)。请分析d的结果。基本数据类型01111111...111111110000000...0000000a(2147483647)10000000...0000000a+1(2147483648)b(-2147483648)12加正数减正数16字符的存储方式字符编码计算机使用一种数字编码(整数)来表示字符,每一个字符都对应一个特定的整数。常用的编码是ASCII(美国信息交换用标准码)。7位二进制数,十进制码值范围从0到127。一般用一个字节保存,最高位为0。字符的存储方式与整数相同举例字母A的ASCII码值为65,那么在内存中以65的二进制形式存储,且占一个字节。基本数据类型0100000101000001RAM17字符的类型和字符变量C语言的字符类型:char占一个字节;可视为一个有符号的整数。举例(cw02-03.c)基本数据类型#include<stdio.h>voidmain(){charc1,c2;//声明字符变量c1=97;//把一个整数赋值给字符变量c2=c1-32;//字符变量可以进行算术运算printf("c1=%c,c2=%c\n",c1,c2);printf("c1=%d,c2=%d\n",c1,c2);}c1=a,c2=Ac1=97,c2=6518字符常量字符常量用单引号括起来的一个字符。'x''9''+‘C语言将字符常量视为int类型。举例(cw02-04.c)如果int类型为16位,char类型为8位,那么对于’bc’,将把’b’和’c’的ASCII码值存储在两个字节中,并把’c’赋值给变量c2。注意:不同系统处理方式不同,结果不同。基本数据类型charc1,c2;c1=‘a’;c2=‘bc’;01100001c101100011c20110001101100010‘bc’LH9799999819字符常量转义字符(escapecharacter)指代一些特殊的字符。(打印不出来的字符)举例(cw02-05.c)基本数据类型\a警报 \\反斜杠(\)\b退格 \?问号(?)\f走纸 \‘单引号(’)\n换行 \“双引号(”)\r回车 \ooo八进制值(o表示一个八进制数字)\t水平制表符 \xhh十六进制值(h表示一个十六进制数字)\v垂直制表符#include<stdio.h>voidmain(){printf("a\tb\nc\bd\100\x40\n");}20浮点数的存储方式浮点数浮点型数据在内存中按指数形式存放。例如:314.15=3.1415×102基本数据类型0(3.14159)100(2)10数符尾数部分阶符阶码+3.14159×10+2由此可见,尾数部分的宽度决定了有效数字的个数(即精度),阶码部分的宽度决定了数值范围。RAM科学计数法允许使用少量的数字表示很大范围的数和很小的数。21浮点数的类型浮点数也有多种类型类型名称及典型大小基本数据类型S=±1参考<float.h>仅供参考,实际值与所使用的操作系统、编译系统、机器有关。数轴0可表示的正数可表示的负数22浮点型常量浮点型常量有两种形式:十进制形式12.3.650.指数形式:<小数><e|E><整数>1.2e-2 .1E5 7E01.2×10-2 0.1×105 7.0×100默认类型是double。可以加上后缀f或F表示float类型,或者l或L表示longdouble类型,否则该常量是double类型。2.3f1.2L.1E5f基本数据类型23浮点型变量浮点型变量的声明和初始化举例基本数据类型floatradius;doublex=0.0,y=0.0;不能写成:doublex=y=0.0;24浮点型变量浮点数的输出使用printf()函数float和double对应的格式说明符为%f、%e。举例(cw02-06.c)基本数据类型#include<stdio.h>voidmain(){floatf;doubled;f=33333.33333f;d=33333.3333333333;printf("f=%f\nd=%f",f,d);}f=33333.332031d=33333.333333有效数字位数是有限的,在可表示的有效位之外的数字被舍去。因此可能会产生误差。25浮点数的舍入误差浮点数的舍入误差举例(cw02-07.c)基本数据类型#include<stdio.h>voidmain(){floata,b;a=123456.789e5;b=a+20;printf("a=%f\nb=%f",a,b);}a=12345678848.000000b=12345678848.000000???26浮点数的舍入误差浮点数的舍入误差结果分析基本数据类型a=123456.789e5;b=a+20;a+20的理论值应该是:12345678920但是,一个实型变量能够保证的有效数字是7位,后面的数字将被舍去,是没有意义的。因此,最后得到b=12345678848.000000应当避免一个很大的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋季小学开学第一课 新学期新目标新征程
- 2026中国云计算服务市场规模变化与商业模式创新分析报告
- 2026中国新能源电池材料行业市场供需研究现状与投资评估规划分析报告
- 2026石油天然气设备制造业市场供需分析及投资评估规划分析研究报告
- 2026汽车售后服务行业市场分析与发展趋势研究报告
- 2026毛毡行业现状供需分析及生产投资评估规划分析研究报告
- 2026石墨烯材料应用行业市场供需调研发展趋势投资评估规划研究报告
- 2026汽车销售服务行业售后服务与市场竞争投资评估报告
- 2026中国智能家居集成系统市场竞争发展态投资布局规划骨水
- 2026森工造纸行业环保技术升级研究及节能改造投资生态评估规划
- 《AQ 3067-2026 化工和危险化学品生产经营企业重大生产安全事故隐患判定准则》解读课件
- 2026-2030中国迷你电脑主机行业产销规模预测与未来经营规划报告
- X线诊断报告书写规范
- 2026年户外运动鞋服消费趋势报告-数字100-202602
- 2026年水发派思燃气股份有限公司社会招聘备考题库及1套参考答案详解
- 公立医院与医疗旅游机构的合作质量协议
- KISS复盘法培训课件
- 2025年全国设备监理师设备工程质量管理与检验新版真题附答案
- 2025年邮政内部竞聘考试题及答案
- (正式版)DB15∕T 3413-2024 《住宅小区和商业用房供配电设施规范》
- 肌骨常见疾病的超声诊断
评论
0/150
提交评论