欢迎光临
免费的PDF电子书下载网站

C语言程序设计(第2版) PDF下载

编辑推荐

每章由一个例子引入,全书贯穿一个系统开发案例,并在*后一章进行完整讲解。 ;

内容简介

本书以培养学生程序设计基本能力为目标,系统地介绍了C语言程序设计的基本知识和基本方法。全书共分12章,主要内容包括程序设计概述,数据类型与表达式,顺序结构、选择结构及循环结构程序设计,数组,函数与编译预处理,指针,指针与函数,构造数据类型,文件和综合实例。全书结构清晰,实例丰富,语言流畅,通俗易懂。   本书可作为普通高等学校理工类专业“C语言程序设计”课程的教材,也可作为C 语言程序设计爱好者的自学用书。

作者简介

暂无

C语言程序设计(第2版) PDF下载

目录

第1章 ; 程序设计概述 ; ;  ;1
1.1 ; 程序设计语言 ; ;  ;2
 ;1.1.1 ; 机器语言与汇编语言 ; ;  ;2
 ;1.1.2 ; 高级语言与翻译 ; ;  ;3
1.2 ; 程序设计基础 ; ;  ;3
 ;1.2.1 ; 程序与程序设计概念 ; ;  ;3
 ;1.2.2 ; 算法——程序的灵魂 ; ;  ;4
 ;1.2.3 ; 程序设计的一般过程 ; ;  ;9
 ;1.2.4 ; 程序设计方法 ; ;  ;9
1.3 ; C语言的发展与特点 ; ;  ;10
1.4 ; C语言的程序结构 ; ;  ;11
 ;1.4.1 ; 简单的C程序 ; ;  ;12
 ;1.4.2 ; C程序的基本结构 ; ;  ;13
1.5 ; 开发C语言程序的基本过程 ; ;  ;14
 ;1.5.1 ; C程序编程环境 ; ;  ;14
 ;1.5.2 ; C语言程序的实现过程 ; ;  ;15
习题 ; ;  ;15
第2章 ; 数据类型与表达式 ; ;  ;17
2.1 ; 字符集、关键字和标识符 ; ;  ;17
 ;2.1.1 ; 字符集 ; ;  ;17
 ;2.1.2 ; 关键字 ; ;  ;17
 ;2.1.3 ; 标识符 ; ;  18
2.2  数据的存储    18
 2.2.1  二进制    18
 2.2.2  数据的存储    18
2.3  基本数据类型    19
 2.3.1  整型    20
 2.3.2  实型    21
 2.3.3  字符型    23
2.4  常量与变量    23
 2.4.1  常量    23
 2.4.2  变量    26
2.5  运算符与表达式    28
 2.5.1  算术运算    28
 2.5.2  赋值运算    31
 2.5.3  求字节数运算符    32
 2.5.4  圆括号运算符    32
 2.5.5  位运算    32
2.6  类型转换    35
 2.6.1  自动类型转换    35
 2.6.2  强制类型转换    37
习题    37
第3章  顺序结构程序设计    38
3.1  C语言基本语句    39
3.2  数据的输入输出    40
 3.2.1  数据输入输出的概念    40
 3.2.2  格式化的输入输出    41
 3.2.3  字符的输入输出    51
3.3  顺序结构程序设计    52
 3.3.1  顺序结构程序    53
 3.3.2  良好的源程序书写风格    53
3.4  顺序结构程序设计实例    55
习题    57
第4章  选择结构程序设计    59
4.1  运算符与表达式    60
 4.1.1  关系运算    60
 4.1.2  逻辑运算    61
 4.1.3  条件运算    63
 4.1.4  逗号运算    64
4.2  if语句实现选择结构    64
 4.2.1  if语句    64
 4.2.2  if语句的嵌套    67
4.3  switch语句    71
4.4  选择结构程序设计实例    75
习题    80
第5章  循环结构程序设计    82
5.1  while语句    83
5.2  do…while语句    86
5.3  for语句    88
5.4  循环的嵌套    92
5.5  循环语句的特点    94
5.6  与循环有关的控制语句    95
 5.6.1  break语句    95
 5.6.2  continue语句    97
 5.6.3  goto语句    98
5.7  循环结构程序设计实例    98
习题    105
第6章  数组    107
6.1  数组的基本概念    109
6.2  一维数组    109
 6.2.1  一维数组的定义与存储    109
 6.2.2  一维数组元素的引用    110
 6.2.3  一维数组的初始化    111
 6.2.4  一维数组程序举例    112
6.3  二维数组    116
 6.3.1  二维数组的定义与存储    116
 6.3.2  二维数组元素的引用    118
 6.3.3  二维数组的初始化    118
 6.3.4  二维数组程序举例    119
6.4  字符数组    121
 6.4.1  一维字符数组的定义与初始化    121
 6.4.2  一维字符数组的输入输出    122
 6.4.3  二维字符数组    125
 6.4.4  字符串处理函数    127
 6.4.5  字符数组程序举例    130
6.5  数组程序设计实例    131
习题    136
第7章  函数与编译预处理    138
7.1  程序与函数    139
7.2  函数的定义及调用    141
 7.2.1  定义无参函数    141
 7.2.2  定义有参函数    141
 7.2.3  函数的调用    142
7.3  函数参数及其传递方式    147
 7.3.1  变量做函数参数    148
 7.3.2  数组做函数参数    149
7.4  函数的嵌套调用    152
7.5  函数的递归调用    154
7.6  变量的作用域、存储类型及生存期    156
 7.6.1  变量的作用域    156
 7.6.2  变量的存储类型    159
 7.6.3  程序的内存布局及变量的生存期    162
 7.6.4  小结    163
7.7  函数程序设计实例    164
7.8  编译预处理    170
 7.8.1  宏定义    171
 7.8.2  文件包含    175
 7.8.3  条件编译    176
习题    179
第8章  指针    181
8.1  指针的概念    182
 8.1.1  地址    182
 8.1.2  指针的定义    183
8.2  指针变量    183
 8.2.1  指针变量的定义    183
 8.2.2  指针的基本运算    184
 8.2.3  指针的初始化及赋值    185
 8.2.4  零指针与void *类型指针    188
8.3  指针与数组    189
 8.3.1  指针与一维数组    189
 8.3.2  指针的运算    192
 8.3.3  指针与二维数组    194
8.4  指针与字符串    198
8.5  指针数组与指向指针的指针    201
 8.5.1  指针数组    201
 8.5.2  指向指针的指针    204
8.6  指针与动态内存分配    206
 8.6.1  动态内存分配函数    206
 8.6.2  动态内存分配的应用    207
8.7  指针程序设计实例    208
习题    211
第8章  指针与函数    212
9.1  指针作为函数的参数    213
 9.1.1  指针变量为函数的参数    213
 9.1.2  数组为函数的参数    215
 9.1.3  字符指针变量为函数的参数    218
 9.1.4  指向数组的指针变量为函数的参数    219
 9.1.5  指针数组或二级指针变量为函数的参数    221
9.2  函数返回指针值    222
9.3  指向函数的指针    224
9.4  带参数的main函数    227
9.5  指针小结    229
 9.5.1  关于指针的数据类型小结    229
 9.5.2  指针运算小结    230
9.6  指针与函数程序设计实例    230
习题    236
第10章  构造数据类型    237
10.1  结构体类型    238
10.2  结构体变量    239
 10.2.1  结构体变量的定义和存储分配    239
 10.2.2  结构体变量的初始化    241
 10.2.3  访问结构体变量成员    242
 10.2.4  结构体的嵌套    243
 10.2.5  结构体变量与函数    244
10.3  结构体数组    245
 10.3.1  结构体数组的定义    245
 10.3.2  结构体数组的初始化与引用    246
 10.3.3  结构体数组作为函数参数    247
10.4  结构体类型的指针    249
 10.4.1  指向结构体变量的指针    249
 10.4.2  指向结构体数组的指针    251
 10.4.3  结构体类型的指针作为函数参数    253
10.5  链表    255
 10.5.1  单链表概述    255
 10.5.2  链表的基本操作    256
10.6  共用体    264
 10.6.1  共用体类型    264
 10.6.2  共用体变量    265
 10.6.3  访问共用体变量成员    267
10.7  枚举    267
 10.7.1  枚举类型    268
 10.7.2  枚举变量    268
10.8  用typedef定义类型名    269
10.9  程序设计实例    271
习题    275
第11章  文件    277
11.1  文件概述    277
 11.1.1  文件的概念    277
 11.1.2  缓冲文件系统    278
 11.1.3  文件类型指针    278
11.2  文件的打开与关闭    279
 11.2.1  文件的打开    279
 11.2.2  文件的关闭    281
11.3  文件的顺序读写操作    281
 11.3.1  读写字符函数    281
 11.3.2  读写字符串函数    284
 11.3.3  格式化读写数据函数    285
 11.3.4  读写数据块函数    287
11.4  文件的随机读写操作    289
 11.4.1  文件指针复位函数    289
 11.4.2  文件指针随机移动函数    290
 11.4.3  取文件指针当前位置函数    292
11.5  文件出错检测函数    293
 11.5.1  ferror函数    293
 11.5.2  clearerr函数    293
11.6  文件程序设计实例    293
习题    295
第12章  综合实例    296
12.1  应用程序开发流程    296
12.2  学生成绩管理系统开发实例    297
 12.2.1  功能描述    297
 12.2.2  系统设计    297
附录A  常用字符及其ASCII代码    313
附录B  C语言的运算符及其结合性    316
附录C  C语言库函数    318
参考文献    324


前沿

C语言以其独特的魅力吸引了众多的软件开发者,是程序设计的一种基本语言,是掌握各种现代编程技术的重要基础。它兼具高级语言和低级语言之长,代码简洁、高效,功能强大。“C语言程序设计”课程是大学计算机基础教育的核心课程,是学生计算思维能力培养的重要载体。
  为了提高教学质量,贯彻和实施以计算思维为切入点的教学改革,近年来,我们首先开展了计算机基础课程考试改革工作,实现了“C语言程序设计”课程上机考试。借助考试系统,把期末考核与阶段性测试相结合,以考带练,以练促考,使“教与学”“学与练”更好地结合起来。实践证明,考试改革既增强了学生的应用能力,又培养了学生自主学习的能力,使学生在编程中学习知识,在学习过程中拓展思维。随着考试改革的深入,为适应新的教学需求,我们编写了这本新的教材,教材内容更强调“面向问题求解”的思维方法训练。本书的主要特点如下。
  (1)例题经典,分析透彻。选择典型例题,注重算法设计,强化程序设计能力的培养,帮助学生在应用中加深对C语言基本语法和程序设计方法的理解。例题的重点、难点在例题的“分析”“说明”“注意”中列出。
  (2)设置引例,承前启后。每章均设置引例,学习新内容时,引例起承接、过渡的作用。简单、实用的引例使学生对新知识有感性的认识。引例引出语法,语法引入应用,把以语法为中心的程序设计教学转变为面向问题求解的程序设计教学,突出程序设计思想与方法。
  (3)综合实例,贯穿全篇。以菜单驱动的“学生成绩管理系统”为主线,主要章节实例部分设置的例题均围绕第12章的综合实例逐步展开;引导学生逐步编写菜单驱动的“学生成绩管理系统”,提高系统思维能力。该内容可以作为课程设计的参考内容。
  (4)注重实用性与趣味性。本书特别选择了实用有趣的题目,如鸡兔同笼、猜数游戏、小学生四则运算练习、建立计时器等,引导学生体会利用计算机解决问题的思路和方法,注重培养学生的计算思维和编程兴趣。
  本次改版是根据教学实践的反馈,在第1版的基础上进行的。在保持第1版基本内容的基础上,做了适当的精简、调整与补充,具体有以下方面。
  (1)微调了章节结构,使学生能尽快进入编程实践环节。将第2章数据类型与表达式的内容进行了调整,第2章介绍最基本的内容,其余内容调整到第4章,这样减少了第2章的内容,以便让学生更快地学以致用,进入编程实践。
  (2)补充、修改了教学内容,使学生能更好地掌握难点和基本概念。为了加强学生对基本概念的理解,第2章补充了“数据的存储”一节,第7章修改了“变量的作用域、存储类型及生存期”一节的结构与内容。为了保证内容的完整性,第5章补充了“goto语句”一节。
  (3)增加、删除、修改了部分例题,使例题更典型、更易理解。例如,第6章补充了典型的“折半查找”“杨辉三角”“进制转换”等例题,更注重介绍典型算法;第7章更新了“函数嵌套调用”的例题,使学生更容易理解函数的嵌套结构;第9章修改了“函数参数为函数指针”的例子,例题更简洁、明了,易于理解。
  为了更好地满足学习者的需要,本书有配套教材《C语言程序设计学习指导》(ISBN 9787302460442),辅导学生巩固教材所学,加强上机实践能力。作者为选用本书的老师提供了配套的课件和例题源程序等教学资源,相关内容可从清华大学出版社网站
  本书是作者在多年教学实践的基础上,对《C语言程序设计》第1版教材的内容进行的梳理、精简和充实。作者都是多年从事C语言程序设计教学的高校教师。本书各章节编写分工如下: 第1、2章由吕进、王俊、袁玲编写; 第3、10章由袁玲编写; 第4、5、12章由韦娜编写; 第6、7章由吴文红编写;第8、9章由王俊编写;第11章由卢江编写。全书由韦娜、王俊负责统稿。
  清华大学出版社对本书的策划、出版做了大量工作,在此表示衷心的感谢!
  由于作者水平所限,书中难免有疏漏之处,恳请广大读者批评指正。
  
  作  者
  2018年9月于西安

免费在线读

顺序结构程序设计
  结构化的程序设计有助于提高程序的简明性,有3种控制结构就可以开发出任意复杂的程序,它们是顺序结构、选择结构和循环结构。C语言提供了多种语句来实现这些控制结构,顺序结构是任何一个程序的基本结构。本章介绍C语言基本语句及其在顺序结构中的应用,使读者对C程序有一个初步的认识。
  【引例  鸡兔同笼】
  《孙子算经》中曾记载:今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔几何?编程计算鸡、兔各有多少只。
  分析:设鸡x只,兔y只,已知鸡和兔共有h个头、f只脚,有二元一次方程

可得:
x=2h?f/2
                  y=h?x
  程序:
  
     #include


     int main(void)

     {

       int h,f,x,y;

       printf("Please input head numbers:
");        //输入提示

       scanf("%d",&h);

       printf("Please input feet numbers:
");        //输入提示

       scanf("%d",&f);

       x=2*h-f/2;                                        //鸡总数

       y=h-x;

       printf("Chicken=%d,Rabbit=%d
",x,y);

       return 0;

     }

  

  运行结果:

  

     Please input head numbers:

     35↙

     Please input feet numbers:

     94↙

     Chicken=23,Rabbit=12

  

  说明:

  (1)源程序文件由一条#include

编译预处理命令和一个main函数组成。

  在C程序中使用了系统提供的标准库函数:输入函数scanf和输出函数printf,就必须在文件的开头使用编译预处理命令,将相应的头文件包含进来。

  (2)main函数主要包括变量的定义部分和语句的执行部分,语句执行部分由输入、处理(运算)和输出部分组成,它们按照指定的顺序排列并执行。

3.1  C语言基本语句

  程序的功能是由程序的执行语句实现的,程序语句的作用是向计算机系统发出操作指令,命令其执行相应的操作。按照语句功能或构成的不同,可将C语言的语句分为以下5类:表达式语句、控制语句、函数调用语句、复合语句和空语句。C语言的每个语句都以分号“;”结束。

  1.表达式语句

  表达式语句由表达式加上分号组成。其一般形式如下:

  

     表达式;

  

  执行表达式语句就是计算表达式的值。例如:

  

     x=3;    //赋值语句,由赋值表达式再加上分号构成的表达式语句

     y*z;    //乘法运算语句,但计算结果不能保留

  

  2.控制语句

  控制语句用于控制程序的流程,实现程序的各种结构方式。C语言有9种控制语句,可分成以下3类。

  (1)选择语句:if语句、switch语句。

  (2)循环语句:do…while语句、while语句、for语句。

  (3)转移语句:break语句、continue语句、goto语句、return语句。

  3.函数调用语句

  函数调用语句由函数名、实际参数加上分号组成。其一般形式如下:

  

     函数名(实际参数表);

  

  执行函数语句就是调用函数并把实际参数赋值给函数定义中的形式参数,然后执行被调函数体中的语句。例如:

  

     printf("C Program");

  

调用输出函数printf(),输出字符串"C Program"。

  4.复合语句

  把多个语句用花括号{}括起来组成的语句称复合语句。在程序中应把复合语句看成是单条语句,而不是多条语句。例如:

  

     {

       i ;

       x=x i;

       printf("%d%d",x,i);

     }

  

是一条复合语句,复合语句内的每条语句都必须以分号结尾,在花括号“}”外不能加分号。

  5.空语句

  只有分号“;”组成的语句称为空语句。在程序中空语句可用作空循环体。例如:

  

     while(getchar()!=\n)

       ;

  

  这里的循环体为空语句,表示循环体什么也不做。

C语言程序设计(第2版) pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:C语言程序设计(第2版)