C语言 数据类型、运算符和表达式

第2章 数据类型、运算符和表达式
回顾
程序是为执行一项任务而编写的有序指令集 C程序的组成
C语言的主要语法单位
C语言的特点 C程序的编译和运行过程 编译器将源程序转换成机器能理解的程序 连接器用于连接相关的目标文件以生成可执行程 序
2
本章要点 C语言的数据类型、运算符 C语言的常量和变量
9
2.1.2 变量
内存
编写程序时,常常需要将数据存储在内存 100 32 中,方便后面使用这个数据或者修改这个 数据的值。 通常使用变量来存储数据。使用变量可以 引用存储在内存中的数据,并随时根据需 要显示数据或执行数据操纵。
程序
存储 fahr
计算5 * (fahr - 32) / 9
将值存储为celsius

在标准C中: short int int 16位 long int 32位
16
16位
单精度浮点型
float 在 C 语言中用于存储单精度浮点数
float 32 位 10-38 至 10+38 ,7位有效数字
声明:
float selling_price;
初始化:
float selling_price = 11.3; selling_price = 65.90;
函数体结束
执行程序的输出结果为:
fahr=100, celsius=37
4
引号内的fahr和引号外 的fahr有区别吗?
2.1 常量和变量
int celsius, fahr; celsius = 5 * (fahr - 32) / 9; 数据

常量:在程序运行过程中,其值不能被改变 变量:在程序运行过程中,其值可以被改变
% *
+
42
43
21
64
65 ~ 90
@
A ~ Z
127
DEL (Delete键)
字符型应用举例
大写变小写
#include<stdio.h> int main()
//„A‟的ASCII码是65,
65+32=97, 正好是‟a‟的ASCII码
以下运算都合法: „b‟-‟a‟ „a‟-‟A‟; „D‟-‟A‟+1 „A‟+25
13
2.2.1 C的数据类型
14
数据在计算机内的存储
二进制:只用0和1两个数码表示数,逢2进1. 2——10 3——11 4——100 数在机器中是用二进制表示的,原因如下: (1)易于表示:开关的通断、电压的高低、电流 的有无可以分别表示0和1; (2)二进制电路简单、可靠; (3)具有很强的逻辑功能 ;
常量:5 和 9是整型常量(整数),自身信息能体现其类型 变量:在定义时指定,如:int celsius, fahr;
数据类型

5
2.1.1 常量
程序
常量是在程序中保持不变的量 常量用于定义具有如下特点的数据: 在程序中保持不变 在程序内部频繁使用 需要用比较简单的方式替代某些值
指令
标识符 关键字 常量 运算符 分隔符 等
C语言的基本语法单位
C语言的表达式
3
例2.1 求华氏温度100F对应的摄氏温度
#include <stdio.h> int main( ) main 为函数名 { 程序从这里开始运行 函数体开始 int celsius, fahr; fahr=100; celsius=5*(fahr-32)/9; printf(“fahr=%d, celsius=%d\n“, fahr, celsius); }
17
双精度浮点型
内存
float
213.5671435568967
double
64位
16 位有效数字 去VC下试试!
声明:
初始化:

double pressure_level; 取值范围:10-308 至 10308

pressure_level = 213.5671435568967; double dvalue = 35.4;
2.3.1 C运算符简介
1.运算符的分类 (1)按在表达式中与运算对象的关系(连接运算对象的个 数) 可以分为以下3类。 · 单目运算符:一个运算符连接一个运算对象。 · 双目运算符:一个运算符连接两个运算对象。 · 三目运算符:一个运算符连接三个运算对象
24
C 运 算 符
算术运算符:(+ - * / % ++ --) 关系运算符:(< <= == > >= !=) 逻辑运算符:((! && ||) 位运算符 :(<< >> ~ | ^ &) 赋值运算符:(= 及其扩展) 条件运算符:(?:) 逗号运算符:(,) 指针运算符:(* &) 求字节数 :(sizeof) 强制类型转换:(类型) 分量运算符:(. ->) 下标运算符:([]) 其它 :(( ) -)
无效名称
city
currency$
12
2.2 数据类型
基本数据类型
数据类型
数据
数值 2.175
非数值 Africa char
123 整型
非整型 9/12/2003 int 整型 非整型 floatThe quick brown fox Jackie short intChan double 数值 非数值 long int 999 9002.12 数据属于不同类别 TRUE
18
字符型
在线保险单
23 年龄:_____
保险总额:98340 _____
'M' 性别:_____
int/float
char
19
字符型常量
定义:用单引号括起来的单个普通字符或转义字符.
' ' '5' 'p' '$'
"2"
'2'
正确
'2' + '2' = 4
20
字符数据的存储——ASCII码

0 32 33 34 35 36

cost_price
变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、 principal 空格等 123rate lastname 变量名必须以字母或 _(下划线)开头 zip code 变量名不能包含空白字符(换行符、空格和制表符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特 殊意义,不能用作变量名 marks_3 discount% C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同 的变量
机器硬件只认识 0 44 ,和1,字符如何存储? 91 [ 空字符
空格 " # $ 45 92 \ ^ ` !——每个字符用对应的 46 . 0193 串表示 ] 47 / 94 国际统一标准 —— ASCII码 48 ~ 57 58 0 ~ 9 : 95 96
符号

符号

符号
37
38 39 40 41
#include "stdio.h" int main() { int a,b,max; scanf("%d,%d",&a,&b); //输入a,b的值 if(a>b) //如果a大于b,把a赋给max max=a; else max=b; //否则把b赋给max printf("max=%d\n",max); //输出max的值 return(0); }
8
例2.2 求圆柱体的体积
#include “stdio.h” int main() { float v,r,h; printf (“input r, h:”); scanf (“%f%f”, &r, &h); v=3.1415926 *r*r*h; printf (“v=%f\n”,v); return 0; }
3种逻辑运算符: &&(逻辑与) 如果两个操作数均为逻辑真,则结果为逻辑真,否 则为逻辑假,即“两真为真,否则为假”或“见假为假, 否则为真”。 ||(逻辑或) 如果两个操作数均为逻辑假,则结果为逻辑假,否 则为逻辑真,即“两假为假,否则为真”或“见真为真, 否则为假”。 !(逻辑非) 将逻辑假转变为逻辑真,逻辑真转变为逻辑假,即 “颠倒是否”,它是逻辑运算符中惟一的单目运算符。
如字符‟a‟ 用8位二进制 01100001 ,即十进制 59 ; 97 ~ 122 a ~ z &的97 60 < 123 { '如字符‟A‟ 61 用8位二进制 = 124 | 01000001 ,即十进制 字符数据可以其 ASCII 码值参与四则运算(很 (的65 62 > 125 } ) 63 ? 126 ~ 多运算)
#include “stdio.h” #define PI 3.1415926 int main() { float v,r,h; prinrf(“input r,h:”) scanf (“%f%f”,&e,&h); v=PI*r*r*h; printf(“v=%f\n”,v); return 0; }
6
常量的类型
整型常量:如32、100 实型常量: 如1.23 123.567e5 字符常量: „a‟ 、 „2‟ 、 „\n‟ 字符串常量:”This is a c program”
7
符号常量
为使程序易于阅读和便于修改,可以给程序中经 常使用的常量定义一个有一定含义的名字,这个 名字称为符号常量又称为宏常量。 如:#define PI 3.1415926 #define PRICE 2.5
合集下载

c语言的数据类型、运算符和表达式

c语言的数据类型、运算符和表达式

数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。

C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。

数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。

C 的数据类型分为基本数据类型和构造类型。

基本数据类型是系统定义的,用户可以直接使用。

构造类型由用户自行定义。

C 的数据类型如图所示。

C 标准没有规定各类数据所占用内存位数。

所以不同c 编译系统的各类数据所占用内存位数是不一样的。

上机使用时,应注意使用的c 编译系统的具体规定。

Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。

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

C语言程序设计教案第3讲 数据类型、运算符与表达式
12
<
>
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语言第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_数据类型、运算符和表达式

基本数据类型 ●字符型
字符常量是用单引号括起来的一个字符。例如’ 字符常量是用单引号括起来的一个字符。例如’a’,’b’,’=’,’+’,’?’都是合 都是合 字符常量。 语言中,字符常量有以下特点: 法 字符常量。在C语言中,字符常量有以下特点: 1.字符常量只能用单引号括起来,不能用双引号或其它括号。 字符常量只能用单引号括起来, 字符常量只能用单引号括起来 不能用双引号或其它括号。 2.字符常量只能是单个字符,不能是字符串。 字符常量只能是单个字符, 字符常量只能是单个字符 不能是字符串。 3.字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参 字符可以是字符集中任意字符。 字符可以是字符集中任意字符 与数值运算。 是字符常量, 与数值运算。如’5’和5 是不同的。’5’是字符常量,不能参与运算。 和 是不同的。 是字符常量 不能参与运算。 转义字符是一种特殊的字符常量。转义字符以反斜线“ 开头 开头, 转义字符是一种特殊的字符常量。转义字符以反斜线“\”开头,后跟一 是一种特殊的字符常量 个或几个字符。转义字符具有特定的含义,不同于字符原有的意义, 个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称 转义”字符。 广义地讲, “转义”字符。 广义地讲,C语言字符集中的任何一个字符均可用转义字 符来表示。 正是为此而提出的。 符来表示。\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六 和 正是为此而提出的 和 分别为八进制和十六 进制的ASCII代码。如\101表示字母 A" ,\102表示字母 代码。 表示字母" 表示字母"B",\134表示反 进制的 代码 表示字母 表示字母 , 表示反 斜线, 表示换行等。 斜线,\XOA表示换行等。 表示换行等

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,可以和常量一样进行运算

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 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:

数据类型、运算符与表达式

上一页 下一页 返回
6.1 一维数组
例6.4程序中第一个for语句逐个输入10个数到数组a中,然后把a[0]送 入max中。在第一个for语句中,a[1]到a[9]逐个与max中的内容比 较,若比max的值大,则把该下标变量送入max中,因此max在己 比较过的下标变量中总是为最大者。比较结束,输出的max值即 为10个整数的最大值。
2.5 字符型数据
2.5.1 字符常量
1.字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。例如,'
A','6','+'等。 2.转义字符
C语言还允许使用一种特殊形式的字符常量,就是以反斜杠 “\”开头的转义字符,该形式将反斜杠后面的字符转变成另外的 意义,因而称为转义字符。
下一页 返回
第2章 数据类型、运算符与表达式
2.1 C语言的数据类型 2.2 标识符、常量和变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 算术运算与算术表达式 2.7 赋值运算与赋值表达式 2.8 自增、自减与逗号运算
2.1 C语言的数据类型
C语言提供有丰富的数据类型。其数据类型及其分类关系如 图2-1所示。
int i,max,a【10」; printf(”input 10 numbers:\n");
上一页 下一页 返回
6.1 一维数组
for(1=0;1<10;1++) scanf(”%d”,&a[i]);
max=a[0]; for(i=1;i<10;i++)
if(a[i]>max) max=a[i]; printf("maxnum=%d\n",max);
形பைடு நூலகம்输出。

C语言程序设计 第2章 数据类型


2.2常量和变量 变量名与变量值的关系:
2.2常量和变量
变量的使用:先定义后使用
变量定义的一般形式:
数据类型 变量名1,变量名2,…,变量名n;
2.2常量和变量
➢ 凡未被事先定义的,系统不把它认作变量名,这就 能保证程序中变量名使用的正确
例:varname,在使用的时候误写成vaname
➢ 在定义变量时要指定变量的类型,在编译时就能为 变量分配相应的存储单元
5
2.2常量和变量
甘草 三七 干姜 葛根
枸杞 人参 陈皮 地黄
山药 当归 谷芽 黄连
贴上标签 加以区分
用标识符给变量起名字
2.2常量和变量 变量命名规则
➢ 只能由字母(a~z,A~Z)、数字(0~9)和下划线(_)构 成
➢ 第一个字符不能为数字 ➢ 不能与关键字同名
例:a9,_a, A_num √ 9a, a*num,int ×
控制语句:控制语句用于控制程序的流程。 C语言提供三类控制语句: ➢ 选择语句 ➢ 循环语句 ➢ 转移语句。 控制语句会在第三章和第四章详细介绍。
2.7 表达式与语句
复合语句: 复合语句由一对大括号括起来的一 条或多条语句组成。 例:{
turnOn(0,3); turnOn(0,4); turnOn(0,5); turnOn(1,4); }
2.7 表达式与语句
表达式语句:表达式末尾加上“;”就构成一条 表达式语句。 例:
s = 3.14 * r * r; 就是一条赋值表达式语句。表达式语句最后的 分号是语句中必不可少的一部分。
2.7 表达式与语句
函数调用语句:函数调用语句由函数调用加分 号构成。 例:
turnOn(1,1);

C语言第02章 数据类型、运算符与表达式


回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。

第2章 C语言,数据类型、运算符和表达式

运算符功能 对运算量(操作数)要求 运算符优先级别 结合方向 运算结果的取值 操作数个数 操作数类型 操作数形式(常量 or 变量) ( )
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档