版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录
第一章概论....................................................................9
1.1计算机软件及其发展......................................................9
1.1.1计算机软件定义....................................................9
1.1.2计算机软件的功能及分类............................................9
1.1.3计算机软件的发展.................................................10
1.1.4软件工程学的基本概念............................................11
1.2程序设计的实现.........................................................13
1.2.1程序设计语言....................................................13
1.2.2语言处理程序....................................................14
1.3算法与算法描述..........................................................16
1.3.1算法的概念.......................................................16
1.3.2程序设计的基本过程..............................................21
1.3.3程序设计风格.....................................................22
习题24
第二章C语言基础...............................................................25
引言..........................................................................25
理论知识基础.................................................................28
2.1C语言概述..............................................................28
2.1.1C语言的发展背景.................................................28
2.1.2C语言的特点.....................................................28
2.1.3C语言的标准.....................................................29
2.1.4C语言的应用.....................................................29
2.1.5C程序的开发流程.................................................29
2.1.6C程序结构分析...................................................30
2.2C的数据类型与运算......................................................33
2.2.1C的数据类型.....................................................33
2.2.2常量与变量.......................................................33
2.2.3整型数据.........................................................34
2.2.4实型数据..........................................................36
2.2.5字符型数据........................................................37
2.2.6数据类型的命名规范...............................................39
2.2.7算术运算符和算术表达式..........................................40
2.2.8算术赋值运算.....................................................41
2.2.9其他运算..........................................................42
2.3C语句概述..............................................................45
2.4终端上的数据输入和输出................................................45
2.4.1格式输入和格式输出函数.........................................46
2.4.2字符输入和字符输出函数.........................................48
习题....................................................................50
第三章C程序控制结构..........................................................54
引言..........................................................................54
3.0项目实现................................................................55
3.0.1项目1实现.......................................................55
3.0.2项目2实现.......................................................56
理论知识基础.................................................................57
3.1结构化程序概述..........................................................57
3.1.1结构化程序设计基本思想..........................................57
3.1.2关于goto语句....................................................57
3.2顺序结构................................................................58
3.3选择结构................................................................58
3.3.1if语句............................................................58
3.3.2if语句的嵌套.....................................................64
3.3.3条件表达式构成的选择结构........................................67
3.3.4switch语句.......................................................68
3.4循环结构................................................................72
3.3.1while语句........................................................72
3.4.2do〜while语句....................................................73
3.4.3for语句...........................................................75
3.4.4循环结构的嵌套....................................................79
3.4.5break语句和continue语句........................................82
3.4.6用goto语句构成循环............................................83
3.5控制结构程序设计.......................................................84
习题....................................................................90
第四章函数....................................................................96
引言..........................................................................96
4.0项目实现.................................................................97
4.0.1任务1:整体项目菜单实现........................................97
4.0.2任务2:子项目(子系统)的实现..................................98
4.0.3任务3:将各个子项目(子系统)整合成一个完整的项目..........100
4.1C语言函数概述..........................................................102
4.1.1函数的定义.......................................................103
4.1.2函数的声明.......................................................105
4.2函数的参数和返回值.....................................................105
4.2.1函数的参数.......................................................105
4.2.2函数的返回值.....................................................106
4.3函数的调用.............................................................109
4.3.1函数调用........................................................109
4.3.2嵌套调用........................................................112
4.3.3递归调用........................................................114
4.4变量及其存储类型......................................................120
4.4.1变量及其存储分类................................................120
4.4.2局部变量及其存储方式...........................................121
4.4.3全部变量及其存储方式...........................................126
4.4.4变量的存储类别小结.............................................130
4.4.5函数的存储方式.................................................133
习题.........................................................................136
第5章数组...................................................................143
弓I言.........................................................................143
5.0项目需求分析与任务分解.................................................143
5.0.1任务1:使用数组查找最高消费的记录............................143
5.0.2任务2:使用数组查找最低消费的记录。..........................144
5.0.3任务3:统计消费总数。..........................................145
5.0.4任务4:查询指定金额以上或以下的记录..........................145
5.0.5任务5:金额排序..................................................146
5.1数组的概述..............................................................147
5.2一维数组................................................................147
5.2.1一维数组定义.....................................................147
5.2.2—维数组元素的引用..............................................148
5.2.3—维数组的初始化.................................................148
5.2.4应用举例..........................................................149
5.3字符数组................................................................151
5.3.1字符数组的定义...................................................151
5.3.2字符数组的初始化.................................................151
5.3.2字符数组的引用...................................................151
5.3.4字符串............................................................152
5.3.5字符数组的输入输出..............................................153
5.3.6字符串处理函数...................................................154
5.3.7字符数组应用举例...............................................157
5.4多维数组................................................................158
5.4.1二维数组的定义.................................................158
5.4.2二维数组的引用.................................................159
5.4.3二维数组的初始化................................................160
5.4.4二维数组程序举例................................................161
5.5数组作为函数参数......................................................162
5.5.1数组元素做函数实参.............................................162
5.5.2数组名作函数参数................................................163
5.5.3用多维数组作函数参数...........................................164
习题........................................................................165
第六章指针................................................................169
引言.........................................................................169
6.0项目实现...............................................................170
6.0.1任务1:计算总成绩...............................................170
6.0.2任务2:求平均成绩...............................................171
6.0.3任务3:求最高分、最低分........................................171
6.0.4任务4:成绩排序..................................................172
理论知识基础................................................................173
6.1指针变量................................................................173
6.1.1指针的概念.......................................................173
6.1.2&运算和*运算....................................................174
6.1.3指针对数据的处理................................................175
6.2指针的说明与引用......................................................176
6.2.1指针的说明......................................................176
6.2.2指针类型转换....................................................178
6.2.3指针的引用......................................................180
6.3指向数组的指针.........................................................184
6.4指向字符串的指针......................................................188
6.4.1对指向字符串的指针赋值.......................................188
6.4.2指向字符串的指针的应用.......................................189
6.5指向函数的指针........................................................192
6.6指针数组...............................................................196
6.7指向指针的指针........................................................200
6.8指针函数..............................................................204
6.9指针作函数的参数.......................................................208
习题.........................................................................213
第七章结构与联合...........................................................217
引言.........................................................................217
7.0项目实现...............................................................217
7.0.1任务1:记录的输入...............................................217
7.0.2任务2:用户记录的输出...........................................219
7.0.3任务3:用户记录的按姓名查找显示...............................219
7.0.4任务4:用户记录的删除...........................................221
7.0.5任务5:用户记录的插入...........................................222
7.0.6任务6:用户记录的按姓名排序....................................223
7.0.7主函数和其他函数.................................................224
理论知识基础................................................................227
7.1结构的定义和使用......................................................227
7.1.1结构类型的定义形式...............................................227
7.1.2结构类型变量定义的方法.........................................228
7.1.3结构变量的使用...................................................229
7.1.4结构类型变量的初始化............................................230
7.2结构数组.............................................................230
7.2.1结构数组的定义...................................................230
7.2.2结构数组的初始化................................................231
7.3结构指针..............................................................233
7.3.1指向结构变量的指针...............................................233
7.3.2指向结构数组的指针..............................................234
7.3.3指向结构的指针作函数参数.......................................235
7.4联合....................................................................236
7.4.1联合的定义.......................................................236
7.4.2联合变量的引用方式..............................................237
7.4.3联合类型数据的特点..............................................238
7.5枚举类型..............................................................239
7.5.1枚举类型的定义...................................................240
7.5.2枚举变量的定义..................................................240
7.6类型定义................................................................243
习题.........................................................................246
第八章文件......................................................................249
引言.........................................................................249
8.0项目实现................................................................249
8.0.1任务1:记录保存为文件...........................................249
8.0.2任务2:从文件中读记录...........................................251
8.0.3任务3:文件复制..................................................252
必备的理论知识.............................................................253
8.1文件的概念..............................................................253
8.1.1文件的分类........................................................254
8.1.2文件类型指针.....................................................254
8.2缓冲文件系统..........................................................255
8.2.1文件的打开、关闭................................................255
8.2.2文件的输入/输出操作.............................................257
8.3非缓冲文件系统........................................................265
8.3.1文件的打开、关闭和建立...........................................265
8.3.2文件的输入、输出和随机存取......................................266
习题.........................................................................268
第九章链表、栈与队列..........................................................270
引言.........................................................................270
9.0项目实现...............................................................271
9.01任务1:添加数据元素..............................................271
9.02任务2:奇偶数分拆.................................................272
9.03任务3:奇偶数显示.................................................273
9.04主函数............................................................274
理论知识基础................................................................275
9.1链表...................................................................275
9.1.1链表的类型......................................................277
9.1.2单链表的基本操作...............................................279
9.1.3单链表的基本运算...............................................279
9.2栈.....................................................................294
9.2.1栈的定义........................................................294
9.2.2栈的基本操作...................................................295
9.2.3顺序栈..........................................................295
9.2.4顺序栈的基本运算...............................................296
9.2.5链栈及其基本运算...............................................298
9.3队列...................................................................304
9.3.1队列的定义.......................................................304
9.3.2队列的基本操作..................................................305
9.3.3队列的顺序存储结构..............................................305
9.3.4队列的链式存储结构..............................................310
习题.........................................................................317
附录.............................................................................319
附录IC语言中的关键字..................................................319
附录n运算符和结合性....................................................319
附录inC库函数...........................................................321
参考文献.........................................................................327
第一章概述
第一章概论
1.1计算机软件及其发展
1.1.1计算机软件定义
从功能上可以认为软件是利用计算机本身提供的逻辑功能,合理地组织计算机的工
作,简化或代替人们在使用计算机过程中的各个环节,提供给用户的一个便于操作的工
作环境。因此,不论是支撑计算机工作还是支持用户应用的程序都是软件。
在50、60年代就曾认为计算机软件就是程序,软件就是指如汇编程序、编译和解释
程序、操作系统和支撑操作系统的各种管理程序、服务程序以及用户用各种程序设计语
言编制的程序等。这个定义是基于手工业方式进行软件开发而提出来的,即从设计、编
程到调试均由个人独立完成。但要开发一个大型软件,特别是实用化、商品化、通用化
的软件就碰到不少问题。不仅效率低、开发周期长,而且各个模块间的联系和接口很难
协调,人的思维也很难胜任数以几万甚至是百万行计数的程序,因而出错率高,维护工
作量大,导致成本高。因此,在60年代末出现了软件危机。当时IBM公司0S/360系统
负责人Brooks形象地形容这种手工业方式开发软件说:”……像巨兽在泥潭中作垂死挣
扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能逃脱淹没在泥潭中的命运,……,
程序设计就像是这样一个泥潭……,一批批程序员在泥潭中挣扎……没人料到问题会这
样棘手。”软件设计者逐渐感到要有一定规范的文档以保证程序从设计、调试到运行的成
功。这样从70年代开始,认为软件不仅仅是程序,而且还包括开发、使用、维护这些程
序所需要的一切文档。
到了80年代,为了加强工程化、规范化,从软件工程的概念上更为全面地给软件下
了定义,认为:计算机程序、实现此程序功能所采用的方法、规则以及与其相关联的文档
和在机器上运行它所需要的数据都是计算机软件。计算机软件不断发展出新产品,使得
应用的灵活性和人机交互能力不断提高,充分体现了软件支撑计算机工作,扩大计算机
系统功能的作用。
1.1.2计算机软件的功能及分类
计算机系统中的程序和有关的文档资料总称为软件。软件是一个计算机系统必不可
少的组成部分,它保证计算机系统能有效地运行并为用户提供特定的服务。
软件是计算机用户与硬件之间的接口,用户通过软件使用计算机,软件的主要功能
有:
1.管理计算机系统的硬件资源,提高各种资源的利用率。
2.在硬件基本功能的基础上,扩大计算机硬件的功能,提高硬件的使用效率。
3.提供对计算机硬件进行测试、诊断以及维护所需要的工具。
4.为专业人员开发应用提供必要的开发工具和开发环境,提高软件开发的效率。
5.向用户提供方便、灵活的使用界面。
6.提供完成特定应用的专用程序。
按照与计算机硬件和用户的关系,软件一般可分为系统软件、支持性软件和应用软
第一章概述
件三类:
1.系统软件泛指为整个计算机系统配置的、不依赖于具体应用的软件,例如操作系
统、各种语言处理程序、数据库管理系统以及一些常用的实用软件等。
2.支持性软件是指支持其他软件的开发和维护的软件。随着计算机应用的发展,软
件开发和维护的代价越来越高,因此用于支持其他软件研制的软件显得特别重要。例如,
20世纪70年代中期和后期发展起来的程序设计环境和软件工程环境可看作是支持性软
件的代表,主要包括环境信息库、各种接口软件和工具软件等。
3.应用软件是指用于特定应用领域的专用软件,它又可以分为两类:一类是为解决某
一具体应用、按用户的特定需要而定制的应用软件;另一类是可以适合多种不同领域的、
通用性的应用软件,如文字处理、图形绘制、财务管理、报表处理等方面的软件。
把软件看作是用户和计算机系统中硬件的桥梁,在用户到系统硬件之间有不同类型
的软件,处于不同的层次,软件的层次性关系如图17所示。
图17计算机系统中软件的层次
1.1.3计算机软件的发展
自1946年世界上出现第一台电子数字计算机以来,计算机系统得到了飞速发展。人
们习惯按组成计算机的元件的演变来划分计算机的发展阶段。计算机元件的演变分为四
个阶段,计算机的发展也相应分为四个时代。
第一代为电子管时代(1946—1957)。在这个阶段计算机的主要逻辑元件是电子管,
存储器为水银延迟线或静电屏。
第二代为晶体管时代(1958—1964)。在这个阶段计算机的主要逻辑元件是晶体管,
存储器由磁芯组成。
第三代为集成电路时代(1965—1970)。在这个阶段计算机主要逻辑元件是集成电路,
存储器除磁芯外还增加了镀线。
第四代为大规模和超大规模集成电路时代(自1971年开始)。其特征是以大规模集成
电路LSI(LargeScaleIntegration)和超大规模集成电路VLSI(VeryLargeScale
Integration)为主要功能部件;软件方面,发展了数据库系统、分布式操作系统、通信软
件等。这一时期出现了许多不同类型的大、中、小型计算机和巨型机系统,特别是20
世纪80年代开始,个人计算机异军突起。而进入20世纪90年代以后,计算机网络有了
极大的发展,促使计算机应用领域向纵深发展,使用面日益广泛。
尽管人们早已习惯谈论第五代、第六代计算机了,但学术界、工业界认为不要再沿
第一章概述
用第五代计算机的说法为好,而赞成用新一代计算机或未来型计算机来称呼可能出现的
新事物。一些专家认为,新一代的计算机系统主要着眼于机器的智能化,它以知识库为
基础,采用智能接口,能进行逻辑推理,完成判断和决策任务。它可以模拟或部分替代
人的智能活动,并具有自然的人机通信能力。事实上,对于什么是新一代计算机仍存在
着一些不同的观点和看法。
计算机程序设计语言的发展是随着计算机技术的不断发展及广泛应用而逐步丰富与
完善起来的。计算机软件也有标志其发展的四个阶段,即
汇编语言的出现
高级语言的出现
操作系统的形成
计算机网络软件的出现
随着计算机的应用不断向纵深发展,由辅助人们进行科学计算、实时控制、数据处
理,发展到辅助设计、信息管理,辅助人们进行思维、决策;由单机系统发展到联机系统、
复合计算机系统、计算机网络系统。
计算机网络软件是计算机技术和通信技术两者高度发展和密切结合的结果。从某种
意义上讲,它是更高意义下的操作系统。它利用通信线路把分布在不同地点上的多个独
立的计算机系统连接起来,使网上用户可以实现数据传送、实现共享网络上的所有硬件、
软件和数据等资源。并且提高了计算机的可靠性、均衡了网络中各种计算机的加载情况,
同时便于系统的扩展。
1.1.4软件工程学的基本概念
在50、60年代开发大型系统软件用手工方式进行,其生产效率低、出错率高。例如,
IBM公司的0S/360操作系统用了5000人年开发,软件产品每个版本均有1000个大大小
小的错误。这种状态不能满足日益增长的软件生产的需要。产生了以下几个方面的问题:
1.软件复杂性飞速增长。
个体思维不能胜任开发一个需上千人年甚至几千人年的大型软件,这种软件程序量
是以几万行或百万行计数的,而且相互关联,造成错误的概率非常之高。
2.软件成本极高。
由于硬件迅速发展,集成度大大提高,出现硬件成本下降,靠落后开发方式来编制
的软件的工作量逐步增长,人工费用也迅速增大。所造成的软件、硬件投资比率变化,
美国做了一个统计如表「1所示,可见软件投资增长率之快。
表1T软件投资统计
年份软件投资占总投资的百分比
1955年20%以下
1970年60%左右
1980年85%以上
3.开发周期长。
手工方式开发的程序,所需人年数是随程序代码行的上升按指数曲线增长的,造成
大型软件开发周期长。
第一章概述
4.维护工作量大。
通过对软件错误的分析和统计,看到由于设计产生的错误占70%,由于编码产生的
错误占30%,因此保证设计过程软件的正确性且易于检验,是一个亟需解决的问题。此
外,当用户需求有变化时、当硬件设备更新后或操作系统有新的版本出现时,都需要修
改程序,以适应新的环境,这使得软件的维护
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年湖南客运驾驶员考试试卷河南省
- 2024年度教育服务培训合同
- 2024年辽宁客运员技能选择题及答案
- 2024年贵州客运资格证考试巧记法
- 2024年十堰道路客运输从业资格证培训资料
- 2024年昌吉客运资格证题库及答案
- 2024年河北c1客运从业资格证考试题库
- 2024年清远客运上岗证模拟考试
- 2024年普洱驾驶员客运从业资格证模拟考试题库
- 2023届新高考化学选考一轮总复习学案-热点8 “位-构-性”关系的综合推断
- 《婴幼儿行为观察、记录与评价》习题库 (项目三) 0 ~ 3 岁婴幼儿语言发展观察、记录与评价
- 英语漫谈胶东海洋文化知到章节答案智慧树2023年威海海洋职业学院
- 环保产品管理规范
- 幼儿园:我中奖了(实验版)
- 赵学慧-老年社会工作理论与实务-教案
- 《世界主要海峡》
- 住院医师规范化培训师资培训
- 中央企业商业秘密安全保护技术指引2015版
- 螺旋果蔬榨汁机的设计
- 《脊柱整脊方法》
- 会计与财务管理专业英语智慧树知到答案章节测试2023年哈尔滨商业大学
评论
0/150
提交评论