《C语言程序设计教程(第1章).ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教程(第1章).ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、信息科学与工程学院C语言程序设计语言程序设计信息科学与工程学院第章语言概述第章语言概述1.1 程序与程序设计语言程序与程序设计语言1.2 C语言发展概述和主要特点语言发展概述和主要特点 1.3 C语言的基本结构语言的基本结构 1.4 程序的调试程序的调试 信息科学与工程学院本章需要掌握的知识点本章需要掌握的知识点v程序概念的基本理解程序概念的基本理解v设计语言概念的基本理解设计语言概念的基本理解v计算机语言与程序的关系计算机语言与程序的关系v高级计算机语言和低级计算机语言的区别高级计算机语言和低级计算机语言的区别v程序的基本构成程序的基本构成v如何在如何在Visual C+6.0 环境下调试程
2、序环境下调试程序vprintf函数的使用函数的使用信息科学与工程学院1.1 程序与程序设计语言程序与程序设计语言有三个同样大小的瓶子,一瓶是醋,一瓶有三个同样大小的瓶子,一瓶是醋,一瓶是黄酒,剩下一个是空瓶,请用语言描述是黄酒,剩下一个是空瓶,请用语言描述如何将装醋的瓶子装酒,而将装酒的瓶子如何将装醋的瓶子装酒,而将装酒的瓶子装醋。装醋。信息科学与工程学院首先将醋、酒、空瓶分别编号为、首先将醋、酒、空瓶分别编号为、第步第步 将将A中液体装入瓶中液体装入瓶第步第步 将将B中液体装入瓶中液体装入瓶第步第步 将中液体装入瓶。将中液体装入瓶。每个操作步骤均每个操作步骤均无二义无二义物理与电子工程学院计
3、算机系统基本组成计算机系统基本组成C:A:CPU0键盘显示器内存内存信息科学与工程学院二进制计算机程序二进制计算机程序1.10001011 2.00000101 3.00000000 4.01111001 5.10001111 信息科学与工程学院机器指令直接编程机器指令直接编程 机器指令采用二进制代码形式,它们符合具体计算机机器指令采用二进制代码形式,它们符合具体计算机的指令系统,可以由计算机直接执行。每一条机器指令包的指令系统,可以由计算机直接执行。每一条机器指令包括两个主要方面:操作(指出计算机应做什么)和被操作括两个主要方面:操作(指出计算机应做什么)和被操作的对象(指出处理的数据或它的
4、地址)。的对象(指出处理的数据或它的地址)。Intel 80386 指令指令:10001011 00000101 00000000 01111001:10001011 00000101 00000000 01111001 10001111100011111010110110101101从某个内存单元取出数据,装入从某个内存单元取出数据,装入EAXEAX寄存器中寄存器中信息科学与工程学院汇编语言编程汇编语言编程 用有帮助记忆作用的符号来书写程序。用有帮助记忆作用的符号来书写程序。例如用例如用 ADD 表示加法操作,用表示加法操作,用 JMP 表示控制表示控制性转移等。操作的对象(数据或数据的地址
5、)也性转移等。操作的对象(数据或数据的地址)也用符号形式表示,例如用用符号形式表示,例如用 X、Y代表两个存储数代表两个存储数据的容器。这就是据的容器。这就是“汇编程序设计语言汇编程序设计语言”的基本的基本想法。想法。物理与电子工程学院 汇编语言提供一组具有帮助记忆作用的汇编语言提供一组具有帮助记忆作用的“汇编指令汇编指令”,每条汇编指令都和一条机器指令相对应,只是指令码和,每条汇编指令都和一条机器指令相对应,只是指令码和操作数都采用符号形式。操作数都采用符号形式。PUSH ECXPUSH ECXMOV ERROR,0MOV ERROR,0MOV ECX,EAXMOV ECX,EAXCMP E
6、CX,0CMP ECX,0JMP FAILJMP FAILCALL FACTCALL FACT汇编语言程序段汇编语言程序段物理与电子工程学院运行问题?运行问题?计算机的计算机的“大脑大脑”CPU不懂汇编语言,所以用不懂汇编语言,所以用汇编语言编写的程序,计算机无法执行,怎么汇编语言编写的程序,计算机无法执行,怎么办?办?写一个翻译器,将汇编语言翻译成机器语言。写一个翻译器,将汇编语言翻译成机器语言。信息科学与工程学院高级语言编程高级语言编程高级语言在对计算过程的描述方面,完全脱离了简单的指高级语言在对计算过程的描述方面,完全脱离了简单的指令方式,采用类似于数学公式的书写方式描述由一些数令方式,
7、采用类似于数学公式的书写方式描述由一些数据计算出结果的过程,用一些更高级程序流程描述结构据计算出结果的过程,用一些更高级程序流程描述结构取代简单的跳转指令方式,以更好地满足书写程序的需取代简单的跳转指令方式,以更好地满足书写程序的需要。要。高级语言编程片断示例:高级语言编程片断示例:a=5;a=5;b=3;b=3;c=a*b;c=a*b;信息科学与工程学院问题思考问题思考计算机计算机“大脑大脑”认识高级语言吗?我们能认识高级语言吗?我们能够直接让计算机够直接让计算机CPU运行高级语言吗?运行高级语言吗?信息科学与工程学院计算机程序和编程语言计算机程序和编程语言程序是可以反复执行的操作序列。程序
8、是可以反复执行的操作序列。计算机程序必须使用编程语言进行描述计算机程序必须使用编程语言进行描述可以直接执行机器语言描述的程序可以直接执行机器语言描述的程序非机器语言描述的程序首先要翻译成机器非机器语言描述的程序首先要翻译成机器语言描述的程序才能执行语言描述的程序才能执行信息科学与工程学院1.2 C语言发展概述和主要特点语言发展概述和主要特点C语言与语言与UNIX操作系统有关。发明者:操作系统有关。发明者:Dennis Ritchie,年,贝尔实验室。,年,贝尔实验室。语言同时具备高级语言和低级语言的特征。语言同时具备高级语言和低级语言的特征。备注:备注:低级语言低级语言直接依赖计算机硬件,不同
9、的直接依赖计算机硬件,不同的机型所使用的低级语言是完全不一样的。机型所使用的低级语言是完全不一样的。高级语言高级语言是一种比较接近自然语言和数学语言是一种比较接近自然语言和数学语言的程序设计语言。不依赖于计算机硬件。的程序设计语言。不依赖于计算机硬件。物理与电子工程学院1971年,年,Dennis Ritchie(见图(见图1.1)开始协助)开始协助Thompson开发开发UNIX。他对。他对B语言做了进一步的充实和完善,加入数据类型和语言做了进一步的充实和完善,加入数据类型和新的句法,于新的句法,于1972年推出了一种新型程序设计语言年推出了一种新型程序设计语言C语言语言(取(取BCPL的第
10、的第2个字母)。个字母)。图图1.1 Thompson(左)和(左)和Ritchie(中)于(中)于1999 年接受当时美国总统克林顿授予的国家技术勋章年接受当时美国总统克林顿授予的国家技术勋章物理与电子工程学院1.3 C语言的基本结构语言的基本结构 第一个程序第一个程序例例1.1/*-*/*A program to print welcome-*/#include“stdio.h”/*包包含含标标准准输输入入输输出出头头文文件件,编编译译预预处处理命令理命令*/void main()/*主函数定主函数定义义*/printf(“welcome”);/*调调用用库库函数函数printf显显示示*
11、/运行结果:运行结果:welcome物理与电子工程学院 第二个程序第二个程序例例1.2/*-sum of a add b-*/#include stdio.hvoid main()int a,b,sum;/*定定义义三个整型三个整型变变量量a,b和和sum*/a=1;/*将将1赋值给变赋值给变量量a*/b=2;sum=a+b;/*将将变变量量a和和b的的值值相加,然后相加,然后赋值给变赋值给变量量sum*/printf(a add b is%d n,sum);运行结果:运行结果:a add b is 3信息科学与工程学院printf使用初步使用初步 printf是一个预定义好的标准输出函数。是
12、一个预定义好的标准输出函数。它执行格式化输出,它执行格式化输出,调用格式是:调用格式是:printf(格式信息格式信息,数据参数数据参数1,数据参数数据参数2,);v 数数据据参参数数可可有有可可无无。格格式式信信息息用用于于控控制制数数据据参参数数的的输输出出格格式式。格格式式信信息息中中字字符符除除了了冠冠以以斜斜杠杠“”和和“%”的的字字符符,其其它它字字符符原原封封不不动动按按照照原原样样输输出出到到屏屏幕上。幕上。v格格式式信信息息中中的的%和和其其后后面面的的字字符符d分分别别是是转转换换说说明明符符和和转转换换字字符符,它它们们共共同同指指定定了了显显示示数数据据参参数数时时的的
13、格格式式。转换说明符的个数应与数据参数的个数相等。转换说明符的个数应与数据参数的个数相等。v格式信息中的格式信息中的n是字符转义序列。是字符转义序列。n表示换行。表示换行。物理与电子工程学院第三个程序第三个程序例例1.3/*-sum of a add b(using Function)-*/#include stdio.hvoid show(int x,int y);/*(自定义)函数说明(自定义)函数说明 */void main()/*main函数定义函数定义 */int a,b,sum;a=1;b=2;show(a,b);void show(int x,int y)/*(自定义)函数定义(
14、自定义)函数定义 */int sum;sum=x+y;printf(“a add b is%d n”,sum);信息科学与工程学院1.4 程序的调试程序的调试物理与电子工程学院编编辑辑键盘输入键盘输入结果结果执执行行Filec.exeFilec.exe可执行文件可执行文件链链接接Filec.objFilec.obj目标文件目标文件编编译译Filec.cFilec.c源程序文件源程序文件程序的编辑、编译、链接以及运行都可以在一种集成环境下工作程序的编辑、编译、链接以及运行都可以在一种集成环境下工作信息科学与工程学院VC+环境的使用(见演示)环境的使用(见演示)项目(项目(Project)一组相互
15、关联的文件,是一个应用程序中一组相互关联的文件,是一个应用程序中需要的所有源文件的组合。需要的所有源文件的组合。项目工作区项目工作区 管理项目和项目配置的工作区间管理项目和项目配置的工作区间 信息科学与工程学院上机步骤上机步骤1.创建一个项目工作区(创建一个项目工作区(Workspace)2.在项目工作区中新建一个项目在项目工作区中新建一个项目(Project)()(也可以将上面两步合并)也可以将上面两步合并)3.在项目中创建源程序文件等(或将这些在项目中创建源程序文件等(或将这些文件添加到项目中)文件添加到项目中)4.编辑项目中的源程序编辑项目中的源程序5.编译和连接编译和连接6.调试应用程
16、序调试应用程序信息科学与工程学院如何备份和重新开始如何备份和重新开始备份时需将整个工作区文件夹一起备份。备份时需将整个工作区文件夹一起备份。但但debug目录中的内容可以删除。目录中的内容可以删除。重新开始时,只需打开以重新开始时,只需打开以.dsw结尾的工作结尾的工作区文件。区文件。每个项目代表一个程序,在一个项目的所每个项目代表一个程序,在一个项目的所有文件中只能有一个主函数。有文件中只能有一个主函数。信息科学与工程学院小结小结如何理解计算机程序和编程语言?如何理解计算机程序和编程语言?一个一个C程序是由什么构成的?程序是由什么构成的?函数的描述形式是怎样的?函数的描述形式是怎样的?函数体是由什么构成的?函数体是由什么构成的?注释起何作用?注释起何作用?计算机的计算机的“大脑大脑”能够直接运行能够直接运行C语言吗?语言吗?用用C语言编写的程序产生可执行程序应该经语言编写的程序产生可执行程序应该经过哪些步骤?过哪些步骤?printf函数的简单使用?函数的简单使用?信息科学与工程学院自学安排自学安排Visual C+6.0环境熟悉环境熟悉信息科学与工程学院课堂作业课堂作业编写程序输出下列图案编写程序输出下列图案 *$*$*$信息科学与工程学院课外练习课外练习.121-7 1-8