C语言程序设计概念课件.ppt

上传人(卖家):三亚风情 文档编号:2477264 上传时间:2022-04-23 格式:PPT 页数:51 大小:496KB
下载 相关 举报
C语言程序设计概念课件.ppt_第1页
第1页 / 共51页
C语言程序设计概念课件.ppt_第2页
第2页 / 共51页
C语言程序设计概念课件.ppt_第3页
第3页 / 共51页
C语言程序设计概念课件.ppt_第4页
第4页 / 共51页
C语言程序设计概念课件.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、C语言程序设计语言程序设计李金莲李金莲课程内容课程内容pC语言程序设计的概念语言程序设计的概念p基本数据类型基本数据类型pC语言程序的流程控制语言程序的流程控制p模块化程序设计模块化程序设计p数组数组p指针指针p用户定制数据类型用户定制数据类型p文件文件第一章第一章 C语言程序设计的概念语言程序设计的概念p程序与程序设计语言程序与程序设计语言pC语言及其标准语言及其标准pC语言程序概要语言程序概要pVS2005集成开发环境集成开发环境1.1 程序与程序设计语言程序与程序设计语言p计算机与程序计算机与程序n算盘与现代计算机算盘与现代计算机p程序:按一定顺序安排的工作步骤程序:按一定顺序安排的工作

2、步骤p记忆功能记忆功能p控制部件操作控制部件操作n英国数学家英国数学家Charles Babbage研制差分机研制差分机1.1 程序与程序设计语言程序与程序设计语言p计算机程序设计语言计算机程序设计语言n机器语言机器语言pCPU指令系统是该指令系统是该CPU能识别的一组由能识别的一组由0和和1序列所构成的指序列所构成的指令码令码p例:例:10000000(进行一次加法运算)(进行一次加法运算)10010000(进行一次减法运算)(进行一次减法运算)p优点:优点:能被机器直接理解和执行能被机器直接理解和执行p缺点:缺点:不直观,难理解,只能被少数专业人员掌握不直观,难理解,只能被少数专业人员掌握

3、编写效率低,质量难保证编写效率低,质量难保证1.1 程序与程序设计语言程序与程序设计语言p计算机程序设计语言计算机程序设计语言n汇编语言汇编语言p20世纪世纪50年代中期用年代中期用“助记符号助记符号”代替代替0,1,这种用助记,这种用助记符号描述的指令系统称为符号语言或汇编语言符号描述的指令系统称为符号语言或汇编语言p例:例:A+B=A 或或 ADD A, BA-B=A 或或 SUB A, Bp优点:优点:程序生产效率和质量有所提高程序生产效率和质量有所提高p缺点:缺点:机器不能直接识别、理解和执行机器不能直接识别、理解和执行劳动强度依然很大劳动强度依然很大1.1 程序与程序设计语言程序与程

4、序设计语言p计算机程序设计语言计算机程序设计语言n高级语言高级语言p使用接近人类自然语言、但又消除了自然语言中的歧义性的语使用接近人类自然语言、但又消除了自然语言中的歧义性的语言来描述程序,如言来描述程序,如1954年出现的年出现的Fortranp优点:优点:不需要熟悉机器内部结构,精力集中于解题思路和方法不需要熟悉机器内部结构,精力集中于解题思路和方法p缺点:缺点:机器不能直接识别、理解和执行机器不能直接识别、理解和执行p发展迅速,种类繁多发展迅速,种类繁多52FORTRAN54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92

5、 94 96AdaALGOL60ALGOL68PascalModula-2CPLBCPL BCC+JavaLISPPROLOGCOBOLFORTRAN77PL/1Simula 67Smalltalk 80BASICQBASICVBFORTRAN9098 00 02C89C9904C#1.1 程序与程序设计语言程序与程序设计语言p高级语言程序的开发过程高级语言程序的开发过程提出问题提出问题分析问题,建立模型分析问题,建立模型表现模型表现模型编辑源程序编辑源程序编译编译链接链接测试与调试测试与调试编写程序文档编写程序文档运行维护运行维护源程序代码源程序文件目标文件可执行文件未发现错误交付使用不再适

6、宜分析错误建模错误编辑错误错误1.1 程序与程序设计语言程序与程序设计语言p编译与链接编译与链接#include int add(int, int);int main(void) int s; s = add(2, 3); printf(“The sum is:%d”, s); return 0;int add(int a, int b) int sum; sum = a + b; return sum;源文件1源文件2编译器0101100101110101101010001010001000110010101111010000010100010001100101011110100010011

7、101110110001000101000100011001010111101000100111011101100110011链接程序11000110101100101000100000101011110101001110111000000目标文件1目标文件2其他目标文件1.1 程序与程序设计语言程序与程序设计语言p程序的测试与调试程序的测试与调试n以程序有错为前提以程序有错为前提p编写程序文档编写程序文档n程序功能程序功能n所需输入数据的类型、格式和取值范围所需输入数据的类型、格式和取值范围n所需使用的文件数量、名称、内容以及存放位置所需使用的文件数量、名称、内容以及存放位置n程序运行所需的

8、软程序运行所需的软/硬件环境硬件环境n程序的装载、启动方法以及交互方式等程序的装载、启动方法以及交互方式等软件计算机程序计算机程序计算机程序计算机程序计算机化的文档计算机化的文档软件1.1 程序与程序设计语言程序与程序设计语言p程序的维护程序的维护n主要原因在于:主要原因在于:p程序未能完全满足用户需求程序未能完全满足用户需求p用户需求的变更用户需求的变更p程序中存在程序中存在Bug1.2 C语言及其标准语言及其标准pC语言的发展历程语言的发展历程BCPLB改进20世纪60年代Ken ThompsonUNIX汇编BUNIX初版1970 ThompsonBC充实1972 Dennis Ritch

9、ie可移植C语言编译器1974 Dennis RitchieThe C Programming Language1978 Brain and Dennis1.2 C语言及其标准语言及其标准pC语言的标准语言的标准C语言标准草案83 ANSI C1983C89ANSI X3.159-19891989C90ISO/IEC 9899:19901990C89增补1/C951995 WG14C99ISO/IEC 9899:199919991.3 C语言程序概要语言程序概要p函数函数p语句语句p名字与声明名字与声明p变量及其赋值变量及其赋值p算术运算算术运算1.3 C语言程序概要语言程序概要p函数函数例例

10、1.1 输出字符串输出字符串/* 文件名:文件名:ex1_01.c */#include int main(void) printf(“Programming is fun.”); return 0;函数编译预处理命令函数体1.3 C语言程序概要语言程序概要问题问题1:请编写一个程序,显示以下两行文字:请编写一个程序,显示以下两行文字I am a student.I love China.1.3 C语言程序概要语言程序概要例例1.2 计算两个整数计算两个整数2、3相加的结果相加的结果/* 文件名:文件名:ex1_02.c */#include int add(int , int); /* 声明

11、将要使用的函数声明将要使用的函数add() */int main(void) int s; /* 声明将要使用的变量声明将要使用的变量s是整型的是整型的 */ s = add(2, 3); /* 调用调用add()进行计算,并用进行计算,并用s接收结果接收结果*/ printf(“The sum is:%d”, s); /* 输出输出s的值的值 */ return 0;int add(int a, int b) /* 函数函数add()的定义的定义 */ int sum; /* 定义一个整数定义一个整数sum,用于存放和,用于存放和 */ sum = a + b; /* 将将a和和b求和,并把

12、结果赋给求和,并把结果赋给sum */ return sum; /* 返回返回sum的值到调用程序的值到调用程序 */1.3 C语言程序概要语言程序概要ex1_02.exemain() s=add(2, 3); printf(“The sum is %d”, s); return 0;add(int a, int b) sum = a + b; return sum;编译器提供库函数printf进行计算并输出结果操作系统1. 操作系统调用main()2.3.4. 返回操作系统返回sum的值到调用程序1.3 C语言程序概要语言程序概要p变量及其类型变量及其类型nint s;nint sum;p函

13、数的声明函数的声明nint add(int, int);n让编译器知道该函数的原型让编译器知道该函数的原型n头文件头文件pprintf()函数的参数函数的参数n控制串:直接输出字符控制串:直接输出字符+格式字符格式字符p赋值运算符赋值运算符1.3 C语言程序概要语言程序概要p问题问题2:编写一个程序,求三个数之和。编写一个程序,求三个数之和。1.3 C语言程序概要语言程序概要例例1.3 编写编写C语言程序,计算一个数的正弦值。语言程序,计算一个数的正弦值。/* ex1_03.c */#include #include int main(void) float x; /* 定义定义x为浮点型变量

14、为浮点型变量 */ x = sin(0.19199); /* 调用调用sin函数函数 */ printf(“%fn”, x); /* 调用调用printf函数,输出函数,输出x的值的值 */ return 0;1.3 C语言程序概要语言程序概要p函数学习小结:函数学习小结:nC语言程序由函数组成;函数由声明和语句组成语言程序由函数组成;函数由声明和语句组成n主函数必须设计,主函数必须设计,C语言程序的执行是从系统调用主函语言程序的执行是从系统调用主函数开始的数开始的n主函数的部分功能可通过其他子函数补充实现主函数的部分功能可通过其他子函数补充实现n库函数的使用(库函数的使用(#include)

15、1.3 C语言程序概要语言程序概要p语句语句n表达式语句表达式语句p表达式由运算符、表达式由运算符、 变量和常量组成变量和常量组成p如:如:s=add(2,3)、sum=a+b、x=sin(0.19199)p表达式加上语句结束符(;)就构成了表达式语句表达式加上语句结束符(;)就构成了表达式语句p运算符运算符 如:如:+、=p变量变量 如:如:s、sum、a、b、xp常量常量 如:如:2、3、0.19199p正确使用运算符的注意点:正确使用运算符的注意点: 含义含义,如:,如:= 优先级优先级 结合性结合性,如:,如:2*3/51.3 C语言程序概要语言程序概要p语句语句n流程控制语句流程控制

16、语句条件条件语句语句1语句语句2是是否否(a)选择控制结构选择控制结构条件条件语句语句是是(b)重复控制结构重复控制结构例例1.4 由键盘输入两个数,输出其中的较大数由键盘输入两个数,输出其中的较大数#include float max2(float x, float y) float max; if(x = y) max = x; else max = y; printf(“The max is:%f”, max); return max;int main(void) float a, b; printf(“Input two real numbers:n”); scanf(“%f%f”,

17、&a, &b); max2(a, b); return 0;xy?max = xmax = y输出maxmax2的流程图的流程图1.3 C语言程序概要语言程序概要p问题问题3:编写一个程序,输入编写一个程序,输入5个整数,找出最小个整数,找出最小值,并输出值,并输出#include int main(void)int a, b, c, d, e;scanf(%d%d%d%d%d, &a, &b, &c, &d, &e);int min=a;if(bmin)min=b;if(cmin)min=c;if(dmin)min=d;if(emin)min=e;printf(The smallest nu

18、mber is %dn, min);return 0;例例1.5 求累加和的值求累加和的值#include int sigma(int n) int i = 0, sum = 0; while(i = n) i+; sum = sum + i; return sum;int main(void) int m, total; scanf(“%d”, &m); total = sigma(m); printf(“total=%dn”, total); return 0; in?i=0, sum=0i+sum=sum+ireturn sum是否函数sigma的执行流程图块语句块语句1.3 C语言程序

19、概要语言程序概要p语句语句n块语句:用一对花括号括起来的语句块语句:用一对花括号括起来的语句1.3 C语言程序概要语言程序概要p名字与声明名字与声明n标识符标识符p标识符,如:变量名、文件名、函数名标识符,如:变量名、文件名、函数名p标识符应遵循的词法规则:标识符应遵循的词法规则: 由由大大小写字母小写字母、数字数字和和下划线下划线组成的序列,但组成的序列,但不能以数字开头不能以数字开头,如:如:a A Ab _Ax _aX a_x abcd,而,而5A A-3都是不符合要求的都是不符合要求的 区分同一字母的大小写,如区分同一字母的大小写,如abc与与abC是是不同不同的标识符的标识符 C89

20、规定规定C编译器能识别的标识符长度编译器能识别的标识符长度不超过不超过31个有效字符,个有效字符,C99规定为规定为不超过不超过63个有效字符个有效字符 普通标识符不能使用对于系统有特殊意义的名字普通标识符不能使用对于系统有特殊意义的名字1.3 C语言程序概要语言程序概要p名字与声明名字与声明n关键字关键字auto_Boolbreakcasechar_complexconstcontinuedefaultdosoubleelseenumexternfloatforgotoif_imaginaryinlineintlongregisterrestrictreturnshortsignedsize

21、ofstaticstructswitchtypedefunionunsignedvoidvolatilewhile1.3 C语言程序概要语言程序概要问题问题4:下列哪个选项可以全部用作变量名?下列哪个选项可以全部用作变量名?A) a3B b5_ e_2 MainB) +a day OK? MAXNUMBERC) i*j next_ day *xD) if $a 3c -b1.3 C语言程序概要语言程序概要p名字与声明名字与声明n程序中使用程序中使用“好好”名字的原则:名字的原则:p尽量做到尽量做到“见名知义见名知义”p尽量避免使用容易混淆的字符,如:尽量避免使用容易混淆的字符,如: 0(数字)

22、(数字)-O(大写字母)(大写字母)-o(小写字母)(小写字母) 1(数字)(数字)-I(大写字母)(大写字母)-i(小写字母)(小写字母) 2(数字)(数字)-Z(大写字母)(大写字母)-z(小写字母)(小写字母)p名字不要过短,函数名一般采用动宾结构,如名字不要过短,函数名一般采用动宾结构,如PrintCalendar、IsPrime等等p匈牙利命名法(匈牙利命名法(P.17)1.3 C语言程序概要语言程序概要p名字与声明名字与声明n声明的作用:声明的作用:p告诉编译器,一个名字与哪个实体相关联告诉编译器,一个名字与哪个实体相关联p告诉编译器及程序员该实体的类型告诉编译器及程序员该实体的类

23、型p告诉编译器,该实体何时建立,在什么范围内可用告诉编译器,该实体何时建立,在什么范围内可用n在使用一个程序实体之前,一定要让编译器知道该程在使用一个程序实体之前,一定要让编译器知道该程序实体的属性序实体的属性n声明在程序中的位置,声明可以出现在程序中的任意声明在程序中的位置,声明可以出现在程序中的任意一行一行n声明属于非执行语句,表达式和流程控制语句属于执声明属于非执行语句,表达式和流程控制语句属于执行语句行语句1.3 C语言程序概要语言程序概要p变量及其赋值变量及其赋值n变量是一种程序实体,它具有一个值,这个值可以通变量是一种程序实体,它具有一个值,这个值可以通过程序操作来改变过程序操作来

24、改变n变量的赋值运算变量的赋值运算p赋值运算符赋值运算符= 右操作数可以是一个表达式,左操作数只能是变量右操作数可以是一个表达式,左操作数只能是变量 “自右至左自右至左”的结合性的结合性p赋值运算的过程赋值运算的过程int a;a=2.6;printf(“%d”, a);运行结果为:运行结果为:21.3 C语言程序概要语言程序概要p变量的赋值运算变量的赋值运算n如:如:int a = 2, b = 3;a = a + b;23ab23a+b运算器5a=a+b的操作过程1.3 C语言程序概要语言程序概要p赋值运算符的结合性赋值运算符的结合性如:如:int a = 0, b = 0, c = 0;

25、a = b = c = 5 + 3;int a = 0, b = 0, c = 0;a = (b = (c = (5 + 3);000abc53a+b运算器008abc53a+b运算器1.3 C语言程序概要语言程序概要088abc运算器888abc运算器1.3 C语言程序概要语言程序概要p算术运算符算术运算符nC语言中算术运算符与数学中算术运算符的区别:语言中算术运算符与数学中算术运算符的区别:p运算符符号有所不同,如:运算符符号有所不同,如:=p运算符种类有所不同,如:运算符种类有所不同,如:%p结合性可能会破坏交换律结合性可能会破坏交换律运算符运算符名称名称运算对象运算对象功能功能示例示例

26、示例值示例值*乘乘任何两个实数或整数任何两个实数或整数求两数之积求两数之积5.5*4.022.000000/除除任何实数或整数,但右操任何实数或整数,但右操作数不能为作数不能为0求两数之商求两数之商4.5/50.900000%模模两个整数,但右操作数不两个整数,但右操作数不能为能为0求整除后的求整除后的余数余数13%85+加加任何两个实数或整数任何两个实数或整数求两数之和求两数之和8+3.511.500000-减减任何两个实数或整数任何两个实数或整数求两数之差求两数之差10-4.65.4000001.3 C语言程序概要语言程序概要例例1.6 分析下面程序的运算结果分析下面程序的运算结果#inc

27、lude int main(void) printf(“300*2/3=%dn”, 300 * 2 / 3); printf(“2/3*300=%dn”, 2 / 3 * 300); return 0;1.3 C语言程序概要语言程序概要p问题问题5:下列程序的运行结果:下列程序的运行结果#include int main(void)int x;x=-3+4*5-6;printf(%dn,x);x=3+4%5-6;printf(%dn,x);x=-3*4%-6/5;printf(%dn,x);x=(7+6)%5/2;printf(%dn,x);return 0;A)11101B)11-201C)

28、11101.51.3 C语言程序概要语言程序概要p自反算术赋值运算符自反算术赋值运算符n结合方向:自右向左结合方向:自右向左n优先级较低优先级较低a = a + ba += b-=(自反减赋值自反减赋值) *=(自反乘赋值自反乘赋值) /=(自反除赋值自反除赋值) %=(自反模赋值自反模赋值)c = b *= a + 2;b = b * (a + 2);c = b;1.3 C语言程序概要语言程序概要p自加和自减运算自加和自减运算i = i + 1i = i - 1i += 1i -= 1i+i-或+i -i后缀形式前缀形式int i = 5;i+;y = i;int i = 5;+i;y =

29、i;执行结果相同1.3 C语言程序概要语言程序概要p自加和自减运算符的结合方向是自加和自减运算符的结合方向是“自右至左自右至左”,它的运算,它的运算对象只能是整型变量,不能是表达式或常数对象只能是整型变量,不能是表达式或常数p正负号运算符正负号运算符n一元运算符:一元运算符:+、-n优先级高于优先级高于*、/n结合方向:自右至左结合方向:自右至左int i = 5;x = i+;y = i;int i = 5;x = +i;y = i;y执行结果相同x结果不同前缀方式为前缀方式为“先增值后引用先增值后引用”后缀方式为后缀方式为“先引用后增值先引用后增值”1.3 C语言程序概要语言程序概要p赋值

30、运算符的副作用及限制赋值运算符的副作用及限制n效率与易读性效率与易读性n软件危机软件危机n副作用:副作用:p对人的副作用对人的副作用p对机器的副作用对机器的副作用基本规范:可靠性第一,效率第二基本规范:可靠性第一,效率第二费解、易于误解费解、易于误解不定解不定解1.3 C语言程序概要语言程序概要c= b *= a + 2;x = i+j;b *= a;c = b + 2;?x = (i+)+j;x = i+(+j);?p采取的措施:采取的措施:n将费解处分解将费解处分解n加一些加一些“冗余冗余”括号括号n添加注释添加注释a = a + 2;b = b * a;c = b;c = a + 2;c

31、 = b * c;x = i + j;i+;c= b *= (a + 2);c= (b *= (a + 2);或或c= b *= a + 2; /* c = a + 2;c = b * c; */1.3 C语言程序概要语言程序概要p对机器的副作用对机器的副作用n当当C语言表达式中含有一个以上的赋值类运算符时,交语言表达式中含有一个以上的赋值类运算符时,交换律不再适用换律不再适用j = 3;i = (k = j + 1) + (j = 5);?i的值为的值为9,还是,还是11j = 3;k = j + 1;j = 5;i = k + j;i的值为的值为91.3 C语言程序概要语言程序概要p问题问题6:下列程序的运行结果:下列程序的运行结果#include int main(void)int i=8, j=10, m=0, n=0;printf(%d,%d,%d,%d, i, j, m=+i, n=j+);return 0;A)9,11,9,10B)8,10,9,101.3 C语言程序概要语言程序概要#include int main(void)int i=8, j=10, m=0, n=0;m=+i; n=j+;printf(%d,%d,%d,%d, i, j, m, n);return 0;作业作业p习题一习题一n1.3(1)n1.4n1.7n1.8n1.9n1.11

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

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

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


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

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


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