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






