Free考研资料 - 免费考研论坛

 找回密码
 注册
打印 上一主题 下一主题

谭浩强《C程序设计》(第4版)笔记和课后习题详解

[复制链接]
跳转到指定楼层
楼主
ooo 发表于 17-8-9 14:35:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下载地址:http://free.100xuexi.com/Ebook/82862.html
目录                                                                                        封面
内容简介
目录
第1章 程序设计和C语言
 1.1 复习笔记
 1.2 课后习题详解
第2章 算法——程序的灵魂
 2.1 复习笔记
 2.2 课后习题详解
第3章 最简单的C程序设计——顺序程序设计
 3.1 复习笔记
 3.2 课后习题详解
第4章 选择结构程序设计
 4.1 复习笔记
 4.2 课后习题详解
第5章 循环结构程序设计
 5.1 复习笔记
 5.2 课后习题详解
第6章 利用数组处理批量数据
 6.1 复习笔记
 6.2 课后习题详解
第7章 用函数实现模块化程序设计
 7.1 复习笔记
 7.2 课后习题详解
第8章 善于利用指针
 8.1 复习笔记
 8.2 课后习题详解
第9章 用户自己建立数据类型
 9.1 复习笔记
 9.2 课后习题详解
第10章 对文件的输入输出
 10.1 复习笔记
 10.2 课后习题详解
第11章 常见错误分析
 11.1 复习笔记
 11.2 课后习题详解
                                                                                                                                                                                                    内容简介                                                                                            


  我国各大院校一般都把国内外通用的权威教科书作为本科生和研究生学习专业课程的参考教材,这些教材甚至被很多考试(特别是硕士和博士入学考试)和培训项目作为指定参考书。为了帮助读者更好地学习专业课,我们有针对性地编著了一套与国内外教材配套的复习资料,并提供配套的名师讲堂和题库。
  谭浩强所著的《C程序设计》(第4版,清华大学出版社)是我国高校采用较多的计算机专业优秀教材,也被众多高校指定为计算机专业考研参考书目。
  作为该教材的辅导书,本书具有以下几个方面的特点:
  1.整理名校笔记,浓缩内容精华。在参考了国内外名校名师讲授谭浩强《C程序设计》的课堂笔记基础上,本书每章的复习笔记部分对该章的重难点进行了整理,同时对重要知识点进行点拨,因此,本书的内容几乎浓缩了配套教材的知识精华。
  2.解析课后习题,提供详尽答案。本书参考大量C程序设计相关资料对该教材的重难点课(章)后习题进行了详细的分析和解答,并对相关重要知识点进行了延伸和归纳。
  要深深牢记:考研不同一般考试,概念题(名词解释)要当作简答题来回答,简答题要当作论述题来解答,而论述题的答案要像是论文,多答不扣分。有的论述题的答案简直就是一份优秀的论文(其实很多考研真题就是选自一篇专题论文),完全需要当作论文来回答!
  圣才学习网│计算机类(www.100xuexi.com)提供全国各高校计算机类专业考研考博辅导班【保过班、网授班、3D电子书、3D题库等】、全套资料(历年真题及答案、笔记讲义等)、计算机类国内外经典教材名师讲堂、考研教辅图书等。本书特别适用于参加研究生入学考试指定考研参考书目为谭浩强主编的《C程序设计》的考生,也可供各大院校学习C程序设计的师生参考。
  与传统图书相比,本书具有以下七大特色:
1.互动学习:摇一摇,找学友,交友学习两不误  摇一摇,找到学习本书的所有学友,可精确查找学友的具体位置;与学友互动,交流学习(视频、语音等形式),交友学习两不误;学习圈内有学霸解答本书学习中的问题,并配有专职教师指导答疑解惑。

2.720度立体旋转:好用好玩的全新学习体验  圣才电子书带给你超逼真的3D学习体验,720度立体场景,任意角度旋转,模拟纸质书真实翻页效果,让你学起来爱不释手!

3.手机扫码即可阅读,精彩内容,轻松分享  圣才电子书扫码即可在手机阅读,随处随学。可以不用客户端不用账号,简单方便!
4.质量保证:每本电子书都经过图书编辑队伍多次反复修改,年年升级  我们拥有一支强大图书编辑团队,他们专门从事图书的编辑工作,对各类职称考试、考研考博等教材教辅深入研究,以及各类职称考试、考研考博的历年真题进行详尽仔细研究与分析,掌握考试命题的规律和方向,并结合行业最新前沿动态,不断分析整理各个科目的考试要点,把重要考点全部固化为试题形式,形成精准领先及时的备考电子书。同时,依托北京高校资源,我们聘请知名高校众多专家组成顾问团队严格审核圣才电子书,确保质量。
5.免费升级:更新并完善内容,终身免费升级  如购买本书,可终生使用。免费自动升级指我们一旦对该产品的内容有所修订、完善,系统立即自动提示您免费在线升级您的产品,您将自动获得最新版本的产品内容。真正做到了一次购买,终身使用。当您的电子书出现升级提示时,请选择立即升级。
6.功能强大:记录笔记、答案遮挡等十大功能  本书具有“知识点串联列举”“划线添加笔记”、“答案自动遮挡”、“全文检索”等功能。
  (1)知识点串联列举——相同知识点内容列表呈现,便于读者记忆和复习,举一反三,触类旁通。【为考试教辅量身定做】

  (2)划线添加笔记——使用颜色笔工具,划一条线,写笔记,提交纠错。【圣才电子书独家推出】

  (3)全文检索——输入关键词,本书相关内容一览无余。【圣才电子书独家推出】

7.多端并用:电脑手机平板等多平台同步使用  本书一次购买,多端并用,可以在PC端(在线和下载)、手机(安卓和苹果)、平板(安卓和苹果)等多平台同步使用。同一本书,使用不同终端登录,可实现云同步,即更换不同设备所看的电子书页码是一样的。

  特别说明:本书的部分内容参考了部分网络资料及相关资料。但由于特殊的原因,比如作者姓名或出处在转载之前已经丢失,或者未能及时与作者取得联系等,因而可能没有注明作者的姓名或出处。如果原作者或出版人对本书有任何异议,请与我们联系,我们会在第一时间为您处理!
  圣才学习网(www.100xuexi.com)是一家为全国各类考试和专业课学习提供辅导方案【保过班、网授班、3D电子书、3D题库】的综合性学习型视频学习网站,拥有近100种考试(含418个考试科目)、194种经典教材(含英语、经济、管理、证券、金融等共16大类),合计近万小时的面授班、网授班课程。
  如您在购买、使用中有任何疑问,请及时联系我们,我们将竭诚为您服务!
  全国热线:400-900-8858(8:30-00:30)
  咨询QQ:4009008858(8:30-00:30)

  详情访问:http://it.100xuexi.com/(圣才学习网|计算机类)
圣才学习网编辑部
                                                                                                                                    本书更多内容>>
                                                                                                                                                                                                                    使用说明                                                                                                   
                                                                                    

内容预览
第1章 程序设计和C语言
1.1 复习笔记
一、计算机程序
1.程序就是一组计算机能识别和执行的指令
每一条指令都能使计算机执行特定的操作。只要让计算机执行这个程序,计算机就会“自动地”执行各条指令,有条不紊地进行工作。一个特定的指令序列,用来完成一定的功能。为了使计算机系统能实现各种功能,需要成千上万个程序。
2.计算机的一切操作都是由程序控制的
计算机的本质是程序的机器,程序和指令是计算机系统中最基本的概念。只有懂得程序设计,才能真正了解计算机是怎样工作的,才能更深入地使用计算机。
二、计算机语言
1.定义
人和计算机交流信息,要解决语言问题。需要创造一种计算机和人都能识别的语言,这就是计算机语言。
2.发展阶段
计算机语言经历了几个发展阶段:
(1)机器语言
①工作原理
计算机工作基于二进制,从根本上说,计算机只能识别和接受由0和1组成的指令。在计算机发展的初期,一般计算机的指令长度为16,即以16个二进制数(0或1)组成一条指令,16个0和1可以组成各种排列组合。例如,用1011011000000000让计算机进行一次加法运算。
②机器指令
计算机能直接识别和接受的二进制代码称为机器指令(machine instruction)。机器指令的集合就是该计算机的机器语言(machine language)。在语言的规则中规定各种指令的表示形式以及它的作用。
③缺点
机器语言与人们习惯用的语言差别太大,难学、难写、难记、难检查、难修改,难以推广使用。
(2)符号语言
①概述
为了克服机器语言的上述缺点,人们创造出符号语言(symbolic language),它用一些英文字母和数字表示一个指令,例如用ADD代表“加”,SUB代表“减”,LD代表“传送”等。
②汇编语言
计算机并不能直接识别和执行符号语言的指令,需要用一种称为汇编程序的软件,把符号语言的指令转换为机器指令。一般,一条符号语言的指令对应转换为一条机器指令。转换的过程称为“代真”或“汇编”,因此,符号语言又称为汇编语言(assembler language)。
③缺点
a.难以普及,只在专业人员中使用。
b.不同型号的计算机的机器语言和汇编语言是互不通用的。
机器语言和汇编语言是完全依赖于具体机器特性的,是面向机器的语言。由于它“贴近”计算机,或者说离计算机“很近”,称为计算机低级语言(low level language)。
(3)高级语言
①概述
为了克服低级语言的缺点,20世纪50年代创造出了第一个计算机高级语言—FORTRAN语言。它很接近于人们习惯使用的自然语言和数学语言。程序中用到的语句和指令是用英文单词表示的,程序中所用的运算符和运算表达式和人们日常所用的数学式子差不多,很容易理解。程序运行的结果用英文和数字输出,十分方便。
②特点
a.功能强,且不依赖于具体机器,用它写出的程序对任何型号的计算机都适用(或只须作很少的修改)。
b.计算机也是不能直接识别高级语言程序的,也要进行“翻译”。用一种称为编译程序的软件把用高级语言写的程序(称为源程序,source program)转换为机器指令的程序(称为目标程序,object program),然后让计算机执行机器指令程序,最后得到结果。高级语言的一个语句往往对应多条机器指令。
③常用的高级语言
影响最大的高级语言有FORTRAN和ALGOL(适合数值计算)、BASIC和QBASIC(适合初学者的小型会话语言)、COBOL(适合商业管理)、Pascal(适合教学的结构程序设计语言)、PL/1(大型通用语言)、LISP和PROLOG(人工智能语言)、C(系统描述语言)、C++(支持面向对象程序设计的大型语言)、Visual Basic(支持面向对象程序设计的语言)和Java(适于网络的语言)等。
④发展阶段
a.非结构化的语言
初期的语言属于非结构化的语言,编程风格比较随意,只要符合语法规则即可,没有严格的规范要求,程序中的流程可以随意跳转。人们往往追求程序执行的效率而采用了许多“小技巧”,使程序变得难以阅读和维护。早期的BASIC,FORTRAN和ALGOL等都属于非结构化的语言。
b.结构化语言
为了解决以上问题,提出了“结构化程序设计方法”,规定程序必须由具有良好特性的基本结构(顺序结构、分支结构、循环结构)构成,程序中的流程不允许随意跳转,程序总是由上而下顺序执行各个基本结构。这种程序结构清晰,易于编写、阅读和维护。QBASIC,FORTRAN 77和C语言等属于结构化的语言,这些语言的特点是支持结构化程序设计方法。
c.面向对象的语言
近些年来,在处理规模较大的问题时,开始使用面向对象的语言。C++,C#,Visual Basic和Java等语言是支持面向对象程序设计方法的语言。
进行程序设计,必须要用到计算机语言,人们根据任务的需要选择合适的语言,编写出程序,然后运行程序得到结果。
三、C语言的发展及其特点
1.概述
(1)C语言是国际上广泛流行的计算机高级语言。
(2)C语言的祖先是BCPL语言。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单、无数据类型等),C语言的新特点主要表现在具有多种数据类型。开发C语言的目的在于尽可能降低用它所写的软件对硬件平台的依赖程度,使之具有可移植性。
2.发展
(1)最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,Ken Thompson和D. M. Ritchie合作把UNIX的90%以上用C语言改写,即UNIX第5版。随着UNIX的日益广泛使用,C语言也迅速得到推广。
(2)以UNIX第7版中的C语言编译程序为基础,1978年,Brian W.Kernighan和Dennis M.Ritchie合著了影响深远的名著The C Programming Language,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它是实际上第—个C语言标准。
(3)1995年,IS0对C 90做了一些修订,即“1995基准增补1(IS0/IEC 9899/AMD1:1995)”。1999年,ISO又对C语言标准进行修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加了一些功能,尤其是c++中的一些功能,命名为IS0/IEC 9899:1999。2001年和2004年先后进行了两次技术修正,即2001年的TC1和2004年的TC2。IS0/IEC 9899:1999及其技术修正被称为C 99,C 99是C 89(及1995基准增补1)的扩充。
3.特点
(1)语言简洁、紧凑,使用方便、灵活
C语言一共只有37个关键字、9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。C语言程序比其他许多高级语言简练,源程序短,因此输入程序时工作量少。
(2)运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值和强制类型转换等都作为运算符处理,从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。
(3)数据类型丰富
C语言提供的数据类型包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型等,又扩充了复数浮点类型、超长整型(1ong long)和布尔类型(bool)等。尤其是指针类型数据,使用十分灵活和多样化,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。
(4)具有结构化的控制语句
如if…else语句、while语句、do…while语句、switch语句和for语句。用函数作为程序的模块单位,便于实现程序的模块化。C语言是完全模块化和结构化的语言。
(5)语法限制不太严格,程序设计自由度大
例如,对数组下标越界不进行检查,由程序编写者自己保证程序的正确。对变量的类型使用比较灵活,例如,整型量与字符型数据以及逻辑型数据可以通用。一般的高级语言语法检查比较严,能检查出几乎所有的语法错误,而C语言允许程序编写者有较大的自由度,因此放宽了语法检查。
(6)C语言允许直接访问物理地址
能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来编写系统软件。C语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。
(7)用C语言编写的程序可移植性好
由于C的编译系统相当简洁,因此很容易移植到新的系统。而且C编译系统在新的系统上运行时,可以直接编译“标准链接库”中的大部分功能,不需要修改源代码,因为标准链接库是用可移植的C语言写的。因此,几乎在所有的计算机系统中都可以使用C语言。
(8)生成目标代码质量高,程序执行效率高
C原来是专门为编写系统软件而设计的,许多大的软件都用C语言编写,这是因为C语言的可移植性好并且硬件控制能力高,表达和运算能力强。许多以前只能用汇编语言处理的问题,后来可以改用C语言来处理了。目前C的主要用途之一是编写“嵌入式系统程序”。
四、简单的C语言程序
1.C语言程序举例
下面介绍几个最简单的C语言程序。
【例1.1】要求在屏幕上输出以下一行信息。
This is a C program.
解题思路:在主函数中用printf函数原样输出以上文字。
编写程序:

This is a C program.
Press any key to continue
以上运行结果是在Visual C++6.0环境下运行程序时屏幕上得到的显示。其中第1行是程序运行后输出的结果,第2行是Visual C++6.0系统在输出完运行结果后自动输出的一行信息,告诉用户:“如果想继续进行下一步,请按任意键”。当用户按任意键后,屏幕上不再显示运行结果,而返回程序窗口,以便进行下一步工作(如修改程序)。
程序分析:先看第2行,其中main是函数的名字,表示“主函数”,main前面的int表示此函数的类型是int类型(整型)。在执行主函数后会得到一个值(即函数值),其值为整型。程序第5行“return 0;”的作用是:当main函数执行结束前将整数0作为函数值,返回到调用函数处。每一个C语言程序都必须有一个main函数。函数体由花括号{}括起来。本例中主函数内有两个语句,程序第4行是一个输出语句,printf是C编译系统提供的函数库中的输出函数(详见第4章)。printf函数中双撇号内的字符串"This is a Cprogram."按原样输出。’\n’是换行符,即在输出"This is a Cprogram."后,显示屏上的光标位置移到下一行的开头。这个光标位置称为输出的当前位置,即下一个输出的字符出现在此位置上。每个语句最后都有一个分号,表示语句结束。
在使用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息(例如对这些输入输出函数的声明和宏的定义、全局量的定义等),程序第1行“#include”的作用就是用来提供这些信息的。stdio.h是系统提供的一个文件名,stdio是“standard input & output”的缩写,文件后缀 .h 的意思是头文件(header file),因为这些文件都是放在程序各文件模块的开头的。输入输出函数的相关信息已事先放在stdio.h文件中。现在,用#include指令把这些信息调入供使用。
在以上程序各行的右侧,如果有//,则表示从到本行结束是“注释”,用来对程序有关部分进行必要的说明。在写C程序时应当多用注释,以方便自己和别人理解程序各部分的作用。在程序进行预编译处理时将每个注释替换为一个空格,因此在编译时注释部分不产生目标代码,注释对运行不起作用。注释只是给人看的,而不是让计算机执行的。
说明:C语言允许用两种注释方式:
(1)以//开始的单行注释。如上介绍的注释。这种注释可以单独占一行,也可以出现在一行中其他内容的右侧。此种注释的范围从//开始,以换行符结束。也就是说这种注释不能跨行。如果注释内容一行内写不下,可以用多个单行注释,如下面两行是连续的注释行:
//如注释内容一行内写不下
//可以在下一行重新用“//”,然后继续写注释。
(2)以/*开始,以*/结束的块式注释。这种注释可以包含多行内容。它可以单独占一行(在行开头以/*开始,行末以*/结束),也可以包含多行。编译系统在发现一个/*后,会开始找注释结束符*/,把二者间的内容作为注释。
但应注意的是在字符串中的//和/*都不作为注释的开始。而是作为字符串的一部分。如:
printf("//howdo you do!\n");

printf("/*howdo you do!*/\n");
输出分别是:
//how do you do!

/*how do you do!*/
注释可以用汉字或英文字符表示。
【例1.2】求两个整数之和
解题思路:设置3个变量,a和b用来存放两个整数,sum用来存放和数。用赋值运算符“=”把相加的结果传送给sum。
编写程序:

运行结果:
sum is 579
然后换行,程序执行结束。
程序分析:本程序的作用是求两个整数a和b之和。第4行是声明部分,定义a,b和sum为整型(int)变量。第5,6行是两个赋值语句,使a和b的值分别为123和456第7行使sum的值为a和b之和。第8行输出结果,这个printf函数圆括号内有两个参数,一个是双撇号中的内容sum is %d\n,它是输出格式字符串,作用是输出用户希望输出的字符和输出的格式,d表示用“十进制整数”形式输出。圆括号内第2个参数sum,表示要输出变量sum的值。在执行printf函数时,将sum变量的值(以十进制整数表示)取代双撇号中的%d。现在sum的值是579(即123与456之和),所以在输出时,十进制整数579取代了%d,(如图1-1所示),\n是换行符。

图1-1
最后输出双撇号中的字符“sum is 579”,然后换行,程序执行结束。
由于本程序正常运行和结束,因此main函数的返回值应为0。现在并没有去检查和利用这个函数值,但是以后在某些时候会需要用到main函数值的。
【例1.3】求两个整数中的较大者。
解题思路:用一个函数来实现求两个整数中的较大者。在主函数中调用此函数并输出结果。
编写程序:



运行结果:
8,5
max=8
第1行输入8和5,赋给变量a和b,第2行输出“大数为8”。
程序分析:本程序包括两个函数:主函数main和被调用的函数max。
max函数的作用是将x和Y中较大者的值赋给变量z。第18行return语句将z的值作为max的函数值,返回给调用max函数的函数(即主函数main)。返回值是通过函数名max带回到main函数中去的(带回到程序第8行,main函数调用max函数处)。
程序第5行是对被调用函数max的声明(declaration)。因为在主函数中要调用max函数(程序第8行“c=max(a,b);”),而max函数的定义却在main函数之后,对程序的编译是自上而下进行的,在对程序第8行进行编译时,编译系统无法知道max是什么,因而无法把它作为函数调用处理。为了使编译系统能识别max函数,就要在调用max函数之前用“int max(int x,int y);”对max函数进行“声明”,所谓声明,通俗地说就是告诉编译系统max是什么,以及它的有关信息。有关函数的声明详见第7章。
程序第7行scanf是输入函数的名字(scanf和printf都是C的标准输入输出函数)。该 scanf函数的作用从键盘读入两个整数,送到变量a和b的地址处,然后把这两个整数分别赋给变量a和b。scanf后面圆括号中包括两部分内容:一是双撇号中的内容,它指定输入的数据按什么格式输入。“%d”的含义是十进制整数形式。二是输入的数据准备放到哪里,即赋给哪个变量。现在,scanf函数中指定的是a和b,在a和b的前面各有一个&地址符。
程序第8行用max(a,b)调用max函数。在调用时将a和b作为max函数的参数(称为实参)的值分别传送给max函数中的参数x和y(称为形参),然后执行max函数的函数体(程序第14~19行),使max函数中的变量z得到一个值(即x和y中大者的值),return(z)的作用是把z的值作为max函数值带回到程序第8行“=”的右侧(主函数调用max函数的位置),取代max(a,b),然后把这个值赋给变量c。
第8行输出结果。在执行printf函数时,对双撇号括起来的max=%d\n是这样处理的:将max=原样输出,%d由变量c的值取代之,\n执行换行。
2.C语言程序的结构
C语言程序的结构有以下特点:
(1)一个程序由一个或多个源程序文件组成
在一个源程序文件中可以包括3个部分:
①预处理指令
如#include。C编译系统在对源程序进行编译之前,先由一个“预处理器”对预处理指令进行处理。
②全局声明
即在函数之外进行的数据声明。
③函数定义
每个函数用来实现一定的功能。在调用这些函数时,会完成函数定义中指定的功能。
(2)函数是C程序的主要组成部分
①程序的几乎全部工作都是由各个函数分别完成的,函数是C程序的基本单位,在编写C程序的工作主要就是编写一个个函数。
②一个C语言程序是由一个或多个函数组成的,其中必须包含一个main函数(且只能有一个main函数)。
③一个小程序只包含一个源程序文件,在一个源程序文件中包含若干个函数(其中有一个main函数)。
④在程序中被调用的函数,可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数。
(3)一个函数包括两个部分
①函数首部
即函数的第1行,包括函数名、函数类型、函数属性、函数参数(形式参数)名、参数类型。
例如,例1.3中的max函数的首部为
int max (int x,inty)
↓↓  ↓ ↓ ↓ ↓
函数类型 函数名 函数参数类型 函数参数名 函数参数类型 函数参数名
一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型。如果函数没有参数,可以在括号中写void,也可以是空括号,如:
int main(void)

int main()
②函数体
即函数首部下面的花括号内的部分。如果在一个函数中包括有多层花括号,则最外层的一对花括号是函数体的范围。
函数体一般包括以下两部分:
a.声明部分
声明部分包括:定义在本函数中所用到的变量。
b.执行部分
由若干个语句组成,指定在函数中所进行的操作。
在某些情况下也可以没有声明部分,甚至可以既无声明部分也无执行部分。如:
void dump()
{
}
它是一个空函数,什么也不做,但这是合法的。
(4)程序总是从main函数开始执行的
不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前、另一些函数之后),程序总是从main函数开始执行的。
(5)程序中对计算机的操作是由函数中的C语句完成的
如赋值、输入输出数据的操作都是由相应的C语句实现的。C程序书写格式是比较自由的。一行内可以写几个语句,一个语句可以分写在多行上,但为清晰起见,习惯上每行只写一个语句。
(6)在每个数据声明和语句的最后必须有一个分号
分号是C语句的必要组成部分。如“c=a+b;”其中的分号是不可缺少的。
(7)C语言本身不提供输入输出语句
输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。由于输入输出操作涉及具体的计算机设备,把输入输出操作用库函数实现,就可以使C语言本身的规模较小,编译程序简单,很容易在各种机器上实现,程序具有可移植性。
(8)程序应当包含注释
一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。
五、运行C程序的步骤与方法
1.上机输入和编辑源程序。
通过键盘向计算机输入程序,以文件形式存放在自己指定的文件夹内(如果不特别指定,一般存放在用户当前目录下),文件用.c作为后缀,生成源程序文件,如f.c。
2.对源程序进行编译。
先用C编译系统提供的“预处理器”(又称“预处理程序”或“预编译器”)对程序中的预处理指令进行编译预处理。由预处理得到的信息与程序其他部分一起,组成一个完整的、可以用来进行正式编译的源程序,然后由编译系统对该源程序进行编译,编译程序自动把源程序转换为二进制形式的目标程序(在Visual C++中后缀为.obj,如f.obj)。
3.进行连接处理
经过编译所得到的二进制目标文件(后缀为.obj)还不能供计算机直接执行。必须把所有的编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体,生成一个可供计算机执行的目标程序,称为可执行程序(executive program),在Visual C++中其后缀为.exe,如f.exe。
4.运行可执行程序,得到运行结果。

图1-2
以上过程如图1-2所示。其中实线表示操作流程,虚线表示文件的输入输出。例如,编辑后得到一个源程序文件f.c,然后在进行编译时再将源程序文件f.c输入,经过编译得到目标程序文件f.obj,再将所有目标模块输入计算机,与系统提供的库函数等进行连接,得到可执行的目标程序f.exe,最后把f.exe输入计算机,并使之运行,得到结果。
六、程序设计的任务
程序设计是指从确定任务到得到结果、写出文档的全过程。从确定问题到最后完成任务,一般经历以下几个工作阶段:
1.问题分析
对于接手的任务要进行认真的分析,研究所给定的条件,分析最后应达到的目标,找出解决问题的规律,选择解题的方法。在此过程中可以忽略一些次要的因素,使问题抽象化,例如用数学式子表示问题的内在特性。这就是建立模型。
2.设计算法
即设计出解题的方法和具体步骤。例如要解一个方程式,就要选择用什么方法求解,并且把求解的每一个步骤清晰无误地写出来。一般用流程图来表示解题的步骤。
3.编写程序
根据得到的算法,用一种高级语言编写出源程序。
4.对源程序进行编辑、编译和连接,得到可执行程序。
5.运行程序,分析结果
运行可执行程序,得到运行结果。能得到运行结果并不意味着程序正确,要对结果进行分析,看它是否合理。此外,还要对程序进行测试(test)。所谓测试,就是设计多组测试数据,检查程序对不同数据的运行情况,从中尽量发现程序中存在的漏洞,并修改程序,使之能适用于各种情况,作为商品提供使用的程序,是必须经过严格测试的。
6.编写程序文档
许多程序是提供给别人使用的,如同正式的产品应当提供产品说明书一样,正式提供给用户使用的程序,必须向用户提供程序说明书(也称为用户文档)。内容应包括:程序名称、程序功能、运行环境、程序的装入和启动、需要输入的数据,以及使用注意事项等。
程序文档是软件的一个重要组成部分,软件是计算机程序和程序文档的总称。现在的商品软件光盘中,既包括程序,也包括程序使用说明,有的则在程序中以帮助(help)或read me形式提供。

下载地址:http://free.100xuexi.com/Ebook/82862.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|Free考研资料 ( 苏ICP备05011575号 )

GMT+8, 25-2-24 20:32 , Processed in 0.124343 second(s), 10 queries , Gzip On, Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表