书馨卡帮你省薪
欢迎光临中图网 请 | 注册

C语言程序设计

出版社:科学出版社出版时间:2021-08-01
开本: 其他 页数: 224
中 图 价:¥41.3(8.3折) 定价  ¥49.8 登录后可看到会员价
加入购物车 收藏
运费6元,满39元免运费
?新疆、西藏除外
本类五星书更多>

C语言程序设计 版权信息

  • ISBN:9787030695666
  • 条形码:9787030695666 ; 978-7-03-069566-6
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 所属分类:>

C语言程序设计 内容简介

本教材适用面广,在章节上给以注明,读者可选择学习,既可以作为程序设计的入门学习,又可以作为理工科专业学生的专业基础课程的学习。本教材适用面广,在章节上给以注明,读者可选择学习,既可以作为程序设计的入门学习,又可以作为理工科专业学生的专业基础课程的学习。

C语言程序设计 目录

目录
第1章 绪论 1
1.1 计算机程序设计语言发展过程 1
1.2 C语言的发展及应用领域 3
1.3 剖析一个简单的C程序 4
1.3.1 程序注释 4
1.3.2 预处理指令 4
1.3.3 定义主函数 5
1.4 C语言函数的定义及其组成部分 5
1.5 由多个函数构成的C程序 6
1.6 C程序的开发运行步骤和环境 9
习题 11
第2章 算法 12
2.1 算法及其分类 12
2.2 程序的形成 13
2.3 算法设计举例及算法表示 14
2.3.1 自然语言表示算法 14
2.3.2 用流程图表示算法 15
2.3.3 3 种基本结构 16
2.3.4 用N-S结构化流程图表示算法 18
2.3.5 用伪代码表示算法 19
2.3.6 用计算机语言表示和实现算法 20
2.4 结构化程序设计思想 20
2.4.1 结构化程序设计思想的产生 20
2.4.2 结构化程序设计过程 21
习题 23
第3章 顺序程序设计及编程初步 24
3.1 标识符和关键字 24
3.2 顺序结构程序设计 25
3.3 常量和变量、内存及其地址 26
3.3.1 数据在计算机内的存储及表示形式 26
3.3.2 常量和变量 26
3.3.3 内存及其地址 26
3.4 数据类型 28
3.4.1 整型数据 28
3.4.2 浮点型数据 29
3.4.3 字符型数据 30
3.5 运算符和表达式 31
3.5.1 算术运算符 31
3.5.2 赋值运算符 32
3.5.3 表达式 32
3.5.4 关系运算符和关系表达式 32
3.5.5 逻辑运算符和逻辑表达式 33
3.5.6 自增、自减运算符 33
3.5.7 强制类型转换运算符 34
3.5.8 类型转换 34
习题 35
第4章 C语言的标准函数库和数据的输入输出 37
4.1 C语言的标准函数库及软接口 37
4.2 字符数据的输入输出 38
4.2.1 putchar函数 38
4.2.2 getchar函数 39
4.3 C语言的格式输入输出函数 40
4.3.1 printf函数 40
4.3.2 scanf函数 43
习题 45
第5章 选择结构程序设计 47
5.1 if语句的形式 47
5.1.1 只含有if语句的形式 47
5.1.2 完整的if else语句形式 48
5.2 if语句的嵌套 50
5.3 条件运算符“?:” 53
5.4 switch语句 54
5.5 选择结构程序设计综合举例 57
习题 60
第6章 循环结构程序设计 62
6.1 用while语句实现入口条件循环 62
6.2 用for语句实现入口条件循环 63
6.3 用do while语句实现出口条件循环 65
6.4 循环的嵌套 65
6.5 用break语句和continue语句终止循环 68
6.5.1 break语句 68
6.5.2 continue语句 69
6.6 循环结构的应用举例 70
习题 73
第7章 数组 75
7.1 一维数组 75
7.1.1 一维数组的定义和引用 75
7.1.2 一维数组的初始化 76
7.1.3 一维数组的应用举例 77
7.2 二维数组 80
7.2.1 二维数组的定义和引用 80
7.2.2 二维数组的初始化 82
7.2.3 二维数组的应用举例 82
7.3 字符串和字符数组 85
7.3.1 字符数组的定义和初始化 86
7.3.2 字符数组的引用 86
7.3.3 字符数组的输入输出 87
7.4 字符串处理函数 88
7.4.1 puts函数 88
7.4.2 gets函数 88
7.4.3 strlen函数 89
7.4.4 strcat函数 89
7.4.5 strcpy和strncpy函数 89
7.4.6 strcmp函数 90
7.4.7 strlwr和strupr函数 91
7.5 字符数组及字符串处理函数应用举例 91
习题 95
第8章 再论函数 97
8.1函数参数的值传递方式 97
8.2函数参数的地址传递方式及参数的作用 100
8.2.1 一维数组名做函数参数 100
8.2.2 多维数组名做函数参数 106
8.3函数的嵌套调用 107
8.4函数的递归调用 108
8.5 局部变量和全局变量 115
8.5.1 局部变量 115
8.5.2 全局变量 116
*8.6 变量的存储类别和生存期 118
8.6.1 动态存储方式和静态存储方式 118
8.6.2 局部变量的存储类别 119
8.6.3 全局变量的存储类别及其作用域的扩展 121
8.6.4 变量的作用域和生存期 122
*8.7 内部函数和外部函数 123
8.7.1 内部函数 123
8.7.2 外部函数 124
习题 128
第9章 指针 130
9.1 指针和指针变量 130
9.1.1 指针变量的定义 131
9.1.2 指针变量的引用 131
9.1.3 指针变量做函数参数 132
9.2 指针和数组 137
9.2.1 一维数组元素的指针 137
9.2.2 数组名和指针做函数参数 138
9.2.3 多维数组的指针 140
9.2.4 二维数组名和指针做函数参数 145
9.3 指针与字符串 147
9.3.1 用字符指针变量引用字符串 147
9.3.2 字符指针做函数参数 150
*9.4 指向函数的指针 152
9.4.1函数指针及其定义 152
9.4.2 用函数指针变量调用函数 153
9.4.3 用指向函数的指针作函数参数 154
9.5 返回指针值的函数 156
*9.6 指针数组 157
*9.7 多重指针 160
习题 161
第10章 结构体数据类型 163
10.1 结构体变量的定义和使用 163
10.1.1 声明结构体数据类型 163
10.1.2 结构体类型变量的定义和使用 165
10.2 结构体变量的初始化和引用 167
10.2.1 结构体变量的初始化 167
10.2.2 结构体变量成员的引用 168
10.3 结构体数组 169
10.4 指向结构体的指针 172
10.4.1 指向结构体变量的指针 172
10.4.2 指向结构体数组的指针 173
10.5 向函数传递结构的信息 174
10.5.1 传递结构成员 174
10.5.2 传递结构体变量的地址和传递整个结构体变量 175
*10.6 用指针处理链表 177
10.6.1 链表概述 177
10.6.2 建立静态链表 178
10.6.3 建立动态链表 180
10.7 枚举类型 184
*10.8 typedef 简介 187
习题 189
第11章 文件操作 190
11.1 文件及其存储形式 190
11.2 文件的操作及其输入输出 191
11.3 打开和关闭文件 193
11.3.1 用fopen函数打开数据文件 193
11.3.2 用fclose函数关闭数据文件 194
11.4 用fgetc和fputc函数顺序读写字符 195
11.5 用fgets和fputs函数顺序读写字符串 198
*11.6 用fscanf 和fprintf函数向文件格式化输入输出数据 200
11.7 用fread 和fwrite函数进行二进制方式读写数据 200
11.8 随机读写数据文件的rewind和fseek、ftell函数 202
11.9 文件读写出错检测函数 205
习题 206
附录 207
附录1 ASCII码表 207
附录2 C语言的运算符优先级和结合性 211
附录3 C的标准库函数 212
参考文献 216
展开全部

C语言程序设计 节选

第1章 绪论 本章主要内容: 计算机程序设计语言发展过程 简单C语言程序的基本结构 构成C程序的基本组件——函数及其组成结构 函数的声明,函数原型 形式参数、实际参数 函数的调用和执行过程 C程序的开发运行环境和步骤 本章重点: 简单C语言程序的基本结构:注释、预处理指令和函数 构成C程序的基本组件:函数及其组成结构 形式参数、实际参数 函数的调用和执行过程 1.1 计算机程序设计语言发展过程 计算机能有条不紊地完成工作是通过执行事先设计好的程序来进行控制的。程序是为实现特定目标或解决特定问题而用计算机语言编写的命令系列集合。不同的程序完成不同的功能。生活中也有很多类似“程序”的概念,如做一套健美操的步骤,烘焙一种蛋糕的方法和过程。 语言是交流的工具,自然语言是人与人之间交流的工具,计算机语言就是人和计算机之间交流信息的工具。在这一点上它和英语、法语和中文等其他语言本质上是一样的。程序必须使用计算机语言来描述。按照计算机语言对硬件的依赖程度,计算机语言可以分为低级语言和高级语言。低级语言有机器语言和汇编语言,低级语言执行速度快,运算效率高,但使用复杂、烦琐、费时、易出差错。高级语言接近自然语言,移植性好,易学、易掌握。下面按计算机语言的发展过程依次对这些语言给予介绍。 1.机器语言 计算机能直接识别的语言是二进制语言,即只有“0”和“1”两个符号,称为机器语言。因为计算机是由电驱动的,通常高电平表示1,低电平表示0。可以用它们的不同组合代表不同的含义,例如,规定用0011110001010000代表做乘法指令,其他不同的二进制串代表减法、加法等不同的操作。所有的这些规定就构成了一类机器指令集合,称为指令系统。低级语言指令系统与不同的计算机系统相关联,此处主要是指与计算机CPU的不同类型相关,这是因为不同的CPU型号系列(现在比较流行的CPU系列有Intel酷睿、AMD Ryzen和ARM等),其指令系统是不同的,所以在一种系列的计算机上可以执行的程序,在另一种系列上则不能正确执行,必须要重新编写,可移植性差。但由于它是针对特定CPU型号的计算机,故其运算效率是*高的。另外,机器语言难懂、易错、难检查、难修改,不好使用,于是人们研发出了汇编语言。 2.汇编语言 汇编语言又称为符号语言,它用一些英文字符和数字等助记符表示机器指令,如用ADD代表“加法”,MOV代表“数据传递”等,这样程序就易读易记了,一般一条汇编语言指令对应一条机器指令。由于不同型号系列CPU的计算机的机器语言指令系统集合是不一样的,所以汇编语言程序和机器语言程序一样移植性不好,比如在Intel系列机器上可以运行的程序,在AMD系列机器上就不能正常运行,所以称它们都是面向机器的低级语言。 3.高级语言 由于汇编语言依赖于硬件系统,并且助记符多,仍然不够方便,而且对硬件过度依赖,要求使用者对硬件结构及其工作原理都十分熟悉,由此促进人们研发出与人类自然语言相近、易学易用、移植性好的计算机语言。在20世纪50年代出现了计算机高级语言,它的语法接近英文,又不依赖于计算机硬件,在一定程度上与机器无关,只要在计算机上有相应的编译系统,就可以把它翻译成二进制机器码进行运行。先后出现了非结构化语言FORTRAN、Basic,结构化语言C、Pascal、FORTRAN77等。高级语言是面向用户的语言。 C语言从严格意义上来说,既有高级语言的特点,也有低级语言的特点。允许直接对硬件进行操作,能进行位(bit)操作,能实现汇编语言的大部分功能。所以C语言也常用于底层软件开发,如操作系统、编译器、各类插件、嵌入式系统软件、单片机程序、物联网应用等。这也是C语言区别于其他高级语言的独特之处,以致它能在过去的40多年里经久不衰。 4.面向对象语言 尽管高级语言已经比较方便了,但随着信息技术的发展,需要处理的问题越来越复杂,其功能有些不能满足需要了。高级语言是面向过程的,程序的执行像流水线似的,无法动态地改变程序的执行方向。这同人类日常处理事务的方式是不一样的,人们希望发生一件事就处理一件事,不能面向过程,而是面向具体的应用功能,即对象。所以在20世纪80年代出现了软件设计思想上的一次革命,其结果就是产生了面向对象的程序设计。 面向对象程序设计思想同以往根本不同的是其思维方法,它更直接地描述客观世界的事物(即对象)及事物之间的相互联系,并进行抽象,将人类的思维和表达方式直接应用于软件开发,从而可以更好、更有效地处理大型的、复杂的问题。先后出现了C++、C#、VB、Java、Python等有影响力的面向对象语言。 计算机语言的发展过程及其特点如图1-1所示。 图1-1 计算机语言的发展过程 1.2 C语言的发展及应用领域 C语言是贝尔实验室的 D.M.Ritchie(丹尼斯 里奇)和Ken Thompson(肯 汤普森)在 BCPL(BasicCombined Programming Language)语言的基础上发展而来的,*初用于开发多用户、多任务的UNIX操作系统上,后来丹尼斯 里奇用C语言改写了UNIX的编译程序,肯 汤普森又用C语言成功地改写了UNIX,从此开创了编程史上的新篇章,UNIX成为**个不是用汇编语言编写的主流操作系统。1978年后,C语言很快风靡全世界,成为*广泛使用的高级语言,并且流行至今。 C语言相当灵活,用于计算机程序能完成的几乎所有任务,包括应用程序、物联网应用、游戏、操作系统等。常用的C#、Java、MySQL、PHP等语言也主要是用C语言开发的。美国“阿波罗-11”航天飞船登月的软件系统、波音飞机的飞行系统、**个3DPS游戏雷神之锤(Quake)等主要也是用C语言实现的。其他语言的许多编译器和解释器也是用C语言编写的。而C语言的*强大之处是它的底层编程功能,它同时具有高级语言和汇编语言的优点,能直接访问内存的物理地址,对硬件进行操作,用来编写系统软件,例如编译器、驱动程序、操作系统内核、各种嵌入式软件、各类插件等。 随着C语言的不断发展,C社区意识到需要有一个更全面、新颖、严格的标准,于是在1983年,美国国家标准协会(American National Standard Institute,ANSI)成立了一个委员会,根据C语言问世以来各种版本对C语言的发展和扩充,制定了**个C语言标准草案。1989年,ANSI公布了一个完整的C语言标准—ANSI X3.159-1989(常称 ANSIC,或C89),定义了C语言和C标准库。1990年,国际标准化组织(International Standard Organization,ISO)接受C89作为国际标准ISO/IEC 9899:1990。1995年和1999年,ISO又对C语言标准进行修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加了一些功能,尤其是C++中的一些功能,并将其命名为C99。*新版本是C11(ISO/IEC 9899:2011)。本书的叙述遵循C11标准,目前不同软件公司提供的各种C语言编译系统多数并未完全实现C11建议的功能,因为对一些应用而言,并不需要使用到它的所有特性。 1.3 剖析一个简单的C程序 要使用好一门语言,必须要熟悉它的基本语法。C语言语法简洁,易学易记。下面通过一个简单的程序示例,来详细解释一些C程序语句的功能及*基本的语法,同时介绍一个简单C语言程序的基本组成部分。 【例1.1】在屏幕上输出一行文字“I begin to studyC program.”。 程序如下: 由上面程序图示可看到,一个C程序包含程序注释、预处理指令和定义主函数三大部分,以下逐个详细介绍。 1.3.1 程序注释 程序*前面的第1行到第5行包含在“/*”“*/”符号对以内的语句是程序的注释。注释不是程序代码,是不执行操作的,只是告知阅读程序的人一些信息,通常包括这个程序的名称及它的功能。C语言的注释有块注释和单行注释两种。块注释用“/*”“*/”符号对包含在内,单行注释用符号“//”后面的文字说明本行的作用,如第7行尾部。 注释的原则是有助于对程序的阅读理解,只有在必要的地方才加注释。 1.3.2 预处理指令 以符号“#”开头的指令表示这是预处理指令,一般放在程序源文件的开头。它的作用是告诉编译器在编译源代码之前的预处理阶段要做的一些工作,它并不是执行语句。 第6行的语句#include 告知编译器把文件 stdio.h中的内容包含在当前程序中,实际上就是把文件stdio.h复制到此位置。stdio.h是头文件(header file),通常放在文件的开头处,它是属于C语言的标准库函数,stdio是标准输入输出(standard input/output)的缩写,因为要用到此头文件中的 printf函数,所以必须把它包含进来。标准库函数是其他人已经写好的程序的集合,可以直接由程序员调用来完成相应的功能。有关标准库函数的详细内容,将在第4章中介绍,现在只需要知道程序中要用到的库函数必须把它所在的头文件包含进来即可。 1.3.3 定义主函数 例1.1 程序中第7行到第11行指令的作用是定义主函数,即 main函数。可先通过下面的单行注释掌握每个语句的基本功能。 第7行int main(void)的作用是标志 main函数定义的开始,关键字int表示main函数的返回值是整型(integer),即整数。函数返回值是函数执行完成后返回的结果。有关关键字的详细内容在3.1节介绍。小括号表示main是一个函数,括号内的 void表示参数为空,没有数据传递给 main函数,参数为空也可以什么都不写。 第8行和第11行的花括号把函数的函数体括起来,同时表示其开始和结束。 第9行语句调用printf库函数完成在屏幕上显示信息的功能,此函数的作用是把双引号内的内容输出到屏幕上显示,*后的“\n”是转义字符,表示把光标移到下一行,有关转义字符的内容在3.4.3节中介绍。printf函数是库函数,库函数是已经编制好的程序,一般都集中放在函数库中,提供给需要的程序员调用。 第10行return 0语句结束函数的执行,把0返回给操作系统,它与第7行要求的函数的返回值类型是一致的,都是整型。 注意: C语言的每一个执行语句都用分号结束。 函数是C程序的基本单元,每个C程序都由一个或多个函数组成,并且必须有且只能有一个main函数,即主函数。main函数是程序执行的入口,所以读一个程序时要先读它的main函数。 1.4 C语言函数的定义及其组成部分 1.3节已讲述了C语言由函数组成,因此掌握函数的有关内容是非常重要的。函数(function)是完成特定任务的独立程序代码单元。C语言中的函数和其他程序设计语言中的函数、子程序、过程和方法等的作用相同,只是细节上有一些差别。 使用函数有很多好处。首先,可以省去重复编写代码的苦差。如果某个任务需要经常反复使用,那么只要把它写成一个函数,需要的时候调用此函数即可,不需要一次又一次地写程序代码。例如,前面程序中输出信息的 printf函数,几乎在所有的程序中都要用到,把它写成函数,就实现了一次编写代码、多次使用的目的。其次,使用函数可以让程序变得模块化。通常将复杂的问题分为更小的模块解决,一个函数一般对应一个功能模块。 函数是构成C程序的细胞,因此首先必须把它的基本组成结构搞清楚

商品评论(0条)
暂无评论……
书友推荐
本类畅销
编辑推荐
返回顶部
中图网
在线客服