C语言程序设计任务驱动式教程(第2版)(微课版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-29 18:28:36

点击下载

作者:宋铁桥 刘洁 赵叶

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

C语言程序设计任务驱动式教程(第2版)(微课版)

C语言程序设计任务驱动式教程(第2版)(微课版)试读:

前言

C语言是国内外广泛流行的程序设计语言,它功能强大、数据类型丰富、使用灵活、通用性强,并兼有面向硬件编程的低级语言特性和可读性强的高级语言特性。C语言不仅适用于系统软件的设计,还适用于应用程序的设计,在操作系统编制、工具软件制作、图形图像处理软件制作、数值计算、人工智能、数据库系统制作等多个方面得到广泛应用。大量的编程人员都需要掌握和应用C语言,C语言已经成为软件开发工具中的主流之一。因此,学习和使用C语言成为广大计算机应用人员和学生的迫切需要。

为此,我们组织多年从事C语言程序设计教学工作并具有丰富教学经验的一线教师和工程技术人员编写了本书。

本书第1版自出版以来,对程序设计语言的教学改革起到了积极的推进作用,并得到了读者的一致好评。我们在总结第1版教材使用情况的基础上,结合教学实践和工程实践,在课程内容和优化方面进行了深入的研究与实践,对全书重新进行了编写。

本书采用任务驱动模式,从日常生活中的典型事例入手,由浅入深,对C语言程序设计的内容进行了详细的阐述。本书通过典型任务培养学生分析问题、解决问题的能力和团队合作精神,围绕任务将C语言中的语法和规则渗透到教学中,增强课程内容与职业岗位能力要求的关联。另外,本书重点突出、难点适中,用若干个典型任务贯穿全书,并配有微课,增加了教学的趣味性,可激发学生的学习兴趣和学习积极性,使学生在解决问题的过程中获得更多的成就感,提高学习自信心。

本书的特点是通俗易懂、实例丰富、目标明确、针对性强,以任务驱动为主线,使读者轻松愉快地学到相应的知识和技能。

扫描封底的二维码,或者直接登录“微课云课堂”(www.ryweike.com)→用手机号码注册→在用户中心输入本书激活码(097c77ba),将本书包含的微课资源添加到个人账户,获取永久在线观看本课程微课视频的权限。此外,购买本书的读者还将获得一年期价值168元VIP会员资格,可免费学习50000个微课视频。

本书由河北工业职业技术学院的宋铁桥、刘洁、赵叶任主编,河北工业职业技术学院的刘少坤、河北劳动关系职业学院的于涛任副主编,河北工业职业技术学院的吕新平、张国娟参与了部分内容的编写工作。全书由宋铁桥统稿并主审。

由于编者水平有限,书中如有不足之处,敬请读者批评指正。编者2018年5月第1单元认识C语言程序问题引入

语言是人和人之间交流信息不可缺少的工具,而在当今社会,计算机遍布人们生活的每一个角落,那么除了人和人的相互交流外,用什么方式可以和计算机做最直接的交流呢?

人与人之间的交流使用汉语、英语等自然语言,人和计算机之间的交流则要使用计算机语言。其中C语言自1972年诞生于贝尔实验室以来,至今已几十年,此间信息技术迅猛发展,虽有众多程序设计语言大量涌现,但C语言仍旧是世界范围内被普遍采用的优秀程序设计语言。由于其具有高级语言形式,以及功能丰富、使用灵活方便、应用面广、可移植性强等诸多优点,因而被众多高等院校选作计算机教学典型的程序语言。知识目标

1.掌握C语言程序的基本结构

2.熟悉C语言程序的执行过程技能目标

1.理解C语言的特点

2.掌握C语言程序基本结构

3.理解C语言程序执行过程

4.熟悉V任务1走进C语言世界——C语言概述工作任务

通过查阅资料、网络资源,了解C语言的发展史、特点及学习方法。思路指导

1.在“国家精品课程资源网”等网络资源上查阅资料。

2.查阅相关书籍,初步了解C语言。相关知识(一)计算机语言

在走进C语言之前,先来认识什么是计算机语言。计算机语言(Computer Language)是人与计算机之间通信的语言,计算机语言主要由一些指令组成,这些指令包括数字、符号和语法等内容,编程人员可以通过这些指令来指挥计算机进行各种工作。

计算机语言根据功能和实现方式的不同大致可分为三大类,即机器语言、汇编语言和高级语言。1.机器语言

计算机不需要翻译就能直接识别的语言称为机器语言(又称为二进制代码语言),该语言是由二进制数0或1组成的一串指令,对于编程人员来说,机器语言不便于记忆和识别。2.汇编语言

计算机可以识别由0和1组成指令的机器语言,但人类使用机器语言太不方便了。为了解决这个问题,汇编语言诞生了。汇编语言用英文字母或符号串来替代机器语言,把不易理解和记忆的机器语言按照对应关系转换成汇编指令,汇编语言比机器语言更加便于阅读和理解。3.高级语言

汇编语言依赖于硬件,使得程序的可移植性极差,而且编程人员在使用新的计算机时还需学习新的汇编指令,大大增加了编程人员的工作量,因此出现了计算机高级语言。计算机高级语言比汇编语言更贴近于人类使用的语言,易于理解、记忆和使用。高级语言和计算机的架构、指令集无关,具有良好的可移植性。

常见的高级语言包括C、C++、Java、VB、C#、Python、Ruby等。高级语言应用非常广泛,世界上绝大多数编程人员都在使用高级语言进行程序开发。其中C语言就是目前最流行、应用最广泛的高级语言之一。(二)C语言的发展和特点1.C语言的发展过程

C语言是1972年由美国的Dennis Ritchie(里奇)设计发明的,它由早期的编程语言BCPL(Basic Combind Programming Language)发展演变而来。

随着微型计算机的日益普及,C语言出现了许多版本,由于没有统一的标准,所以这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准。

早期的C语言主要是用于UNIX系统,由于C语言的强大功能和各方面的优点逐渐为人们所认识,所以到了20世纪80年代,C语言开始进入其他操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一。2.C语言的特点(1)C语言是一种结构化语言。(2)层次清晰,便于按模块化方式组织程序,易于调试和维护。(3)C语言的表现能力和处理能力极强。(4)具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。(5)可以直接访问内存的物理地址,进行位(bit)一级的操作。(6)C语言实现了对硬件的编程操作,集高级语言和低级语言的功能于一体,既可用于系统软件的开发,也适用于应用软件的开发。(7)效率高,可移植性强。(三)为什么要学习C语言

根据上述C语言的特点,可以看到C语言的应用极其广泛,在对操作系统和硬件进行操作的场合,C语言明显优于其他高级语言。

C语言语法简洁,表达能力强,只有32个关键字、9种控制语句,便于初学者学习和掌握。

C语言久经考验,有现成的大量优秀代码和资料,便于参考和学习。

程序设计语言都是相通的,万变不离其宗。掌握了C语言,再进一步学习面向对象的语言,如Java语言、C#语言,可以达到事半功倍的效果。

因此,在绝大多数高等院校的软件及相关专业的课程链路图中,C语言总是作为第一门程序设计课程。学生通过本课程的学习,可以了解程序设计语言的基本知识,训练逻辑思维能力,为后续的程序设计课程打下基础。(四)怎样学好C语言(1)反复阅读教材。初学者遇到的大部分问题,教材上都有解释。书读百遍,其义自见。(2)默写程序。读者看懂教材上的程序例题之后,可按照例题的思路把程序默写出来;尝试过就会知道看懂和默写是两个完全不同的程度。在做书后的习题时,要独立思考,尽量不要先看答案或提示。熟能生巧,编程亦是如此。(3)阅读他人的程序。没有哪个作家不大量阅读别人的作品,同样初学者也可以从别人的代码中吸取营养。经典代码需要熟记。任务实施

查阅、学习书籍资料及网络资源。特别提示(1)当编程出现错误时怎么办?

首先应该查看编译器提供的信息。编译本身就能输出大量的提示。如果还不能解决,则查阅教材和文档,或上网查询。(2)能看懂别人的程序,但自己做就觉得无从下手。

这个问题每个刚开始学习编程的人都会遇到,初学编程就像解应用题一样,首先要建立一个抽象描述模型,建立数学表达式,给出求解的方法,也就是算法,最后把算法转化为程序。随着学习的深入,就会慢慢提高逻辑思维能力。(3)英语不行怎么办?

C语言全部关键字一共32个,而其中有6~7个的使用率超过78%;就编程本身而言,错误和警告提示也是有限的几句英语,只要勤于学习和总结,学好程序设计语言是没有问题的。任务2制作一张自己的名片——C程序框架结构工作任务

刚刚走进大学校门的同学,首先使用C语言为自己制作一张名片,让老师和同学们记住你的名字吧。思路指导

要用C语言编写程序,在屏幕上输出名片,就要了解C语言的结构特点、编写规则,学会使用C语言的编译运行环境。相关知识(一)C语言程序的基本结构

为了说明C语言源程序结构的特点,先看例1.1的小程序,这个小程序表现了C语言源程序在组成结构上的特点。虽然有关内容还未介绍,但可从这个例子中了解C语言源程序的基本框架和书写格式。例1.1 用C语言编程,在屏幕上显示“Hello C Program!”

main是主函数的函数名,表示这是一个主函数。每一个C语言源程序都必须有且只能有一个主函数。

函数调用语句printf函数的功能是把要输出的内容送到显示器显示出来。printf函数是一个由系统定义的标准函数,可在程序中直接调用。

在main()之前的一行以“#”开始的部分是预处理语句。预处理语句的作用不是实现程序的功能,而是给C语言编译系统提供信息,通知C语言编译器在编译源程序之前应该做哪些预处理工作。预处理语句还有其他几种,这里的include称为文件包含语句,其意义是把尖括号<>或引号""内指定的文件包含到本程序中,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h。因此也称为头文件。C语言的头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数,都必须包含该函数原型所在的头文件。

需要说明的是,C语言规定对scanf(输入函数)和printf这两个函数可以省去对其头文件的包含语句。所以例1.1中也可以删除第一行的包含命令#include。

通过阅读以上内容,可以掌握以下知识。1.C语言程序的构成(1)一个源程序都有且只有一个main()函数,即主函数,其前面的void代表函数没有返回值。main()函数下面用{}括起来的部分是一个程序模块。C语言的程序总是从主函数开始执行,并且回到主函数结束。(2)以“#”开始的语句属于预处理语句。源程序中可以有预处理语句,预处理语句通常放在源程序的最前面。(3)每一个语句都必须以分号结束,但预处理语句、函数头和花括号之后不加分号。(4)标识符和关键字之间,至少要加一个空格。(5)源程序中需要解释和说明的部分,可以加以注释,以增加程序的可读性。编译系统会跳过注释行,不对其进行编译。“/*......*/”表示多行注释,“//”表示单行注释。2.C语言程序的书写规范(1)在C语言中,虽然一行可以有多个语句,一个语句也可占多行,但建议一行只写一个语句。(2)一般采用缩进格式为书写格式,以提高程序的可读性和清晰性。(3)C语言源代码一般用小写字母书写,除非另有约定。(4)在程序代码中,应加上必要的注释。(二)编译和运行C语言应用程序1.C语言应用程序的处理流程

编写好一个C语言程序后,如何上机运行呢?写好一个C语言源程序后,一般要经过编辑、编译、连接、运行才能得到程序结果,如图1-1所示。图1-1 C语言程序处理流程(1)编辑。在文本编辑器中,用C语言语法编写源程序代码。源程序文件的扩展名为.c。(2)编译。通过编译器将源程序转换成机器代码,生成目标程序(*.obj),在C语言源程序的编译过程中,可以检查出程序中的语法错误。(3)连接。C语言是模块化程序设计语言,一个C语言应用程序可能由多个程序设计者分工合作完成,需要将用到的库函数以及其他目标程序连接为一个整体,生成可执行文件(*.exe)。(4)运行。运行可执行文件后,可获得程序运行结果。2.C语言运行环境的应用(1)C语言的IDE环境。

程序设计语言一般都有其编译运行环境。运行环境一般包括代码编辑器、编译器、调试器和图形用户界面工具,即集成了代码编写功能、分析功能、编译功能、调试功能。这种集成了编译、运行、调试等功能的软件套组称作集成开发环境(Integrated Development Environment,IDE)。C语言的集成开发环境(IDE)很多,有的教程使用的是Turbo C运行环境。本书采用VC++ 6.0编译程序作为C语言的集成开发环境。VC++ 6.0是C++程序默认的编译器,因为C++是在C语言基础上产生的,所以也兼容C语言的编译和运行。VC++ 6.0环境具有方便、直观、快捷的编辑器及丰富的库函数,能够把程序编辑、编译、连接和运行等操作全部集中在一个软件中进行,十分方便。微课视频C语言运行环境(2)VC++ 6.0的使用。

为了能使用VC++ 6.0,必须先将VC++ 6.0安装在计算机中。以下就以VC++ 6.0开发环境为例,介绍C语言程序的编辑、编译、连接、运行过程。

①启动VC++ 6.0编译程序,主界面如图1-2所示。图1-2 VC++ 6.0主界面

从图1-2中可以看到,集成环境主要分为菜单栏、工具栏、项目资源列表区、编辑区和编译调试输出区等。

②创建源文件。要编辑C程序,就需要建立C源文件。在主菜单下,选择“文件”→“新建”命令,弹出“新建”对话框,如图1-3所示。图1-3 “新建”对话框——创建C源文件

在“新建”对话框中,选取“文件”选项卡,选择新建文件类型为“C++ Source File”,在“文件名”文本框中输入Hello.c(这里需要输入C源程序的扩展名.c,因为VC++ 6.0默认是C++的编译程序,所以其扩展名为.cpp),选择存储文件的路径,单击“确定”按纽,系统进入编辑状态。

③编辑源文件。在编辑区中添加自己的代码,这里输入例1.1中的代码,如图1-4所示。图1-4 编辑源文件

④编译、连接源程序。单击工具栏上的按纽,或选择“组建”→“编译”命令,系统就会编译当前的源程序,生成一个目标程序文件,扩展名为“.obj”。单击工具栏上的按纽,或选择“组建”→“组建”命令,系统会将目标程序文件和库文件连接,生成一个可执行文件,扩展名为“.exe”。

如果源程序有编译或连接上的错误,执行完相应命令后,系统将在屏幕下方的编译调试输出区显示错误信息,可以根据出错信息进行修改、编辑、连接。如此反复,直到没有错误为止,如图1-5所示。图1-5 编译、连接源程序

⑤执行程序。单击工具栏上的按纽,或选择“组件”→“执行”命令,系统会运行当前的可执行文件,并输出运行结果,如图1-6所示。图1-6 例1.1程序运行结果任务实施

小名片程序代码如下。

程序运行结果如图1-7所示。图1-7 任务运行结果特别提示(1)编译调试输出区错误提示很多怎么办?

错误提示很多,不用怕。这些错误往往是由一个错误引发的。在屏幕下方编译调试输出区中,将滚动条滚动到最上方,找到第一行错误,双击第一个错误,指针就会指向错误所在行。根据错误提示进行修改,再次编译,也许其他错误提示就都没有了。(2)初写代码需要注意的问题。

①每条语句要以分号结束。

②关键字拼写一定要正确,C语言区分大小写。

③语句中的引号、分号等标点符号全部是英文半角。

④“\n”“\t”要写在双引号中,“\n”表示回车换行,“\t”相当于水平制表符,表示空格输出。

⑤在同一路径下,两个C源程序文件不能同名。拓展与提高

1.编程实现在屏幕上显示如下3行文字

程序example.c如下。

2.输入并运行程序,写出运行结果

结果为单元小结

本单元介绍了C语言的发展和特点,以及C语言的学习方法,重点介绍了C语言的程序结构、运行过程及VC++ 6.0开发环境。

读者可从小程序入手,通过上机练习,熟悉C语言程序的开发环境。工欲善其事,必先利其器,要精通一门语言,还需要继续深入学习。思考与训练1.讨论题(1)讨论C程序的结构是由哪几个部分组成的。(2)C语言中注释的作用。2.选择题(1)C语言属于下列哪类计算机语言?()

A.汇编语言

B.高级语言

C.机器语言

D.以上均不属于(2)一个C程序是由()。

A.一个主程序和若干子程序组成的

B.一个或多个函数组成的

C.若干过程组成的

D.若干子程序组成的(3)一个C程序的执行是从()。

A.main函数开始,直到main函数结束

B.第一个函数开始,直到最后一个函数结束

C.第一个语句开始,直到最后一个语句结束

D.main函数开始,直到最后一个函数结束(4)C语言语句的结束符是()。

A.回车符

B.分号

C.句号

D.逗号(5)以下说法正确的是()。

A.C程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用

B.C程序的注释只能是一行

C.C程序的注释不能是中文文字信息

D.C程序的注释中存在的错误会被编译器检查出来(6)以下说法正确的是()。

A.C程序中的所有标识符都必须小写

B.C程序中的关键字必须小写,其他标识符不区分大小写

C.C程序中的所有标识符都不区分大小写

D.C程序中的关键字必须小写,其他标识符区分大小写3.填空题(1)C语言源程序文件的扩展名是_________,编译后生成的目标文件的扩展名是_________,经过连接后生成的可执行文件的扩展名是。(2)C程序多行注释是由_________和_________界定的文字信息组成的。(3)源程序的执行要经过_________、_________、_________和_________4个步骤。4.编程题(1)试编写一个C程序并上机调试,运行后能输出以下信息。(2)编写程序,用“*”输出字母C。第2单元C语言程序设计基础问题引入

上一单元,我们制作了小名片,现在更进一步提出问题,如何用程序语言描述一个人的年龄、性别、身高、体重?在程序中,数据又是如何存储的?带着这些问题,我们继续学习C语言吧。在本单元,将通过几个小任务介绍C语言中的标识符、常量、变量、简单数据类型、基本运算符号、表达式和数据类型转换等。这是以后深入学习C语言的重要基础。知识目标

1.掌握标识符及命名规则

2.掌握基本数据类型及其表示形式

3.理解运算符的运算规则及优先级关系

4.学会基本数据类型间的转换规则技能目标

1.能够正确命名标识符

2.能够表示变量和常量

3.能够应用运算符和表达式

4.能够进行基本数据类型的转换任务1计算圆的面积——整型与实型数据、常量与变量工作任务

在C语言中,整型、实型数据如何描述,什么是常量,什么是变量?在解答这些问题之前,先看一道数学问题。

已知圆的半径r,求圆的面积s。思路指导

已知:圆的半径r,整型。计算中用到圆周率PI的值为3.14,它是实型数据,并且在运算中值不可变。微课视频计算圆的面积——常量、变量,整型、实型数据

输出:圆的面积s,实型数据。

处理:利用圆面积公式,求得圆面积。相关知识(一)标识符

标识符就是程序用到的元素的名称。在程序中使用的变量名、常量名、数组名、函数名、标号等统称为标识符(变量、常量、数组、函数等将在后续章节介绍)。C语言中的标识符分为两大类,一类是系统标识符,另一类是用户标识符。1.系统标识符

系统标识符又称为关键字,是由C语言规定的具有特定意义的字符串,通常也称为保留字。C语言中的关键字详见附录1。用户自定义的标识符不应与关键字相同。C语言的关键字分为以下几类。(1)类型说明符。用于定义和说明变量、函数或其他数据结构的类型,如上一单元中用到的int、double等。(2)语句定义符。用于表示一个语句的功能。如if…else就是条件语句的语句定义符。(3)预处理语句。用于表示一个预处理语句,就是在编译前先进行处理。如前面各例中用到的include。2.用户标识符

用户自定义的标识符称为用户标识符。C语言规定,标识符只能是由字母(A~Z、a~z)、数字(0~9)、下画线组成的字符串,并且其第一个字符必须是字母或下画线。

例如,_fen、aaa、a2、book、BOOK、h2h都是合法的标识符。【思考】以下标识符合法吗?

在使用标识符时还必须注意以下几点。(1)标识符是区分大小写的。例如,BOOK和book是两个不同的标识符。(2)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便阅读理解,做到“见名知意”。(3)标识符不能和关键字相同。关键字是C语言预先定义的、有固定含义的标识符,不能重新定义,也不能用作他用。(二)常量和变量1.常量

在程序的运行过程中,其值不能被改变的量就是常量。在C语言中,常量也有不同的表现形式。(1)直接常量。就是通常说的常数,从表面形式即可判断它属于哪种数据类型。

例如,234是整型,5.89是实型,'7'是字符型等。(2)符号常量。是指用编译预处理语句#define规定一个标识符代表一个常量。在程序之前定义符号常量,通常常量名用大写字母标识。

常量声明格式一般为

例如,求圆的面积,可以定义PI为常量,值为3.14,常量声明方式为例2.1 符号常量的使用

程序中用#define命令定义常量PRICE代表10,在本程序中出现的PRICE都代表10。2.变量

变量是指在程序执行过程中其值可以改变的量,变量具有三要素:名称、类型和值。认识变量应从这3个要素入手。每个变量都有一个名称,称为变量名。变量在计算机内存中占据一定的存储单元,存储单元中存放着变量的值。事实上,对变量名的使用就是对其值的使用,至于它的存储单元号并不需要关心。在C语言中,变量必须遵循“先定义,再赋值,后使用”的原则。(1)定义变量。

在C语言中,使用变量前必须先定义。定义变量的形式如下。

其中,方括号中的内容为可选项,可以同时定义多个相同类型的变量,之间用逗号分隔,如int a,b,c;。(2)初始化变量。

变量的初始化是指在定义变量的同时就给它赋一个初值。初始化变量的格式如下。

例如,float x=4.5;、char ch1='t',ch2='h';等都是合法的初始化变量语句。(3)给变量赋值。

给变量赋值是指把一个数据传送到系统给变量分配的存储单元中。定义变量时,系统会自动根据变量类型为其分配存储空间。但是如果此变量在定义时没有被初始化,那么它的值就是一个无法预料的、没有意义的值,所以通常要给变量赋予一个有意义的值。给变量赋值的一般形式如下。

例如:

对于赋值语句,有如下说明。

①“=”在C语言中是赋值符号,不是等号。C语言中判断两个数值是否相等用比较运算符“==”表示。

②赋值运算是把“=”右边表达式的值赋给“=”左边的变量。因此,像a=a+1这样的在数学中认为是不成立的表达式,在C语言中却是认可的,它表示将a原来的值加上1后再赋给a。

③允许辗转赋值,即允许一个表达式中包含多个“=”。例如:

表示先把1赋给变量z,再把z的值赋给变量y,最后将y的值赋给变量x。(三)C语言的数据类型

程序、算法处理的对象是数据。数据以某种特定的形式存在(如整数、实数、字符),而且不同的数据还存在某些联系(如由若干整数构成的数组)。

C语言中的数据是有类型的,数据的类型简称数据类型。例如,整型数据、实型数据、字符型数据、字符数组类型(字符串)分别代表我们常说的整数、实数、字符、字符串。C语言提供的数据类型如图2-1所示。图2-1 C语言的数据类型

数据类型是按被定义变量的性质、表示形式、占据存储空间的多少、构造特点来划分的。对于不同的数据类型,编译系统会分配大小不同的内存单元,以存放不同类型的数据,因此每一类型的数据必然有一定的取值范围。

在C语言中,数据类型可以分为基本数据类型、构造数据类型、指针类型、空类型四大类。本单元介绍C语言的基本数据类型。

基本数据类型最主要的特点是,其值不可以再分解为其他类型。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载