1、1 1.1 1.1 程序与程序设计程序与程序设计 1.2 C1.2 C语言的发展及特点语言的发展及特点 1.3 C1.3 C语言程序的基本结构语言程序的基本结构 1.4 C1.4 C语言字符集、标识符和关键字语言字符集、标识符和关键字 1.5 C1.5 C语言程序的开发环境语言程序的开发环境 1.6 1.6 算法及其描述方法算法及其描述方法 第1章 C语言程序设计概述第 1 章 C语言程序设计概述2一、程序一、程序 实际上是一个用计算机语言描述的某一问题的解决步骤。实际上是一个用计算机语言描述的某一问题的解决步骤。第1章 C语言程序设计概述1.1 1.1 程序与程序设计程序与程序设计二、程序设
2、计二、程序设计 人们常把编写程序的过程称为程序设计。在进行程序设人们常把编写程序的过程称为程序设计。在进行程序设计时离不开程序设计语言。程序设计语言的种类很多,大致计时离不开程序设计语言。程序设计语言的种类很多,大致可划分成两类:可划分成两类:低级语言低级语言与与高级语言高级语言 1、机器语言:机器语言:以二进制代码形式表示的机器基本指令的以二进制代码形式表示的机器基本指令的集合、是计算机硬件唯一可以直接识别和执行的语言。集合、是计算机硬件唯一可以直接识别和执行的语言。特点特点:1.1.运算速度快运算速度快(机器可以直接识别机器可以直接识别)2.2.与机器设计相关与机器设计相关 3.3.难阅读
3、,难修改难阅读,难修改指令指令:0 0和和1 1的代码串。的代码串。3第1章 C语言程序设计概述2、汇编语言:汇编语言:用用“助记符助记符”来表示机器指令。来表示机器指令。汇编语言是为了解决机器汇编语言是为了解决机器语言难于理解和记忆,用易于理解和记忆的名称和符号表示语言难于理解和记忆,用易于理解和记忆的名称和符号表示的机器指令的机器指令(用助记符来代替指令代码中的操作码用助记符来代替指令代码中的操作码,用地址符用地址符代替地址码代替地址码)特点:特点:1.1.一条指令对应一操作一条指令对应一操作2.2.执行效率比较高执行效率比较高,与特定机器与特定机器相关相关3.3.通用性可移植性差通用性可
4、移植性差机器语言与汇编语言面向机器机器语言与汇编语言面向机器,一般称为低级语言一般称为低级语言,对机器的对机器的性大性大,通用性差通用性差,要求专用知识要求专用知识,普遍用户难以胜任普遍用户难以胜任.如:如:ADD A,B ADD A,B SUB A,B SUB A,B计算机不能直接识别和执行用汇编语言编写的源程序,它必计算机不能直接识别和执行用汇编语言编写的源程序,它必须经过一个叫汇编程序的系统软件翻译成机器语言程序(即须经过一个叫汇编程序的系统软件翻译成机器语言程序(即目标程序)后才能执行。目标程序)后才能执行。4 3、高级语言:高级语言:用接近于自然语言和数字用接近于自然语言和数字语言的
5、语句构成的语言。语言的语句构成的语言。如:如:C C、PASCALPASCAL、FORTRANFORTRAN等,用等,用+和和-来来 表示加减运算。表示加减运算。由于机器硬件不能直接识别高级语言中的由于机器硬件不能直接识别高级语言中的语句,因此必须经过语句,因此必须经过“翻译程序翻译程序”,将用高,将用高级语言编写的程序翻译成机器语言的程序,级语言编写的程序翻译成机器语言的程序,才能执行。才能执行。特点:特点:1.1.编程效率高,执行速度相对低级编程效率高,执行速度相对低级语言慢语言慢 2.2.可移植性好可移植性好 3.3.执行需翻译执行需翻译5第1章 C语言程序设计概述4、面向任务的程序设计
6、语言:面向任务的程序设计语言:是非过程化的语言,不需要知道问题是如何求解的。是非过程化的语言,不需要知道问题是如何求解的。例如:要从某学生表例如:要从某学生表SSSS用数据库(用数据库(SQLSQL)查询语言获取)查询语言获取表中记录的信息,采用表中记录的信息,采用SELECTSELECT语句,描述如下:语句,描述如下:SELECT SSNO,SSNAME,SSAGE,SSSEX FROM SSSELECT SSNO,SSNAME,SSAGE,SSSEX FROM SS5 5、面向对象的程序设计语言:面向对象的程序设计语言:认为系统是由许多对象组成的,对象通过消息相互认为系统是由许多对象组成的
7、,对象通过消息相互 联系和相互作用,从而完成系统的功能。如联系和相互作用,从而完成系统的功能。如C+C+,设计的程序更易懂设计的程序更易懂,更适合更大规模的程序开发。更适合更大规模的程序开发。数据的确定:确定数据的类型和数据的存放方式。数据的确定:确定数据的类型和数据的存放方式。高级语言中用高级语言中用变量定义变量定义来实现。来实现。操作步骤(也即算法)的确定:用操作步骤(也即算法)的确定:用语句语句来实现。来实现。程序设计程序设计6第1章 C语言程序设计概述1.2 C1.2 C语言的发展及特点语言的发展及特点一、C语言的发展概况 C C语言是一种介于计算机的高级语言与低级语言之间的语言是一种
8、介于计算机的高级语言与低级语言之间的语言,语言,C C语言作为系统描述语言语言作为系统描述语言,既可写系统软件既可写系统软件,也可写也可写应用软件。应用软件。其发展经历了:其发展经历了:ALGOL60,CPL,BCPL,B,CALGOL60,CPL,BCPL,B,C Microsoft C,Turbo C,Borland C,VC+,C+Builder Microsoft C,Turbo C,Borland C,VC+,C+Builder C C语言的最新标准是语言的最新标准是ANSI ANSI 目前在微型计算机上使用的有目前在微型计算机上使用的有Microsoft CMicrosoft C,
9、Turbo CTurbo C等多种等多种版本。版本。7二、C语言的特点 语言简洁语言简洁,紧凑紧凑,使用方便使用方便,灵活灵活 运算符丰富运算符丰富 具有编程语言的各种数据结构具有编程语言的各种数据结构 结构化的控制语句结构化的控制语句,模块化的编程方式模块化的编程方式 语法限制少语法限制少,程序设计自由度大程序设计自由度大 允许访问物理地址允许访问物理地址,进行位操作进行位操作,实现汇编语实现汇编语言的功能言的功能,直接对硬件进行操作直接对硬件进行操作 生成目标代码质量高生成目标代码质量高,程序执行效率高程序执行效率高 C C程序可移植性好程序可移植性好(与汇编语言相比与汇编语言相比)81.
10、3 C1.3 C语言程序的基本结构语言程序的基本结构一个完整的语言程序,是由一个一个完整的语言程序,是由一个main()函数(又称主函函数(又称主函数)和若干个其它函数结合而成的,或仅由一个数)和若干个其它函数结合而成的,或仅由一个main()函数构成。函数构成。例例1-1 /*功能:仅由功能:仅由main()函数构成的语言程序示例函数构成的语言程序示例*/main()printf(“This is a C program.n”);程序运行结果:程序运行结果:This is a C program.一、简单的C语言程序示例9#include /*标准输入输出头文件标准输入输出头文件*/main
11、()int a,b,c,s;/*定义四个整型变量定义四个整型变量*/a=8;b=12;c=6;/*变量赋值变量赋值*/s=a+b*c;/*算术运算并赋值算术运算并赋值*/printf(“s=%dn”,s);/*输出结果输出结果*/第1章 C语言程序设计概述例例1-21-2:已知三个整数:已知三个整数8 8、1212、6 6,按公式,按公式s=a+bs=a+bc c计算计算 并显示结果。并显示结果。程序运行结果:程序运行结果:s=8010例例1-3由由main()函数和函数和1个其它函数个其它函数max()构成的语言程序。构成的语言程序。main()/*主函数主函数*/int a,b,c;/*主
12、函数的声明部分主函数的声明部分*/scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max is%dn”,c);int max(int x,int y)/*自定义自定义max函数函数*/int z;/*max函数的声明部分函数的声明部分*/if(xy)z=x;else z=y;return(z);/*将将z的值返回的值返回,通过通过max带回带回*/程序运行情况:程序运行情况:输入输入:6,9 输出:输出:max is 911二、二、C C程序的构成与特点程序的构成与特点由以上例子可以看出:由以上例子可以看出:1 1函数是函数是C C程序的基本单位,即程序的基本单
13、位,即C C程序是由函数程序是由函数构成的。构成的。2 2一个函数由两部分组成:函数首部和函数体一个函数由两部分组成:函数首部和函数体 函数首部函数首部 变量定义变量定义 函数体函数体 语句部分语句部分 12函数的两大组成部分函数的两大组成部分 函数的首部函数的首部:即函数的第一行即函数的第一行,包括函包括函数的名称数的名称,类型类型,属性属性,参数名称参数名称,参参数类型数类型.函数名后面必须有圆括号函数名后面必须有圆括号()()函数体函数体:即首部下面的大括号即首部下面的大括号内的内的部分部分,一个函数内有多个大括号一个函数内有多个大括号,则最则最外层的一对大括号为函数体的范围外层的一对大
14、括号为函数体的范围.133 3C C程序从程序从main()函数开始执行,但函数开始执行,但main()函数的位置任意。函数的位置任意。4 4程序书写格式自由,一行内可写多个语句,一个语句可分程序书写格式自由,一行内可写多个语句,一个语句可分写在多行上。写在多行上。5 5每个语句和数据定义的最后必须有一个每个语句和数据定义的最后必须有一个分号分号(;)(;)分号分号是是C C语句的必要组成部分。语句的必要组成部分。6 6由由“/*”与与“*/”之间的内容构成之间的内容构成C C语言程序任何部分的语言程序任何部分的注释注释,增强了程序的可读性增强了程序的可读性.7.7.用预处理命令用预处理命令#
15、include可以包含有关文件的信息。可以包含有关文件的信息。8.在在C语言中区分大小写,如语言中区分大小写,如Main、MAIN、main、maiN是是不相同的。不相同的。14一、语言字符集1 1、英文字母:大小写各、英文字母:大小写各2626个,共计个,共计5252个;个;2 2、阿拉伯数:、阿拉伯数:0 09 9共共1010个数字;个数字;3 3、下划线:、下划线:_ _;4 4、特殊符号:通常指由、特殊符号:通常指由1 12 2个符号组成的运算符。个符号组成的运算符。算术运算符:算术运算符:+-*/%+-关系运算符:关系运算符:=5结结 束束NY变量变量p为被乘数为被乘数变量变量i为乘
16、数为乘数乘积乘积p i仍然放在仍然放在p中中 i+1的值仍然放在的值仍然放在i中中判断判断i的值是否大于的值是否大于5如用流程图来描述求如用流程图来描述求5 5!的问题。!的问题。26N-SN-S结构化流程图的符号结构化流程图的符号A AB BP PA AB By yn nA AA A当当p p成立成立直到直到p p成立成立顺序结构顺序结构选择结构选择结构 当循环结构当循环结构直到循环结构直到循环结构注意注意:A:A和和B B可以是一个简单的操作可以是一个简单的操作,也可以是四种结构中的也可以是四种结构中的其中一种其中一种.例如用例如用N-SN-S图来图来描述从描述从a a和和b b中中找大数
17、的问题。找大数的问题。输入输入a a和和b b ab abmaxmaxa maxa maxb b输出输出maxmax27第1章 C语言程序设计概述3、程序设计语言:程序设计语言:上面介绍的自然语言上面介绍的自然语言,流程图流程图,只是对算法的描述只是对算法的描述,要真正要真正的实现算法的实现算法,还须用计算机语言来编程实现还须用计算机语言来编程实现.当然源程序还须当然源程序还须经过编译成目标程序后才能被计算机识别和执行经过编译成目标程序后才能被计算机识别和执行用计算机语言编程来实现算法必须严格遵守语言的语法规则用计算机语言编程来实现算法必须严格遵守语言的语法规则.用计算机语言编写的程序用计算机
18、语言编写的程序,只有运行它只有运行它,才算真正的实现了算才算真正的实现了算法法.算法最终要用程序设计语言来描述,计算机才能保存、翻算法最终要用程序设计语言来描述,计算机才能保存、翻译和执行。如用译和执行。如用C C语言来描述从语言来描述从a a和和b b中找大数的问题。中找大数的问题。常用的算法有:迭代法、枚举法、递归法、递推法等。常用的算法有:迭代法、枚举法、递归法、递推法等。28第1章 C语言程序设计概述Turbo C Turbo C 主菜单画面主菜单画面:在编辑过程中:在编辑过程中:可使用块操作命令:可使用块操作命令:CTRL+KB(CTRL+KB(块首定义块首定义),CTRL+KK(C
19、TRL+KK(块尾定义块尾定义),CTRL+KC(CTRL+KC(块复制块复制),CTRL+KY(CTRL+KY(块删除块删除),CTRL+KV(CTRL+KV(块移动块移动)快捷键命令:快捷键命令:CTRL+Y(CTRL+Y(删除光标所在的一行删除光标所在的一行)29 为了操作的方便,应记住为了操作的方便,应记住TCTC中的一些常用功能键:中的一些常用功能键:F1:F1:帮助。帮助。F2F2:将当前文件存盘。:将当前文件存盘。F3F3:装载原有文件或给新文件命名。:装载原有文件或给新文件命名。F4F4:程序运行到光标所在行。:程序运行到光标所在行。F5F5:放大或缩小活动窗口切换。:放大或缩
20、小活动窗口切换。F6F6:开或关活动窗口切换。:开或关活动窗口切换。F7F7:单步运行程序,跟踪进入函数内部运行。:单步运行程序,跟踪进入函数内部运行。F8F8:单步运行程序,不跟踪进入函数内部。:单步运行程序,不跟踪进入函数内部。F9F9:生成可执行文件。:生成可执行文件。F10F10:菜单与活动窗口相互切换。:菜单与活动窗口相互切换。CTRL+F9:CTRL+F9:当前编辑环境下,进行编译、连接且运行程序。当前编辑环境下,进行编译、连接且运行程序。ALT+F5:ALT+F5:将窗口切换到将窗口切换到DOSDOS环境,用来查看程序运行结果。环境,用来查看程序运行结果。第1章 C语言程序设计概
21、述30一、一、TC的启动、退出与命令菜单的启动、退出与命令菜单(1)启动)启动Turbo C:tc 启动Turbo C后,其主菜单条横向排列在屏幕顶端,并被激活,其中File主项成为当前项。主菜单的下面,是Edit(编辑)窗口和Message(消息)窗口。两个窗口中,顶端横线为双线显示的,表示该窗口是活动窗口。编辑窗口的顶端为状态行,其中:Line 1 Col 1:显示光标所在的行号和列号,即光标位置。Insert:表示编辑状态处于“插入”。当处于“改写”状态时,此处为空白。d:NONAME.C:显示当前正在编辑的文件名。显示为“NONAME.C”时,表示用户尚未给文件命名。屏幕底端是7个功能
22、键的说明,以及Num Lock键的状态(显示“NUM”时,表示处于“数字键”状态;空白,表示“控制键”状态)。31 (2)命令菜单的使用)命令菜单的使用 1)按下功能键F10,激活主菜单。如果主菜单已经被激活,则直接转下一步。2)用左、右方向键移动光带,定位于需要的主项上,然后再按回车键,打开其子菜单(纵向排列)。3)用上、下方向键移动光带,定位于需要的子项上,回车即可。执行完选定的功能后,系统自动关闭菜单。注意注意:菜单激活后,又不使用,可再按F10Esc键关闭,返回原来状态。(3)退出)退出Turbo C 退出TC有两种方法:1)菜单法:File|Quit(先选择File主项,再选择并执行
23、Quit子项)2)快捷键法:Alt+“X”(先按下Alt键并保持,再按字母键,然后同时放开)32二、编辑并保存一个语言源程序二、编辑并保存一个语言源程序(1)激活主菜单,选择并执行File|Load项(快捷键键:F3)。(2)在“Load File Name”窗口,输入源程序文件名。文件名的输入有两种方法:直接输入和选择输入。1)直接输入按照文件名的组成字符串,逐个字符输入即可。如果是已经存在的文件,系统就在编辑窗口显示该文件的内容,可供编辑、修改。如果是新文件,则给出一个空白编辑窗口,可供输入新的源程序。如果该文件不在当前目录下,则需要冠以路径名和(或)盘符。2)选择文件(仅适用于已经存在的
24、源程序文件)空回车,打开当前目录下、后缀为.的所有文件的文件名窗口。用上、下、左、右方向键,将光带定位于所需的文件名上。按回车键。33 (3)常用编辑操作)常用编辑操作 在编辑源程序过程中,随时都可以按F2键(或File|Save),将当前编辑的文件存盘,然后继续编辑。这是一个良好的习惯!关于在线帮助:在任何窗口(或状态)下,按F1键激活活动窗口(或状态)的在线帮助:下一页PageDown,返回上一页PageUp关闭在线帮助、返回原窗口(或状态)Esc返回前一个在线帮助屏Alt+F1(无论在线帮助是否被激活)返回在线帮助索引F1:激活在线帮助后,再按F1,则返回在线帮助索引,以便查询其它类别在
25、线帮助信息。查询库函数的在线帮助信息F1:将光标移到需要查询函数名的首字符上,然后键入F1,即可获得该库函数的在线帮助信息。注注:为简化描述,用“”代表“Ctrl”键。Fn就是Ctrl+Fn,下同。34 三、编译、连接三、编译、连接单个源程序文件单个源程序文件 选择并执行Compile|Make EXE File项(快捷键:F9),则TC将自动完成对当前正在编辑的源程序文件的编译、连接,并生成可执行文件。如果源程序有语法错误,系统将在屏幕中央的“Compiling”(编译)窗口底端提示“Error:Press any key”(错误:按任意键)。此时,按空格键,屏幕下端的“Message”(消
26、息)窗口被激活,显示出错(或警告)信息,光带停在第一条消息上。这时“Edit”(编辑)窗口中也有一条光带,它总是停在编译错误在源代码中的相应位置。注意注意:当用上、下键移动消息窗口中的光带时,编辑窗口中的光带也随之移动,始终跟踪源代码中的错误位置!35四、运行与查看结果运行与查看结果(1)运行当前正在编辑的源程序文件 选择并执行Run|Run项(快捷键:F9),程序运行结束后,仍返回到编辑窗口。当你认为自己的源程序不会有编译、连接错误时,也可直接运行(即跳过对源程序的编译、连接步骤)。这时,TC将一次完成从编译、连接到运行的全过程。(2)查看运行结果 选择并执行Run|User Screen项(快捷键:Alt+F5)。查看完毕后,按任一键返回编辑窗口。如果发现逻辑错误,则可在返回编辑窗口后,进行修改;然后再重新编译、连接、运行,直至正确为止。36 五、编辑下一个新的源程序编辑下一个新的源程序 选择并执行File|New项即可。如果屏幕提示如下确认信息:NONAME.C not saved.Save?(Y/N)如果需要保存当前正在编辑的源程序,则键入“”,进入下一步操作;否则,键入“”(不保存),跳转到(2)。(1)系统提示换名:NONAME.C直接输入你给源程序文件起的名字即可。(2)系统给出一个空白的编辑窗口,可以开始编辑下一个新的源程序。