第02章C语言课件.ppt

上传人:本田雅阁 文档编号:3416364 上传时间:2019-08-23 格式:PPT 页数:50 大小:456.54KB
返回 下载 相关 举报
第02章C语言课件.ppt_第1页
第1页 / 共50页
第02章C语言课件.ppt_第2页
第2页 / 共50页
第02章C语言课件.ppt_第3页
第3页 / 共50页
第02章C语言课件.ppt_第4页
第4页 / 共50页
第02章C语言课件.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《第02章C语言课件.ppt》由会员分享,可在线阅读,更多相关《第02章C语言课件.ppt(50页珍藏版)》请在三一文库上搜索。

1、第2章 C程序设计的初步知识,2,2.1简单C语言的构成和格式,例2.1一个只输出一行信息的程序 #include void main( ) /*主函数*/ printf(“This is a C Programn“); ,3,例2.2求矩形面积 #include /*头文件*/ void main( ) /* main founction */ float a,b,area; /*说明与定义变量部分*/ a=1.2; b=3.6; area=a*b; printf(“a=%f,b=%f,area=%fn”, a,b,area); ,4,例2.3: 从键盘输入两个整数,并将这两个整数之和显示出

2、来。,int ADDxy(a,b) int a, b; int c; c=a+b; return(c ); ,main( ) int x,y,z; printf(“Please input two integers:n”) ; scanf(“%d%d” , ,主函数,子函数,5,通过以上例子可以看出: 1.C程序是由函数构成的。每个程序由一个或多个函数组成,其中必须有且仅有一个主函数main( )。 2.一个可执行的C语言程序总是从main函数开始执行,而不论其在整个程序中的位置如何。 3.每条语句和数据定义的最后必须有一个分号(;)。 说明:在以下三种情况下不允许有分号: a.所定义的函数的

3、名称后面不使用分号; b.在右花括号“”后面不使用分号; c.预处理语句后面不使用分号。,sum( ) ; ,while(total=2000) limit+; total=total+limit; ;,#include “stdio.h” ;,6,4.C对输入输出实行函数化。 5.C程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。 6.可用/*/对C程序中的任何部分作注释,注释可以写在程序的任何位置上,“/*”与“*/”也可不在同一行上。不可以嵌套使用。 7.在C语言中,大小写字母是有区别的。(C语言习惯用小写字母) 8. 书写程序时,最好使用缩进格式的形式。,7,2.2

4、标识符、常量和变量,1.什么是标识符,定义:用来标识变量、常量、函数等的字符序列 组成:只能由字母、数字、下划线组成,且第一 个字符必须是字母或下划线 长度:系统不同长度不同 命名原则: 见名知意 不宜混淆 如I与1, o与0,练习:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123,例2.4 main() int a, b; a=10;b=11; printf(“a=%d,b=%d”,a,b); ,8,2.分类,关键字(32个) 由系统定义,不能另作它用,如i

5、f, while 预定义标识符 由系统给定,但可以重新定义,另作它用,如printf,但不提倡。 用户标识符,注意:大小写敏感 不能使用关键字,9,32个关键字,auto break case char const continue default do double else enum extern float for goto if int long register return switch short signed sizeof static struct typedef volatile while,10,C语言数据类型,整型 字符型 单精度型 算术类型 实型(浮点型) 基本类型

6、枚举类型 双精度型 指针类型 数据类型 数组 构造类型 结构体类型 共用体类型,11,三、常量,1.定义:在程序运行过程中,始终不改变的量。 2.分类 直接常量 1)整型常量如1,2,50等自然数 2)实型常量如3.0,5.4等小数点的数 3)字符型常量如a,b,1,2(6章中介绍) 4)字符串常量如adfd等(11章中介绍) 符号常量 1)定义:可以用一个符号来代表一个常量,称为符 号常量。,12,【例2.5】计算圆的面积,半径为 5 cm。 程序如下:,main( ) int r; float area ; r=5 ; area=3.14*r*r; printf (“%fn “, area

7、) ; ,13,符号常量 2)定义格式#define 符号常量 常量,几点说明: 1)符号常量要用#define定义 2)用#define定义符号常量,其值在其作用域内 不能改变 3)符号常量名一般用大写,例 符号常量举例 #define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d“,total); ,14,四、变量,1.定义:程序运行过程中其值可以改变的量叫变量,变量用标识符表示,称为变量名。,例2.4 #include main() int a=0, b=0; a=10;b=11; pri

8、ntf(“a=%d,b=%d”,a,b); ,定义格式:数据类型 变量1,变量2,变量n;,15,2.变量的实质代表内存中的某个存储单元,10,11,几点说明: 1)变量名与变量值 2)系统为变量分配存储单元大小不固定,由 变量的类型决定。 3)变量应先定义后使用,16,2.3整型数据整型常量,1三种表示形式 十进制:09 八进制:07,以 0开头 十六进制:09,AF/af,以 0x或 0X 开头,例如: 10.60 -8 0 +123 010 024 0100 073 0x38 0x10 0X10 0XFF 0x0a,注意: 十六进制常量中可以使用大写字母AF,也可以使用小写字母af。 八

9、进制常量中不能出现数字 8 或 9 例如:018、0921非法,17,2.3.1整型常量,整型常量的类型: 短整型 short int 长整型 long int 基本整型 int 无符号型 unsigned 根据值大小默认类型。 整型常量后面加l或L,则认为是long int型 无符号整数在数尾加u或U 例如:123L、0L、432l、0x100l,18,2.3.2整型变量,类型 定义 类型名 变量名列表 例如 int i, j; long k, m;,1)int是基本整型类型名 2)在一个定义语句中可同时定义多个变量,变量间用 逗号分隔 3)一般系统为int开辟2个字节的内存单元,VC6.0

10、为int 开辟4个字节的内存单元 4)C语言中,可以在定义的同时给变量赋值,也称 为初始化,19,初始化,例如:int a=5,b=10+2; double x=23.568,y ; 表示定义变量并对变量存储单元赋值。 错误的初始化: int a=3+b,b=5; float m=n=23.16;,20,2.3.3整型数据的分类,方括号表示可选项 int 分配4 Byte,long分配4 Byte,21,2.3.4整数在内存中的存储形式,1、存储单位 位:内存中最小的存储单位,每个位中存放一个0或1. 字节:8个二进制位构成1个字节 字长:如果一台计算机以两个字节存放一条机器指令,则称该计算机

11、的字长为16位。 最低位:一个字节中最右边一位 最高位:一个字节中最左边一位 符号位:对于有符号数,最高位存放符号,若为正数,最高位置0;若为负数,最高位置1.,22,计算机中正、负数的表示,正数 例如正整数5,在内存中的二进制码为: 00000000 00000101 负数 例如负整数-5,在内存中的二进制码为: 11111111 11111011,原码,补码,23,数值的表示方法原码、反码和补码,原码:最高位为符号位,其余各位为数值本 身的绝对值 反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对

12、整个数加1,24,举例1,将-1转换成补码表示,+1,25,举例2,求-10的补码。,+1,26,由补码转换成原码,负数补码转换成十进制数: 最高位不动,其余位取反加1,例 求补码:11111001的十进制数是多少? 取反:10000110 加1: 10000111=-7,28,通过上面的学习,想想若用两个字节存放的最小整数是多大?请说明一下。,29,2.4实型数据,2.4.1实型常量 表示形式有如下两种: 十进制数形式:由数字和小数点及正负号组成。 (注意:必须有小数点) 例如:23.678 .678 23. 指数形式:由数字、小数点、字母e或E及正负号组成。(注:e或E之前必须有数字,且后

13、指数必须为整数) 例如:3.5E-5 2e3 E2 3.6e3.5 .e6 e,30,2.4.2 实型变量,实型变量可分为: 单精度(float型) 如: float x , y ; 双精度型(double型) 如:double a , b , c ; 说明: 1. float 型变量在内存中占4个字节; double 型变量在内存中占8个字节。 2. 单精度实数提供7位有效数字; 双精度实数提供1516位有效数字。 3. 一个实型常量不分float 和 double 型, 一个实型常量可以赋给一个float 型或 double 型变量,并根据变量的类型截取实型常量中相应的有效位数字。 例如:

14、 float a;double b; a=123456.789 ;b=123456.789 ;,31,2.5算术表达式,2.5.1基本算术运算符: + - * / % 说明: ()上述运算符均为双目运算符(即有两个操作数) ()“”“”作单目运算符时分别为正值、负值运算符。 ()在“”运算中,若操作数均为整数,则执行整除运算,舍去小数部分。例如:5/3=1 ()“”要求两侧均为整数,“”运算不能用于float 和 double 型数据 例如: 2,32,2.5.2 算术运算符的优先级与结合性,优先级 指各种运算符号的运算优先顺序 例如:算术运算优先于关系运算 算术运算中先 * / 后 + -,

15、结合性 指运算符号和运算对象的结合方向 分为:从左向右(左结合)和从右向左(右结合),表达式 由运算符将运算对象连接成的式子,它描述了一个具体的求值运算过程。,33,算术运算,算术运算符的优先级,没有乘方运算符,要计算a3要写作 a*a*a 的连乘,或用标准库函数 pow(a, 3) “/”的运算对象可为各种类型数据,但是当进行两个整型数据相除时,运算结果也是整型数据 “%”要求运算对象必须是整型数据,功能是求两数相除的余数,余数的符号与被除数的符号相同。,34,算术运算符的结合性,左结合性 例:若已定义int a=5,b=1,c=2则下式 a*b/c-1.5/a的值是 _,算术表达式,算术表

16、达式是用算术运算符和括号将操作数连接起来 的,符合语法规则的式子。 运算规则和要求 1)表达式中,括号要配对,运算时由内向外计算 2)优先级不同,则由高向低;优先级相同,则按结合 方向,35,2.5.3强制类型转换,转换方式 (类型名)(表达式),例如: (int)3.14 (float)(10%3),注意: (float) 22/5 与 (float) (22/5) 不同 错误的类型转换: (int) b=a+5 b= int (3*a),36,2.6赋值运算符和赋值表达式,赋值运算符 形式:变量名=常量或表达式 作用:将右边常量或表达式的值赋给左边的 变量 例如:a=3; b=c+d ;

17、读法:自右向左读 a=10 读作:把常量10赋给变量a b=a 读作:把a中的值赋给变量b 说明:内存中当前数据是最后一次所赋的那个数据。,37,几个相关说明,x=y的作用:将变量y里的内容赋给x所代表的存储单元,x中原有的数据被替换,赋值后y中的内容不变 x=x的作用: 赋值号右边的x代表存储单元的值 赋值号左边的x代表以x为标识的存储单元 n=n+1 使变量n中值加1后,再放入变量n ”=“左侧只能是变量。如a+b=c(X) “=”右边可以是个赋值表达式。 如a=b=7+1(T) 但a=7+1=b(F) 赋值表达式的值就是最左边变量的值,38,复合赋值表达式,复合赋值运算符:在赋值符“=”

18、之前加上其它运算符 共有10种复合赋值运算符 += ,=, ,&, =, |=,39,练习,1、有变量a,其值为9, 计算表达式a+=a-=a+a的值 2、写出顺序执行下列表达式运算后x的值: 1. x=a=b=10 2. x=25%(c=3) 3. x*=x+=x-=x,40,赋值运算中的类型转换,赋值过程中的类型转换规则: 使赋值号右边表达式值自动转换成其左边变量的类型,例 int i; i=2.56; /结果i=2;,例 float f; int i; i=10; f=i; 则 f=10.0,问题:如果在表达式 中各运算量类型不同 该如何判别最后值的 类型?,41,例 char ch;

19、int i; float f; double d;,ch/i + f*d - (f+i),42,2.7自增、自减运算符+ - 作用:使变量值加1或减1(常用于循环语句) 种类: 前置 +i,-i (先执行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再执行i+1或i-1),例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,43,自增、自

20、减运算符+ - 作用:使变量值加1或减1 种类: 前置 +i,-i (先执行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再执行i+1或i-1),说明: + - 不能用于常量和表达式,如5+,(a+b)+ + -结合方向:自右向左 优先级:- + - -* / % -+ - (2) (3) (4),例 i=3; printf(“%d,%d”, +i,i);,例 i=3; printf(“%d,%d”,+i,i); /4,3,例 j+k;,(j+)+k;,44,逗号运算符和表达式 形式:表达式1,表达式2,表达式n 作用:将两个表达式连接起来 结合性:从左向右 优先级: 15 逗

21、号表达式的值:等于表达式n的值 用途:常用于循环for语句中,例 a=3*5,a*4 a=3*5,a*4,a+5 例 x=(a=3,6*3) x=a=3,6*a 例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c);,/a=15,表达式值60,/a=15,表达式值20,/赋值表达式,表达式值18,x=18,/逗号表达式,表达式值18,x=3,/1,2,3,/3,2,3,45,2.8字符型数据,2.8.1字符常量 1 .字符常量:用单引号括起来的一个字符。 例如: a A $ ! 注:a与A是 的字符常量。

22、,不同,2.说明 单引号中的空格符也是一个字符常量 字符常量只能包含一个字“abc” 字符常量只能用单引号括起来 字符常量在内存中占用一个字节 字符常量的值:该字符的ASCII码值,如 A65, a97, 048 , n10,46,2.8.2转义字符,1.定义:以一个开头的字符序列或代码值,例: main() printf(“Welcome C world! n ”); ,47,转义字符的使用,例 #include main() printf(“ ab ct derftgn”); printf(“htibbj kn”); ,48,说明:,1.“ddd” 与“xhh”分别表示用八进制数或十六进制

23、数表示一个字符。如: 123 x65 129 2.由于 ”在C语言中都有特殊的意义,故要想在字符串中使用它们,须在其前面再加上一个反斜线。 例如: 反斜线 单引号 ” 双引号 3.若反斜线出现在以上未提到的字符前,则反斜线被忽略,而该字符就是它的字面表示。 例如: c 表示字符 c,例:main() printf(“ctlanguagsberCn”); printf(“istusef165x6e”); ,屏幕输出: C language is usefun,49,注:字符常量与字符串常量不同,定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符 串结束标志,故字符

24、个数为n的字符串在内存中应占n+1个字节。,字符串常量,50,2.8.4字符变量(存放字符常量的变量),定义形式:char 标识符1,标识符2, ,标识符n 例如: char c1=*, c2, c3=A, ch ; 说明: 1.字符变量在内存中占一个字节。 2.在内存中,是把字符对应的ASCII码值放到存储单元中. 3.字符型数据与整型数据之间可以通用.,练习: 1.以下不合法的变量名为: (A)_123 (B)IF (C)e4 (D)float 2.判断下列字符串的长度: “ 054 ” “x56”cta ” “ntbab”,例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */,3 输出 ,输出 V”c a,6 输出 ab,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1