《C语言新教材PPT课堂课件-第1章程序设计概述.ppt》由会员分享,可在线阅读,更多相关《C语言新教材PPT课堂课件-第1章程序设计概述.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第1 1页页页页第第第第2 2页页页页第一章第一章 C C语言程序设计概述语言程序设计概述C语言既可作为系统软件的程序设计语言,又可作为应用软件的程序设计语言。尤其是当今计算机应用极为广泛,软件的设计、编写质量要求高,经常与硬件部分打交道,如:界面设计等,所以用C语言编写是最理想的。因而C语言也是当前计算机语言中用得最广泛的语言之一。第第第第3 3页页页页 1.1 1.1 程序与程序设计语言程序与程序设计语言一、程序一、程序是用计算机语言描述的某一问题是用计算机语言描述的某一问题的解决步骤,是符合一定语法规则的符号的解决步骤,是符合一定语法规则的符号序列序列 。二、程序设计语言的几个阶段
2、包括:二、程序设计语言的几个阶段包括:1、机器语言2、汇编语言3、算法语言4、面向任务的程序设计语言5、面向对象的程序设计语言第第第第4 4页页页页二二、语语 言言 的的发发 展展 过过 程程1960年出现了Algol60语言,但该语言主要面向问题,与硬件较远,故英国剑桥大学推出了CPL(CombinedProgrammingLanguage)1967年,MatinRichards对CPL进行改进、简化、推 出 了 BCPL(BasicCombinedProgrammingLanguage)1970年,美国贝尔实验室Ken Thomson 以BCPL为基础,再次简化推出了B语言,并写了第一个U
3、NIX系统。第第第第5 5页页页页美国贝尔实验室D.M.Ritchie在B语言基础上设计出了C语言,并用其将UNIX系统全部改写并实现。经进一步改进,至1977年出现了与具体机器无关的C编译文本,从而使C语言广泛应用,各种机器皆可使用。1978年,美国Brain W.Kernighan与Dennis.M.Ritchie 联合出版一书The C ProgrammingLanguage成为ANSIC之基础。第第第第6 6页页页页1983年,美国标准化协会(ANSI)制定了ANSIC。ANSIC为基础:不同机器有不同版本,尤其是函数均应参考相应的机器。第第第第7 7页页页页 1.2 C语言的发展及特
4、点语言的发展及特点只有通过学习,方可理解C之特点,先简叙之:1.简洁、紧凑、方便、灵活简洁、紧凑、方便、灵活32个关键字,9种控制语句,主要用小写字母,压缩一切不必要成分2.运算符丰富运算符丰富除了最基本的、%等运算外,还将括号、赋值、类型强制转换等均作为运算符,共有34种运算符。第第第第8 8页页页页3.数据结构丰富数据结构丰富除基本类型外,有指针,结构体、共同体等类型。4.具有结构化的控制语句具有结构化的控制语句模块完整,控制中的语句可完整化。5.语法限制不太严格,程序设计自由度大语法限制不太严格,程序设计自由度大如:数据类型可相互通用:整型、字符型通用。第第第第9 9页页页页6.可与机器
5、硬件打交道,直接访问内存地址,具可与机器硬件打交道,直接访问内存地址,具有有“高高”、“低低”级语言之功能。级语言之功能。7.生成目标代码质量高,执行效率高。生成目标代码质量高,执行效率高。8.可移植性优于汇编语言。可移植性优于汇编语言。第第第第1010页页页页 1.3 C1.3 C语言程序的基本结构语言程序的基本结构语言程序的基本结构语言程序的基本结构为了更好、更快地掌握C程序,我们先看几个C语言程序:例1.#includemain()/*一个简单的程序*/intnum;num=1;printf(“我是一台简单的”);printf(“计算机。n”);printf(“我喜欢的数字是%d,因为它
6、是第一的。n”,num);第第第第1111页页页页输出的结果是:我是一台简单的计算机。我喜欢的数字是1,因为它是第一的。第第第第1212页页页页例2.已知三个整型数8、12、6,按公式sa+bc计算,并显示结果。#include/*标准输入输出头文件*/main()inta,b,c,s;/*定义四个整型变量*/a=8;b=12;c6;/*变量赋初值*/sa+b*c;/*算术运算并赋值*/printf(s=dn,s);/*输出结果*/第第第第1313页页页页例3.main()/*主函数*/inta,b,c;/*定义变量*/scanf(%d,%d,&a,&b);/*输入变量a和b的值*/c=max
7、(a,b);/*调用max函数,将得到的值赋给c*/printf(max=%d,c);/*输出c的值*/第第第第1414页页页页intmax(x,y)intx,y;/*对形参x、y作类型定义*/intz;/*max函用到的变量z,也要加以定义*/z=y;if(xy)z=x;return(z);/*将z的值返回,通过max带回调用处*/第第第第1515页页页页通过分析,初步看到通过分析,初步看到:1.C程序全部由一个一个的函数构成。至少有一个主函数main(),也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位。被调用的函数可为C函数库中函数,也可为自己编的函数。C的函数相
8、当于其他语言中的子程序,用函数来实现特定的功能。程序中的全部工作都是由各个函数分别完成的。上述特点称为程序的模块化.第第第第1616页页页页2.函数的构成:函数说明+函数体函数体,即函数首部下面的大括弧内的部分。变量定义与执行语句可允许空函数:dump()函数说明:即函数的首部(第一行),其包括:函数名、函数类型、函数参数名、参数类型等第第第第1717页页页页3.函数的执行一定从main()开始。尽管main()函数位置可自由。4.书写自由,一个语句可多行,一行可多个语句。5.每一条语句必须有一个分号;6.C语言的输入/出均以函数形式出现。scanf(),printf().7.可用/对C语言加
9、注释第第第第1818页页页页1.4算法及其描述买电视机的步骤:选好货物开票付款拿发票取货回家考大学上大学的步骤填报名单交报名费拿准考证参加考试得到录取通知书报到注册第第第第1919页页页页算法:是指在有限步内解决一个具体问题而规定的意义明确的解题步骤的有限集合。概括地说,算法是指解题方案的准确而完整的描述。从程序来说,也可以说算法是一个有限条指令的集合,这些指令确定了解决某一特定类型问题的运算序列。第第第第2020页页页页1、简单算法举例例2.1求12345。可先写出这样的算法:(1)先求12,得到结果2;(2)将步骤1得到的结果再乘以3,得到结果6;(3)将6再乘以4,得到24;(4)将24
10、再乘以5,得到120。第第第第2121页页页页求12345上述算法太繁琐,我们找一种通用的表示方法。S1:设变量p,被乘数,p=1;s2:设变量i,代表乘数,i=2;s3:使pi,乘积放在被乘数变量p中,可表示为:pip;s4:使i的值加1,即i+1i;s5:如果i不大于5,返回重新执行步骤s3以及其后的s4、s5;否则,算法结束。最后得到的p就是5!的值。第第第第2222页页页页求1357911如果题目改为求1357911。上述算法稍作改动:s1:1p;s2:3i;s3:pip;s4:i+2ps5:若i11,返回s3;否则,结束。第第第第2323页页页页求1357911可以看出,用这种方法表
11、示的算法具有通用性、灵活性。S3到s5组成一个循环,在实现算法时,要反复多次执行s3、s4、s5等步骤,直到某一时刻,执行s5步骤时经过判断,乘数i已超过规定的数值而不返回s3步骤为止。计算机实现循环是轻而易举。第第第第2424页页页页求1357911请同学们仔细分析循环结束的条件,即s5步骤,如果在求求1357911时,将s5步骤写成:s5:若I2500,算法停止。第第第第2929页页页页题目:商店结帐,要求将当天100笔收入累加,打印出总和。写出算法:小练习小练习(200)打印出100笔收入的总和。解(1)将第一笔收入输入给计算机;(2)将第二笔收入输入给计算机;(3)将以上两笔收入相加;
12、(4)将第三笔收入输入给计算机;(5)将它和前二笔收入的和相加;(198)将第100笔收入输入给计算机;(199)将它和前99笔收入之和相加;第第第第3030页页页页以上算法计算机重复执行了一些操作,引入计算机“循环”的概念,算法可改写为:(1)设“计数变量”N,使N的初值为零,即N=0;(2)设“累加变量”T,初值为零(T=0);(3)输入一个数给“收入变量”A;(4)将A和T的值相加,和放在变量T中,即A+TT;(5)使N的值加1,即N+1N(N的值表示已累加的数据的个数);(6)若N100,则返回(3)继续执行,否则执行(7);(7)打印出总和T的值。算法说明算法说明第第第第3131页页
13、页页这个算法比上一个简单明确。如果收入不是100笔而是1000笔,只需将(6)中的N100改为N5结束 NY第第第第4242页页页页三种基本结构是:(1)顺序结构(一条指令)按指令的顺序依次执行(2)判断选择结构:根据判别条件有选择地改变执行流程(3)循环结构:有条件的重复地执行某个程序块(3)三种基本程序结构和改进的三种基本程序结构和改进的流程图流程图第第第第4343页页页页顺序结构程序设计依次顺序执行程序语句执行执行a块块执行执行b块块a块块b块块AB例如,令例如,令a、b的值的值分别为分别为5、10;a=5;b=10;第第第第4444页页页页判别选择结构程序设计首先判别条件,若条件满足,
14、程序执行a块,否则,执行b块;举例,求a、b两个数中的最大值;满足条件否满足条件否满足满足不满足不满足执行执行a块块执行执行b块块条件成立?条件成立?执行执行a块块执行执行b块块b max?Max=a;成立成立不成立不成立max=b;第第第第4545页页页页循环结构程序设计循环又分“当型循环”和“直到型循环”举例,求1100的累加和。inti,sum=0;while(i=100)sum=sum+i;i=i+1;直到条件满足为止直到条件满足为止执行循环中的指令执行循环中的指令当条件满足时当条件满足时执行循环中指令执行循环中指令i5打印打印t第第第第5050页页页页用某种程序设计语言编写的程序本质
15、上也是问题处理方案的描述,并且是最终的描述。在一般的程序设计过程中,不提倡一开始就编写程序,特别是对于大型的程序。程序是程序设计的最终产品,需要经过每一步的细致加工才能得到,如果企图一开始就编写出程序,往往会适得其反,达不到预想的结果。(6)用计算机语言表示算法用计算机语言表示算法第第第第5151页页页页例题例题例例2.20 求求5!,用!,用C语言表示语言表示Main()int I,t;t=1;I=2;while(I=5)t=t*I;I=I+1;printf(“%d”,t);第第第第5252页页页页例例 求级数的值求级数的值Main()int sign=1;float deno=2.0,sun=1.0,term;while(deno100)sign=-sign;term=sign/deno;sum=sum+term;deno=deno+1;printf(“%f”,sum);第第第第5353页页页页最后编写的程序还需要进行测试和调试,只有经过调试后的程序才能正式运行。测试:是指通过一些典型例子,尽可能多发现程序中的错误。调试:是指找出程序中错误的具体位置,并改正错误。结论:测试与调试往往是交替进行的,通过测试发现程序中的错误,通过调试进一步找出错误的位置并改正错误。调试与运行调试与运行
限制150内