C语言第3章 数据类型

合集下载

C语言第3章数据类型、运算符与表达式ppt课件

C语言第3章数据类型、运算符与表达式ppt课件
第三章
数据类型、运算符与表达式
1
主要内容
一、C的数据类型 二、常量与变量 三、基本数据类型 四、运算符与表达式
2
一、C的数据类型
(一) 什么是数据类型? (二) C语言的数据类型有哪些?
3
(一) 什么是数据类型?
对数据的描述
对操作的描述
数据结构+算法=程序
C语言中以 “数据类型”形式存在
4
所谓数据类型是按被定义变量的性质,表示形 式,占据存储空间的多少,构造特点来划分的。
int NUM=20; sum=PRICE*NUM;
11
符号常量优点
1、含义清楚。 2、在需要改变一个常量时,能够做到“一
改全改”
12
(二)变量
概念
变量代表内存中具有特定属性的一 个存储单元,它用来存放数据,也 就是变量的值。
13
(1)变量名。每个变量都有一个名字 ──变量名,代表一个地址。 (2)变量值。在程序运行过程中,变 量值存储在内存中。在程序中,通过 变量名来引用变量的值。
#include <stdio.h>
void main() {
int student,age; int if=adrress=1; float score=90;
stadent=2; Age=20; printf("%d %d %d %f",if,student,age,score); }
本程序中有 几处错误?
(5)标识符的有效长度随系统而异,如果超 长,则超长部分被舍弃。VC++6.0中规 定最大长度为247个字符。
23
请选出下列正确的标识符 M.D.John , 12%gf ,1add ,_ce36 ,age& 5thclass, lotus-1-2-3 , cd*ef , float,

3 数据类型、运算符和表达式

3 数据类型、运算符和表达式

三、整型数据
3.1.整型常量 整型常量即整常数按不同的进制区分, 整型常量即整常数按不同的进制区分 , 整型常数 有三种表示方法: 有三种表示方法:
十进制数: 以非0 220, 560, 十进制数: 以非0开始的数 如:220, -560, 45900 八进制数: 06; 0106, 八进制数: 以0开始的数 如:06; 0106, 十六进制数: 十六进制数: 以0X或0x开始的数 如:0X0D, 0XFF, 0x4e
一般情况下,符号常量名用大写、变量用小写。 一般情况下,符号常量名用大写、变量用小写。
3、符号常量的声明和使用 一般放在程序的前端, <…>在一块: 一般放在程序的前端,与#include < >在一块: #define 符号常量名 值 如:#define Zero 0 好处: 好处: 含义清楚 (#define Second 60) (#define (#define 一改全改 (#define PI 3.14)
3. 整型变量的溢出
main(){ i,j; int i,j; unsigned k,l,m; k,l,m; i=32767 32767; i=32767; j=i+1 j=i+1; l=65535 65535u l=65535u; m=l+2 m=l+2; printf("j=%d\n",j); printf("j=% n",j); printf("l=% n",l); printf("l=%u\n",l); printf("m=% n",m); printf("m=%u\n",m); }
3.2、整型变量 整型变量的分类:加上不同的修饰符 1 . 整型变量的分类 : 加上不同的修饰 符 , 整型变 量有以下几种类型; 量有以下几种类型; C 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:

c语言第03章

c语言第03章

活期存款一年后本息和为: p1=p0(1+r1) 一年期定期存款,一年后本息和为: p2=p0(1+r2) 两次半年定期存款,一年后本息和为:
r3 r3 p3 = p0(1 + )(1 + ) 2 2
6
3.1顺序程序设计举例

算法:
输入p0,r1,r2,r3的值 计算p1=p0(1+r1) 计算p2=p43; r 3 )
2 2
输出p1,p2,p3
7
3.1 顺序程序设计举例
#include <stdio.h> 定义变量同时赋予初值 int main ( ) {float p0=1000, r1=0.0036,r2=0.0225, r3=0.0198, p1, p2, p3; p1 = p0 * (1 + r1); p2 = p0 * (1 + r2); p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%f\n%f\n%f\n”,p1, p2, p3); return 0; }
\„ \ddd \“ 单引号 例 void main() { printf(“Y\b=\n”);\xhh 3位8进制数代表的字符 aaa }
转义字符:反斜线后面跟一个字符或一个代码值表示
<
双引号 运行结果: 2位16进制数代表的字符 屏幕显示:= 15 打印机输出:¥
C语言程序设计
第3章 最简单的C程序设计
19
C语言程序设计
第3章 最简单的C程序设计

3.2.3不同类型数据间的转换
1.隐式转换
什么情况下发生
运算转换------不同类型数据混合运算时 赋值转换------把一个值赋给与其类型不同的变量时 输出转换------输出时转换成指定的输出格式

C语言程序设计--第3章基本数据类型和表达式

C语言程序设计--第3章基本数据类型和表达式

2.实型变量
实型变量分为单精度(float型)和双精度(double型)。 如: float x,y; double z; / *定义x , y为单精度实数* / / *定义z为双精度实数* /
一个float型数据在内存中占4个字节(32位),提供7位有效数字 一个double型数据占8个字节(64位),双精度提供15 ~ 16位有 效数字 值得注意的是,实型常量是double型,当把一个实型常量赋给一 个float型变量时,系统会截取相应的有效位数。
§3.1 基本语法单位
任何一种语言都会根据自身的特点规定 它自己特定的一套基本符号。例如,英语的 基本符号是26个英文字母和一些标点符号。 C语言作为一种程序设计语言,也有它的基 本符号,程序就是由这些基本符号组成的。
§3.1.1 基本符号
程序中要对各种变量和各种函数起名,这些变量名、 函数名都是由语言的基本符号组成的。C的基本符号包 括: (1)数字10个(0~9); (2)英文字母大小写各26个(A~Z, a~z); (3)特殊符号,主要用来表示运算符,它通常是 由1~2个特殊符号组成。包括:
digits是一位或多位十进制数字(从0~9)。 1.575e9表示1.575×109
注意:
◆所有的实型常量均视为双精度类型。实型常量
的整数部分为0时可以省略,如下形式是允许的: .57,.0075e2,-.125,-.175E-2; 须为整数: 如e3,2.1e3.5,. e3,e等都是不合法的指数 形式。
不同的,而且取值范围与机器硬件有关,在 使用时请参阅有关手册。
◆需要指出的是:C语言没有提供布尔(逻辑)
类型,在逻辑运算中,它是以非零表示真 (TRUE),以数值0表示假(FALSE)。

3 数据类型.运算符与表达式

3 数据类型.运算符与表达式
THE C PROGRAMMING LANGUAGE
C语言程序设计
第6页
符号常量
一般来说,下列两种情况用符号常量比较方便。 1)当某一常数在程序中多处出现时,可事先定义一个符 号常量。 2)有时,程序中的常数是有意义的,但写一个具体数字,程 序的阅读者则很难明白该常数的意义,此时可定义一个符 号常量。 例如: # define PI 3.1415926 注意:1)表示常量的标识符一般用大写 2)不能给符号常量赋值 PI=6; 错误 思考题:使用符号常量的好处? 含义清晰;一改全改
C语言程序设计
第14页
3.4 实型数据 3.4.1 实型常量
注意:1)没有unsigned和signed 之分。 2)实型常量没有单、双精度数之分;但可以赋给 一个float型或double型变量。赋值时要注意有效 数字位数。 float a; a=12345.6789 (只能接受前7位) 3)C编译系统将浮点型常量作为双精度来处理
C语言程序设计
第11页
3.3.2 整型变量
有三种整型变量(int、short int、long int): 但也可以将变量的类型定义为无符号(unsigned int) 1)有符号基本整型:signed int signed int 2)无符号基本整型:unsigned int 3)有符号短整型: signed short int signed int 4)无符号短整型: unsigned short int unsigned short 5)有符号长整型: signed long int signed long long 6)无符号长整型: unsigned long int unsigned long
THE C PROGRAMMING LANGUAGE

C语言第3章(谭浩强)

C语言第3章(谭浩强)
17





void main( ) { int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d); } 运行结果:a+u=22,b+u=-14 结论:不同类型的整型数据可以进行算 术运算。
位数 16
取值范围 -215-(215-1) -32768—+32767 -32768—+32767
Short [int] Long [int]
短整型 长整型
16 32
16 16 32
Unsinged int 无符号整型 Unsinged short [int] Unsinged long [int] 无符号短整 型 无符号长整 型
8


④大写字母与小写字母意义不同, 被认为是两个不同的字符。一般变 量名用小写字母表示。 注意:常量名常用大写、变量名常 用小写!
year Day a_12 _abcdef #123 .com $100 1999Y a=b 1_2_3 +abcedfghi ∏ -5 等
9

3、变量要先定义后使用


可以改为double型) void main( ) {float x;double y; x=123456.789;y=123456.789; printf(“%f, %f”,x,y);} 结果为: 123456.789062, 123456.789000
29
§3.5
字符型数据
一、字符常量 1、在C语言中字符型常量是用单引号括 起来的一个字符。 如:’a‟、’A‟、’3‟、’?‟、’ ’、 ’$‟等。 2、以‚\”开头的转义字符,如\n不代表 字母n,而是代表换行。

C语言第3章数据类型

C语言第3章数据类型

序 设 计
C
6
§3.1 C语言的基本元素和数据类型
字符型 char 程序=算法+数据结构 基本类型 整型 int 单精度 float 实型(浮点型) 算法处理的对象是数据 双精度 double 数据结构是数据的组织形式 数组型 array 数据类型是指数据的内在表现形式 数据类型 结构体型 (含位段)struct (代码,存储,运算)。 构造类型 共用体型 union 枚举型 enum 自定义型 typedef 指针类型 (pointer) 空类型 void
内容提要:
C语言的基本元素和数据类型 常量与变量
各种数据类型的常量和变量
变量赋初值 各种类型的数据间的混合运算 几种基本运算符及其表达式
3
程 序 设 计
C
§3.1 C语言的基本元素和数据类型
一、符号集(字符集) C语言经常使用的基本符号共有以下五种: (1)大写字母:A~Z (2)小写字母:a~z (3)阿拉伯数字:0~9 (4)下划线:_ (5)标点符号和运算符
程 序 设 计
C
19
§3.4 实型数据
三、实型数据的舍入误差
虽然实型数据的表示形式有两种但在内存中均是以指 数形式存放 数 阶 若数据超过有效位,则被 小数 指数 符 符 舍去,故可能产生误差。 例3-4 #include <stdio.h> Void main( ) { float a, b; a=123456.789e5; b=a+20; printf(“a=%f, b=%f\n”, a,b); } a=12345678848.000000, b=12345678848.000000
C语言程序设计
C Programming Language

第3章基本数据类型与表达式

第3章基本数据类型与表达式
printf(―How do you do.‖);
不要将字符常量与字符串常量混淆。’a‘是字符常量, 而“a‖是字符串常量,二者是不相同的。例: char c; c=‗a‘; 是正确的 c=―a‖; 不正确 因为不能把一个字符串赋给一个字符变量。
字符常量与字符串的区别: (1)字符常量在内存中占一个字节,而字符串不 是; (2)C规定:在每一个字符串的结尾加一个“字 符串结束标志”,以便系统据此判断字符串是否 结束。C语言以‘\0‟作为字符串结束标志。即是 一个“空操作字符”。 注意:在写字符串时不必加‘\0‟,系统会自动加 上的。因此,字符串“a”,它在内存中实际上是 包含2个字符:‘a‟和‘\0‟。 在C语言中可以用字符型数组来存放字符串。
表2.1 Turbo C所支持的整型数据类型
关键字 int unsigned int 所占位数 16 16 最小取值范围 -32768~32767 0~65535
unsigned short int
signed short int
16
16
0~65535
同 int
long int
unsigned long int
例:向字符变量赋以整数。
main()
{ char c1, c2;
c1=97;
/*c1,c2为字符变量*/
c2=98;
printf(―%c printf(―%d } 输出结果: a 97 b 98 %c\n‖ , c1, c2); /* %c是字符输出的格式*/ %d\n‖, c1, c2);
例:大小写字母的转换
程序运行结果为: a+u=22, b+u=-14
3.4 实型数据
3.4.1 实型常量的表示方法
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
22
转义字符常量表
字符形式 \b \t \v \n \r \f \\ \„
\ddd \xhh
功能 退格(Backspace) 横向跳格 竖向跳格 换行 回车不换行 换页 表示反斜杠 \ 表示 ‘ (单引号) 用三位八进制数表任意字符 (ASCII值) 用两位十六进制数表示任意字符 (ASCII值)
#include <stdio.h> 运行结果: void main( ) a,b {char c1,c2; 97,98 c1=97;c2=98; printf(“%c,%c\n”,c1,c2); printf(“%d,%d\n”,c1,c2); }
字符变量存放字符ASCII码 char与int数据间可进行算术运算 char与int数据可以相互赋值
„\101‟ „\012‟ „\376‟ „\x61‟ „\60‟ „\483‟
------- „A‟ ------- ‟\n‟ ------- ‟‟ ------- ‟a‟ ------- ‟0‟ ------- ()
23
转义字符的使用
#include <stdio.h> void main( ) { printf("\101 \x42 C\n"); printf("I say:\"How are you?\"\n"); printf("\\C Program\\\n"); printf("Turbo \'C\'"); } 例 #include <stdio.h> void main( ) {printf(“Y\b=\n”); }
变量名,之间用逗号间隔。
int a,b,c; a=4; b=5; c=a*b; printf(“a*b=%d\n”,c); }
- 变量被定义后,其取值范
围也被确定。
15
整型数据的溢出
#include <stdio.h> void main( ) {int a,b; a=32767; b=a+1; printf(“%d,%d”,a,b); }
浮点型常量不分单、双精度,都按双精度double处理。一个浮 点型常量可以赋给一个float型或double型,根据变量的类型截 取浮点型常量中相应的有效位数字。
如:
float a; a=123456.123;
19
浮点型数据的舍入误差
由于浮点型变量的存储单元有限,因而小数部分的有效 数字是有限的,超过部分将舍去。 /*例3.4*/ 运行结果: 12345678848.000000
运行结果:(屏幕显示) ABC I say:”How are you?” \C Program\ Turbo ‘C’
运行结果: 屏幕显示:= 打印机输出:¥
24
字符变量
关于字符变量
字符变量用来存 放字符常量。 一个字符变量只 能存放一个字符 常量。 一个字符变量在 内存中占用一个 字节的空间。
r=2.5; a=PI*r*r;
在需要改变一个常量时能做到一 改全改 一般用大写字母表示

c=2*PI*r;
printf(“r=%f,a=%f;c=%f \n”,r,a,c); }
9
符号常量在程序中的应用
关于变量
变量的定义
变量是程序执行过程中其值可以改变的量。
变量的分类
整型变量 实型变量 字符变量
18
之前必须 有数字!
浮点型变量
分 类 所占位数 单精度(float) 32 双精度(double) 64 长双精度(long double) 128 有效数字 7位 15~16位 18~19位
变量的定义 float x,y; /*指定x,y为单精度浮点型变量*/ double z; /*指定z为双精度浮点型变量*/
枚举类型
数组
构造类型 指针类型
结构 struct
联合 union
空类型void
在程序中对用到的所有数据都必 须指定其数据类型
7
3.2
常量与变量
关于常量
常量的定义:
在程序执行过程中值不发生改变的量。
常量的分类: 按数据类型分类
–整型常量 –实型常量 –字符常量

4 -0.001 ’1’ -3 ’a’ 037 128.8 ’D’ 0xff 1.25e-3
第 3 章
数据类型、运算符及表达式
基本数据类型的存储方式和表示方式
不同类型间数据转换的原则与方法
有关运算符与表达式的运用
1
思考 一个C程序是由一个或多个函数组成,函数体由 若干条C语句组成,那么,C语句又是由什么组成?
C 程 序
主函数 …… 函数n
C语句1 C语句2
关键字 标识符 字符集
12
整型变量在内存中存储
符号位 0表示正整数 1 表示负整数
高字节
低字节
例如
采用补码表示 正整数补码与原码相同 负整数补码 = 原码(取反)+1
47
0x2F
原码 取反
0000,0000,0010,1111 1111,1111,1101,0000
加1得到 - 47的补码 1111,1111,1101,0001
#include <stdio.h>
void main( ) { printf(“%d,%o,%x\n”,123,123,123); printf(“%d,%o,%x\n”,023,023,023); printf(“%d,%o,%x\n”,0x12,0x12,0x12); }
上述程序中的\n 表示输出后回车换行!
按表现形态分类
–字面常量或直接常量 –符号常量
8
符 号 常 量

概念
#define PI 3.1415926 #include <stdio.h> void main( ) {
符号常量是一种特殊形式的常量, 即用一个标识符表示一个常量。

定义形式
#define
含义清楚
常量名
常量值
float r,a,c;

字符变量的定义格式: char 变量名表;
字符变量的赋值:
变量名=字符常量; 变量名=整型数据;


举例: char c; char ch1,ch2; c=97;ch1=„B‟;ch2=„C‟;
26
#include <stdio.h> void main( ) {char c1,c2; c1=„a‟;c2=„b‟; c1=c1-32;c2=c2-32; printf(“%c,%c”,c1,c2); 运行结果: } A,B
溢出不报错 会出现不可预料后果
运行结果:
32767,-32768
a:
b:
0111111111111111
32767 -32768
16
1000000000000000
使用整型数据时的注意事项:
1. 若某系统的C版本确定short int与int型数据在内存中占 据的长度相同,则二者等价。 2. 一个int型常量(-32768~+32767)可以赋值给int型变量 或long型变量。 3. 其值在-231~231-1内,而在-215~215-1外的整数只可赋值 给long型变量。 int a; a=111111; 不报错但结果不对 4. 常量无unsigned型,但一个非负整数可赋值给unsigned型 整数变量 ,但要注意值的范围。 unsigned a; a=-10; 不报错但结果不对 5. 长整型数的表示方法是在数值后面加字母l或L,如234L。 6. 不同的数据类型有不同的存储字长,使用时注意其取值范 围。
变量的命名(同标识符的命名) 变量的使用

先定义后使用,每一个变量指定为一确定类型 含义清楚 count name day 一般用小写字母表示
10
3.3 整 型 数 据 int
• 三种形式:
整型常量

- 十进制数 如:12、345、0 - 八进制数(以0开头) 如:012、045 - 十六进制数(0x开头) 如:0x12、0x345 十进制无符号整常数的范围为0~65535, 整型常量的类型: 有符号数为-32768~32767 - 根据其值所在范围确定其数据类型; 八进制无符号数的表示范围为0~0177777
……
C语句n
2
关键字
auto continue enum if short switch volatile break default extern int signed typedef while case do float long sizeof union char double for register static unsigned const else goto return struct void
取值范围:-215 ~ 215-1
-32768~32767
14
整型变量定义
定义形式
数值类型 变量名表;
等价于: #include <stdio.h>int a; int b; void main( ) int c;
{
说明
- 数值类型即类型说明符int、
short、long等。
- 变量名表可为一个或多个
概念:指用单引号(撇号)括起来的单个字符。 例 ‘a‟ „b‟ „=‟ „5‟ 字符常量的值:该字符的ASCII码值 字符常量的分类 - 一般字符常量 ‘x‟ „?’ ‘a‟ „A‟ „2‟ - 转义字符常量 以一个反斜杠‚\”开头的字符序 列,有特定含义。
•ASCII码(见教材P364附录A) 8 位对字符编码, 码值0-255 0~32 为控制字符(不可印刷字符) 33-255为可印刷字符 128-255 为扩展ASCII码
相关文档
最新文档