登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

『簡體書』C语言程序设计导学(第三版)

書城自編碼: 1967830
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: 杜友福
國際書號(ISBN): 9787030350787
出版社: 科学出版社
出版日期: 2012-07-01
版次: 1 印次: 1
頁數/字數: 186/288000
書度/開本: 16开 釘裝: 平装

售價:NT$ 209

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
朋党之争与北宋政治·大学问
《 朋党之争与北宋政治·大学问 》

售價:NT$ 454.0
甲骨文丛书·波斯的中古时代(1040-1797年)
《 甲骨文丛书·波斯的中古时代(1040-1797年) 》

售價:NT$ 403.0
以爱为名的支配
《 以爱为名的支配 》

售價:NT$ 286.0
台风天(大吴作品,每一种生活都有被看见的意义)
《 台风天(大吴作品,每一种生活都有被看见的意义) 》

售價:NT$ 245.0
打好你手里的牌(斯多葛主义+现代认知疗法,提升当代人的心理韧性!)
《 打好你手里的牌(斯多葛主义+现代认知疗法,提升当代人的心理韧性!) 》

售價:NT$ 301.0
新时代硬道理 广东寻路高质量发展
《 新时代硬道理 广东寻路高质量发展 》

售價:NT$ 352.0
6S精益管理实战(精装版)
《 6S精益管理实战(精装版) 》

售價:NT$ 458.0
异域回声——晚近海外汉学之文史互动研究
《 异域回声——晚近海外汉学之文史互动研究 》

售價:NT$ 500.0

建議一齊購買:

+

NT$ 668
《 Axure RP 7.0从入门到精通 Web + APP产品经理原型设计 》
+

NT$ 822
《 iOS开发指南 从零基础到App Store上架(第3版) 》
+

NT$ 407
《 HTML5+CSS3+jQuery Mobile轻松构造APP与移动网站 》
+

NT$ 891
《 精通ASP.NET MVC 4 》
+

NT$ 725
《 Perl入门经典 》
+

NT$ 549
《 大型网站技术架构:核心原理与案例分析(最接地气的网站架构经验,网站生存技术心要,应对大数据挑战的干货分享!) 》
編輯推薦:
杜友福等编著的《C语言程序设计导学第3版)》是《C语言程序设计导学》的第三版,为C语言程序设计课程的学习指导和实验教材,既可与《C语言程序设计第三版》配套使用,也可独立使用。本书分为学习指导和实验指导两部分,学习指导部分分为13章,每章包括学习要求、内容要点、典型例题分析三个方面的内容;实验指导部分根据C语言的教学需要,设计了11个实验。学习者通过学习与训练,能够进一步掌握C语言的基本概念、C程序设计的基本方法,并通过上机实验强化程序设计与调试的基本功,理解和掌握C语言的基本知识,达到学好和用好c语言的目的。
本书特别适合于本、专科非计算机专业的初学者,也可供计算机等级考试者和其他各类学习者使用参考。
內容簡介:
《C语言程序设计导学(第三版)》是《C语言程序设计导学》的第三版,为C语言程序设计课程的学习指导和实验教材,既可与《C语言程序设计(第三版)》配套使用,也可独立使用。《C语言程序设计导学(第三版)》分为学习指导和实验指导两部分,学习指导部分分为13章,每章包括学习要求、内容要点、典型例题分析三个方面的内容;实验指导部分根据C语言的教学需要,设计了11个实验。学习者通过学习与训练,能够进一步掌握C语言的基本概念、C程序设计的基本方法,并通过上机实验强化程序设计与调试的基本功,理解和掌握C语言的基本知识,达到学好和用好C语言的目的。
《C语言程序设计导学(第三版)》特别适合于本、专科非计算机专业的初学者,也可供计算机等级考试者和其他各类学习者使用参考。
目錄
学习指导
第1章 C语言程序设计概述
1.1 学习要求
1.2 内容要点
1.3 典型例题分析
第2章 数据类型、运算符与表达式
2.1 学习要求
2.2 内容要点
2.3 典型例题分析
第3章 顺序结构程序设计
3.1 学习要求
3.2 内容要点
3.3 典型例题分析
第4章 选择结构程序设计
4.1 学习要求
4.2 内容要点
4.3 典型例题分析
第5章 循环结构程序设计
5.1 学习要求
5.2 内容要点
5.3 典型例题分析
第6章 数组
6.1 学习要求
6.2 内容要点
6.3 典型例题分析
第7章 函数
7.1 学习要求
7.2 内容要点
7.3 典型例题分析
第8章 用户标识符的作用域和存储类
8.1 学习要求
8.2 内容要点
8.3 典型例题分析
第9章 编译预处理
9.1 学习要求
9.2 内容要点
9.3 典型例题分析
第10章 指针
10.1 学习要求
10.2 内容要点
10.3 典型例题分析
第11章 结构体、共用体和用户定义类型
11.1 学习要求
11.2 内容要点
11.3 典型例题分析
第12章 位运算
12.1 学习要求
12.2 内容要点
12.3 典型例题分析
第13章 文件
13.1 学习要求
13.2 内容要点
13.3 典型例题分析
实验指导
实验一 顺序结构程序设计
实验二 选择结构程序设计
实验三 循环结构程序设计一
实验四 循环结构程序设计二
实验五 数组一
实验六 数组二
实验七 函数一
实验八 函数二
实验九 指针
实验十 结构体
实验十一 文件
附录 在Visual C++ 6.0集成开发环境下运行C程序
內容試閱
1 .1  学习要求
掌握程序及程序设计的基本概念、程序的运行过程、算法及其特点、算法的描述及其表示方法、C 语言程序的基本结构。
熟悉设计程序时应遵循的基本原则。
了解利用计算机解决实际问题的过程、结构化程序设计方法,并在以后的程序设计中应用和逐步熟练掌握。
基本要求:能将日常生活中解决一些简单问题的步骤用算法描述,掌握N唱S 图的算法表示方法。
1 .2  内容要点
【知识点】
(1) 程序就是用计算机能够识别的语言所描述的解决某个特定问题的方法和步骤,是由一组相关的指令组成的。
程序= 数据结构+ 算法
(2) 程序设计就是利用计算机解决问题的全过程。通常是对问题进行分析并建立数学模型;在此基础上设计出相应的数据结构和算法;然后用某种程序设计语言编写相应的程序代码;最后调试程序,使之运行后能产生预期的结果。
(3) 程序设计语言可分为机器语言、汇编语言、高级语言和面向对象的高级语言四类。
(4) 高级语言程序通常要经过编辑、编译后方能在计算机上运行,少数语言以解释方式执行。
(5) 设计程序时应遵循的基本原则包括:正确性、可靠性、简明性、有效性、可维护性和可移植性。
(6) 计算机算法是为计算机解题设计的有明确意义的运算步骤的有限集合。算法应具有有穷性、确定性、有效性、有输入输出等特点。
(7) 算法可以用自然语言、伪代码、传统流程图、结构化流程图等方法表示。
(8) 结构化程序设计方法要求在设计程序时只使用顺序、选择、循环三种基本结构。
这三种基本结构有以下共同特点:只有一个入口、只有一个出口、结构内的每一部分都有机会被执行到、结构内不存在“死循环”(无终止的循环) 。
(9) 结构化程序设计方法的基本思路是,把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。结构化程序设计方法的基本原则是:自顶向下、逐步细化、模块化设计、结构化编码。
(10) 函数是C 程序的基本单位。一个函数由函数的首部和函数体两个部分组成。
函数的首部描述该函数的外观(即该函数的名字,该函数需要外部提供哪些信息,执行完毕后能为外部提供哪些结果等) ,函数体则定义该函数的内涵(即该函数将对什么数据执行何种操作) 。
(11) 一个C 源程序至少包含一个函数(即main 函数) 。一个C 程序总是从main 函数开始执行并在该函数结束。main 函数可以放在程序的任意位置。
(12) C 程序书写格式自由,一行内可以写多个语句,一个语句也可以写在多行上。
分号是C 语句的必要组成部分。
(13) C 程序的输入和输出操作是通过调用库函数scanf 和printf 来完成的。
(14) C 程序中可以用“ *… … *”对程序的任何部分作注释;也可以用“ … … ”作为一个单独的注释行。注释对程序的执行没有任何影响。
【重点】
(1) 算法的特点及简单算法的设计。
(2) C 程序的基本结构。
【难点】
(1) 算法的设计思想。
(2) 用传统流程图和结构化流程图表示算法。
【典型错误分析】
1 .算法设计中的逻辑错误对初学者来说,最常见的逻辑错误包括:忘记对计数器、总数等变量进行初始化;选用的用于控制输入循环结束的标记值也是一个合法的输入数据值;一个作为除数的变量的值为0 等。在用C 语言编程实现算法后,编译程序往往不能发现这类错误,但程序运行时的结果可能是不正确的。
排除源程序中的错误(包括语法错误和逻辑错误)是进行程序设计所必须具备的能力,是对所学知识的综合检验过程,需要清醒的头脑,严谨细致的工作作风,扎实的基础知识以及逻辑分析能力。对于初学者,调试程序时应注意以下两点:
(1) C 编译程序尽管能够指出大多数程序的语法错误,但不可能完全准确地指出错误发生的源程序行,有时应当综观上下文、参考出错信息进行综合分析判断,不要死抠所报的出错行号。
(2) 程序中一处发生的错误会产生若干连带的错误信息,即若干条错误信息可能只有第一条是真正的错误,改掉这一错误,所有其他出错信息将随之消失。因此查错纠错应从最前面的出错点开始,纠正某个错误后,若不能发现其他错误,则应再次编译源程序,按照新的提示信息查找错误。
2 .分号使用错误分号是C 语句的组成部分,初学者往往容易遗漏分号而造成语句的不完整,导致编译程序对C 语句无法正确理解。
3 .注释使用错误正确的注释形式是 *注释内容* 。初学者容易犯以下错误:忘记了注释的结束符* ,或者注释用*开头,或用 *结束,或者在注释符号中插入了空格,即写成  *… … * 的形式。
C 编译程序对于注释部分(起始符 *与结束符*之间)是不进行任何处理的,也就是说,编译时,一旦遇到 *符号就对其后的任何符号不予处理,直到遇到*符号为止。
而对于其他部分则作为C 的语句进行处理。因此注释符号使用错误会导致编译程序对程序的错误翻译,从而出现语法错误。
1 .3  典型例题分析一、选择题例
1 .1  C 编译程序是。
A .C 程序的机器语言版本B .一组机器语言指令C .将C 源程序翻译成目标程序的程序D .由制造厂家提供的一套应用软件解 本题的关键是掌握编译程序的作用。
C 语言编写的源程序要执行,必须经过以下步骤:用编辑程序将源程序输入并存放在计算机的存储设备中,然后通过C 编译程序将源程序翻译成计算机能识别的目标程序,最后通过连接装配程序将目标指令模块组合成完整的可执行程序才能在计算机上运行。
C 编译程序是系统软件的一部分,并非应用软件。C 程序的机器语言版本称为目标程序。
因此选项A 、D 均不正确。虽说能够运行的程序都是一组机器语言指令,但选项B 是笼统的,不准确的。
因此,正确答案为选项C 。
例1 .2  以下叙述中正确的是。
A .C 程序由主函数组成 B .C 程序由函数组成C .C 程序由函数和过程组成D .C 程序中的注释由  *开头,由* 结束解 本题的关键是掌握C 程序的基本构成。
在初学阶段,由于程序较小,可能只需main( )函数即可,但解决规模较大的实际问题的最好办法是把程序分成较小的模块,每一模块完成一个独立的功能,这样便于管理和调试。C 语言的程序模块就是函数,因此读者应该明确且牢记:C 程序是由函数组成的。
每个C 语言的源程序可以包含多个函数,但必须有一个且只能有一个主函数。因此,选项A 是片面的。在C 程序中不存在“过程”这一程序结构,故选项C 也是错误的。
程序设计中可以对源程序进行必要的注释,以便于阅读和维护。C 程序中的注释行由 *开头,由*结束,“”和“ *”必须紧接着,在这两个字符之间不得插入空格。在选项D 中“”和“ *”之间都插有空格,故选项D 也是错误的。
因此,正确答案为选项B 。
例1 .3  C 函数由构成。
A .函数首部和函数体B .执行语句和非执行语句C .自变量和因变量D .定义域和值域解 本题的关键是掌握C 函数的组成。
从数学角度来说,一个函数有自变量和因变量,也有其定义域和值域,但从C 语言的角度来说,函数分为函数首部和函数体两个部分,函数的首部描述该函数的外观,函数体则定义该函数的内涵,各种语句用来在函数体中定义各种数据及对这些数据的操作。
因此,正确答案为选项A 。
例1 .4  一个C 程序的执行是。
A .从main( )函数开始,直到main( )函数结束B .从第一个函数开始,直到最后一个函数结束C .从第一个语句开始,直到最后一个语句结束D .从main( )函数开始,直到最后一个函数结束解 本题的关键是掌握C 程序的执行过程。
C 程序中必须要有一个而且也只能有一个main( )函数,不论main( )函数处于程序中的什么位置,C 程序执行时总是从main( )函数开始。C 程序的执行与函数位置无关。
故选项B 是不正确的。
C 程序中除了顺序结构的语句执行与排列顺序一致外,选择结构和循环结构都会改变语句的执行顺序。因而选项C 是不正确的。
如果程序中有多个函数,其他函数要通过调用才能执行。而且被调用函数在执行完毕后,必须返回到调用函数处。故选项D 也不正确。
因此,正确答案为选项A 。
二、填空题
例1 .5  C 语言源程序文件的后缀是,经过编译后生成文件的后缀是,经过连接后生成文件的后缀是。
解 文件的后缀即文件的扩展名,主要用来表示该文件的类型。一般情况下,C 语言源程序文件的扩展名为C ;C 语言源程序经过编译生成目标程序,其扩展名为OBJ ;目标程序必须经过连接生成可执行程序才能运行,其扩展名为EXE 。
因此,本题答案:C ,OBJ ,EXE 。
例1 .6  在事先不知道需要连续输入多少个数据的情况下,可用一个值控制输入循环的终止。
解 这是一道关于算法设计方面的题。算法设计中,经常会在某种条件下重复执行某些操作,这种情况称为循环。例如,要连续输入多个数据,就可以用循环来实现,循环次数有时是固定数,有时是通过条件来控制的。就本题来说,由于不知道需要连续输入多少个数据,此时通常采用的办法是设置一个标记值(flag)来控制循环结束,当输入值为标记值时表示所有数据已输入完毕。显然该标记值应该小心选择,其值不应该在合法输入数据的范围内。类似的问题在循环中经常会遇到。
因此,本题答案:标记。
例1 .7  结构化程序设计方法使用的三种基本结构是、和。
解 这是一道基本概念题。结构化程序设计方法要求程序中只使用顺序、选择、循环三种基本结构。这三种基本结构构成的算法不存在无规律的转向,属于结构化的算法,而且已经证明,由以上三种基本结构构成的算法可以解决任何复杂的问题。
因此,本题答案:顺序、选择、循环。
三、阅读题例1 .8  下述算法用于求1 *2 *3 *4 *5 。设两个变量,一个变量p 代表被乘数(同时用于存放每一步骤的当前所得乘积) ,一个变量i 代表乘数。算法如下:S1 :使p = 1S2 :使i = 1S3 :使p *i ,乘积仍放在变量p 中,可表示为p *i → pS4 :使i 的值加1 ,即i + 1 → iS5 :如果i 不大于5 ,返回重新执行步骤S3 以及其后的步骤S4 和S5 ,否则,算法结束。最后得到p 的值就是5 ! 的值如何改动使其成为求1 *3 *5 *7 *9 *11 。如果要求1 + 2 + … + 100 ,应如何修改?
解 首先分析一下上述算法中每一步的作用。步骤S1 、S2 两步是对变量赋初值,即设置初始乘积为1 ,第一个乘数为1 。S3 是进行乘法运算,并将结果存放到当前所得乘积p 中。S4 通过改变i 的值得到下一个乘数。S5 判断是否所有的运算已执行完毕。
求1 *3 *5 *7 *9 *11 与求1 *2 *3 *4 *5 的差别主要在于,下一个乘数比前一个乘数多2 ,且最后一个乘数是11 。通过以上分析可知,只需作很少的改动即可:S1 :1 → p52 :1 → iS3 :p *i → pS4 :i + 2 → iS5 :若i ≤ 11 ,返回S3 ;否则,结束可以看出,用这种方法表示的算法具有通用性、灵活性。S3 到S5 组成一个循环,在实现算法时,要反复多次执行S3 、S4 、S5 等步骤,直到某一时刻,执行S5 步骤时经过判断,乘数i 已超过规定的数值而不返回S3 步骤为止。此时算法结束,变量p 的值就是所求结果。
如果对这个算法适当修改实现求累加和,只需改动以下几点:
(1) 使p 的初值为0(为什么? 请读者考虑) 。
(2) S3 中乘法运算改为加法运算。
(3) S5 中改为与100 比较。
由于计算机是高速进行运算的自动机器,可以高速地、不厌其烦地进行重复性操作。
计算机中多次重复执行同类操作称为循环(或迭代) 。所有计算机高级语言中都有实现循环的语句。因此,上述算法不仅是正确的,而且是计算机能实现的较好的算法。
四、算法设计题例
1 .9  开发一个程序求全班学生某门课程的平均成绩。要求程序每次运行时班级人数可为任意。
解 采用结构化程序设计方法(“自顶向下、逐步求精”的方法)来解决这个问题并用伪代码来表示求精过程中得到的算法。为使初学者比较容易读懂,伪代码采用中文来表示。首先,顶层描述程序的整个功能,然后将其分解为一系列较小的任务,并按照执行顺序列出这些任务。每一步的求精都是一个完整的算法说明,只是每层的细节在变化。重复上述求精过程直到表示每一任务的伪代码能够转化为程序设计语言的程序段为止。
对于上述问题,顶层可用一句伪代码来表示:求未知人数班级的平均成绩首先考虑需要使用的数据量(变量) 。显然,本例中需要使用的数据量有:总成绩(记为total) ,成绩个数计数器(记为counter) ,每次输入的成绩(记为score) ,全班平均成绩(记为average) 。
对数据进行分析后,再来考虑程序应该如何完成上述功能。许多程序可从逻辑上分为三个阶段:① 初始化阶段(对程序变量初始化) ;② 处理阶段(输入数据值并对程序中的变量作相应调整) ;③ 终止阶段(计算和打印最终结果) 。
本程序也不例外,因此可以将顶层分解为以下三个小任务:初始化变量;输入、求和及对输入的成绩计数;计算并打印班级平均成绩;对初始化阶段,由于每次输入的成绩值score 和平均成绩average 会被后面的读入过程覆盖,故不需要初始化。做如下求精:初始化总成绩t ot a l为0;初始化计数器count er为0;由于本例中成绩个数是不定的,可以使用一个专门的值来指示数据输入的结束,这个值称为“标记值”(flag) 。显然标记值必须小心选择,使它有别于准备接收的成绩值。因为考试成绩通常是非负的,可以选择- 1 作为标记值。因此可以让程序重复读入成绩值,当遇到标记值时结束读入。每读入一个成绩值,就将其加到总成绩total 中,计数器加1 。
因此第二步可求精如下:
读入第一个成绩放到score中;当score不等于标记值时,重复以下工作:{ 将score加到t ot al中;计数器值count er加1;读入下一个数据放到score中;}显然,只有读入有效的成绩值后,才能求出平均值。因此第三步可求精如下:如果计数器值count er非零,那么执行以下工作:{ 将t ot al除以count er的结果放到average中;

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.