C语言第2讲--数据的表示之基本数据类型
二、C语言数据类型和运算符号

意义: 意义:可提高执行效率.
4, 3
基本运算符使用注意事项
算术运算符和算术表达式 注意以下几点: ⑴ 两个整数相除结果为整数,如5/3的结果为1.如果参加 两个整数相除结果为整数,如5/3的结果为1 运算的两个数中有一个数为实数,则结果是double型. 运算的两个数中有一个数为实数,则结果是double型. ⑵ 模运算符%,又称求余运算符,要求%两侧均为整型数据, 模运算符%,又称求余运算符,要求% 如7%4的值为3;而且余数的值符号与被除数一致,如- 7%4的值为3 7%- 的值为-3 7%-4的值为-3. ⑶ 运算符"+ +"是操作数加1,而"--"是操作数减1, 运算符" +"是操作数加1,而"--"是操作数减1 只适用于变量,不能用于常量或表达式.
21/25 21/25
举例:写出下列表达式的值 若有定义:int a=3, b=2, c=1; char ch1='a'; 1) b+c!=a 2) ch1<'b' 3) a%2==0 4) (a>b)>(b<c) 5) a>b>b<1 6) a>b==c 7) f=a>b>c
22/25 22/25
基本运算符使用注意事项
基本算术运算符: + 加 / 取正 (双目运算符 / 单目运算符) - 减 / 取负 (双目运算符 / 单目运算符) * 乘 (双目运算符) / 除 (双目运算符) % 整除取余 (双目运算符) 注意: 1)两整数相除结果仍为整数 如:5/2 2 -5/3 -1 1/2 0 要依实际应用情况加以利用或避免. 2)求余运算要求两运算元素均为整型,余数仍 为整型; 如:int a, b; a=11%3; /*2 a*/ b=5%a; /*1 b*/ 若有: a=11.0%3; 编译时将视为语法错.
第2章_数据类型、运算符和表达式《C语言程序设计(第三版)》-电子教案

2.2 标识符、常量与变量
符号常量
【例2-1】输入圆的半径,计算周长和面积。 #define PI 3.14159 void main() { float r,c,s; scanf("%f",&r); c=2*PI*r; s=PI*r*r; printf("r=%f,c=%f,s=%f\n",r,c,s); }
以下是合法的整型常量:
2.2 标识符、常量与变量
实型常量
实型常量只能用十进制形式表示 表示形式:
小数形式。由数字序列和小数点组成,如 3.1415926、-0.15、.15、2.等都是合法的实型 常量。 指数形式。由十进制数加上阶码标志“e”或 “E”及阶码组成,如3.14e-4或3.14E-4表示 3.14×10-4。
2.2 标识符、常量与变量
2.2.3 变量
在程序运行过程中,其存储的值可以被改变的量称 为变量 变量必须通过标识符进行说明,称为变量名。 变量名和内存单元地址存在映射关系,程序可以通 过变量名寻址,从而访问其存储的数据。
2.2 标识符、常量与变量
变量的定义和说明
数据类型 变量名1[,变量名2,…,变量名n];
long型转换成float型时由原来可达10位整数变成只有7位有效数字精度丢失但由于数的范围扩大了数据类型从较低级提升到较高级随着竞争日益激烈酒店嘴中的肥肉被大肆抢夺各大酒店在这场竞争中几乎溃不成军
21世纪高等学校精品规划教材
第2章 数据类型、运算符 和表达式
掌握C语言的基本数据类型 掌握标识符、关键字、常量和变量的使用 掌握运算符、表达式以及数据类型之间的转换 等 掌握简单数据的输入输出
C语言教程课件第二章 数据类型、运算符和表达式

例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算
C语言的基本数据类型

C语⾔的基本数据类型C语⾔允许使⽤的数据类型有三类。
(1) 基本类型。
不可再分的最基本的数据类型,包括整型、浮点(单精度)型、双精度型、字符型、⽆值类型、逻辑型及复数型。
基本类型通常代表单个数据。
(2) 构造类型。
由已知的基本类型通过⼀定的构造⽅法构造出来的类型,包括数组、结构体、联合体、枚举类型等。
构造类型通常代表⼀批数据。
(3) 指针类型。
指针可以指向内存地址,访问效率⾼,⽤于构造各种形态的动态或递归数据结构,如链表、树等。
1.1 基本数据类型1.基本数据类型及其关键字C99标准提供的7种基本数据类型及其对应的关键字如表所⽰。
数据类型关键字数据类型关键字字符型char⽆值类型void整型int逻辑型_bool浮点(单精度)型float复数型_complex_imaginary双精度型double字符型:描述单个字符;整型:描述整数,整数在计算机上是准确表⽰的;浮点型、双精度型:描述实数,实数在计算机上⼀般是近似表⽰的,浮点型的近似程度⽐较低,⽽双精度型的近似程度⽐较⾼。
⽆值类型:没有具体的值,通常⽤来描述⽆形式参数或⽆返回值的C函数,以及⽆定向指针。
逻辑型:描述逻辑真(其值为1)与逻辑假(其值为0)。
复数型:描述复数(_complex)和纯虚数(_imaginary)。
使⽤逻辑型时必须包含头⽂件stdbool.h,使⽤复数型时必须包含头⽂件complex.h。
2.基本数据类型的存储⽅式和取值范围、基本数据类型的扩展类型长度/字节取值范围存储⽅式char1-128~127有符号⼆进制补码形式[signed]char1-128~127unsigned char10~255short [int]2-32768~32767unsigned short [int]20~65535int4-2147483648~2147483647定点有符号⼆进制补码形式[signed] int4-2147483648~2147483647unsigned [int]40~4294967295long [int]4-2147483648~2147483647[signed] long [int]4-2147483648~2147483647unsigned long [int]40~4294967295float4-3.4*10^38~3.4*10^38浮点形式存储double8-1.798*10^308~1.798*10^308浮点形式存储long double8-1.798*10^308~1.798*10^308short int<=int<=long int<=long long intfloat<=double<=long double。
电大C语言程序设计 第2章 基本数据类型和表达式

第2章 基本数据类型和表达式 章 2.2.3 枚举常量
枚举常量是枚举类型中的值,即枚举值。 枚举常量是枚举类型中的值,即枚举值。 枚举类型定义: 枚举类型定义: enum <枚举类型名 枚举类型名>{<枚举表 ; 枚举表>}; 枚举类型名 枚举表 (1)enum color{red,yellow,blue}; (2)enum day{Sun,Mon,Tues,Wed,Thur,Fri,Sat};
第2章 基本数据类型和表达式 章 2.2.5 地址常量 指针类型的值域范围: 指针类型的值域范围:0~(232-1),每一个整数 , 代表内存空间中一个对应单元的存储地址。 代表内存空间中一个对应单元的存储地址。 用户可以直接使用整数0作为地址常量 作为地址常量, 用户可以直接使用整数 作为地址常量,称为 空地址常量,对应的符号号常量在stdio.h中定义,其值为整数 。 中定义, 号常量在 中定义 其值为整数0。
第2章 基本数据类型和表达式 章 2.3 变量 变量是用标识符表示的、 变量是用标识符表示的、其值可以被改变的 量。 1.变量定义语句 变量定义语句 <类型关键字 <变量名 [=<初值表达式 类型关键字> 变量名> 初值表达式>],…; 类型关键字 变量名 初值表达式
第2章 基本数据类型和表达式 章 2.3 变量 2.语句格式举例 语句格式举例 (1)int a,b; (2)char ch1=‘a’,ch2=‘A’; (3)int x=a+2*b; (4)double d1,d2=0.0,d3=3.14159; 3.语句应用举例 见circle.c 语句应用举例
第2章 基本数据类型和表达式 章 2.2.3 枚举常量
(1)enum color c1,c2,c3; (2)enum day today,workday; (3)c1=red; (4)workday=Wed; enum day {Sun=7,Mon=1,Tues,Wed,Thur,Fri,Sat};
C数据类型及其长度总结

C数据类型及其长度总结C语言中的数据类型及其长度如下:1.基本数据类型:- char类型:用于表示字符,长度为1字节(8位)。
- short类型:用于表示短整型数据,长度为2字节(16位)。
- int类型:用于表示整型数据,长度为4字节(32位)。
- long类型:用于表示长整型数据,长度为4字节(32位)或8字节(64位)。
- float类型:用于表示单精度浮点数,长度为4字节(32位)。
- double类型:用于表示双精度浮点数,长度为8字节(64位)。
2.修饰类型:- signed修饰符:用于将基本整数类型定义为有符号类型,不改变长度。
- unsigned修饰符:用于将基本整数类型定义为无符号类型,不改变长度。
- short修饰符:用于将int类型定义为short类型,长度为2字节(16位)。
- long修饰符:用于将int类型定义为long类型,长度为4字节(32位)或8字节(64位)。
3.变长数据类型(C99标准引入):- bool类型:用于表示布尔值,长度为1字节(8位)。
- imaginary类型:用于表示虚数,长度与对应的复数类型相同。
4.其他数据类型:- enum类型:用于定义枚举类型,长度与int类型相同。
- void类型:用于表示无类型,长度为1字节(8位)。
- size_t类型:用于表示内存块的大小,长度根据处理器架构而定。
- ptrdiff_t类型:用于表示两个指针之间的差值,长度根据处理器架构而定。
需要注意的是,C语言中的数据类型的长度是根据机器架构和编译器的不同而有所变化的。
上述长度是一般情况下的长度,具体情况应根据实际环境而定。
总结起来,C语言中的数据类型及其长度包括基本数据类型、修饰类型、变长数据类型以及其他数据类型。
程序员在编写C语言程序时,需要根据需求选择合适的数据类型来保存和处理数据。
c语言基本数据类型(short、int、long、char、float、double)

c语⾔基本数据类型(short、int、long、char、float、double)⼀ C 语⾔包含的数据类型short、int、long、char、float、double 这六个关键字代表C 语⾔⾥的六种基本数据类型。
在不同的系统上,这些类型占据的字节长度是不同的:在32 位的系统上short 占据的内存⼤⼩是2 个byte;int占据的内存⼤⼩是4 个byte;long占据的内存⼤⼩是4 个byte;float占据的内存⼤⼩是4 个byte;double占据的内存⼤⼩是8 个byte;char占据的内存⼤⼩是1 个byte。
具体可以⽤sizeof测试⼀下即可。
⼆变量的命名规则1、命名应当直观且可以拼读,可望⽂知意,便于记忆和阅读。
标识符最好采⽤英⽂单词或其组合,不允许使⽤拼⾳。
程序中的英⽂单词⼀般不要太复杂,⽤词应当准确。
2、命名的长度应当符合“min-length && max-information”原则。
C 是⼀种简洁的语⾔, 命名也应该是简洁的。
例如变量名MaxVal 就⽐MaxValueUntilOverflow 好⽤。
标识符的长度⼀般不要过长,较长的单词可通过去掉“元⾳”形成缩写。
另外,英⽂词尽量不缩写,特别是⾮常⽤专业名词,如果有缩写,在同⼀系统中对同⼀单词必须使⽤相同的表⽰法,并且注明其意思。
3、当标识符由多个词组成时,每个词的第⼀个字母⼤写,其余全部⼩写。
⽐如:int CurrentVal;这样的名字看起来⽐较清晰,远⽐⼀长串字符好得多。
4、尽量避免名字中出现数字编号,如Value1,Value2 等,除⾮逻辑上的确需要编号。
⽐如驱动开发时为管脚命名,⾮编号名字反⽽不好。
初学者总是喜欢⽤带编号的变量名或函数名,这样⼦看上去很简单⽅便,但其实是⼀颗颗定时炸弹。
这个习惯初学者⼀定要改过来。
5、对在多个⽂件之间共同使⽤的全局变量或函数要加范围限定符(建议使⽤模块名(缩写)作为范围限定符),如 GUI_ ,etc标识符的命名规则6、标识符名分为两部分:规范标识符前缀(后缀) + 含义标识。
C语言教材 第2章

第2章 C 语言的基本数据类型本章要点了解C 语言的数据类型,掌握基本数据类型的应用及其相互转换规则,理解变量和常量的概念,并掌握其定义及引用方法。
本章的难点是数据在内存中的存储形式。
第一节 C 语言的数据类型由于信息的表现形式多种多样,处理的方法也不相同,所以,我们必须考虑用不同形式的数据来表示不同的信息。
例如:一个班级的人数要用整数来表示;班级学生的平均成绩要用小数表示;学生的姓名、性别要用字符来表示;一个班级学生某一门课程的成绩要用一组不同的数值来表示等。
计算机语言中的数据类型就是为了能够高效处理各种不同的数据而引进的一个概念,是指数据的内在表现形式。
不同的数据类型具有不同的取值范围和不同的操作。
C 语言提供的数据类型如图2-1所示。
在程序中使用的所有数据都必须指定它的数据类型,C 语言的数据类型由基本类型和非基本类型组成。
其中,基本数据类型是其他数据类型的基础。
C 语言中的基本数据类型包括整型、实型(浮点型)、字符型,其中实型又包括单精度和双精度两种类型。
本章主要讨论这4种基本类型。
整型、单精度型、双精度型和字符型数据定义的关键字分别为:int 、float 、double 和char 。
除了这四个关键字外,C 语言中还提供了一些数据类型的修饰符,如:long 、short 、signed 和unsigned 。
它们的作用是与基本类型的定义关键字结合起来使用,以对基本类型进行扩充,使得在程序编写的过程中可以灵活调整数值的范围以及所占用的存储空间。
结合修饰符的应用,基本数据类型可进一步划分,如表2-1所示。
表2-1 各种数据类型及其说明语言的数据类型图)空类型(指针类型)共用体类型()结构体类型(数组类型构造类型)枚举类型()字符型()双精度型()单精度型(实型(浮点型))整型(基本类型C 12void union structenum char double float int -⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎪⎩⎪⎪⎨⎧⎩⎨⎧说明:(1)表中方括号内的部分是可以省略不写的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.字符输出举例
例3.7(P51) main() 运行结果:A,B { char a,b; 65,66 a='a'; b='b'; /*或 b=98;可向字符变量赋以整数 */ a=a-32; b=b-32; printf("%c,%c\n%d,%d\n",a,b,a,b); } 注:C语言允许字符变量参与数值运算,即用字符 的ASCII 码参与运算。 大小写字母的ASCII 码相差32,因此运算后把小写 字母换成大写字母
结果:total1=300 total2=600
6
二、变量
变量以标识符命名。 变量的定义: 类型名 标识符1,标识符2,......标识符n; int a,b,c; float x,y,z;
注意事项:
/* a,b,c 为整型变量 */ /* x,y,z 为单精度型变量 */
(1)
(2)
变量必须先定义后使用
double a1,a2; a1,a2为double型变量名,每个 变量占8个字节的空间
20
3.浮点型数据的格式输出
#include <stdio.h> /*可省 */ void main() { float a=123.456; double b=1234.5678; printf(“a=%f\n”,a); printf(“b=%f\n”,b); }
输出结果: a=123.456001 b=1234.567800
21
4.printf( )函数中浮点型数据的输 出格式符(自阅)
%f :按小数形式输出实数(包括双精度),默认保留6位
小数。
%e(=%E):按指数形式输出实数(包括双精度) ,尾数 部分默认保留6位有效数字。 %.3f:按小数形式输出实数,保留3位小数。 %8.3f :按小数形式输出实数,保留3位小数,数据总宽
4
一、常数常量与符号常量
两类常量:常数常量和符号常量 符号常量: 用标识符表示的常量。 符号常量定义在函数之外,定义形式为: #define 标识符 常量 例如: #define M 20
含义:定义M为符号常量(习惯用大 写字母),其值为20
5
符号常量用法举例
#define PRICE 30 #include <stdio.h> void main() { int num1,total1,num2,total2; num1 = 10; num2 = 20; total1 = num1 * PRICE; total1 = num1 * 30 total2 = num2 * PRICE; printf(“total1=%d total2=%d \n”,total1,total2); }
unsigned u1,u2;
/*u1,u2为无符号短整型变量名,其存储的数字无 正负号之分*/
13
3.整型数据的格式输出
格式输出函数格式:
printf ( 格式控制串,输出项表列)
控制要输出 的内容的表 现方式
需要输出的内容 (常量、变量、 表达式等等)
14
3.整型数据的格式输出
格式输出函数示例:printf (“a=%d,\nb=%d”,a,b) 一、输出项表列: 一个或多个输出项组成(若多个、它们之间用逗 号隔开),常量、变量、函数、表达式等均可做输出 项。 二、格式控制串: 一般形式为双引号括住的字符序列,其中字符 可由下面3类组成: 1.“%”起头的输出项格式符(与输出项一一对应) 2.“\”起头的转义字符(输出所表示的字符或实现 其功能,见P40表3.1) 3.普通字符(原样输出)
[signed] int
[signed] long [int] unsigned int
16
32 16
-215~(215-1)即-32768~32767
-231~(231-1) 约-21亿~21亿 0~(216-1)即 0~65535 0~(216-1)即0~65535 0~(232-1) 约0~43亿
9
三、C 语言的标识符
判断下列用户标识符的合法性:
a1 abc.c o_o a-b abc123 3a int
√ × .不能作标识符 √ × -不能作标识符 √ × 不能以数字开头 × 关键字不能作标识符
10
ห้องสมุดไป่ตู้
§3.3 整型数据
类型名 [signed] short int 占据 表示范围 位数 16 -215~(215-1)即-32768~32767
12
2.整型变量的定义
整型变量的定义形式: 整型类型名 变量名1,变量名2,…变量名n; int a,b,c; /*定义a,b,c为短整型变量名。每
个变量占据2个字节*/
long int aa,bb,cc;/*aa,bb,cc为长整型变量
名,每个变量占据4个字节*/ long a1,a2; /*a1,a2为长整型变量名,每个变 量占据4个字节*/
其中,123,2.45 称为尾数部分,+2,-2 称为指数部分。
注意:用指数形式表示时,尾数部分不能
空,指数部分必须为整数。 例如: e+3、2.03e+0.5 都是非法的浮点型常量表示方法。
19
2.浮点型变量的定义
浮点型变量的定义形式:
浮点型类型名 变量名1,变量名2,……变量名n; 如: float a,b,c; a,b,c为float型变量名,每个变 量占4个字节的空间。
注:字符在计算机中按ASCII码存储。
23
空 格——32 0 0 1 0 0 0 0 0 A——65 0 1 0 0 0 0 0 1 a——97
0 1 1 0 0 0 0 1
b——98 0 1 1 0 0 0 1 0
24
1.字符常量
字符常量: 用单引号括起来的一个字符,
如: ‟A‟, ‟e‟。
度至少8位(超过8位时按实际位数)。
%8.3e (=%8.3E) :按指数形式输出实数,尾数部分保留3 位有效数字,数据总宽度至少8位。 %g (=%G) :按%e和%f中较短的一种格式输出实数。
22
§3.5 字符型数据
类型名 char 占据位数 8 表示范围 -27 ~ (27-1) 即-128~ 127
8
三、C 语言的标识符
标识符: 用来标识变量名、符号常量名、 函数名、数组名、类型名的有效字符序列。 标识符命名规则: 以字母或下划线开头; 由字母、数字、下划线组成;TC要求不超 过32个字符;不允许使用保留关键字。
注意:
* C语言标识符中大、小字母有区分。
* C语言规定,保留关键字不能作为标识符。 * C语言的保留关键字共有37个,见P378附录C。
17
§3.4 浮点型数据
占据 类型名 位数 float double 32 64 表示范围 ±10-37~ ±1038 ±10-307~ ±10308 有效位 数 6~ 7 15~16
18
1.浮点型常量的表示形式
浮点型常量的表示形式
十进制小数形式:如:.123, -2.5,123.等。 十进制指数形式:如:123e+2, 2.45e-2 (123*102)(2.45*10-2)
unsigned short [int]
unsigned long [int]
16
32
11
1.整型常量的表示方法
整型常量的表示方法:
十进制: 如: 123,
0,
-125
八进制: 以数字 0 开头,如:042, -0123 (34) (-83) 十六进制: 以数字0和字母x开头,
如:0x22, - 0X31 (34) (-49)
2
§3.1 C 的数据类型
整型数据
数值型 基本类型 字符型 数据类型 枚举类型 数组类型 结构体类型 共用体类· 型 指针类型
3
单精度型 双精度型
实型数据
特殊数据类型
§3.1 常量与变量
常量: 在程序运行中,其值不变的量 变量: 在程序运行过程中,值可以改变的量
main( ) { int a,b,sum; a=123; b=456; a=b; sum=a+b; b = 789; printf(“sum is %d\n",sum); }
15
4.整型数据的格式输出举例
#include <stdio.h> /*可省*/ 结果:a=123,b=-456 void main() a=123,b=65080 a=173,b=177070 { a=7b,b=fe38 int a=123,b=-456; printf(“a=%d,b=%d”,a,b);/*十进制*/ printf(“a=%u,b=%u”,a,b);/*无符号十进制*/ printf(“a=%o,b=%o”,a,b);/*八进制*/ printf(“a=%x,b=%x”,a,b);/*十六进制*/ }
26
3.转义字符的应用举例
printf("1234\nabcd"); 1234 abcd
printf("\' \'' \x41");
' " A
27
4.字符变量
字符变量的定义: char
例如:char c1,c2; 则变量c1、c2中可存储一个字符(实际存放 的是相应的一个0~255之间的无符号整数)。 存储形式: 按 ASCII码存储。 使用方法: 按字符使用:则使用字符本身。 按数值使用:则使用该字符的 ASCII码值。
30
变量的定义总结
类型名 任意标识符 含义
ab只能用于存放整 数(数值范围较小)
类比(储存特殊 物品的箱子)
仅用于存放较 少的金子