C语言程序设计——增量式项目驱动一体化教程(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-21 00:46:51

点击下载

作者:苑俊英,谭志国

出版社:电子工业出版社

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

C语言程序设计——增量式项目驱动一体化教程

C语言程序设计——增量式项目驱动一体化教程试读:

前言

本书是作者多年教学和实践经验的总结,按照增量式项目驱动一体化的教学模式安排教学内容,融知识点、实践案例于一体,重点讲解如何将各知识点应用于实践。

由于大一新生初次接触程序设计语言,以及C语言上课枯燥的特点,本教材教学团队抛弃传统教材单纯讲解C语言语法的形式,将知识点贯穿于案例中,以案例驱动,循序渐进、由浅入深;采取知识点与案例相对应的方式,安排教学内容;采用增量式的程序设计模式安排教学内容,将任务进行分解、简化问题;最终使读者既能掌握编程语言的思想和方法,又能学有所获。

本书为广东省教育厅“育苗工程(自然科学)”之“计算思维与应用型人才培养结合下的计算机专业基础课程建设”项目成果之一。

书中每章都列出了核心知识点,并通过简单、可理解的示例,帮助读者理解和掌握核心知识的应用,增量式项目驱动能够训练读者编程能力、知识点的综合应用能力。

第1章主要讲解C语言的基本概念、C语言开发环境和C程序的开发步骤,要求读者初步认识C语言,并通过C语言开发环境开发简单的C程序。

第2章介绍增量项目——LED数码管,并对整个项目进行了增量划分,将每个增量与后续的章节进行知识点与增量任务的对应。

第3章介绍C语言的基本数据类型,要求读者熟练使用C语言数据类型来定义数据。

第4章介绍C语言的运算符和表达式,要求读者熟练应用各种运算符和表达式进行计算和语句表达。

第5章介绍选择结构程序设计,第6章介绍循环结构程序设计,要求读者掌握使用控制结构进行复杂程序设计的能力。

第7章介绍函数的结构、函数的定义和调用等内容,要求读者掌握用函数进行模块化程序设计的思想,并在LED数码管增量上使用函数对功能模块进行了封装。

第8章介绍数组,强调数组在解决实际问题中的重要性及使用。

第9章介绍C语言的重要内容——指针,用简单明了的方式介绍了指针的应用。

第10章介绍字符串的应用。

第11章介绍结构体、共用体和枚举类型。

第12章结合实例介绍文件的操作和使用。

第13章简单介绍C语言中的预编译命令。

本书在内容上侧重C语言基本语法的学习和应用,采用增量的方式贯穿整全书,并介绍了一个LED数码管程序的开发过程,适合初学者对C语言的理解,并通过对案例的学习和模拟,将C语言基本技能实现其他应用。

本书采用开源软件CodeBlocks作为C语言开发环境,CodeBlocks可以从官方网站下载、安装和使用。本书还配有《C语言程序设计实验及习题指导》(ISBN 978-7-121-26345-3),可以作为与本书配套的实验教材。

本书可以作为计算机及相关专业程序设计课程的教学用书,不同专业在讲授时可根据学生、学时等具体情况有选择讲授不同章节的内容,还可以作为计算机等级考试的学习或参考用书。

对于计算机专业的学生,建议授课学时为54+36学时,其中54学时为课堂讲授,36学时为上机实验。各章节学时分配可参考如下。

本书第1~3章由陈海山编写,第4~7章由苑俊英编写,第8~9章由温泉思编写,第10~12章由谭志国编写,第13章由曹惠茹编写。书中LED数码管案例的增量实现由陈海山、李瑞程完成,全书由苑俊英负责统稿和定稿。

本书在编写过程中得到了中山大学信息科学与技术学院杨智教授、中山大学南方学院洪维恩教授的支持与帮助,在此表示诚挚的谢意。在本书编写过程中,中山大学南方学院的李瑞程、佘聪、白凯凯、李浩铭等同学参与了本书代码的测试工作。同时感谢电子工业出版社及所有编辑为本书完成所做的工作。

本书还配有教学课件、实例代码、增量项目源码和实验,有需要的读者可发邮件至cihisa@126.com,也可以登录到http∶//www.hxedu.com.cn进行下载。

由于作者水平有限,编写时间仓促,在本书中难免有一些错误,恳请读者提出宝贵建议。作者

第1章 初识C语言

⊙ 熟练掌握C语言开发环境CodeBlocks的使用

⊙ 掌握运行C程序的基本步骤

⊙ 了解C语言的历史及特点

⊙ 熟悉算法的表示形式

1.1 C语言概述

C语言是国际上广泛流行的计算机高级语言,C语言的祖先是BCPL(Basic Combined Programming Language)语言。1970年美国AT&T贝尔实验室的Ken Thompson以BCPL语言为基础,设计出了简单且很接近硬件的B语言(取BCPL的第一个字母),但B语言过于简单,功能有限。1972—1973年间,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言。C语言既保持了BCPL和B语言的优点(接近硬件),又克服了它们的缺点(过于简单、无数据类型等)。最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,Ken Thompson和D.M.Ritchie合作把UNIX的90%以上用C语言改写,即UNIX第5版。1978年,Brian W.Kernighan和Dennis M.Ritchie合著了影响深远的名著TheCProgrammingLanguage,它是第一个C语言标准。1978年以后,C语言先后移植到大、中、小和微型计算机上。

C语言是一种应用范围广泛,既可以用来编写系统应用程序,也可以用来编写不依赖计算机硬件的应用程序。C语言从问世后发展迅速,是目前最受欢迎的编程语言之一。

C语言具有以下特点:

① C语言简洁、使用方便。C语言源程序短,编辑程序时工作量小。

② C 语言可以对硬件编程,可以像汇编语言一样对位、字节和地址进行操作,在单片机和嵌入式系统中应用广泛。

③ C 语言是以函数形式提供给用户的,这些函数可方便调用,并具有多种循环、条件控制结构,使程序完全结构化。

④ C语言具有各种数据类型和运算符,并引入指针概念,程序执行效率高。

⑤ 用C语言编写的程序可移植性好,适合多种操作系统、多种机型。

⑥ 生成目标代码质量高,程序执行效率高。

1.2 C语言开发环境

C语言开发环境有很多种,读者可根据需要选择C语言的开发环境,如VC++6.0、DEV C++等。本书采用CodeBlocks作为C语言的开发工具,CodeBlocks是一个开源的全功能跨平台C/C++集成开发环境,支持Windows和GNU/Linux。1.2.1 运行C语言程序的步骤和方法

要编辑一个C源程序,并通过C语言编程环境CodeBlocks进行编译、运行,一般要经过以下步骤,具体过程见图1-1。图1-1 运行C程序的步骤和方法(1)创建工程。通过创建一个工程为一个C程序提供工作环境。(2)向工程添加源文件。一个工程可包含一个或多个源文件,可包含0个或多个头文件。(3)编辑源文件。根据C语言的语法规则,使用文本编辑器编写的扩展名为.c的文件,如first.c、hello.c等。(4)编译。计算机不能直接识别源文件,必须把源文件转化为计算机能够识别的机器指令。C程序编译器将检查源文件中是否有语法错误,如果有语法错误,将提示有关错误,如果没有语法错误,编译器会将源文件转化为一个二进制文件,该二进制文件被称为源文件的目标文件。目标文件的名字与源文件的名字相同,但扩展名为.obj。(5)链接。目标文件是供链接器使用的文件,也就是说目标文件中含有待确定的链接信息,链接器必须把这些信息替换成真正的链接代码、形成完整的可执行的代码,即链接器负责产生一个可执行文件。可执行文件的名字与源文件的相同,但扩展名为.exe。(6)运行。将生成的可执行文件交给操作系统去执行。1.2.2 最简单的C语言程序

学习并掌握C程序,首先要熟练使用C程序的开发环境,能用CodeBlocks编写简单的C源程序,并对源程序进行编译、链接和运行。【例 1-1】编写一个简单的程序,要求程序输出文字“Hello,C程序设计——增量式项目驱动一体化教程!”。(1)代码实现(chp1_1.c)(2)运行结果(3)总结

一个C语言程序的结构具有以下特点。

① 一个程序由一个或多个源程序文件组成。一个源文件又包含三部分:

  预处理命令。例如:

#include<stdio.h>

  全局声明。例如,全局变量声明

int num;

  函数定义。例如,定义一个max()函数,用来计算两个数的最大值。

② 函数是C程序的主要组成部分。一个C语言程序是由一个或多个函数组成的,其中必须且只能有一个main()函数。

③ 一个函数包含两部分:

  函数首部:包括函数类型、函数名、函数参数名、参数类型。

  函数体:函数首部下面{}中的部分。函数体又包含两部分:声明部分和执行部分。

④ 程序总是从main()函数开始执行。

⑤ 程序对计算机的操作是由函数中的C语句完成的。

⑥ 每条语句结尾由分号结束。

1.3 算法

通过以上内容的学习,可以发现一个程序主要包括两方面的信息:

① 对数据的描述。程序中需要使用什么样的数据来描述具体问题,数据的类型、数据的组织形式分别如何表示,这就是数据结构(Data Structure)。

② 对操作的描述。程序中对数据进行什么样的处理,即要求计算机进行操作的步骤,这就是算法。1.3.1 算法的定义

广义的算法指“为解决一个问题而采取的方法和步骤”,也就是程序。计算机算法就是为了解决一个问题,计算机所需要执行的方法和步骤,也就是计算机程序。

在软件行业,程序的概念还要广一些,既包括算法,也包括算法操作的对象,即数据。数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,各种字母、数字符号的组合、语音、图形、图像等统称为数据。数据经过加工后就成为信息,可由计算机进行处理。

算法与数据的关系是,算法操作的对象是数据。在同一应用环境下,不同的数据之间存在一定的联系,这些数据的组织形式就是数据结构。简单来说,程序=算法+数据结构。

对同一个问题,可能有不同的解题方法和步骤,不同的方法之间有优劣之分,有的方法较简单,有的较复杂,一般采用方法简单、运算步骤较少的方法。

计算机算法分为两大类:数值计算算法和非数值计算算法。数值计算问题一般可通过数学运算进行解决,如求方程的根、求微分方程等;非数值计算问题一般不能直接解决,要通过建立数学模型,设计合适的算法来解决,见图1-2的具体步骤。图1-2 解决问题的步骤1.3.2 算法的表示

常用的表示算法的方法有:自然语言、流程图、结构化(N/S)流程图和伪代码等。下面对每种方法进行简单介绍。(1)自然语言

自然语言就是人们日常使用的语言,可以是汉语、英语或其他语言。用自然语言表示的算法通俗易懂,但是文字冗长、容易有歧义。自然语言表示的算法不太严格,要根据上下文才能判断其正确含义。用自然语言描述包含分支和循环结构的算法不太方便,因此,除了一些简单的问题,一般不用自然语言表示算法。【例1-2】计算1+2+3+4+5。

用自然语言描述算法:

步骤1:先计算1+2,得到结果3。

步骤2:将步骤1得到的结果再加上3,得到结果6。

步骤3:将6再加上4,得10。

步骤4:将10再加上5,得15。(2)流程图

流程图是用一些框图来表示各种操作,用图形表示算法,会更直观、易于理解。一些常用的流程图符号如图1-3所示。图1-3 流程图符号【例1-3】判断x是否为正数,画出解决该问题的流程图如图1-4所示。图1-4 例1-3流程图(3)N-S结构化流程图

N-S流程图用以下流程图符号来描述:

顺序结构用图1-5所示形式表示,A、B两个框组成一个顺序结构。

选择结构用图1-6所示形式表示,P表示条件,P条件成立时执行A操作,否则执行B操作。

循环结构用图1-7和图1-8所示的两种形式表示。图1-7为当型循环结构,当P1条件成立时反复执行A操作,直到P1条件不成立结束。图1-8为直到型循环结构,反复执行A操作,直到条件P1成立结束。图1-5 顺序结构图1-6 选择结构图1-7 当型循环图1-8 直到型循环

在图1-5~图1-8中,A、B可以是一个简单的操作,也可以是以上3种基本结构之一。【例1-4】计算5!,画出解决该问题的N-S流程图如图1-9所示。图1-9 例1-4的N-S流程图(4)伪代码

伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。一般每一行(或几行)表示一个基本操作,伪代码不使用图形符号,书写方便,格式紧凑,容易看懂,便于向计算机程序过渡。用伪代码编写的算法并无固定的、严格的语法规则,可以使用任何语言,只要意思表达清楚,便于书写和阅读即可。【例1-5】计算5!,用伪代码表示该算法如下:1.3.3 算法举例【例1-6】计算两个整数x和y的最大值。(1)问题分析

如果x>=y,则x是较大者;否则,y是较大者。(2)流程图(见图1-10)图1-10 流程图(3)代码实现(chp1_6.c)【例1-7】判断某一年是否为闰年,并将结果输出。(1)问题分析

某年x为闰年的条件是:x能被4整除并且不能被100整除,或者x能被100整除并且能被400整除。(2)流程图(见图1-11)图1-11 流程图(3)代码实现(chp1_7.c)【例1-8】有50个学生,要求输出成绩在80分以上的学生的学号和成绩。(1)问题分析

① 定义表示学生信息(学号和成绩)的数据类型。

② 定义长度为50的数组。

③ 依次取出每个学生的成绩,利用下面的循环进行处理,直到所有学生处理完为止:如果该学生成绩≥80,则输出该学生学号和成绩,然后取下一个学生的成绩(2)流程图(见图1-12)图1-12 流程图(3)代码实现(chp1_8.c)

本章小结

本章介绍了C语言的发展史及特点;介绍了C语言的开发环境以及运行C程序的步骤和方法;介绍了算法的概念及表示形式。要求读者能熟练使用C语言开发环境,并能编写简单的C程序。

习题1

1.了解C语言的发展历史。

2.了解C语言的特点。

3.写出C程序开发环境CodeBlocks的下载、安装及使用步骤。

4.写出运行C程序的步骤与方法。

5.什么是算法?一个算法有哪些表示形式?

6.用流程图表示求解以下问题的算法:

7.计算1+2+…+100。

8.判断一个数是否为偶数。2

9.计算一元二次方程ax+bx+c=0。

10.编写一个C语言程序,输出以下信息:

第2章 C语言知识在实践中的应用

⊙ 了解C语言的知识架构

⊙ 了解C语言的应用领域

⊙ 熟悉增量式使用C语言完成综合案例的步骤和方法

2.1 案例介绍

1.实现目标

通过对C语言的学习,读者应学会用C语言编写程序实现对LED数字显示屏的模拟。

2.LED数码管简介

本书以LED数码管的数字显示过程为例说明C语言符号的来历和使用,以及使用C语言的各种控制结构、函数等基本技能实现对LED数码管的各种操作。

为了方便读者对应用案例的理解,下面先介绍LED数码管。

LED数码管是一种常见的廉价显示设备,通常可以显示数字。LED数码管显示数字的范围为0~9。不能显示小数点的LED数码管称为7段LED数码管,能显示小数点的LED数码管称为8段LED数码管,多个7段LED数码管可以组合起来显示多位数字,8段LED数码管和7段LED数码管可以混合使用来显示小数。

7段LED数码管由7个数码管组成,如图2-1所示。8段数码管由8个数码管组成,其中数码管8代表小数点,如图2-2所示。一个7段LED数码管可以显示数字0~9,显示状态如图2-3所示。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载