第二课数据类型与运算符本课学习目标
数据类型
常量与变量
算术运算符数据类型数据类型基本类型构造类型指针类型空类型整型实型字符型数组型结构体类型程序中对所有的数据都要指定数据类型常量与变量
常量:
– 程序中,其值不能被改变的量。
变量
– 程序中,其值可以改变的量。
常量范例
#include <stdio.h>
void main()
{
double r,area;
printf("请输入圆半径,");
scanf("%lf",&r);
area=3.1415926*r*r;
printf("%lf\n",area);
}
常量类型常量整型常量实型常量字符型常量
2,85,-56
2.175,8.563,-56.1254
a‘、’ 9‘
变量
15
内存中的数据数据 15
内存
应用程序要为每一项数据分配内存
– 需要多少内存
– 数据被存储在哪个通过变量,可以为内存中的位置提供一个有意义的名称变量
变量的组成要素
– 变量名
– 变量值
例如,max=10 10
变量值
max
内存单元变量范例
#include <stdio.h>
void main()
{
– Int x,y,z;
– X=5;
– Y=6;
– Z=x+y;
– Printf(“%d”,z);
}
标识符
什么是标识符?
用户对语言中的变量名、函数名进行自定义的对象名称。
标识符的命名规则
有效字符:字母、数字和下划线三部分,标识符必须以字母与下划线开始。
– 例如,area,s_name,_name,sum4,4letter
有效字符长度:一般不超过 8位 (turbo C)。
– 例如,student_name与 student_code是一样的标识符。
区分大小写
– 例如,name与 NAME是不一样的标识符标识符的命名规则
不能使用 C语言中的关键字
– 例如,include,if,int,float等 32个关键字
尽量不要使用 l与 o
– 例如,num1
良好的习惯:见名知意。
变量使用前必须先声明
– 例如,int area
关键字:
程序中一种具有特殊含义的单词。
课堂练习
找出下列合法的标识符:
Void a3_b3 for 2a define
_123 -abc do word if
case sigeof _sum
3Dmax
变量声明数据类型 变量名[=初始值]
变量类型
整型
#include <stdio.h>
void main()
{
int a;
int b;
int c;/*定义三个变量 a,b,c也可以写成 int a,b c;-*/
a=10;
b=20;/*给 a,b赋值 */
c=a*b;
printf("c=%d\n",c);
}
整型
存储数字数据
声明方式,int num;
不能存储类似于,Alan” 或,abc”等任何其他类型的数据
分配 16 位( 2 个字节)的内存空间,整数的范围是从 -32768 到 32767
示例,12322,0,-232
实型变量
浮点型
– 存储整数或包含小数位的值
– 声明方式,float num;
– 最高精度是 6-7 位
– 分配 32 位( 4 个字节)
的内存空间示例,23.05,56.5,32
双精度型
– 存储超出 float类型大小的限制的值
– 声明方式,double
num;
– 最高精度是 13-14 位
– 分配 64 位( 8 个字节)
的内存空间示例,23.34232324
整型、实型之间的区别数据类型 描述 尺寸(字节)
整形 -32768 ≤x≤32767 2
长整形 -2147483648 ≤x
2147483647
4
单精度 -3.402823E38 ≤x
-1.401298E-45,
1.401298E-45 ≤x
3.402823E38
4
精度是 6位。
注,根据计算机系统的不同,精度和尺寸有所不同。
char 类型
存储一个字符信息
声明方式,char gender;
gender=?m';
分配 8位( 1 个字节)的内存空间示例,'a','m','$','%','1','5'
字符型变量举例
#include <stdio.h>
void main()
{
char ch1,ch2;
ch1='a';
ch2='b';
printf("%c\n",ch1-32);
printf("%c\n",ch2+1);
}
数据类型及其范围 2-1
类型 近似大小(位) 最小范围
char 8 -128 到 127
unsigned 8 0 到 255
signed char 8 -128到 127
int 16 -32,768到 32,767
unsigned int 16 0 到 65,535
signed int 16 与 int 相同
short int 16 与 int 相同
unsigned short
int
8 0 到 65,535
变量声明举例
Void main ()
{
char abc; /*声明 abc */
int xyz; /*声明 xyz */
float length; /*声明 length */
double area; /*声明 area */
long liteyrs; /*声明 liteyrs */
short arm; /*声明 arm */
}
课堂练习
声明一个整型变量 sum_1
声明一个浮点型变量 sum_2
声明一个双精度型变量 sum_3
声明一个整型变量 sum_4
声明一个长整型变量 5_sum
变量初始化
声明时初始化
– Int sum_1=5;
– Float sum_2=3.0;
– Char sum_3=?a?;
过程初始化
– Int sum_1;
– Char sum_3;
– Sum_1=10;
– Sum_3=?b?;
算术运算符
什么是运算符
– 能作用于数据上的符号
– 代表作用于数据上的一种特定操作
运算符类型:
– 执行如下的操作
算术运算
比较 (关系 )运算
逻辑运算算术运算符一元运算符 操作 二元运算符 操作
- 一元减 + 加
++ 递增 - 减
-- 递减 * 乘
% 模
/ 整除或除法
―/‖的用法
#include <stdio.h>
void main()
{
int i=5;
printf("%d\n",i/3);
printf("%f\n",5/3.0);
}
算术运算符的优先级
算术运算符中,( -)求负运算级别最高,
( *,/,%)次之,( +,-)最后。
在相同优先级中,-(取负 )这一级按从右到左的顺序结合 ;其余的算术运算符按从左到右的顺序结合,
算术运算符的优先级 (续 )
考虑下面的例子,
- 4 + 3*-6/2-5+5
- 4+3*[-6]/2-5+5
- 4+[-18/2]-5+5
- [4+-9]-5+5
- [-5]-5+5
- -5
课堂练习
1,已有定义语句,int a=1,b=2,c=3;float
d=4;以下能正确表示数学式 的 C
语言表达式.
A) a/(b+c)*d ; B)a/(b+c)*1/d;
C)a/(c+b)/d; D)a/d/(b+c)
2,求表达式 3.6/6+1/2+55%10的计算结果;
dcb
a
*)(?
++和 —用法
概念:
– ++和 —是一种在本身的前提下 +1和 -1的操作。
– 例如,a++,++a代表
a=a+1;
– A--,--a代表 a=a-1
使用方法:
– 前置用法
++a,--a
– 后置用法
a++,a—
– ++a与 —a优先级别最高,a++和 a—优先级别最低。
– ++与 —的运算方向是“从右到左”
++的用法举例
++用法的例子
– 设 A=1
– A++,++A 执行后 A= 2;
– B= A++ 执行后 B= 1,A= 2;
– B=++ A 执行后 B=2,A=2;
++和 —举例
例题
设 a=3,c=2;
1.求 b=( a++)- c的值
b= 3- 2
b= 1; a= 3+1= 4;
2.求 b=(++ a)- c的值
a=3+1=4;
b=4-2
b=2;
课堂练习
设 a= 3,c= 2;
1.求 b=( a--)- c的值 b=? ;a=? ;
2.求 b= (--a)-c的值 b=? ;a=? ;
3求 b=(++a)-(--a)的值 b=?;a=?;
4求 b= (++a)-(--a)+ a--的值 b=?;a=?;
课后作业
写出下面表达式运算之后 a的值 (设开始时 a= 5)
(1)a+=a;
(2)a=(a--)+3;
(3)a=a+=2*3;
(4)a+=a-=a*=a=6
(5)求下列表达式的值,(设 int a=5,b=3;float
x=2.5,y=3.7;)
a) (x*a++)-y/2.0+a%b
b)(x*(++a))-y/2+a/b;