版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 基本数据类型及运算 学习目标了解c语言的构成元素熟悉c语言的数据类型熟悉常量、变量掌握算术运算符、赋值运算符、逗号运算符理解数据类型转换重点算术运算符、赋值运算符、逗号运算符2.1 c语言的构成元素 2.1.1 构成元素概述 表2-1:自然语言的构成元素和c语言的构成元素的对比 普通语言的构成元素c语言的构成元素符号、字字符集、常量、变量、关键字、运算符等词表达式句语句段落函数章节程序文件文章完整的程序2.1.2 字符集 c语言的字符集包括:(1)大、小写英文字母(2)数字:09(3)运算符:+、-、*、/、%等(4)括号:( )、 、 (5)标点符号:、:、;。(6)空白符:空格符、
2、制表符、换行符等(7)特殊符号:、_、$、# 2.1.3 标识符 标识符是用来标识c程序中的变量、数据类型、函数等对象的字符序列,实际上就是一个名字。c语言的标识符分为三类:关键字c语言编译系统预先定义的标识符 特定标识符具有特殊含义的标识符 用户自定义标识符 2.1.3 标识符 用户自定义标识符必须注意以下几点: 只能由字母、数字、下划线组成第一个字符必须是字母或下划线不能和关键字、特定标识符、c语言的库函数相同区分大小写字母不要使用易混淆的字符 尽量做到“见名知义” 2.2 c语言的数据类型 2.2.1 数据类型概述 日常生活中,描述不同的对象需要使用不同的数据类型描述有多少个人应该使用整
3、数在程序设计语言中,数据往往被划分成不同的类型 2.2 c语言的数据类型 c语言的数据类型分为四类:基本数据类型构造数据类型(第9章)指针类型(第8章)空类型2.2 c语言的数据类型 (1)基本数据类型包括整型、浮点型、字符型三种 对应生活中的整数、实数和字符数据整型又分为短整型、基本整型、长整型三种浮点型又分为单精度、双精度、长双精度三种2.2 c语言的数据类型 (2)构造数据类型包括数组、结构体、共同体、枚举四种 由程序设计人员根据已存在的一种或多种数据类型构造出来的(3)指针类型一种特殊的数据类型与计算机内存中的地址相关使用指针能够简化程序,提高程序执行效率2.2 c语言的数据类型 (4
4、)空类型空类型的说明符为void一般用做函数的返回值类型如果一个函数执行后没有返回值,该函数就定义为空类型2.2.2 整型 整型数据对应生活中的整数。1分类根据占有存储空间的长度:(1)基本整型,类型说明符为int(2)短整型,类型说明符为short int或short(3)长整型,类型说明符为long int或long 2.2.2 整型 根据存储单元中是否有符号位:(1)有符号类型有符号类型的说明符与一般整型、短整型和长整型的说明符一致。有符号类型的数据在存储时,其存储单元的最高位是符号位,用来表示正负,并不表示数值大小。 2.2.2 整型 (2)无符号类型无符号类型说明符为unsigned
5、 无符号一般整型,unsigned int 无符号短整型,unsigned short 无符号长整型,unsigned long无符号类型的数据在存储时,存储单元中没有符号位,存储单元的每一位都用来表示数值大小。 2.2.2 整型 c语言没有具体规定以上各类型数据所占的字节数,数据类型所占字节数取决于编译软件和机器硬件。在vc6.0环境下,以目前通用的32位计算机为例,各种整型数据所占字节数和取值范围如表2-2所示。表2-2 整型数据的字节数与取值范围 关键字关键字字节数字节数(位数)(位数)取值范围取值范围short2(16)-3276832767 即即-215215-1unsigned s
6、hort2(16)065535 即即0216-1int4(32)-21474836482147483647 即即-231231-1unsigned int4(32)04294967295 即即0232-1long4(32)-21474836482147483647 即即-231231-1unsigned long4(32)04294967295 即即0232-12.2.2 整型 2整型数据在内存中的存储(了解)所有数据在内存中都是以二进制形式存放存放有符号整数时,存储单元中左面第一位表示符号为0表示数据为正数为1表示数据为负数无符号类型的数据在内存中没有符号位,所有存储单元都用来表示数值大小。
7、 2.2.2 整型 2整型数据在内存中的存储(了解)整型数据在内存中以补码形式表示正整数的补码是该数的二进制形式负整数的补码:绝对值二进制形式按位取反加12.2.3 浮点型浮点型即实型,对应生活中的实数。1分类根据能够表示数据的大小和精度:单精度,类型说明符为float双精度,类型说明符为double长双精度,类型说明符为long double浮点型数据的相关参数如表2-3所示 关键字关键字字节数字节数(位数)(位数)有效数字有效数字绝对值的取值范围绝对值的取值范围float4(32)6710-371038 double8(64)151610-30710308 long double 16(1
8、28)181910-4931104932 表2-3浮点型数据的字节数与取值范围 2.2.3 浮点型2浮点型数据的误差由于浮点型数据在存储时使用的存储单元长度有限,因此能提供的有效数字位数也是有限的,有效数字位数决定了浮点型数据的精度。【例2.2】浮点型数据的有效数字。#include void main() float x; double y; x=66666.66666; y=66666.666666666; printf(x=%fny=%fn,x,y); 【例2.3】浮点型数据的舍入误差。#include void main() float x,y; x=123456.789e6; y=x
9、+200; printf(x=%fn,x); printf(y=%fn,y);2.2.4 字符型 字符型数据的类型说明符为char。字符型数据在内存中占一个字节。字符型数据在存储时,内存中存储的并不是真正的字符,而是字符的ascii码。2.3 常量 常量在程序运行过程中值不能被改变的量。常量分为符号常量和直接常量。直接常量:又称字面常量,包括整型常量、浮点型常量、字符常量和字符串常量。符号常量:用标识符表示的常量,从字面上不能直接看出其类型和值。2.3.1 符号常量 在程序中,如果某个常量多次使用,则可以用一个标识符来表示该常量,称为符号常量。符号常量在使用之前必须先定义。2.3.1 符号常量
10、 定义符号常量的一般形式为:#define 标识符 直接常量#define是一条预处理命令,称为宏定义命令,其功能是把标识符定义为其后的直接常量。习惯上符号常量的标识符用大写字母,变量的标识符用小写字母。注意:末尾不加分号。符号常量定义后,可以像所表示的直接常量一样在程序中使用。 【例2.4】求半径为4.0的球体积和表面积。#include #definepi3.14159void main() float r,v,s; r=4.0; v=4.0/3.0*pi*r*r*r; s=4.0*pi*r*r; printf(v=%f,s=%fn,v,s);2.3.1 符号常量 注意:符号常量也是常量,
11、程序运行期间,其值不能被改变,不能对符号常量赋值。使用符号常量具有以下好处:(1)含义清楚(2)一改全改2.3.2 整型常量 整型常量即整常数。在c语言中,整型常量可以表示为十进制、八进制和十六进制三种形式。1十进制整型常量十进制整型常量与数学上的整数表示方法相同,由09组成。2.3.2 整型常量 2八进制整型常量八进制整型常量以数字0作为前缀,由07组成。八进制016 等于 十进制14八进制0111 等于 十进制732.3.2 整型常量 3十六进制整型常量十六进制整型常量以0x或0 x作为前缀,由09、af或af构成。十六进制0x2b 等于 十进制43十六进制0xa0 等于 十进制160十六
12、进制0xffff 等于 十进制655352.3.2 整型常量 4说明(1)溢出如果不作特别指定,系统都将整型常量按一般整型(int)处理。如果一个整型常量超出机器所能表示的范围,存储时就会发生溢出。在c语言中,整数溢出不会使程序出错,但通常会得到一个不正确的值。【例2.5】整型常量的溢出。#include void main() int x, y; x=10000; y=2147483649; printf(x=%d y=%dn,x,y); 2.3.2 整型常量 (2)后缀一个整型常量可根据需要加上后缀。358u,无符号整型常量358l, 长整型常量2.3.3 浮点型常量 浮点型常量即浮点数(
13、实数)。在c语言中,浮点型常量有二种表示形式:十进制小数形式和指数形式。1小数形式由正负号、数码0 9和一个小数点组成。小数点必须有,小数点前面和后面可以没有数字。2.3.3 浮点型常量 2指数形式由十进制小数或整数与字母“e”或“e”组成。一般形式为:aen或 aena可以是十进制小数或整数n必须为十进制整数整体表示数据a10n注意:字母“e”或“e”前面必须有数字,后面必须为整数2.3.3 浮点型常量 浮点型常量在不加任何后缀时,系统会默认为双精度double型。浮点型常量加后缀f或f表示该常量为单精度float类型,加后缀l或l表示为长双精度long double类型。2.3.4 字符常
14、量字符常量分为普通字符常量和转义字符两种。1普通字符常量普通字符常量:用单引号括起来的一个字符。a s 5注意:c语言区分大小写字母。a和a是不同的字符常量2.3.4 字符常量2转义字符以反斜线开头,后跟一个或几个字符。转义字符具有特定的含义。 n表示“回车换行”常用转义字符及其含义如表2-4所示。转义字符转义字符转义字符的意义转义字符的意义ascii码码n 回车换行回车换行10t 横向跳到下一制表位置横向跳到下一制表位置9b 退格退格8r 回车回车13f 走纸换页走纸换页12 反斜线符反斜线符92 单引号符单引号符39” 双引号符双引号符34a鸣铃鸣铃7ddd 13位八进制数所代表的字符位八
15、进制数所代表的字符xhh 12位十六进制数所代表的字符位十六进制数所代表的字符表2-4 常用的转义字符及其含义 2.3.4 字符常量ddd和xhh均表示字符ddd是字符八进制形式的ascii码hh是字符十六进制形式的ascii码102、x42均表示字符b 注意:在程序中,字符常量必须用单引号括起来,包括转义字符。 2.3.5 字符串常量 字符串常量是由一对双引号括起的字符序列。china, “c program” , $12.5,“stringn” 2.3.5 字符串常量 字符串常量和字符常量的区别:(1)字符常量由单引号括起来,字符串常量由双引号括起来。(2)字符常量只能是单个字符,字符串常
16、量则可以包含0个或多个字符。(3)保存字符常量可以使用字符变量,保存字符串常量可以使用数组。2.3.5 字符串常量 (4)字符常量占一个字节的内存空间。字符串常量所占的内存字节数等于字符串中的字符个数加1,因为字符串的末尾有一个字节串结束标志0。 2.4 变量 2.4.1 变量的概念 变量:在程序的运行过程中,其值可以改变的量。每个变量都有自己的名字。变量命名必须符合用户自定义标识符命名规则每个变量都占据一定数量的内存单元,用来存放变量的值。变量必须先定义后使用。2.4.2 变量定义 变量定义的一般形式为:类型说明符 变量名1,变量名2,.; 注意:各变量名之间用逗号间隔,类型说明符与变量名之
17、间至少用一个空格间隔。变量不能重复定义,或者说,变量不能重名。2.4.3 变量初始化 初始化:定义变量时对变量赋值。int a=3;float b=4;char c=n;注意:以下初始化是错误的!int a=b=c=6;2.4.4 变量赋值 变量定义后,可以用“=”将一个表达式的值赋给该变量。int a,b;a=1;b=a;2.5 运算符和表达式 2.5.1 运算符概述1运算符的分类c语言运算符丰富算术运算符 +、-、*、/、%、+、-关系运算符 、=、=、! =逻辑运算符 !、&、|位运算符 、|、&赋值运算符 = ,复合赋值运算符条件运算符 ?:逗号运算符 ,指针和取地址运算符 *、&求字
18、节运算符 sizeof强制类型转换运算符 (类型)分量运算符 -、 下标运算符 其他运算符例如 () 2.5.1 运算符概述2学习运算符应注意的问题(1)运算符的功能(2)运算符的优先级(3)运算符的结合性2.5.2 算术运算符和算术表达式1算术运算符算术运算符用于各类数值运算。(1)基本算术运算符 +、- 、*、/ 、%优先级:先乘除,后加减结合性:自左向右,即左结合2.5.2 算术运算符和算术表达式使用算术运算符时应注意以下问题:如果参与+ 、- 、* 、/ 运算的数据有一个为浮点型常量,结果就为double类型。0*1.2+5*8 结果为double类型%要求参与运算的量均为整型,运算的
19、结果等于两数相除后的余数。2.5.2 算术运算符和算术表达式(2)自增、自减运算符:+ -二者都是单目运算符。二者都有前置和后置两种形式:前置:+i(- -i)i的值加1(减1);i的值作为表达式的值后置:i+(i- -)i的值作为表达式的值; i的值加1(减1)#include void main() int a,b,c; a=1; b=+a; c=a-; printf(%d,%d,%dn,a,b,c);2.5.2 算术运算符和算术表达式注意:自增、自减运算符只能用于变量,不能用于常量和表达式。2.5.2 算术运算符和算术表达式(3)正负号运算符+ -都是单目运算符。优先级:与自增、自减运算
20、符同级高于基本算术运算符结合性:自右向左,即右结合。2算术表达式 (1)算术表达式的概念 表达式是由运算符连接常量、变量、函数等运算对象构成的式子。算术表达式就是用算术运算符连接各种运算对象构成的式子。2算术表达式 (2)算术表达式的运算不同类型的数据之间可以进行混合运算。当一个算术运算符两侧的运算对象的数据类型不同时,系统将自动把运算符两侧的运算对象转换成同一种类型,然后再进行运算。(具体见2.6节)2.5.3 赋值运算符和赋值表达式赋值运算符简单赋值运算符=复合算术赋值运算符+=、-=、*=、/=、%=复合位赋值运算符(第10章)&=、|=、=、=、=2.5.3 赋值运算符和赋值表达式由赋
21、值运算符将一个变量和一个表达式连接起来构成的式子称为赋值表达式。赋值表达式的一般形式:(1)赋值运算符左侧必须是变量。(2)赋值运算符具有右结合性。 (3)赋值运算符的优先级低于算术运算符。2.5.3 赋值运算符和赋值表达式(4)如果赋值运算符两边的数据类型不相同,系统将自动把赋值运算符右边的类型换成左边的类型:实型数据赋予整型变量,将舍去小数部分。整型数据赋予字符型变量,只把低八位赋予字符量。例:已知int a=10;求以下表达式的值和a的值。a+=12a*=a+7 a+=a-=a*a 2.5.4 逗号运算符和逗号表达式 逗号运算符的优先级:低于赋值运算符。逗号运算符的结合性:自左向右。 逗号运算符的功能:把两个表达式连接起来,构成逗号表达式。2.5.4 逗号运算符和逗号表达式 逗号表达式的一般形式:表达式1,表达式2逗号表达式的运算:先求表达式1的值再求表达式2的值以表达式2的值作为整个逗号表达式的值。a=5a=3*5,a*4 /*a的值变成60
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省福州市福州师范大学附属中学2024届高三3月联合检测试题(数学试题文)试题
- 2024年那曲c1客运资格证考试
- 算法设计与分析 课件 6.2-贪心法-基本原理
- 算法设计与分析 课件 1.2.3-算法分析准则 - 时间复杂度 - 渐近分析及符号表示
- 2024年贵阳客运从业资格证考试题目及答案详解
- 2024年百色考客运从业资格证考试题目
- 2024年天津客运从业资格证模拟考试题库电子版
- 2024年哈尔滨客运资格证考试模拟题答案
- 厂房租赁协议
- 吉首大学《空间解析几何》2021-2022学年第一学期期末试卷
- 《信息化项目验收工作规范》
- 2024年全国软件水平考试之高级网络规划设计师考试重点黑金模拟题(详细参考解析)
- 经济学题库(200道)
- 古树名木养护复壮技术规范
- 2024年巴西私人安保服务市场机会及渠道调研报告
- 课《闻王昌龄左迁龙标遥有此寄》跨学科公开课一等奖创新教学设计
- 2024年江苏省连云港市中考英语真题(含解析)
- 2024-2030年国内婴童用品行业深度分析及竞争格局与发展前景预测研究报告
- 粤教粤民版《劳动技术》四上 第二单元第3课《提篮》教学设计
- 办公楼室内装饰工程施工设计方案技术标范本
- 全球及中国玉米淀粉行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030)
评论
0/150
提交评论