第3章C的基本数据类型
C语言程序设计教案第3讲 数据类型、运算符与表达式

<
>
2,实型变量的分类
说明: C并没有具体规定每种类型的长度 并没有具体规定每种类型的长度, 说明:ANSI C并没有具体规定每种类型的长度,精度和数值 范围.下面是常用的C 范围.下面是常用的C编译系统的情况 类 型 字节数 有效数字 最小取值范围 float 4 6~7 -3.4*10-38~ 3.4*1038 double 8 15~16 -1.7*10-308~ 1.7*10308 long double 16 18~19 -1.2*10-4932~1.2*104932
8
取反
<
>
2.
整型变量分类
基本类型: 基本类型:int 根据数值的范围分为: , 根据数值的范围分为:int,short,long , 根据有无符号(singed/unsigned)及范围可分: 及范围可分: 根据有无符号 及范围可分
类 型 举例: 举例: [signed] int unsigned [int] [signed] short [int] unsigned short [int] [signed] long [int] unsinged long [int]
C 数 据 类 型
构造类型 指针类型 空类型 void
定义类型 typedef
<
>
2
2.2 常量与变量
一,标识符
定义:用来标识变量名,符号常量名, 定义:用来标识变量名,符号常量名,函数 数组名,类型名, 名,数组名,类型名,文件名的有效字符序 列称为标识符.(即一个名字) .(即一个名字 列称为标识符.(即一个名字) 使用规则
32767,32767,-32768,8
<
C语言课件第三章

三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加1或减1
1)该运算符为单目运算符,其运算对象只能是 变量,不能为常量或者表达式。 例如: i++ 、x- - 都是正确的 5++ 、(x+y)++ 都是错误的
2)该运算符作前缀、后缀都可以 例如 i++、++i、i- - 、- -i 都是正确的
3)对变量而言 i++ 或者++i都相当于i=i+1 i- -或者- -i都相当于i=i-1
例如: main( ) { int i=3 , j=3; +i+++i; j---j;; printf (“%d, %d\n”, i, j ); }
运行结果:4,2
4)但如果作为表达式,前缀和后缀则不同: 后缀:先取值再运算(i++,先取i值,i再自加) 前缀:先运算再取值(++i,i先自加,再取i值)
2)强制类型转换运算符优先级高于算术运算符
float x=3.6; int y; y=(int)x%3+2;
x = ?3.6 y=?2
计算下列表达式的值 设 x=2.5, a=7,y=4.7
x+a%3 * (int)(7x7+.2y ) % 2 / 4
设 a=2,b=3,x=3.5,y=2.5
(float5).(0a+b )/2+(int3)(x)%(int2)(y)
例如: main() { int i=3; printf(“%d\n”+, +i+i+ ); printf(“%d”, i ); }
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章基本数据类型和表达式

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)。
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.1 基本数据类型⏹ 3.2 常量⏹ 3.3 变量⏹ 3.4 C语言的运算符和表达式⏹ 3.5 输入输出函数3.1 基本数据类型数据类型基本类型构造类型其他类型整型带符号无符号基本整型(int)短整型(short int)长整型(long int)整型(unsigned int)短整型(unsigned short int)长整型(unsigned long int)字符型(char)实型(浮点型)单精度型(float)双精度型(double)长双精度型(long double)枚举类型(enum)数组类型结构体类型(struct)共用体类型(union)指针类型空类型(void)3. 2 常量何谓常量——程序中直接书写的数据;例如:a=100; b=a+12;常量类型——以字面形式区分;例如: 12 (基本整型)3.5 (实型)123L (长整型)'A' (字符型)符号常量——用标识符代表一个常量。
3.2 常量3.2.1整型常量整型常量就是整常数,可以用三种进制形式表示:1.十进制数:以非0数字开头的数。
如123,-123等,其每个数字位可以是0~9。
2.八进制数:以数字0开头的数。
如0123,-0123等,其每个数字位可以是0~7。
3.十六进制数:以0x(或0X)开头的数。
如0xffff,0x1111,-0x123等,其每个数字位可以是0~9、A~F(或a~f)。
3. 整常量类型int 型常数:-32768~32767视为int常数;可赋给int、long型变量。
long型常数:在-2147483648 ~2147483647之内、但超出-32768~32767的数及带后缀l / L的视为long型常数;可赋给long型变量。
long int long-2147483648 -32768 0 32767 2147483647带后缀l 或L的数:long整型量的溢出若一个变量无法容纳下要存入的数,这种现象称为溢出,溢出将导致数据存储错误;在运算过程中也有可能产生溢出导致运算结果错,因此程序设计中应避免产生溢出。
c语言第3章 数据类型及表达式

•除 当除号两边都是整型量时,叫做整除 整除, 当除号两边都是整型量时,叫做整除,运算结果只保 留整数部分。 留整数部分。 当除号任何一边有实型量时,运算结果是实数。 当除号任何一边有实型量时,运算结果是实数。 #include <stdio.h> main() main() { float div; div=1/2; printf( %f %f\ ,div); printf(“%f\n”,div); }
–规则: 规则: 规则
–见名知意 见名知意 –不宜混淆 不宜混淆
请指出下列标识符的正误: 请指出下列标识符的正误: main、count、!count、new、5abc、if、do、L_5、who、a123、 main、count、!count、new、5abc、if、do、L_5、who、a123、 _A、_123、c#、 _A、_123、c#、r-3、printf
h e l l o , w o r l d \0 • 注意: 注意: 字符常量和字符串常量是两个不同的概念 字符常量和字符串常量是两个不同的概念
char ch; ch=‘A ; ch= A’; char ch; ch=“A ;// ;//错误 ch= A”;//错误
A
\0
\0
3.7 字符型数据
3.7.3 字符型变量
3.3 常量
常量 • 定义:程序运行时值不能改变的量,即常数。 定义:程序运行时值不能改变的量,即常数。 • 分类: 分类: 符号常量: 符号常量:用标识符表示具体值 • 定义格式: 定义格式: • 一般用大写字母 直接常量: 直接常量:直接写出具体值 • 整型常量 • 实型常量 • 字符常量 • 字符串常量 常量值 #define 标识符 常量值
C语言第3章(数据类型和表达式)2

二. 学习运算符应注意的问题
优先级
1. C语言规定了各种运算的优先级。 2. 优先级的规定符合思维习惯。 如:先乘除后加减。 3. 利用()提高程序的可读性。
结合规则
1. 运算符和运算对象的结合方向。 2. 左结合和右结合 10+2-9 ; ++-i
与运算量关系
要求运算量个数(单目/双目)和类型
(2) 强制类型转换运算:
形式: (数据类型)表达式 当需要做一些特殊的运算,必须使用强制类型转换 运算。
例1:int k=3; float x; 执行: x=1/k; 问x的值?
如何让x得到0.3333333的值? 例2:int a=3,b=4; float x=10.4,y=3.5; 表达式:(float)(a+b)/2+(int)x%(int)y的结果? [注意] (1)转换是暂时的,定义是永久的; (2)它是一个运算符, 单目运算, 优先级为2;
(2) 任何字符都可以用下面的形式表示:
\字符的ASCII值
三位八进制的表示:\ddd ; (d: 0~7); 两位十六进的表示: \xdd ; (d:0~ 9;A~ F ) 例1:字符常量 ‘A‟,还可以用: ‘\101‟ 和 ‘\x41‟ 来表示; 例2:字符常量‘0‟,可以用: ‘\x30‟,‘\060‟或‘\60‟表示 例3:字符常量‘\n‟, 还可以用: ’\012‟或‘\12‟ 和 ‘\x0A‟来表示;
单目运算符 双目运算符 三目运算符
三. 表达式
用运算符将运算对象按C的语法规则连接起 来的式子叫表达式。
例: 5 * b/c-1.5+„a‟ ;
(x+y)*(a+b)/(a-b); 12%5+sqrt(31);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
03
3
4
0100
04
4
5
0101
05
5
6
0110
06
6
7ቤተ መጻሕፍቲ ባይዱ
0111
07
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F
2. 实型常量
分为单精度实型常量和双精度实型常量。 单精度实数占四个字节,其数值范围是: 3.4×10-38≤|x|≤3.4×1038,它的有效位最
②指数形式
也称为科学计数法,分成尾数部分和指数部分。 尾数部分可以是整数形式或小数形式,指数部分 是一个字母“e”或“E”后跟一个整数。 2.1E5 (等于2.1×105),√ 3.7E-2 (等于3.7×10-2) √ 0.5E7 (等于0.5×107) √ -2.8E-2 (等于-2.8×10-2) √ E7 ,53.-E3 ,2.7E 。 ×
sum+=i;
i++; }
缩进if内
if语句满足条件后 要执行缩在其内的 sum+=i;
cout<<"the sum of even from 1 to"<<n<<"
is "<<sum);
第3章 C的基本数据类型
加强自学,有效读书:
上机遇到疑惑,(1/2结果是0,而不是 0.5)应该自己会在书上找答案
第3章作业: p59 四. 2,5,6,7,8 第4章作业: p84 三. 1,3,5,7,8 每章的选择题和填空题自己做,上机验证答案!
cin>>n; sum=0;
i=2;
缩进 While内
包含在while 语句 内部的要内缩两列!
While(i<10) {
if(i%2==0)
说明while语句内 有一if和i++复合起 来的复合语句。
多只有7位十进制数字。 双精度实数占8个字节,取值范围是:
1.7×10-308≤|x|≤1.7×10308,它的有效位能达到 16位十进制数字。
有小数形式和指数形式两种。
①小数形式 正、负号开头,有若干位整数部分,后跟一 个小数点,再有若干位小数部分。 如123.456,-21.37,12. ,12.0。
不正确╳ 1 count hi!there high..balance a+b a=1
原则:见名知义!!不产生歧义。
①在C语言中, 标识符中大小写字母是有区别的。 习惯上采用小写字母表示各种标识符,如变量名、 数组名、函数名等。各种语句也用小写字母,而 大写字母只用来定义宏名等,用的不多。
②不同的系统对标识符的长度有不同的要求, 有 的要求为6个字符,有的允许使用8个字符,而VC 系统下的有效长度为1至32个字符。
内存字节数 1 2 4 8 0
3.3 常量和变量 (p39)
常量是指在程序运行过程中其值不能被改变的量; C语言中有三种常量:
数值 常量
整型常量 单精度实型常量 双精度常量
5 123.4 1234567.89
字符 常量
用单引号括起的一个字 符,转义字符
‘a’, ’0’, ’$’ ‘\t’
字符串 常量
它们用来表示C语言本身的特定成份, 具有相应的 语义, 可构成所有的C语言语句。
12个标识符作为编译预处理的命令单词, 但使用 时前面应加“#”: define, elif, else, endif, error, if, ifdef, ifndef, include, line, progma, undef。
以基数0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F表示的数, 以0x作为前缀,作为十六进制数的标志。如 0x123, -0xF56, 0x7ED等。
逢二进一 逢八进一
逢十进一 逢十六进一
数制间的转换
1.非十进制转换为十进制:按权值展开即可,
An-1An-2…A1A0,n位M进制数 D=An-1Mn-1+An-2Mn-2+…+A1M1+A0M0 如 0x2F=2*161+15*160=47
1101B=1*23+1*22+0*21+1*20=8+4+0+1=13
2.十进制转换为非十进制:短除法
13 →015
47 → 0x2F
3.十六进制与二进制之间的转换:一位十六进制 数对应于四位二进制数。
十进制 二进制 八进制 十六进制
P4
0
0000
00
1
0001
01
0 1
0
2
0010
02
2
3
0011
③除 了 少 数 工 作 单 元 我 们 用 单 个 字 符 作 标 识 符 , 一般的应做到见名知义,以提高程序的可读性。 如用sum表示和, score表示成绩, max表示最 大等等。
关键字
ANSI C规定了32个关键字(保留字),不能再用作各 种标识符。auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while。
画第三章引言:2、3两章、理论和上机实践 互相促进学习。
第3章C的基本数据类型
3.1 标识符和关键字 3.2 基本数据类型 3.3 常量 和变量 3.4 运算符 3.5 表达式
3.1 标识符和关键字(p37)
标识符是C语言编程时用来标志识别的符号, 以字母开头,由字母、数字和下划线组成。
正确 √ count test123 high_balance PI a_1
用一对双引号括起的字符序列
“string” “a lot of”
3.3.1 常量
1. 整型常量也称为整型常数或整数。 整型常量按进制分可分为十进制整数,八进 制整数和十六进制整数。 ① 十进制整数以正负号开头,后跟0~9的若干 位数字构成。如123, -456, 789等。
3.3.1 常量 ② 以基数0,1,2,3,4,5,6,7表示的数,以数字0作为前 缀,作为八进制数的标志。如0123, -0456, 0765等。
3.2 C的基本数据类型
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作
3.2 基本数据类型 1. 基本数据类型 (p39 表3-2)
类型 char int float double void
位数 8 16 32 64 0
基本数据类型 值域
-128~127 -32768~32767 3.4e-38~3.4e+38 1.7e-308~1.7e+308