大学物理 第二章 课件

更新时间:2023-05-03 21:51:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

§2.1标识符

标识符:用来标志识别的符合。

用途:定义变量名、函数名、类型名、标号及自定义对象的名称。

定义:字母、数字、下划线组成,且第一个字符必须是字母或下划线。

例:合法标识符:Sum,name,class,_day,_worker, No123

例:非法标识符:A-B,$1,3day,Mr.Tom,#3*

标识符的长度不同系统的标识符长度不同,超出部分无效

例,8位有效长度: Student_zhangsan,Student_zhaoming

Turbo C标识符长度:1~32个字符

关键字

关键字:

C规定了32个关键字,作为系统保留使用,不能作为标识符使用。包括:数据类型符,类型修饰符,执

行语句。

编译预处理命令符:

使用了12个标识符,作为编译预处理命令单词,使

用时前面加“#”符号。

关键字或预处理命令符,必须使用空格或括号分隔。

●数据程序加工处理的对象及其结果●数据类型

数据在计算机内部的存储形式(占用的内存单元数量、编码方式、取值范围)及所允许进行的操作。

●常量

在程序运行过程中不允许改变的量●变量

在程序运行过程中允许改变的量一、基本概念

§2.2 数据与数据类型

C语言的数据类型

基本类型字符型char

整型int

实型

无值类型

单精度float

双精度double

构造类型数组

结构struct 联合union

枚举enum

指针类型

§2.2 数据与数据类型(续)

●C 语言基本数据类型有四种:◆字符型◆整型

◆实型◆无值型char int float

double void 类型说明符●C 语言有四种类型修饰符:◆短◆长◆有符号◆无符号short long signed unsigned 类型修饰符

注:类型修饰符可以与类型说明符配合在一起使用,也可单独使用C 语言采用类型说明符说明不同

的数据类型

2.21C 语言的基本数据类型 单精度实型 双精度实型

基本数据类型的数据存储格式和取值范围:类型占用内存字节取值范围数据存储格式char 1( 8位) -128 ~127 ASCII 码int 2(16位) -32768 ~32767 二进制补码float 4(32位) ±3.4*10-38 ~±3.4*10387位有效数字double 8(64位) ±1.7*10-308 ~±1.7*10308 15位有效数字无法表示全体实数

保存字符对应

的ASCII 码-215

1000,0000,0000,0000215-10111,1111,1111,1111

基本数据类型的数据表示与取值范围( TC )

不同的系统各类型占用的内存字节数不完全相同

1. 整型常量(3种形式)

●10进制●8进制●16进制

2.实型常量(2种形式)

●十进制

●指数2.3.1数值常量

:0~9

:0~7 以数字0开头

:0~9,A ~F /a ~f ,以0x 或0X 开头:符号、整数、小数点和小数:用e 或E 和表示指数部分§2.3常量

整型常数实例

?整型常量的不同表示方法:

●10进制:100 -8 0 +123

●8进制:010 024 0100

●16进制:0x38 0x10 0X10 0XFF 0xa ●整型常量的类型:

● 1.在整型表示范围之内,根据值大小默认类型● 2.在常量后面加l或L,则认为它是long int型●例如:都是long int型常量

●10进制:-123L 0L 432l

●8进制:010L024L0100L

●16进制:0x38L 0x1000L0XFF l x0a0000l

实型常数实例

?实型常量的不同表示方法:

●10进制:1.0 1. +12.0 -12.0 0.0 ●指数:1.e3 1.8e-3 -123e-6

等价于:1000. 1.8*10-3 -123*10-6●指数:-.1e-3 .1E-10

等价于:-0.1*10-30.1*10-10

单精度实数有效位数:7

双精度实数有效位数:15~16

长双精度实数有效位数:19

实数的溢出:超出下限,按零处理,超出上限无法表示

2.3.2字符常量

字符型常量:用单引号括起来的单个字符 实例:’A’’g’’#’’0’’2’ ’+’’,’’;’’(’’)’ 字符定界符:单引号’

字符型数据的存储格式:ASCII码(附录)如何表示不可显示字符?

如何表示定界符?

?字符形式功能使用举例●\0 字符串结束标志●

\n 换行(ASCII 码为10)printf(”\n ”);●

\t 横向跳格printf(”\t ”);●

\b 退格●

\r 回车(ASCII 码为13) ●

\f 走纸换页●

\\字符\(ASCII 码为92) ’\\’表示字符\●

\’单引号’\’’表示字符’●

\”双引号’\”’表示字符”●

\ddd 用8进制表示字符’a ’=’\141’’A ’=’\101’换行符’\12’●\x hh 用16进制表示字符’a ’=’\x 61’’A ’=’\x 41’换行符’\xa ’字符常量-转义字符

转义符\:将\后面的字符转换为其它含义

"\t\"Name\\Address\n"空串””例:"\"C is very easy.\"""He said\"ok.\"\n"

字符串常量

例:”go home.”1.字符串常量:用双引号括起来的字符列’g ’’o ’’’’h ’’o ’’m ’’e ’’. ’’\0’

10311132104111109101460占用内存9个字节占用内存1个字节’\0

’02.字符串长度:字符串中包含的字符数量

串长=8串长=0串长=15串长=17串长=131个空格”

’’’\0’320串长=1占用内存2个字节字符串长度与字符串占用的字节数不同字符串"a" 与字符’a ’的区别

§2.4变量变量必须先定义后使用

●变量:在程序运行过程中其值允许改变的量

●变量的定义:

[类型修饰符] 类型说明符变量列表;

例如:整型int i;

字符型char ch, str;

长整型long k=1, m=0x12345678,n;

双精度double x, y=1.0;

●变量说明意味着:确定了该变量占用内存单元的数

量,数据在内存的表示方式,数据的取值范围。

●C语言要求变量先定义后使用。

●变量习惯用小写字母表示。

●变量类型:字符型,整型,实型,枚举型、数组,

指针、结构体、…

枚举类型

1.枚举类型的定义

enum 枚举类型名{取值表};

例如,enum weekdays{Sun,Mon,Tue,Wed,Thu,Fri,Sat};

2.枚举变量的定义

(1)间接定义

例如,enum weekdays workday;

(2)直接定义

例如,enum[weekdays]

{Sun,Mon,Tue,Wed,Thu,Fri,Sat } workday;

使用:workday= Mon; workday= Sat;

printf(“%d\n”, workday);

k = ( workday ==Wed );

枚举类型

3.说明

(1)枚举型仅适应于取值有限的数据。

例如,根据现行的历法规定,1周7天,1年12个月。

(2)取值表中的值称为枚举元素,其含义由程序解释。

例如,不是因为写成“Sun”就自动代表“星期天”。事实上,枚举元素用什么表示都可以。

(3)枚举元素作为常量的集合是有值的──定义时的顺序号(从0开始),所以枚举元素可以进行比较,比较规则是:序号大者为大!

例如,上例中的Sun=0、Mon=1、……、Sat=6,所以Mon>Sun、Sat最大。(4)枚举元素的值也是可以人为改变的:在定义时由程序指定。

例如,如果enum weekdays {Sun=7, Mon=1,Tue, Wed, Thu, Fri, Sat};

则Sun=7,Mon=1,从Tue=2开始,依次增1。

变量初始化

变量在说明之后,没有固定的初始值,要先赋值(给定一个初始值),后使用。

变量初始化:

可以将变量说明与赋初值合一,在说明变量时同时完成。例:

char ch1 = …F', ch2 = '\n' ;

int x = -30, y =50, z=12;

double high = 28.5, w = 1e10;

不同存贮类别的变量初始化情况不同(全局、局部、静态等见第七章)。

●按运算类型分类(13类)

● 1. 算术运算符 2. 关系运算符● 3. 逻辑运算符 4. 位运算符

● 5. 赋值与赋值组合运算符 6. 逗号运算符●7. 条件运算8. 指针运算

●9. 求字节数运算符10.强制类型转换●11.分量运算符(. 及->) 12. 下标运算符●13.圆括号运算符

●按运算对象的数目分类(3类)

●◆单目运算●◆双目运算●◆三目运算目:进行运算时需要的操作数的数量

§2.5运算符

§2.51算术运算

运算符优先级别运算对象个数结合方向

++ 自增 2 1 自右向左 --自减 2 1

+ 、-正、负号 2 1

+加法运算42自左向右 -减法运算42

*乘法运算32

/除法运算 3 2

%求余运算 3 2

=赋值运算142自右向左

? 1.参加运算的对象都是int 型,结果截取为int 型

10/311/310.0/3 11/3.1/21./2 10/5*310/(5*3)?2.求余运算的对象必须是整型(常量或变量)

9%31%3 10%310%-3 -10%3-10%-3: 3:3:3.333333:3.666667:0

:0.5:6:0:0:1:1:1:-1:-1算术运算

自增自减运算实例1

●自增、减运算(++、--):只能用于整型变量。使变量加一或减一。●算符在变量前或后面的使用差别:

例:i++、i--、++k 、--k

i=i+1 i= i-1 k=k+1 k=k-1算符在前,变量值先做加(减)1运算,后引用变量值

int x =10,y=20;

int z1,z2;

z1= ++x; z2=--y;x y z1 z210 2011 1911 19

算符在后,变量值先引用,变量值再做加(减)1运算

int x =10,y=20;

int z1,z2;

z1= x++; z2=y--;x y z1 z210 2011 1910 20

x =3, z =3x =3, y =6, z =3*6=18x =3, y =6, z =2*6=12x =3, y =6, z =3*5=15x =3, y =6, z =2*5=10x =4, z =4*4=16

注意,以下操作是错误的:

x = ++(i+j)+1; j = ++ (5+x);例:(注:每个式子独立运算,不受前面式子运算结果的影响)已知:int x = 2, y = 5, z ;

z = ++x ;

z = ++x *++y ;

z = x ++*++y ;

z = ++x *y ++;

z = x ++*y ++;z = ++x *++x ;逻辑虽然正确,但实际编程中容易产生误

解,应当避免自增自减运算实例2

本文来源:https://www.bwwdw.com/article/8oqe.html

Top