版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计语言程序设计1教材教材C程序设计(第四版)程序设计(第四版) 谭浩强谭浩强 清华大学出版社清华大学出版社2成绩评定成绩评定平时作业:平时作业:20实验:实验:20笔试:笔试:603课程目标课程目标(1)深入了解计算机工作原理)深入了解计算机工作原理(2)掌握计算机语言,理解人机交互手段)掌握计算机语言,理解人机交互手段(3)理解程序设计思想)理解程序设计思想(4)掌握计算机常用算法)掌握计算机常用算法(5)为进一步学习计算机知识奠定基础)为进一步学习计算机知识奠定基础第第1 1章章 语言概述语言概述本章主要介绍本章主要介绍C语言程序的结构和书写规则,以及语言程序的结构和书写规则,
2、以及Turbo C 的使用。的使用。主要内容主要内容计算机语言及程序计算机语言及程序C语言的发展及特点语言的发展及特点C语言程序的结构语言程序的结构C语言的语句和关键字语言的语句和关键字Turbo C的基本操作的基本操作1.1 1.1 计算机语言及程序计算机语言及程序1程序的概念程序的概念计算机每一个操作都是根据人们事先编好的指令完成的,计算机每一个操作都是根据人们事先编好的指令完成的,为了使计算机完成一系列的操作,从而实现某个特为了使计算机完成一系列的操作,从而实现某个特定的目的,需要将一条条编好的指令输入到计算机定的目的,需要将一条条编好的指令输入到计算机中。中。所谓程序就是一组计算机能够
3、识别和执行的、采用计算所谓程序就是一组计算机能够识别和执行的、采用计算机语言表达的指令。一个特定的指令序列可以完成机语言表达的指令。一个特定的指令序列可以完成一定的功能。一定的功能。2机器语言机器语言为了使计算机能理解人的意图,需要通过计算机语言进为了使计算机能理解人的意图,需要通过计算机语言进行人机交流,机器语言是最原始的计算机语言。行人机交流,机器语言是最原始的计算机语言。计算机的工作是基于计算机的工作是基于二进制的二进制的,也就是说,如果人们将,也就是说,如果人们将操作意图以二进制形式表达并传入到计算机系统中,操作意图以二进制形式表达并传入到计算机系统中,它就可以理解并执行这条指令。它就
4、可以理解并执行这条指令。例如:可用例如:可用16位二进制编码位二进制编码 1011011000000000 00001001 00000111 代表代表“加法加法”运算(指令后面是被加数和加数),运算(指令后面是被加数和加数),计算机就会在这一串计算机就会在这一串0和和1的控制下完成一次加法运的控制下完成一次加法运算。算。这种计算机能够直接识别和接受的二进制代码称为这种计算机能够直接识别和接受的二进制代码称为机器机器指令指令,机器指令的集合就是该计算机的,机器指令的集合就是该计算机的机器语言机器语言。显然,机器语言难学、难记、难修改,无法推广普及。显然,机器语言难学、难记、难修改,无法推广普及
5、。3符号语言符号语言为了克服机器语言的缺点,人们创造出为了克服机器语言的缺点,人们创造出符号语言符号语言,即用,即用英文字符和十进制数表示一条指令。英文字符和十进制数表示一条指令。例如,指令例如,指令 ADD A , B表示加法运算,其意义是将表示加法运算,其意义是将寄存器寄存器A中的数与寄存器中的数与寄存器B中的数相加,然后将计算结果存放到寄存器中的数相加,然后将计算结果存放到寄存器A中。中。但是,这种符号语言计算机并不能直接识别,需要一个但是,这种符号语言计算机并不能直接识别,需要一个专门的专门的翻译程序翻译程序,将符号语言翻译成机器语言,然,将符号语言翻译成机器语言,然后再交给计算机执行
6、。这个翻译程序称之为后再交给计算机执行。这个翻译程序称之为“汇编汇编程序程序”,因而符号语言又称为,因而符号语言又称为“汇编语言汇编语言”。显然,符号语言比机器语言有了很大的进步,但仍然不显然,符号语言比机器语言有了很大的进步,但仍然不便于使用和普及,仅用于专业人员。便于使用和普及,仅用于专业人员。机器语言和汇编语言都非常机器语言和汇编语言都非常“贴近贴近”计算机,不同的计计算机,不同的计算机之间机器语言和汇编语言不能通用。有时也将算机之间机器语言和汇编语言不能通用。有时也将它们称为它们称为“低级语言低级语言”。4高级语言高级语言为了进一步提高程序编写的效率、普及应用,人们在上为了进一步提高程
7、序编写的效率、普及应用,人们在上世纪五六十年代推出了高级语言。高级语言以英文世纪五六十年代推出了高级语言。高级语言以英文单词为指令,采用四则运算和十进行制数为运算规单词为指令,采用四则运算和十进行制数为运算规则,可使得人们更容易编写复杂的计算机程序。则,可使得人们更容易编写复杂的计算机程序。例如,如果想计算并输出例如,如果想计算并输出 3.56sin(/ 3 ) 的值,的值,可用如下语句实现:可用如下语句实现:PRINT 3.56sin ( 3.14159 / 3 )高级语言功能强大、通用性好、易读、易写、易修改,高级语言功能强大、通用性好、易读、易写、易修改,很快便得到了广泛的应用。很快便得
8、到了广泛的应用。当然,高级语言也不能被计算机直接识别,因此需要一当然,高级语言也不能被计算机直接识别,因此需要一个将高级语言翻译成机器语言的程序。这个翻译程个将高级语言翻译成机器语言的程序。这个翻译程序有两种类型:序有两种类型:l编译程序:编译程序:可将一个高级语言编写的可将一个高级语言编写的“源程序源程序”翻翻译成可被计算机执行的机器语言代码(称为译成可被计算机执行的机器语言代码(称为“目标目标程序程序”),再交由计算机执行;),再交由计算机执行;l解释程序:解释程序:可将高级语言源程序可将高级语言源程序逐句逐句翻译成翻译成若干若干机机器代码,交给计算机执行,然后再翻译下一句,直器代码,交给
9、计算机执行,然后再翻译下一句,直到程序结束。到程序结束。几十年来,全世界涌现出了数千种高级语言,经过不断几十年来,全世界涌现出了数千种高级语言,经过不断淘汰,仅有几种高级语言得到了广泛应用。淘汰,仅有几种高级语言得到了广泛应用。1.2 C1.2 C语言的历史背景语言的历史背景C语言诞生前,系统软件主要用语言诞生前,系统软件主要用汇编语言汇编语言编写。由于汇编写。由于汇编语言程序依赖于计算机硬件,其可读性和可移植编语言程序依赖于计算机硬件,其可读性和可移植性差;但一般的高级语言又难以实现对性差;但一般的高级语言又难以实现对硬件硬件的直接的直接操作(这正是汇编语言的优势)且代码效率低,于操作(这正
10、是汇编语言的优势)且代码效率低,于是兼有汇编语言和高级语言特性的是兼有汇编语言和高级语言特性的C语言应运而生。语言应运而生。C语言是贝尔实验室于语言是贝尔实验室于70年代初研制出来的,后来又被年代初研制出来的,后来又被多次改进,并出现了多种版本。多次改进,并出现了多种版本。80年代初,美国国年代初,美国国家标准化协会(家标准化协会(ANSI)根据)根据C语言问世以来各种版语言问世以来各种版本对本对C语言的发展和扩充,制定了语言的发展和扩充,制定了ANSI C标准标准(1989年、年、1999年再次做了修订)。年再次做了修订)。l语言简洁(仅语言简洁(仅32个个关键字关键字)、程序紧凑;)、程序
11、紧凑;l运算符运算符极其丰富,共有极其丰富,共有34种运算符;种运算符;l数据结构数据结构丰富,便于实现复杂的数据结构;丰富,便于实现复杂的数据结构;l具有结构化的程序控制语句,以具有结构化的程序控制语句,以函数函数为程序模块,为程序模块,便于结构化程序设计;便于结构化程序设计;l语法限制较为宽松,程序设计自由;语法限制较为宽松,程序设计自由;l具有具有位操作位操作功能,可以直接操纵硬件;功能,可以直接操纵硬件;l生成的生成的目标代码目标代码质量高,程序执行效率高;质量高,程序执行效率高;l可移植性好(较之汇编语言)。可移植性好(较之汇编语言)。 1.2 C 1.2 C语言的特点语言的特点1.
12、3 1.3 语言程序的结构语言程序的结构1. C语言程序的结构语言程序的结构 一个完整的一个完整的C语言程序由一个语言程序由一个main()函数(主函数)和函数(主函数)和若干其它函数组成,或仅有一个主函数。若干其它函数组成,或仅有一个主函数。例例1-1:显示字符串。显示字符串。main( ) printf( “This is a C program.n” ); 程序运行结果:程序运行结果:This is a C program.例例1-2:键盘输入两个数据,显示其中较大数。键盘输入两个数据,显示其中较大数。 int max( int x, int y ) return( xy ? x : y
13、 ); main() int num1, num2; printf ( “Input the first integer number: ” ); scanf ( “%d”, &num1 ); printf ( “Input the second integer number: ” ); scanf ( “%d”, &num2 ); printf ( “max=%dn”, max( num1, num2 ) ); 程序运行情况:程序运行情况: Input the first integer number: 6 Input the second integer number: 9
14、 max=9交换交换main()函数和函数和max()函数函数前后位置前后位置,运行,运行结果相同结果相同。由上述两个例题可知由上述两个例题可知C语言程序的结构:语言程序的结构:(1)函数是)函数是C语言程序的基本单位。语言程序的基本单位。 main()函数的作用,相当于其它高级语言中的主程序;函数的作用,相当于其它高级语言中的主程序;其它函数相当于子程序。其它函数相当于子程序。(2)C语言程序总是从语言程序总是从main()函数开始执行。函数开始执行。 一个一个C程序总是从程序总是从main()函数开始执行,不论其在程函数开始执行,不论其在程序中的位置。习惯上,将其放在序中的位置。习惯上,将
15、其放在最前面最前面。当主函数。当主函数执行完毕时,亦即程序执行完毕。执行完毕时,亦即程序执行完毕。2. 函数的结构函数的结构 任何函数(包括主函数)都是由任何函数(包括主函数)都是由函数说明函数说明和和函数体函数体两部两部分组成。其一般结构如下:分组成。其一般结构如下: 函数类型函数类型 函数名函数名( 函数参数表函数参数表 ) 函数说明部分函数说明部分 说明语句部分;说明语句部分; 执行语句部分;执行语句部分; 函数体部分函数体部分 (1) 使用的语法符号约定使用的语法符号约定 . 方括号表示可选(既可指定,也可缺省);方括号表示可选(既可指定,也可缺省); 省略号表示前面的可以重复;省略号
16、表示前面的可以重复; | 多个选择项中选择一个。多个选择项中选择一个。例如:例如: static | extern | . 函数名函数名 ( 函数参数函数参数1, 函数参数函数参数2, )(2)函数说明)函数说明由由函数类型函数类型(可缺省)、(可缺省)、函数名函数名和和函数参数表函数参数表三部分组三部分组成,其中函数参数表的格式为:成,其中函数参数表的格式为: 数据类型数据类型 形参形参 , 数据类型数据类型 形参形参2 , 如例如例1-2: 函数类型函数类型 函数名函数名 函数参数表函数参数表 int max ( int x , int y )(3)函数体)函数体函数体位于函数说明部分下方
17、一对大括号之间,一般由函数体位于函数说明部分下方一对大括号之间,一般由说明语句和可执行语句两部分构成:说明语句和可执行语句两部分构成:l说明语句部分说明语句部分:由变量定义、自定义类型定义、自定:由变量定义、自定义类型定义、自定义函数说明、外部变量说明等组成;义函数说明、外部变量说明等组成;l可执行语句:可执行语句:一般由若干条可执行语句构成一般由若干条可执行语句构成。 注意:注意: 函数体中变量定义语句必须在所有可执行语句之前函数体中变量定义语句必须在所有可执行语句之前 ; 也可没有变量定义。也可没有变量定义。函数体结构示意图函数体结构示意图 main( ) /*主函数主函数main()*/
18、 int num1; int num2; printf( “Input the 1 integer number: ” ); scanf( “%d”, &num1); printf( “Input the 2 integer number: ” ); scanf( “%d”, &num2); printf( “max=%dn”, max( num1, num2 ); 可执行语句部分可执行语句部分变量变量定义定义部分部分函数体函数体函数说明函数说明3. 源程序书写格式源程序书写格式l所有语句都以分号所有语句都以分号 ”;” 结束,程序的最后一个语句结束,程序的最后一个语句也不例外
19、;也不例外;l程序行的书写格式自由,既允许一行内写几条语句,程序行的书写格式自由,既允许一行内写几条语句,也允许一条语句分写在几行上;也允许一条语句分写在几行上;l可使用注释来说明程序含义,以便阅读,但程序编可使用注释来说明程序含义,以便阅读,但程序编译时忽略注释部分。译时忽略注释部分。C的注释格式为:的注释格式为: /* */注意:注意:l“/*”和和“*/” 必须成对使用,且必须成对使用,且“/”和和“*”、以及、以及“*”和和“/”之间不能有空格,否则编译时出错;之间不能有空格,否则编译时出错;l注释可单占一行,也可跟在语句的后面;注释可单占一行,也可跟在语句的后面;l如果注释内容较多,
20、可分作几行写;如果注释内容较多,可分作几行写;l注释中允许使用汉字。在非中文操作系统下,看到的注释中允许使用汉字。在非中文操作系统下,看到的是一串乱码,但不影响是一串乱码,但不影响 程序运行。程序运行。1.4 C1.4 C语言的语句和关键字语言的语句和关键字 1. C语言的语句语言的语句 C程序通过函数体中可执行语句向计算机系统发出操程序通过函数体中可执行语句向计算机系统发出操作命令。按语句功能或结构不同,作命令。按语句功能或结构不同,C语句可分为:语句可分为:(1)控制语句)控制语句控制程序流程,控制程序流程,C有有9条控制语句,分为三种:条控制语句,分为三种:l选择结构控制语句:选择结构控
21、制语句:if( ) else , switch( ) l循环结构控制语句:循环结构控制语句:do while( ), for( ) , while( ) , break, continuel其它控制语句:其它控制语句:goto, return(2) 函数调用语句函数调用语句函数调用语句由一次函数调用加一个分号构成。如:函数调用语句由一次函数调用加一个分号构成。如:printf( This is a C function statement.“ );(3)表达式语句)表达式语句表达式语句由表达式后加一个分号构成。典型的表达表达式语句由表达式后加一个分号构成。典型的表达式语句是在赋值表达式后加分号
22、构成赋值语句。式语句是在赋值表达式后加分号构成赋值语句。如:如:“ num=5 ” 是一个赋值表达式,是一个赋值表达式,而:而:“ num=5 ; ” 却是一个赋值语句。却是一个赋值语句。(4)空语句)空语句空语句仅由一个分号构成,不执行任何操作。空语句仅由一个分号构成,不执行任何操作。例如,下面就是一个空语句:例如,下面就是一个空语句: ; (5) 复合语句复合语句复合语句是由大括号括起来的一组(也可是一条)语复合语句是由大括号括起来的一组(也可是一条)语句构成。句构成。例如:例如:main( ) /*复合语句。复合语句。注意:注意:右括号后无分号。右括号后无分号。*/ 注意:注意:l复合语
23、句在语法上和单一语句相同,即单一语句可复合语句在语法上和单一语句相同,即单一语句可以出现的地方,也可以使用复合语句;以出现的地方,也可以使用复合语句;l复合语句可以复合语句可以嵌套嵌套,即复合语句中可再次出现复合,即复合语句中可再次出现复合语句。语句。 2. 关键字关键字关键字是系统用来表示特定含义的单词,编程人员不能关键字是系统用来表示特定含义的单词,编程人员不能当作其他字符串使用。当作其他字符串使用。C语言关键字共语言关键字共32个:个:l数据类型关键字数据类型关键字(12个个):char, double, enum, float, int, long, short, signed, st
24、ruct, union, unsigned, voidl控制语句关键字控制语句关键字(12个个):break, case, continue, default, do, else, for, goto, if, return, switch, whilel存储类型关键字存储类型关键字(4个个):auto, extern, register, staticl其它关键字其它关键字(4个个):const, sizeof, typedef, volatile1. 运行一个语言程序的一般过程运行一个语言程序的一般过程 Turbo C是一个集源程序编辑、编译、连接、运行与是一个集源程序编辑、编译、连接、运
25、行与调试于一体、用菜单驱动的集成软件环境,专门用调试于一体、用菜单驱动的集成软件环境,专门用来编辑、编译、执行来编辑、编译、执行C程序的软件。程序的软件。利用利用Turbo C运行一个运行一个C语言程序的一般过程为:语言程序的一般过程为:1.5 Turbo C 1.5 Turbo C 的基本操作的基本操作 启动启动TC,进入,进入TC集成环境;集成环境; 编辑编辑(或修改)源程序(编辑完成后最好先保存源(或修改)源程序(编辑完成后最好先保存源文件);文件); 编译编译,若编译成功,则转,若编译成功,则转 ;否则返回;否则返回 ; 连接连接,若连接成功,则转,若连接成功,则转 ;否则返回;否则返
26、回 ; 运行运行,观察程序运行结果,验证程序的正确性。若,观察程序运行结果,验证程序的正确性。若出现逻辑错误,则返回出现逻辑错误,则返回 ,直至程序正确;,直至程序正确; 退出退出。2. TC的启动、退出与命令菜单的启动、退出与命令菜单(1)启动)启动Turbo C在在命令行窗口命令行窗口运行运行TC.EXE(首先要转到(首先要转到tc.exe所在的所在的目录,或输入目录,或输入tc命令时加上命令时加上tc.exe的路径),即可的路径),即可弹出弹出Turbo C的窗口界面。的窗口界面。 主菜单:主菜单:主菜单条横向排列在屏幕顶端,并被激活,主菜单条横向排列在屏幕顶端,并被激活,其中其中Fil
27、e主项成为当前项。主项成为当前项。 编辑窗口:编辑窗口:主菜单的下面,是主菜单的下面,是Edit(编辑)窗口和(编辑)窗口和Message(消息)窗口。两个窗口中,顶端横线为(消息)窗口。两个窗口中,顶端横线为双线显示的,表示该窗口是活动窗口。双线显示的,表示该窗口是活动窗口。 状态行:状态行:编辑窗口的顶端为状态行,其中:编辑窗口的顶端为状态行,其中:lLine 1 Col 1:显示光标所在的行号和列号,即光标:显示光标所在的行号和列号,即光标位置。位置。lInsert:表示编辑状态处于表示编辑状态处于“插入插入”。当处于。当处于“改写改写”状态时,此处为空白。状态时,此处为空白。lN O
28、N A M E . C :显 示 当 前 正 在 编 辑 的 文 件 名 。显 示 当 前 正 在 编 辑 的 文 件 名 。“NONAME.C”表示用户尚未给文件命名。表示用户尚未给文件命名。l屏幕底端是屏幕底端是7个功能键个功能键说明及说明及键状态。键状态。(2)命令菜单的使用)命令菜单的使用l按按下功能键下功能键,激活主菜单。如果主菜单已经被,激活主菜单。如果主菜单已经被激活,则直接转下一步;激活,则直接转下一步;l用左、右方向键移动光带,定位于需要的主项上,用左、右方向键移动光带,定位于需要的主项上,然后再按回车键,打开其子菜单(纵向排列);然后再按回车键,打开其子菜单(纵向排列);l
29、用上、下方向键移动光带,定位于需要的子项上,用上、下方向键移动光带,定位于需要的子项上,回车即可选中执行。执行完选定的功能后,系统自回车即可选中执行。执行完选定的功能后,系统自动关闭菜单。动关闭菜单。 注意:注意:若菜单激活后不使用,可再按若菜单激活后不使用,可再按键键关闭,返回原来状态。关闭,返回原来状态。(3)退出)退出Turbo Cl菜单法:菜单法:File | Quit(先选择(先选择File主项,再选择并执行主项,再选择并执行Quit子项);子项);l快捷键法:快捷键法: + “X” 。3. 编辑并保存一个编辑并保存一个C语言源程序语言源程序 (1)激活主菜单)激活主菜单选择选择 F
30、ile | Load 项(或项(或 ););(2)文件命名)文件命名在在“ Load File Name ”窗口输入源程序文件名:窗口输入源程序文件名:l直接输入:直接输入:直接输入表示文件名的字符串;直接输入表示文件名的字符串;若文件已存在,则系统在编辑窗口显示该文件内容,若文件已存在,则系统在编辑窗口显示该文件内容,可供编辑、修改;若是新文件,则给出一个空白编可供编辑、修改;若是新文件,则给出一个空白编辑窗口,可供输入新的源程序;若该文件不在当前辑窗口,可供输入新的源程序;若该文件不在当前目录下,则需冠以路径名和盘符。目录下,则需冠以路径名和盘符。l选择文件选择文件(仅适用于已经存在的源程
31、序文件):(仅适用于已经存在的源程序文件):- 空回车,显示当前目录下所有后缀为空回车,显示当前目录下所有后缀为 .c 的文件;的文件;- 用方向键光带定位于所需的文件名上;用方向键光带定位于所需的文件名上;- 按回车键。按回车键。(3)文件保存)文件保存在编辑源程序过程中,随时都可以按在编辑源程序过程中,随时都可以按键(或键(或 File | Save ),将当前编辑的文件存盘。),将当前编辑的文件存盘。 4. 编译、连接编译、连接 选择并执行选择并执行Compile | Make EXE File项(快捷键项(快捷键),),则则TC将自动完成对当前正在编辑的源程序文件的编将自动完成对当前正在编辑的源程序文件的编译、连接,并生成可执行文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年人日常护理技巧
- 隆鼻手术恢复期护理细节
- 护理精神科护理特殊性与挑战
- 护理中的疼痛管理与缓解策略
- 大丰市小海中学高中化学检测期末串讲(下)
- 2025年保险合作协议书
- 垂直市场广告竞争策略研究
- 2026 年中职康复治疗技术(柔韧性训练)试题及答案
- 英语b级的试题及答案
- 基于“大单元”视角的高中思政课教学策略研究
- 跨区域文化协作-洞察及研究
- 2025 易凯资本中国健康产业白皮书 -生物制造篇(与茅台基金联合发布)
- 产业经济学(苏东坡版)课后习题及答案
- T/CECS 10227-2022绿色建材评价屋面绿化材料
- 区域医学检验中心项目建设方案
- 小学四年级安全教育上册教学计划小学四年级安全教育教案
- 个人优势与劣势分析
- VCR接头锁紧工作程序
- 2025阀门装配工艺规程
- 非计划拔管风险评估及护理
- 小学数学教学中融入中国传统文化的实践研究
评论
0/150
提交评论