语言程序设计基础.ppt
《语言程序设计基础.ppt》由会员分享,可在线阅读,更多相关《语言程序设计基础.ppt(68页珍藏版)》请在三一文库上搜索。
1、,C语言基本符号”字母”,2,C语言使用的全部字符是ASCII码字符集: 前32个及第127个为控制字符完成规定的功能操作 序号从32到126是文字字符,它们用于显示和打印: 4857 数字:0、1、2 6590 大写英文字母:A 、B 、C 97122 小写英文字母:a、b、c 其他可打印的字符:!、 空白字符:空格符、换行符、制表符(跳格)等,C语言基本符号,3,专用符号:+ = & & != 等 关键字(32个): auto 、break、case 等 分隔符:主要有空格、逗号和分号 标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。,标识符的规定: 以字
2、母开头,包含字母和数字字符的一个连续序列,其中不得有空白字符(“_”作为字母看待); 标识符对大小写敏感 不能与关键字同名。,标识符判断,4,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 unsigned union void volatile while,Year Day ATOK if _ CWS _c
3、hange_to 123 X1 aTOK int k2 Win3.2 11,C语言的数据类型,5,指定数据的取值范围、可施加的运算 指明数据的存放方式及所占内存的大小(字节数),C语言的数据类型,6,Sizeof(long) 4,常量:程序运行时其值不能改变的量(即常数),8,直接常量: 整型常量 实型常量 字符常量 字符串常量 符号常量,直接常量整型常量 :,9,三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0x开头,后跟09,af,AF表示. 如0x123,0Xff 整型常量的类 根
4、据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量,直接常量实型常量 :,10,表示形式: 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式: (e或E之前必须有数字;指数必须为整数) 如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型,直接常量字符常量 :,11,定义:用单引号括起来的单个普通字符或转义字符. 字符常量的值:该字符的ASCII码值 转义字符:反斜线后面跟一个字符或一个代码值表
5、示 转义字符及其含义:,直接常量字符串常量 :,12,定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志 “hello” “” 字符常量与字符串常量不同:,符号常量,13,符号常量:用标识符代表常量 定义格式: #define 符号常量 常量 一般用大写字母 是宏定义预处理命令,不是C语句,作用: 增加程序的易读性; 提高程序的通用性和可维护性,例: #define PI 3.14159 #define NUM 35 #define NAME “Liu yu”,常量:程序运行时其值不能改变的量(即常数),14,直接常量: 整型常量 实型常量 字符常量
6、字符串常量 符号常量,大家对常量有什么疑问,变量:其值可以改变的量。,一个变量应该有一个名字,在内存中占据一定的存储单元。在该存储单元中存放变量的值。 注:区分变量名和变量值这两个不同的概念。,15,变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。,变量的定义和初始化,变量定义的一般格式: 数据类型 变量1,变量2,变量n; 变量初始化:定义时赋初值 数据类型 变量1=常量1,变量2 =常量2 ,变量n =常量n;,16,int a; int m,n; float x,y,z
7、; char ch;,int a=1; int m=3,n=2; float x=0.3,y=.36,z=123; char ch=a;,先定义 后使用,整型变量,整型数据在内存中的存放形式 数据在内存中是以二进制形式存放的,比如:,17,实际上,数值是以补码(complement)表示的。一个正数的补码和其原码的形式相同。下图就是用补码形式表示的。如果数值是负的,在内存中如何用补码形式表示呢?求负数补码的方法是:将该数的绝对值的二进制形式,按位取反再加1。,整型变量,18,谁能说出为什么整型数的范围是:,整数10如何表示,实型数据,在内存中的存放形式: 常用的微机系统中一个实型数据(floa
8、t)在内存占4个字节(32位)。与整型数据的存储方式不同,实型数据是按照指数形式存储的。 例如:123.5678在内在中存储为:,19,实型数据,实型数据的舍入误差: 由于实型变量是用有限的存储单元存储的,因此能提供的有效数字总是有限的,在有效位以外的数字将被舍去。由此可能会产生一些误差。 单精度保证7位有效数学;双精度15位,20,不要试图用一个实数去精确表示一个大整数 一般不要进行“相等”判断,而是判断两数差的绝对值小于某一个很小的数时则认为两者相等 避免直接将一个很大的实数与一个很小的实数相加或相减,否则会“丢失”这个很小的实数 根据实际要求选择单精度或双精度。,字符变量,字符型变量用来
9、存放字符常量,且只能存放一个字符 将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。,21,例如:字符a的ASCII代码为97,b为98,在内存中变量c1、c2的值,见右图(a)所示;实际上是以二进制形式存放的,见右图(b)所示。,字符变量,在C语言中没有专门的字符串变量,字符串常量如果要存放在字符串变量中是通过字符数组的方式实现的。,22,char c1,c2,c3,c4,c5,c; c1=a; c2=”a”; c3=abc ; c4=107; c5=6; c6=97;,23,例:向字符变量赋以整数。 main (
10、) char c1 , c2; c 1 = 97; c 2 = 98 ; printf (“ %c %c n ”,c1,c2); printf (“ %d %d n ”,c1,c2 ); ,程序运行的结果: a b 97 98 可以看到:字符型数据和整型数据是通用的。它们既可以用字符形式输出(用%c),也可以用整数形式输出(%d)。 注意:字符数据只占一个字节,它只能存放0 255范围内的一个整数。,例 :大小写字母的转换。 main ( ) char c1,c2; c1 = a ; c2 = b ; c1 = c1- 32; c2 = c2 - 32; printf (“ %c %c “,c
11、1,c2); ,运行结果为: A B 该程序的作用:将两个小写字母a和b转换成大写字母A和B。(从ASCII代码表中可以看到一个小写字母比它相应的大写字母的ASCII码大32。) 注意:字符型数据与整型数据可以互相赋值。,举例:,25,重点与难点: 优先级 结合性,算术运算符和算术表达式,基本的算术运算符: (加法运算符,或正值运算符。如:3+5、+3) (需要说明的是:两个整数减法运算符,或负值运算符。如:5-2、-3) * (乘法运算符。如:3*5) / (除法运算符。如:5/3) % (模运算符,或称求余运算符,%两侧均应为整型数据,如:7%4的值为3) 除法运算符“/”的运算结果与运算
12、对象有关。当除数和被除数均为整数时,除的结果也是整数;如果除数或被除数中有一个为负值,则舍入的方向是不固定的。多数机器采取“向零取整”的方法,如:-5/3=-1,取整后向零靠拢。,26,算术运算符和算术表达式,算术表达式和运算符的优先级与结合性: 算术表达式:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子。 运算对象包括常量、变量、函数等。 例如,a -b * c 是一个合法的C算术表达式。,27,算术运算符和算术表达式,C规定了各种运算符的优先级,上述表达式中,乘号优先于减号,因此,相当于a -( b*c )。如果在一个运算对象两侧的运算符的优先级别相同,如:a
13、- b + c ,则按规定的“结合方向”处理。 C规定了各种运算符的结合方向(结合性),算术运算符的结合方向为“自左至右”,即先左后右,因此b先与减号结合,执行a-b的运算,再执行加c的运算。,28,算术运算符和算术表达式,自增、自减运算符: 作用是使变量的值增1或减1。 + i ; - i ; (在使用i之前,先使i的值加(减)1) i+ ; i- ; (在使用i之后,使i的值加(减)1) 如果i的原值等于3,则执行下面的赋值语句: j=+i; j的值为4 j=i+; j的值为3,29,算术运算符和算术表达式,自增、自减运算符: 注意: 自增运算符(+)和自减运算符(-),只能用于变量,而不
14、能用于常量或表达式。如5+或(a+b)+都是不合法的。 +和-结合方向是“自右至左”。需知:符号运算符和“+”运算符同优先级,其结合方向也为“自右至左”。 例: -(i+)是先用i的原值3加上负号输出-3,再对i加1,不要认为先加完1后再加负号,输出-4,这是不对的。,30,算术运算符和算术表达式,有关表达式使用中的问题说明: 如果i的原值等于3,则: 避免出现歧义。如:i+i+i+应该写成:i=3 ; a=i+; b=i+; c=i+; d=a+b+c; 不要写成:i+j, 而应写成: (i+)+j的形式。 不要写成:printf (“ %d,%d”,i,i+); 其结果为:4,3而应写成:
15、j=i+; printf (“ %d,%d”, j , i) 其结果为:3,4,31,32,#include void main() int i=3; printf(“%dn“,i+); printf(“%dn“,i); i=3; printf(“%dn“,+i); printf(“%dn“,i); ,运行结果: 3 4 4 4,#include void main() int i=5; printf(“%dn“,(i+)+(i+)+(i+); printf(“%dn“,i); i=5; printf(“%dn“,(+i)+(+i)+(+i); printf(“%dn“,i); ,运行结果:
16、15 8 22 8,举例:,关系运算符和表达式,关系运算符 种类:= != 结合方向:自左向右 优先级别:低于算术运算符,高于赋值运算符,33,例 ca+b c(a+b) ab!=c (ab)!=c a=bc a=(bc) x=a=bx=(a=b) x=yz x=(yz),关系运算符和表达式,关系表达式 用关系运算符将2个表达式连接起来的式子称为关系表达式。这2个表达式可以是算术表达式、关系表达式、逻辑表达式、赋值表达式或字符表达式。 关系表达式的值是一个逻辑值,即真1或假0。 (注意,在判断时只要非0就表示真) 正确的关系表达式如:,34,a+bc+d ab=cd x!=d (x=2)=(b
17、=a),逻辑运算符和逻辑表达式,逻辑运算符 种类: ! & | 逻辑运算真值表:,35,已知A为真、B为假: A | B | C | D | E ? A&B&C&D&E ?,是不是必需要计算完表达式所有的项,逻辑运算符和逻辑表达式,36,优先级:,结合方向:,例 a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|84-!0 c&d,值为1,值为0,值为1,值为1,值为1,值为1,/(53)&2|(8(4-(!0) 值为1,赋值表达式,由赋值运算符(=)将一个变量和一个表达式连接起来的式子称为“赋值表达式”。 它的一般形式为:变量标识符=表达式 作用:将一个数据(常量或表达
18、式)赋给一个变量 如:a=5; b=a; c=.59;a=b=12;,37,复合赋值运算符 种类:+= -= *= /= %= = = &= = |= 含义: exp1 op= exp2 exp1 = exp1 op exp2,结合性:自右向左; 式子的值与变量的值相等,逗号运算符和表达式,C语言提供一种特殊的运算符逗号运算符。用它将两个表达式连接起来。如: 3+5,6+8 称为“逗号表达式”,又称为“顺序求值运算符”。 逗号表达式的求解过程:先求解表达式1,再求解表达式2,再求解表达式n。,38,形式:表达式1,表达式2,表达式n 结合性:从左向右 优先级: 15(最低的) 逗号表达式的值:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基础
链接地址:https://www.31doc.com/p-3307035.html