第二章语法成分、数据类型、表达式和基本语句PPT课件_第1页
第二章语法成分、数据类型、表达式和基本语句PPT课件_第2页
第二章语法成分、数据类型、表达式和基本语句PPT课件_第3页
第二章语法成分、数据类型、表达式和基本语句PPT课件_第4页
第二章语法成分、数据类型、表达式和基本语句PPT课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021-12-201 Program Design in C LanguagePage C C语言的字符集和保留字语言的字符集和保留字 C C语言数据类型语言数据类型 常量、变量和标准函数常量、变量和标准函数 表达式表达式 基本语句基本语句第二讲第二讲第二章第二章 语法成分、数据类型、表达式和基本语句语法成分、数据类型、表达式和基本语句2021-12-202 Program Design in C LanguagePage语言层次语言层次1.字符集字符集2.单词单词3.语句语句4.函数函数5.文件文件6.工程工程2021-12-203 Program Design in C Language

2、Page21 C语言的字符集和保留字语言的字符集和保留字2.1.1 C语言的字符集语言的字符集C 语言源程序中出现的字符来自语言源程序中出现的字符来自C语言的字符集。语言的字符集。C C语语言言字字符符集集5252个英文字母个英文字母 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z1010个数字个数字 0 1 2 3 4 5 6 7 8 9空白符空白符 空格符、制表符、回车符空格符、制表符、回车符特殊符特殊符 ! # % & *

3、 ( _ ) - + = | ; : , . / ?2021-12-204 Program Design in C LanguagePage21 C语言的字符集和保留字语言的字符集和保留字六类单词:六类单词:标识符标识符 保留字保留字 运算符运算符分隔符分隔符 常量常量 注释符注释符2.1.3 C语言的词法约定语言的词法约定 在在C程序中,单词是构成语句的基本要素,在句法结构中有其特定的程序中,单词是构成语句的基本要素,在句法结构中有其特定的含义和作用。含义和作用。 1.1.标识符标识符用以标识变量、数组、函数、文件和各种对象名称的符号。用以标识变量、数组、函数、文件和各种对象名称的符号。命名

4、规则:命名规则:首字符必须是字母或下划线;首字符必须是字母或下划线;后续字符可以是字母、数字或下画线;后续字符可以是字母、数字或下画线;有效长度为有效长度为132个字符。个字符。说明:说明: 标识符区分大小写字母。标识符区分大小写字母。 不能和保留字和函数名同名。不能和保留字和函数名同名。countcount,student_namestudent_name,sumsum,test13test13,_number_number,Sum Sum M.JohnM.John,$123$123,hi!hi!,12xyz12xyz2021-12-205 Program Design in C Langu

5、agePage2.2.保留字保留字(关键字)关键字) 语言中具有特定含义的词。语言中具有特定含义的词。 (共(共3232个,见附录个,见附录)21 C语言的字符集和保留字语言的字符集和保留字5 5常量常量 在程序执行期间其值固定不变的量。在程序执行期间其值固定不变的量。 有数字、字符、字符串、符号、转义有数字、字符、字符串、符号、转义字符常量等(见字符常量等(见2.3.1)。)。3.3.运算符运算符 用于实现各种运算功能的符号。用于实现各种运算功能的符号。 C C语言运算符丰富,分六类语言运算符丰富,分六类4444种。种。 (见附录(见附录)4 4分隔符分隔符 两种分隔符:两种分隔符:逗号和空

6、格逗号和空格。 逗号用于分隔变量或参数,空格逗号用于分隔变量或参数,空格用于分隔单词用于分隔单词( (在保留字和标识符之间在保留字和标识符之间必须用空格分隔必须用空格分隔) )。 如:如: int a,b,c; max(x,y,z) int a;6 6注释符注释符 程序中用程序中用“/ /* *”和和“* */ /”括起来的字括起来的字符串。符串。 如:如: void main() /* 定义主函数。定义主函数。*/ gets(str); /*读入字符串读入字符串str*/2021-12-206 Program Design in C LanguagePage21 C语言的字符集和保留字语言的

7、字符集和保留字2.1.2 C语言的保留字语言的保留字语言中预定的具有特定含义的词语言中预定的具有特定含义的词保留字保留字关键字关键字。 分四类:分四类:1类型说明保留字类型说明保留字int、long、short、float、double、char、unsigned、signed、const、void、volatile、enum 、struct、union2语句定义保留字语句定义保留字if 、else、 goto、 switch、 case、 do、 while、 for、 continue、 break、 return、 default、typedef3存储类别说明保留字存储类别说明保留字au

8、to、register、extern、static4长度运算符保留字长度运算符保留字sizeof2021-12-207 Program Design in C LanguagePage22 数据类型数据类型2.2.1 C语言的数据类型语言的数据类型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型自定义自定义是C语言数据类型的基本型,其值不可再分解为其他类型。一种由单种或多种数据类型构造而成的数据类型。数组结构共用体一种特殊的数据类型,其值为某个量的内存地址。一种无返回值函数的数据类型。void用新的类型名替代已有类型名使用。用typedef定义2.2.2 C语言的基本数据类型语言的

9、基本数据类型 整型:(整型:(包括有、无符号的基本整型、短整型、长整型)包括有、无符号的基本整型、短整型、长整型) int,short,long,unsigned,unsigned short,unsigned long 实型:实型:(包括(包括单精度实型、双精度实型)单精度实型、双精度实型) float,double 字符型:字符型:用于表示和存储用于表示和存储ASCII字符。字符。 char 枚举型:枚举型:用于表示和存储枚举元素的值。用于表示和存储枚举元素的值。 enum2021-12-208 Program Design in C LanguagePage转换方式:转换方式:自动类型转

10、换自动类型转换强行类型转换强行类型转换22 数据类型数据类型2.2.3 不同数据类型间的转换与运算不同数据类型间的转换与运算在在C C程序中,当不同类型的量进行运算时,要转换成同一种类型然程序中,当不同类型的量进行运算时,要转换成同一种类型然后再进行运算。后再进行运算。floatdoublelongunsigned intcharshort低低高高例:例: 15+2.5* A 7.0 / 2 自动类型转换自动类型转换将低级类型自动转换成高级类型,然后再按同将低级类型自动转换成高级类型,然后再按同类型量进行运算。类型量进行运算。2021-12-209 Program Design in C La

11、nguagePage22 数据类型数据类型 强制类型转换强制类型转换将一个表达式的值转换成所需要的类型。将一个表达式的值转换成所需要的类型。例:例: (double)i (int)(f1+f2) (float)(14/4) 强制或自动转换都是一种临时性转换,并未改变变量的原类型。强制或自动转换都是一种临时性转换,并未改变变量的原类型。例:例:#includevoid main()int x=8; float f=6.85; printf(float)x=%f,x=%dn,(float)x,x); printf(int)f=%d,f=%fn,(int)f,f);一般形式:一般形式: (类型说明符

12、类型说明符)(表达式表达式)(float)x=8.000000, x=8(int)f=6, f=6.850000X,f的类型的类型并未改变并未改变2021-12-2010 Program Design in C LanguagePage23 常量、变量和标准函数常量、变量和标准函数2.3.1 常量常量 在程序运行期间,其值不能在程序运行期间,其值不能被改变的量被改变的量常量常量。C语言有以下几种常量:语言有以下几种常量: 整型常量整型常量 浮点型常量浮点型常量 字符型常量字符型常量 字符串常量字符串常量 符号常量符号常量1. 1. 整型常量整型常量整型常量就是整数。整型常量就是整数。十进制整数

13、十进制整数 12,65,0,-456,65535 有几种表示形式:有几种表示形式:无符号整数(无符号整数(后缀加后缀加“U”或或“u”) 15Lu,017u,0 xFu长整型整数长整型整数(后缀加后缀加“L”或或“l”) 12L,65536L;014L,020L; 0XCL,0X10000L十六进制整数十六进制整数 0 xC,0 x41,0 xFFFF八进制整数八进制整数 0123,0101,01777772021-12-2011 Program Design in C LanguagePage23 常量、变量和标准函数常量、变量和标准函数2. 2. 实型常量实型常量实型常量就是实数(实型常量

14、就是实数(浮点数浮点数)。)。两种表示形式:两种表示形式:1 1十进制小数形式十进制小数形式 如:如:4.58, 0.025, .123, 0.0, -234.0,2 2指数形式指数形式 格式:格式:m.nE|es ( 表示表示m.n )s10如:如:1.2E+5 (等于(等于1.21.2105=120000105=120000)3.4E-5 (等于(等于3.43.410-5=0.00003410-5=0.000034).123e3或或.123e+3 (等于(等于0.1230.123103=123103=123)E+5, 4.56E ( (错误错误) )2021-12-2012 Program

15、 Design in C LanguagePage3.3.字符常量字符常量用单引号括起来的单个字符用单引号括起来的单个字符字符常量。字符常量。如:如: a , A, =, +, 5转义字符转义字符可表示控制字符。可表示控制字符。以反斜线以反斜线“ ”开头的字符序列。开头的字符序列。转义字符转义字符控制字符控制字符ASCII值值功能功能nLF010换行换行tHT009水平制表位水平制表位bBS008退格退格rCR 013回车回车dddddd:3位八进制数位八进制数任意任意ASCII字符字符xhhhh:2位十六进制数位十六进制数任意任意ASCII字符字符常用的转义字符,见表常用的转义字符,见表2.

16、22.223 常量、变量和标准函数常量、变量和标准函数2021-12-2013 Program Design in C LanguagePage23 常量、变量和标准函数常量、变量和标准函数#includevoid main()printf(atbncbd100 x40n);例:转义字符使用。例:转义字符使用。abd4.4.字符串常量字符串常量用双引号括起来的字符序列。用双引号括起来的字符序列。如:如:“C Programming”, “$12.5”, “CHINA” 字符常量占一个字节,字符串常量占的字节数等于字符个数加字符常量占一个字节,字符串常量占的字节数等于字符个数加1 1。xx占一个

17、字节占一个字节“x”x占两个字节占两个字节02021-12-2014 Program Design in C LanguagePage5. 5. 符号常量符号常量用指定的标识符代替一个常量。用指定的标识符代替一个常量。例:求半径为例:求半径为r r的圆面积和圆周长。的圆面积和圆周长。#include#define PI 3.1415926void main() float r,area,circum; scanf(%f,&r); area=PI*r*r; circum=2*PI*r; printf(%f %f,area,circum);定义格式:定义格式: #define 标识符标识符

18、 字符串字符串23 常量、变量和标准函数常量、变量和标准函数areararea =r2circum=2r22021-12-2015 Program Design in C LanguagePage23 常量、变量和标准函数常量、变量和标准函数2.3.2 变量变量在程序运行过程中,其值可以改变的量。在程序运行过程中,其值可以改变的量。变量在使用之前要先说明(声明)。变量在使用之前要先说明(声明)。例:例:int sum;int x,y;float volt;char degree;变量与内存变量与内存每一个变量有名字,类型,值,位置和大小。每一个变量有名字,类型,值,位置和大小。当一个新的值赋予

19、变量时,新值替换原值。当一个新的值赋予变量时,新值替换原值。从内存中读取变量的值,其值不会改变。从内存中读取变量的值,其值不会改变。int x = 23;FF022BytesRAM23x = 90;90printf(“%d”, x);902021-12-2016 Program Design in C LanguagePage23 常量、变量和标准函数常量、变量和标准函数用来存放整型数据的变量。用来存放整型数据的变量。1. 1. 整型变量整型变量整型变量的分类表整型变量的分类表与操作系统、编译系统、与操作系统、编译系统、机器有关机器有关 在定义整型变量时,要注意数据类型允许的数值范围。在定义整

20、型变量时,要注意数据类型允许的数值范围。类型名称类型名称类型说明符类型说明符字节数字节数数值范围数值范围短整型短整型signed short int2-3276832767基本整型基本整型signed int4-21474836482147483647长整型长整型signed long int4-2147483648 2147483647无符号短整型无符号短整型unsigned short int2065535无符号基本整型无符号基本整型unsigned int404294967295无符号长整型无符号长整型unsigned long int4042949672952021-12-2017 P

21、rogram Design in C LanguagePage23 常量、变量和标准函数常量、变量和标准函数#include void main() int a, b; unsigned c, d; a=2147483647; b=-2147483648; c=2147483647; d= 2147483649; printf(a=%d,b=%dn, a, b); printf(c=%u,d=%u, c, d);a=2147483647,b=-2147483648c=2147483647,d=2147483648例:整型变量的使用。例:整型变量的使用。#include void main()

22、int a, b; unsigned c, d; a=2147483647; b=a+1; c=2147483647; d=c+1; printf(a=%d,b=%dn, a, b); printf(c=%u,d=%u, c, d);a=2147483647,b=-2147483648c=2147483647,d=21474836482021-12-2018 Program Design in C LanguagePage23 常量、变量和标准函数常量、变量和标准函数 结论:结论:a+1 的结果(的结果(2147483648) 超出了有符号整型变量所能容纳超出了有符号整型变量所能容纳的数值范围

23、(的数值范围(-21474836482147483647),这种情况称为),这种情况称为“溢出溢出”。分析:分析:2.2.实型变量实型变量用来存放实型数据的变量。用来存放实型数据的变量。实型变量分类表实型变量分类表0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a(2147483647)1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

24、0 0 0 0 0 0a+1(21474836482147483648)b(- 2147483648)2021-12-2019 Program Design in C LanguagePage#includevoid main()float f; double d; f=33333.33333; d=33333333333333.333333; printf(f=%fnd=%fn,f,d);2 23 3 常量、变量和标准函数常量、变量和标准函数f=33333.332031d=33333333333333.333500无无效效数数字字例:实型变量的使用。例:实型变量的使用。( (实型数据的有效数

25、字和精度实型数据的有效数字和精度) )2021-12-2020 Program Design in C LanguagePage3.3.字符型变量字符型变量用来存放字符常量的变量。用来存放字符常量的变量。 在内存单元中,每个字符型变量分配一个在内存单元中,每个字符型变量分配一个字节用于存放一个字符。字节用于存放一个字符。(实际上存放的是字符的(实际上存放的是字符的ASCIIASCII码值。)码值。)c1c1单元存放的是单元存放的是01000001(01000001(十进制十进制65);65);c2c2单元存放的是单元存放的是01100001(01100001(十进制十进制97)97) 。例:例

26、:char c1,c2; c1=A;c2=a;所以,在所以,在C语言中字符型数据和整型数据之间可以通用。即:语言中字符型数据和整型数据之间可以通用。即: 允许对整型变量赋字符值。允许对整型变量赋字符值。 允许对字符变量赋整型值。允许对字符变量赋整型值。 允许把字符变量按整型量输出。允许把字符变量按整型量输出。 允许把整型量按字符量输出。允许把整型量按字符量输出。 允许字符量与整型量进行运算。允许字符量与整型量进行运算。23 常量、变量和标准函数常量、变量和标准函数2021-12-2021 Program Design in C LanguagePage23 常量、变量和标准函数常量、变量和标准

27、函数#include void main() char c1, c2; c1=97; c2=98; printf(c1=%c,c2=%cn, c1, c2); printf(c1=%d,c2=%d, c1, c2);c1=a,c2=bc1=97,c2=98例:字符变量的使用。例:字符变量的使用。2021-12-2022 Program Design in C LanguagePage4 4变量的初始化变量的初始化在说明变量的同时给变量赋初值。在说明变量的同时给变量赋初值。例:例:int a=15,b; char c1=X,c2=Y;float f1,f2,f3=24.5;int a=20,b=

28、20,c=20; 23 常量、变量和标准函数常量、变量和标准函数int a=b=c=20; ( (错错) )2021-12-2023 Program Design in C LanguagePage23 常量、变量和标准函数常量、变量和标准函数2.3.3 标准函数标准函数C 编译系统提供的库函数。编译系统提供的库函数。(包括:输入输出函数、数学函数、字符和字符串函数、时间函数、动态存储分配函数等)(包括:输入输出函数、数学函数、字符和字符串函数、时间函数、动态存储分配函数等)调用格式:调用格式: 函数名函数名(参数参数,参数参数,)例:计算例:计算e ex x + e+ ey y 。#incl

29、ude #include void main() int x,y; float z; scanf(%d,%d,&x,&y); z=exp(x)+exp(y); printf(z=%fn,z);2,3 z=27.4745922021-12-2024 Program Design in C LanguagePage本节本节介绍介绍24 基本运算符及其表达式基本运算符及其表达式算术运算符算术运算符赋值运算符赋值运算符逗号运算符逗号运算符逻辑运算符逻辑运算符条件运算符条件运算符求字节运算符求字节运算符位逻辑运算符位逻辑运算符位移动运算符位移动运算符位自反运算符位自反运算符强制类型转换运

30、算符强制类型转换运算符指针运算符指针运算符下标运算符下标运算符分量运算符分量运算符基本运算符基本运算符位运算符位运算符特殊运算符特殊运算符C运算符运算符2021-12-2025 Program Design in C LanguagePage24 基本运算符及其表达式基本运算符及其表达式2.4.1 算术运算符与算术表达式算术运算符与算术表达式1.1.基本算术运算符基本算术运算符右结合右结合2+正正右结合右结合2-负负左结合左结合3/除除左结合左结合3%取模取模344优先级优先级左结合左结合*乘乘左结合左结合-减减左结合左结合+加加结合性结合性运算符运算符含义含义C C基本算术运算符基本算术运算

31、符例:例: 19/5 结果为结果为3 3 (整数相除截去余数。)(整数相除截去余数。) 22%4 结果为结果为2 2 (取模运算返回余数。)(取模运算返回余数。)2021-12-2026 Program Design in C LanguagePage24 基本运算符及其表达式基本运算符及其表达式2.2.自增自减运算符自增自减运算符含义含义运算符运算符优先级优先级结合性结合性功能功能自增自增+2右结合右结合使变量的值增使变量的值增1自减自减-2右结合右结合使变量的值减使变量的值减1使用形式使用形式 +i或或-i 变量变量i i先自增或自减先自增或自减1 1,再使用。,再使用。 i+或或i- 先

32、使用变量先使用变量i i,再自增或自减,再自增或自减1 1。 C C自增自减运算符自增自减运算符#include void main() int i=6, a, b; printf(%dn, +i); printf(%dn, i+); a=-i; printf(%dn, a); b=i-; printf(%dn, b); printf(%dn, -i+); printf(i=%dn, i);例:例:7777-6i = ?2021-12-2027 Program Design in C LanguagePage 在表达式中当多个运算符相连时,应自左而右地将若干个在表达式中当多个运算符相连时,应自

33、左而右地将若干个字符组成一个运算符。字符组成一个运算符。24 基本运算符及其表达式基本运算符及其表达式#includevoid main( ) int i, j, k ; i=1; j=1; k=i+j ; printf(“i=%d,j=%d,k=%dn,i,j,k); 例:例:k=(i+)+j;i=2,j=1,k=22021-12-2028 Program Design in C LanguagePage3 3 算术表达式算术表达式由算术运算符和括号将运算对象由算术运算符和括号将运算对象( (如常量、变量、函数等如常量、变量、函数等) )连接起连接起来的一个有值的式子。来的一个有值的式子。

34、数学式数学式C C语言算术表达式语言算术表达式dcba(a+b)/(c+d)ba sqrt(a)+sqrt(b)zyxx+y-z例:例:说明:说明:表达式的类型为该表达式值的类型。表达式的类型为该表达式值的类型。表达式的求值顺序:先按运算符的优先级执行,当一个运算对象表达式的求值顺序:先按运算符的优先级执行,当一个运算对象两侧的运算符优先级别相同时,则按结合性处理。两侧的运算符优先级别相同时,则按结合性处理。24 基本运算符及其表达式基本运算符及其表达式2(a+b) 2*(a+b)2021-12-2029 Program Design in C LanguagePage24 基本运算符及其表达

35、式基本运算符及其表达式2.4.2 关系运算符与关系表达式关系运算符与关系表达式关系运算关系运算(比较运算)(比较运算)即比较两个量的大小,比较的结果为即比较两个量的大小,比较的结果为“真真”或或“假假”。例:例:a3 如果如果a=8a=8,则结果为,则结果为“真真”;如果;如果a=1a=1,则结果为,则结果为“假假”。1.1.关系运算符关系运算符含义含义运算符运算符优先级优先级结合性结合性小于小于6左结合左结合小于等于小于等于6左结合左结合大于等于大于等于=6左结合左结合等于等于=7左结合左结合不等于不等于!=7左结合左结合C C关系运算符关系运算符2021-12-2030 Program D

36、esign in C LanguagePage2.2.关系表达式关系表达式用关系运算符将两个表达式连接起来的式子。用关系运算符将两个表达式连接起来的式子。24 基本运算符及其表达式基本运算符及其表达式一般形式:一般形式:其中:表达式其中:表达式1 1和表达式和表达式2 2可以是任何表达式。可以是任何表达式。 abm+nz)=(yz)ijk例:例:2021-12-2031 Program Design in C LanguagePageC C语言没有逻辑型数据。因此,语言没有逻辑型数据。因此, 在返回逻辑值时:在返回逻辑值时:用用1 1表示表示“真真”,用,用0 0表示表示“假假”; 在判断逻辑

37、值时:在判断逻辑值时:用非用非0 0代表代表“真真”,用,用0 0代表代表“假假”。24 基本运算符及其表达式基本运算符及其表达式例:例:#includevoid main()int a=15,b=18,c=10; printf(%d,%d,%dn,ab,abc);0,1,02021-12-2032 Program Design in C LanguagePage2.4.3 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式关系表达式只能表达一些简单的关系,如:关系表达式只能表达一些简单的关系,如:sum=1500y!=z即只能对一个条件进行测试。即只能对一个条件进行测试。而以下关系:而以下关系:

38、20 x100则不能用关系表达式表达。则不能用关系表达式表达。a!a真(1) 假(0)假(0) 真(1)逻辑非!逻辑非! 真值表真值表1.1.逻辑运算符逻辑运算符 C C逻辑运算符:逻辑运算符:含义含义运算符运算符优先级优先级结合性结合性逻辑非逻辑非!2右结合右结合逻辑与逻辑与&11左结合左结合逻辑或逻辑或|12左结合左结合24 基本运算符及其表达式基本运算符及其表达式2021-12-2033 Program Design in C LanguagePagea ab ba|ba|b真(1 )真(1 )真(1 )真(1 )真(1 )真(1 )真(1 )真(1 )假(0 )假(0 )真(1

39、 )真(1 )假(0 )假(0 )真(1 )真(1 )真(1 )真(1 )假(0 )假(0 )假(0 )假(0 )假(0 )假(0 )逻辑或逻辑或 真值表真值表2.2.逻辑表达式逻辑表达式 用逻辑运算符将表达式连接起来的式子。用逻辑运算符将表达式连接起来的式子。如:如: 1) 0 x10 x=0&x5或或x15xb?max=a:max=b例:例:(grade=60)?printf(“Passed”):printf(“Failed”);一般形式:一般形式:?:2021-12-2036 Program Design in C LanguagePage赋值运算符优先级为赋值运算符优先级为14

40、,仅高于逗号运算符,而低于其他所有运算符。,仅高于逗号运算符,而低于其他所有运算符。2.4.5 赋值运算符与赋值表达式赋值运算符与赋值表达式简单赋值运算符为简单赋值运算符为“=”;由;由“=”连接的式子称为(简单)赋值表达式。连接的式子称为(简单)赋值表达式。一般形式:一般形式: =1 1简单赋值运算符和简单赋值表达式简单赋值运算符和简单赋值表达式d=25c=a+bz=sqrt(x)+sqrt(y)k=i+-jx=(a=5)+(b=8)例:例:赋值运算符为右结合性赋值运算符为右结合性 a=b=c=d=10 a=(b=(c=(d=10)24 基本运算符及其表达式基本运算符及其表达式2021-12

41、-2037 Program Design in C LanguagePage赋值运算的类型转换,规则为:赋值运算的类型转换,规则为: 整型数据赋给字符型时,只把低整型数据赋给字符型时,只把低8 8位赋给字符变量。位赋给字符变量。字符型数据赋给整型变量时,整型变量的高八位补字符型数据赋给整型变量时,整型变量的高八位补0 0,低八位取,低八位取字符的字符的ASCIIASCII码值。码值。 整型数据赋给实型变量时,以浮点形式取值。整型数据赋给实型变量时,以浮点形式取值。 实型数据赋给整型变量时,只取整数部分。实型数据赋给整型变量时,只取整数部分。如如: K=8.88 (k值为值为8)如如: : f=

42、15 (f值为值为15.000000)如如: : K=A (k值为值为65)如如: : C=578 (C值为字母值为字母B)24 基本运算符及其表达式基本运算符及其表达式2021-12-2038 Program Design in C LanguagePage2 2复合赋值运算符和复合赋值表达式复合赋值运算符和复合赋值表达式复合赋值运算符是在简单赋值运算符前加双目运算符构成。复合赋值运算符是在简单赋值运算符前加双目运算符构成。共以下共以下1010种:种: +=,-=,*=,/=,%=,=,&=,=,|=24 基本运算符及其表达式基本运算符及其表达式例:例:a+=5x*=y+7x+=x-

43、=x*=xa=a+5x=x*(y+7)x=x+(x=x-(x=x*x)复合复合赋值运算符赋值运算符优先级优先级1414,右结合性。右结合性。2021-12-2039 Program Design in C LanguagePage2.4.6 逗号运算符和逗号表达式逗号运算符和逗号表达式逗号运算符逗号运算符“ , ”用逗号运算符将各表达式连接起来的式子称为用逗号运算符将各表达式连接起来的式子称为逗号表达式逗号表达式。 逗号运算符逗号运算符优先级优先级1515,是所有,是所有运算符中运算符中最低最低的。的。24 基本运算符及其表达式基本运算符及其表达式一般形式:一般形式:, #includevoi

44、d main()int a=2,b=4,c,y; y=(c=a*b),(b+c); printf(y=%dn,y);例:例:y=12 程序中程序中并非所有出现逗号的地并非所有出现逗号的地方都组成逗号表达式。方都组成逗号表达式。如:如:int a=2,b=4,c=6,x,y;printf(y=%d, x=%d, y, x); /* 分隔符分隔符 */2021-12-2040 Program Design in C LanguagePage31 C语言程序的基本语句语言程序的基本语句3.1 C语言程序的基本语句语言程序的基本语句 C语言语句分为五类:表达式语句、函数调用语句、控制语言语句分为五类:

45、表达式语句、函数调用语句、控制语句、复合语句、空语句。语句、复合语句、空语句。1表达式语句表达式语句由一个表达式组成一个语句。由一个表达式组成一个语句。 如:如: +p; /*自增运算表达式加分号构成语句自增运算表达式加分号构成语句*/ N+=10; /*复合赋值表达式加分号构成语句复合赋值表达式加分号构成语句*/ a+b; /* a+b表达式加分号构成语句表达式加分号构成语句*/2函数调用语句函数调用语句由一次函数调用加上分号由一次函数调用加上分号“;”组成组成 。形式:形式:函数名函数名( (实参列表实参列表) ) ;如:如: printf(“Very Good!n”); /*输出输出Ve

46、ry Good!*/ max(x,y,z); /*调用自定义函数调用自定义函数max,求,求x,y,z中的最大数中的最大数*/2021-12-2041 Program Design in C LanguagePage4.复合语句复合语句: 用用 括起来组成的一个语句括起来组成的一个语句 如如:if (ab) x=0;b=b+1;x=a;5.空语句:仅由一个分号构成的语句空语句:仅由一个分号构成的语句3.控制语句:控制程序的流程控制语句:控制程序的流程 如如:ifelse语句,while语句,return语句等。 如:如:while (getchar( ) != n ) ; /*空语句空语句*/

47、3.1 C3.1 C语言程序的基本语句语言程序的基本语句 2021-12-2042 Program Design in C LanguagePage功能:通过标准输出设备(如显示器)输出功能:通过标准输出设备(如显示器)输出 一组数据。一组数据。 输出形式由输出形式由“格式控制格式控制”字符串规定。字符串规定。3.3.1 格式输出:格式输出:printf( )函数和函数和scanf( )函数函数一般形式:一般形式: printf(“(“格式控制字符串格式控制字符串”,输出表列,输出表列) );3.3 3.3 数据输入输出数据输入输出 printf函数是一个标准库函数,它的函数原型在头函数是一个

48、标准库函数,它的函数原型在头文件文件“stdio.h”中。中。 1. printf( )函数函数2021-12-2043 Program Design in C LanguagePage格式控制格式控制:由由双引号双引号括起来的字符串,用于指定要输出括起来的字符串,用于指定要输出的数据的格式。的数据的格式。2)格式说明:用来指定需输出数据的输出格式的,)格式说明:用来指定需输出数据的输出格式的,其形式为:其形式为: % 格式字符格式字符 格式字符用以说明输出数据的类型,形式,长度,格式字符用以说明输出数据的类型,形式,长度,小数位数等。小数位数等。它包括:它包括: 1)普通字符:按原样输出的字

49、符;)普通字符:按原样输出的字符; 输出表列输出表列:需要输出的数据列表,彼此间用需要输出的数据列表,彼此间用逗号逗号分隔。分隔。它可是任意合法的表达式。它可是任意合法的表达式。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-12-2044 Program Design in C LanguagePage修饰符功 能l用于长整型、双精度型数据可加在格式符d 、o 、x 、u、f 前m数据的最小宽度n对实数,表示输出 n 位小数对字符串,表示从左端截取的n 个字符输出的数字或字符左对齐,右边填补空格用于

50、输出的修饰符用于输出的修饰符3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-12-2045 Program Design in C LanguagePage用于输出的格式字符用于输出的格式字符格式符功 能形 式d输出十进制整数%d 、%md 、%ld 、%mldo以八进制形式输出整数%o 、%mo 、%lox以十六进制形式输出整数%x 、%mx 、%lxu以十进制形式输出一个无符号的数%uc输出一个字符% cs输出一个字符串%s 、 %ms 、 % m.nsf以小数的形式输出实数%f、%m.nf、%l

51、fe以标准指数的形式输出实数%e 、 %m.neg根据实数的大小自动按f或e的形式选择输出格式% g3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-12-2046 Program Design in C LanguagePage例:格式输出:例:格式输出:printf()函数()函数 printf( a+b = %5.2 f , c );附加附加格式符格式符格式符格式符输出表列输出表列普通字符普通字符格式说明符格式说明符格式控制格式控制3.3.1 格式输出:格式输出:printf( )函数和函数和sc

52、anf( )函数函数2021-12-2047 Program Design in C LanguagePage(1) d格式字符格式字符d:按整型数据的实际长度输出:按整型数据的实际长度输出md:m为指定的输出长度。如果数据位小于为指定的输出长度。如果数据位小于m,则左端补以空格则左端补以空格;大于大于m,则按实际位输出。,则按实际位输出。例:例:printf(“%4d,%4d”,a,b); 若若a=12, b=12345,则输出,则输出 12,12345ld:输出长整型数据。:输出长整型数据。d d的输出范围为的输出范围为32768327673276832767,输出超过该,输出超过该范围的

53、整型数就会出错,此时用范围的整型数就会出错,此时用%ld%ld输出。输出。其输出格式和功能与其输出格式和功能与%d%d相同,如:相同,如:8ld8ld3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-12-2048 Program Design in C LanguagePage(2) o格式字符格式字符以八进制数形式输出整数,且不带符号。以八进制数形式输出整数,且不带符号。对于长整数可用对于长整数可用“lo”输出。功能同十进制输出。输出。功能同十进制输出。(3) x格式字符格式字符以十六进制数形式输出

54、整数,且不带符号。以十六进制数形式输出整数,且不带符号。对于长整数可用对于长整数可用“lx”输出。功能同十进制输出。输出。功能同十进制输出。(4) u格式字符格式字符用来输出用来输出unsigned型数据,即无符号数,输出十型数据,即无符号数,输出十进制数。进制数。用用o o,%x%x输出负数时会发生错误。输出负数时会发生错误。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-12-2049 Program Design in C LanguagePage(5) c格式字符格式字符 一个整数,如果在一个

55、整数,如果在02550255之间,也可用字符形式输出,之间,也可用字符形式输出,系统会将该整数转换成相对应的系统会将该整数转换成相对应的ASCIIASCII码字符;同时,一码字符;同时,一字符也可以用整数形式输出。字符也可以用整数形式输出。例:例:char c=a; printf(“%c”,c);用来输出一个字符。用来输出一个字符。int a=65;printf (“%c”,a); int c=A;printf (“%d”,c); 输出输出A输出输出65如如: :printf(“%3c”,c),则输出则输出c格式字符也可以指定输出字数宽度格式字符也可以指定输出字数宽度 A3.3.1 3.3.1

56、 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-12-2050 Program Design in C LanguagePage(6) s格式字符格式字符s:用来输出一个字符串:用来输出一个字符串例:例:printf(“%s”,“Hello!”); 输出输出Hello!,!,不包括不包括“ ”ms:输出的字符串占:输出的字符串占m列。如果字符串长度小于列。如果字符串长度小于m,则左端补以空格;长度大于则左端补以空格;长度大于m,则输出整个字符串。,则输出整个字符串。-ms:如果串长小于:如果串长小于m,则字符串向左靠,右补

57、空格,则字符串向左靠,右补空格,其余同上。其余同上。m.ns:输出的字符串占:输出的字符串占m列列,但只取字符串中左端但只取字符串中左端n个个字符,这字符,这n个字符输出在个字符输出在m列的右侧,左端补空格。列的右侧,左端补空格。-m.ns:其他意义同:其他意义同m.ns,右补空格。,右补空格。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数例:例:printf(“%3s”,“Hello!”); 输出输出Hello! printf(“%7s”,“Hello!”); 输出输出 Hello!2021-12-2051

58、 Program Design in C LanguagePage(7) f格式字符格式字符f:不指定字段宽度,整数部分全部输出,小数:不指定字段宽度,整数部分全部输出,小数部分输出部分输出6位。位。m.nf:指定输出数据占:指定输出数据占m列,其中有列,其中有n位小数。位小数。若数值长度小于若数值长度小于m,则左端补以空格。,则左端补以空格。-m.nf:功能同上,右端补以空格。:功能同上,右端补以空格。(8) e格式字符格式字符e:不指定字段宽度,系统自动给出:不指定字段宽度,系统自动给出6位小数,指位小数,指数部分占数部分占4位。其中位。其中“e”占占1位,指数符号占位,指数符号占1位,位

59、,指数占指数占2位。位。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-12-2052 Program Design in C LanguagePage例:例:printf(“%e”,123.456);输出:1.234560e+026 6位小数部分位小数部分4 4位指数部分位指数部分m.ne, -m.ne, me :中:中m,-的意义和前相同,的意义和前相同,n是指数据的小数部分输出的位数。是指数据的小数部分输出的位数。(9) g格式字符格式字符 用来输出实数,根据数值大小,自动选用来输出实数,根据数

60、值大小,自动选f或或e格式,且不输出无意义的零。格式,且不输出无意义的零。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-12-2053 Program Design in C LanguagePage#include void main() int a=1234; float f1=12.34567,f2=678.9; printf(1)%d,%6d,%-6d,%2d;n,a,a,a,a); printf(2)%f,%10.4f,%3.2f;n,f1,f1,f1); printf(3)%e,%e;n,f1,f2); printf(4)%8e,%14e;n,f1,f1); printf(5)%10.7e,%10.3e;n,f1,f1); 实例:实例:程序运行结果:程序运行结果:1)1234,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论