C语言课件第13章C语言初步.ppt

上传人(卖家):晟晟文业 文档编号:4688073 上传时间:2023-01-01 格式:PPT 页数:57 大小:221.73KB
下载 相关 举报
C语言课件第13章C语言初步.ppt_第1页
第1页 / 共57页
C语言课件第13章C语言初步.ppt_第2页
第2页 / 共57页
C语言课件第13章C语言初步.ppt_第3页
第3页 / 共57页
C语言课件第13章C语言初步.ppt_第4页
第4页 / 共57页
C语言课件第13章C语言初步.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

1、课程介绍o课程内容:课程内容:n本课程讨论如何使用C语言语言进行程序设计程序设计o课程目标课程目标:n1.熟悉C语言的基本概念n2.掌握基本的结构化程序设计方法n3.会读、会写简单的C程序,会调试o总学时总学时:541学习这门课程的方法o教师的作用n引导,答疑o学习方法nC语言是门技术性很强的课程,因此要多实践,多讨论。nC语言是门艺术性很强的课程,独立完成作业不仅是对技术的巩固,同时也是对提高自己编程修养的过程。n自学很重要,温故而知新。2参考书目o张书云 C语言程序设计习题解答与实验指导o谭浩强 C程序设计3第一章C语言概述o计算机系统的组成n硬件(CPU,内存,输入/出等)n软件o系统软

2、件系统软件(提供我们操作硬件的接口)o应用软件应用软件(为我们提供一定功能的服务)o软件是控制硬件来为我们提供服务的指令集合;这些指令就是用计算机能够识别的语言设计好的程序。4计算机语言的发展机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系5自然语言同计算机语言的异同o都是用来进行交流的n自然语言同人进行有情感的沟通n计算机语言是人下达给计算机的命

3、令o有一定的词汇,和语法规则n自然语言句法多变,仍然可以进行沟通n计算机语言固定,不能有变化o启示启示:计算机语言同人类的自然语言一样具计算机语言同人类的自然语言一样具有基本词汇和语法规则,但是必须遵守这些有基本词汇和语法规则,但是必须遵守这些规则才可以同计算机进行正常的沟通规则才可以同计算机进行正常的沟通6C语言发展过程o产生过程n时间:19721973n地点:美国贝尔实验室n目的:UNIX操作系统n设计人:Ken.Thompson和Dennis.M.RitchieoC标准(为了解决不同版本的问题)n标准C:K&R合著The C Programming LanguagenANSI C:198

4、3年n87 ANSI C:1987年n1994年国际标准的ANSI C7如何评价一种计算机语言o执行效率n高效很重要o对硬件的操作性能n是否有很大的控制权o程序代码书写简单n写程序不要太复杂o支持数据类型的能力n可以方便地进行程序设计8C语言的优缺点o是一种高级语言o是目前最高效的计算机语言o是目前唯一通用地可以操作硬件的语言o支持多种的数据类型,是适合设计系统软件和应用软件的一种语言。o缺点:n过于灵活,而不好掌握n在应用软件设计中,不够简洁。9为什么需要学习C语言o从专业的角度来看n本专业的很多课程都是建立在其基础上的n是本专业讨论计算机问题的交流工具n是信息相关专业的基本功。o从语言的角

5、度看n功能强大灵活,执行效率高n结构化语言,非常简洁nC语言应用广泛,存在大量的工作成果。10C程序示例/*example1.1 The first C Program*/#include#define OUT“Hello,World!”void main()printf(OUT);注释包含文件函数语句输出:Hello,World!预定义常量11例1.2/*example1.1 calculate the sum of a and b*/#include/*This is the main program */main()int a,b,sum;a=10;b=24;sum=add(a,b);p

6、rintf(”sum=%dn,sum);/*This function calculates the sum of x and y */int add(int x,int y)int z;z=x+y;return(z);运行结果:sum=34函数语句包含命令注释12C语言程序的主要组成o一个C程序有一个或多个函数组成n主函数(主函数(main),可以放在任何位置,并从其),可以放在任何位置,并从其开始执行。开始执行。n函数o包含文件o变量及常量o程序语句o注释行13C语言程序设计书写格式特点o习惯用小写字母,大小写敏感o适当的注释o一行仅写一句代码o可使用空行和空格o采用缩进的书写格式o统一的

7、命名规范。o例子:P.1114程序的开发过程o明确目标o确定方法,并实现o创建程序n编辑n编译n连接n运行15小结:C语言程序设计结构特点o函数与主函数n程序由一个或多个函数组成n必须有且只能有一个主函数main()n程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。o程序语句nC程序由语句组成n用“;”作为语句终止符o注释n/*/为注释例:/*This is the main /*of example1.1 */非法16第二章数据类型、常量与变量本章详细讨论各种数据的基本类型及其操作172.1 2.1 C C语言的数据类型语言的数据类型o数据是程序加工、处理的对象,同时

8、也是程序加工的结果。o数据的呈现方式包括n常量n变量o数据在计算机中根据不同的类型进行不同的保存方式。18数据类型总表数据类型基本类型构造类型指针类型空类型void自定义类型typedef字符型char枚举类型enum整 型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型int数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作19基本数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-3276832767(signed)short16-3276832767(signed)l

9、ong32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:20n字节和位o内存以字节为单元组成o每个字节有一个地址o一个字节一般由8个二进制位组成o每个二进位的值是0或101234567012345678910.7643251212.2标识符、

10、常量与变量o标识符n定义:用来标识变量、常量、函数等的字符序列n组成:o只能由字母、数字(09)、下划线组成,且第一个字符必须是字母或下划线o大小写敏感o不能使用关键字,和一些特殊标示符n长度:最长32个字符(不同的编译系统不同)例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above$123M.D.John3days#33char$123ab22关键字o是C语言中已经被预先定义并使用的标识符,它们在程序中起着特殊的作用。o标准的C语言定义了32个关键字(附录B),但是根据不同

11、的系统(MS C,Turbo C),还会有一些标示符被系统使用,成为关键字。oC99标准增加了新关键字:restrict,inline,_Complex,_Imaginary,_Bool。23关键字(续,选讲)o数据类型关键字ovoid:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果char:字符型类型数据,属于整型数据的一种int:整型数据,通常为编译器指定的机器字长float:单精度浮点型数据,属于浮点数据的一种double:双精度浮点型数据,属于浮点数据的一种oB 类型修饰关键字(4个)short:修饰int,短整型数据,可省略被修饰的int。long:修饰int,长整形数据

12、,可省略被修饰的int。signed:修饰整型数据,有符号数据类型unsigned:修饰整型数据,无符号数据类型oC 复杂类型关键字(5个)struct:结构体声明union:共用体声明enum:枚举声明typedef:声明类型别名sizeof:得到特定类型或特定类型变量的大小24关键字(续,选讲)o存储级别关键字(6个)auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参

13、数extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值25关键字(续,选讲)流程控制A 跳转结构(4个)return:用在函数体中,返回特定值(或者是void值,即不返回值)continue:结束当前循环,开始下一轮循环break:跳出当前循环或switch结构goto:无

14、条件跳转语句B 分支结构(5个)if:条件语句else:条件语句否定分支(与if连用)switch:开关语句(多重分支语句)case:开关语句中的分支标记default:开关语句中的“其他”分治,可选。C 循环结构(3个)for:for循环结构 do:do循环结构 while:while循环结构 26特殊的标识符o特定标识符:虽没列入关键字,却也有特定的含义。如:define include undef ifdef ifndef endif 等,它们是一些预处理命令(P.99)o好的用户标识符命名原则:n见名知意o例如:name,old,colorostudent_num可以改成stud_nu

15、m(文件名的长度)n不宜混淆 如l与I,o与027常量o程序运行时其值不能改变的量(即常数)o分类:n直接常量直接常量:从其字面上就可以看出o整型常量 o实型常量 o字符常量 o字符串常量n符号常量符号常量:用标识符代表常量o定义格式:#define 符号常量 常量如#define PRICE 30例 符号常量举例#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);运行结果:total=30028整型常量整常量o进制问题:对进位方式的一种规定o整数常量的进制:十进制,八进制(0),十

16、进制,和十六进制(x,X)。问题:0123 =()100 x123=()100Xff =()10问题:0123 =()100 x123=()100Xff =()10832912553126912457810119-5=49+7=16=(14)1229整型常量o整型常量的三种表示方法:n十进制整型常量十进制整型常量:由数字09组成,前面可有“+”、“-”。n八进制常量八进制常量:以零(零(0)开头)开头的整数,如026,0123,-011等。而089,078则不合法(?)。n十六进制常量十六进制常量:以以0 x或或0X开头开头的整数.十六进制数符:0 1 2 3 4 5 6 7 8 9 A/a

17、B/b C/c D/d E/e F/f 如:0 x12 0 x1a=0 x1A30如何确定整型常量的类型o通过常数的数值大小和标志来确定n例如:按数值的大小:o-3276832767之间的数据是short整型或者int整型o2147483647 2147483647之间的数据是long整型n例如:按标志o123L,是long整型,在数据的后面增加L,l标志31浮点型常量(实数)o表示方式:n十进制数形式:(必须有小数点)如0.123,.123,123.0,0.0,123.n指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3,123E2,1.23e4,而e-5,1.2E-3.5,4

18、.5e,.e3 ,2e3.1均为不合法的实数。n注意:其输出形式只能是规范化的结果。o实型常量的类型n默认double型n在实型常量后加字母f f或F F,认为它是float 型32&字符常量o定义:用单引号括起来的单个普通字符或转义字符.o字符常量的值:该字符的ASCII码值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 101 -A 012 -n 376 -x61 -a 60 -0 483 -()例:A-101-x41-65如 A65,a97,048,n10如 a

19、A?n 101o转义字符:反斜线后面跟一个字符或一个代码值表示例 转义字符举例 main()printf(101 x42 Cn);printf(I say:How are you?n);printf(C Programn);printf(Turbo C);运行结果:(屏幕显示)A B CIsay:”How are you?”C ProgramTurbo C例 main()printf(“Yb=n”);运行结果:屏幕显示:=打印机输出:33o字符常量与字符串常量不同&字符串常量o定义:用双引号(“”)括起来的字符序列o存储:每个字符串尾自动加一个 0 作为字符串结束标志h e l l o 0例

20、字符串“hello”在内存中a a 0例 a“a”例 空串 “”0例:char ch;ch=“A”;例:char ch;ch=A;34o概念:程序运行中,其值可以改变的量o变量名与变量值o变量定义的一般格式:数据类型 变量1,变量2,变量n;例:int a,b,c;float data;决定分配字节数和数的表示范围合法标识符2.4变量352.4.2整型变量o值为整数,取值范围应在具体计算机能表示的整数范围内。整型变量根据有无符号共分成6种,来表示不同大小的数字:n基本型intn短整型 shortn长整型 long n无符号整型 unsigned int o无符号短整型 unsigned sho

21、rt o无符号长整型 unsigned long36整型变量的溢出问题o整型变量的表达范围有限(表2-2)o当数据超出了最大范围会发生什么情况?n例如:int a=32767;a+1?n想想数据在内存中的存储n仪表盘的示例37浮点型变量o分类:n单精度,float:占4字节,n双精度,double:占8字节,表达数据的范围o误差n由于浮点型变量是由有限的存储单元组成,因此有效数字总是有限的。超过有效位的其它数字将会被舍去(表2-3)nfloat:提供7位有效数字ndouble:提供1516位有效数字例 float a;a=111111.111;/*a=111111.1*/double b;b=

22、111111.111;/*b=111111.111*/38字符型变量o字符变量仅仅能存放一个字符。n定义方式:char c1;o如何存放字符串呢?n字符数组o字符变量中存放的是ASCII码值(0255)(附录A)o可以参与数据的计算n例如:char c1=A;int b;b=c1+2;39编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1,b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数o变量初始化:定义时赋初值 o变量的赋值:定义完成以后,再对值进行修改 例:int a=2,b,c=4;float data=3.67;char ch=A;int x=1,y=1

23、,z=1;int x=y=z=1;o变量的使用:先定义,后使用例1 int student;stadent=19;/Undefined symbol statent in function main 例2 float a,b,c;c=a%b;/Illegal use of floating point in function main o变量定义位置:一般放在函数开头main()int a,b=2;float data;a=1;data=(a+b)*1.2;printf(“data=%fn”,data);变量定义可执行语句2.4.5变量初始化与赋值40没有字符串变量,用字符数组存放o字符串和字

24、符的区别o内存存储上的不同41例子:o#includeo#define PHI 3.14159oint main(void)oo int a=0123;o float f1=3.12;o double d1;o d1=PHI+f1+a+0 x23+1e5+Ao return 0;o42运算符和表达式C运算符算术运算符:(+-*/%+-)关系运算符:(=!=)逻辑运算符:(!&|)位运算符 :(|&)赋值运算符:(=及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(*&)求字节数 :(sizeof)强制类型转换:(类型)分量运算符:(.-)下标运算符:()其它 :(()-)43算术运

25、算符和表达式o基本算术运算符:+-*/%n注意:符号优先级n符号结合性n()的优先级例 5/2 =2 -5/2.0=-2.5例 5%2 =1 -5%2 =-1 1%10 =1 5%1 =0 5.5%2 ()例 3+4 5*6/744自增、自减运算符o符号+-n使变量值加1n使变量值减1o种类n前置+i,-i(先执行i+1或i-1,再使用i值)n后置i+,i-(先使用i值,再执行i+1或i-1)o计算结合方式n从右向左例 j=3;k=+j;j=3;k=j+;a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;/k=4,j=4/k=3,j=4/c=20,a=4/c=15,a=445

26、自增、自减运算符说明o+,-只能用于变量,不能用于常量和表达式。o注意清晰地书写o易混淆的地方n“”和“”的使用例 i+j 是 i+j 还是i+j例-i+i=3;i+?-i+-(i+)-3?-45+(a+b)+46赋值运算符和表达式o符号 ;将一个数据(常量或表达式)赋给一个变量o复合赋值运算符n种类:+=-=*=/=%=等 n含义:exp1 op=exp2 exp1=exp1 op exp2例 a=3;d=func();c=d+2;a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%347复合赋值运算符的一些说明o正确理解复合赋值运算符的含义n例如:X*=Y+3;X=X*Y+3;

27、o复合赋值运算符的优点n程序简洁(正在变得不明显)n看起来更专业(初学不重要)48赋值表达式o用一个变量和一个表达式连接起来的式子。其计算过程是先计算赋值运算符右面的数值再将结果赋给左边的变量o注意:n常量不能成为左值n一些表达式不能成为左值n赋值号,从右向左结合例 c=d+2;a=3;49赋值表达式例子oA=(a=5);oA=b=c=5;oA=5+(c=6);oA=(b=4)+(c=6);oA=(b=10)/(c=2);o(a=3*5)=4*3;oA=3*5=4*3;oA+=a-=a*a;50赋值表达式中的类型转换o当赋值符号左右不相同的时候,出现类型转换的问题。不允许对字符串进行转换。n不

28、会出现数据变异的情况:o少字节数向多字节数转换,如:char-short-long-float-double(精度)n可能会出现数据变异的情况o多字节数向少字节数转换,如:double-float-long-short-char,错误1:超范围,截断。o提示:通常情况下程序不要进行类型的转换,需要转换的时候要特别的注意。51逗号运算符和表达式o符号,作用是将两个表达式连接起来o形式:表达式1,表达式2,表达式no计算:逗号表达式的值等于表达式n的值o主要目的:简化书写o更多是为了得到每一个表达式的值#include main()int x,y=7;float z=4;x=(y=y+6,y/z)

29、;printf(x=%dn,x);例 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,352条件运算符与表达式o一般形式:expr1?expr2 :expr3o执行过程:expr1如果成立表达式的值是expr2否则expr3o条件运算符可嵌套 如 x0?1:(xb?a:cd?c

30、:d ab?a:(cd?c:d)例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a&c=z)?c-a+A:c53不同类型数据间的转换o隐式转换n什么情况下发生o运算转换-不同类型数据混合运算时o赋值转换-把一个值赋给与其类型不同的变量时o输出转换-输出时转换成指定的输出格式o函数调用转换-实参与形参类型不一致时转换n运算转换规则:不同类型数据运算时先自动转换成同一类型54doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例 char ch;int i;float f;double d;ch/i +f*d

31、 -(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f -d/l例 int i;float f;double d;long l;55n显式转换(强制转换)o一般形式:(类型名)(表达式)例 (int)(x+y)(int)x+y (double)(3/2)(int)3.6 o说明:强制转换得到所需类型的中间变量,原变量类型不变 例 main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生56练习oInt x=10,y=9;oInt a,b,c;oa=(-x=y+)?x:+y;ob=x+;oc=y;o问 a,b,c为多少?o如果int a=12,问a+=a-=a*a为多少?57

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C语言课件第13章C语言初步.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|