注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计C/C++及其相关C语言入门经典(第4版)

C语言入门经典(第4版)

C语言入门经典(第4版)

定 价:¥69.80

作 者: (美)Ivor Horton
出版社: 清华大学出版社
丛编项:
标 签: C/Turbo C

购买这本书可以去


ISBN: 9787302170839 出版时间: 2008-04-01 包装: 平装
开本: 185×260 页数: 572 字数:  

内容简介

  本书是编程语言先驱者Ivor Horton的经典之作,是C语言方面最畅销的图书品种之一,在世界范围内广受欢迎,口碑极佳。本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员。本书是编程语言先驱者Ivor Horton的经典之作,是C语言方面最畅销的图书品种之一。本书集综合性、实用性为一体,是学习C语言的优秀入门教材,在世界范围内广受欢迎,口碑极佳。书中除了讲解C程序设计语言,还广泛介绍了作为一名C程序设计人员应该掌握的必要知识,并提供了大量的实用性很强的编程实例。本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员。读者基本不需要具备任何编程知识,即可通过本书从头开始编写自己的C程序。 研读本书,你就可以成为一位称职的C语言程序员。从许多方面来说,C语言都是学习程序设计的理想起步语言。C语言很简洁,因此无须学习大量的语法,就能够开始编写真正的应用程序。除了简明易学外,它还是一种功能非常强大的语言,至今仍被专业人士广泛使用。C语言的强大之处主要体现在,它能够进行各种层次的程序设计,从硬件设备驱动程序和操作系统组件到大规模的应用程序,都能胜任。事实上,任何计算机都支持C语言编译器,因此,当我们学会了C语言,就可以在任何环境下进行程序设计。最后一点,掌握了C语言,就为理解面向对象的C++语言奠定了良好的基础。

作者简介

  杨浩,知名译者,大学讲师,从事机械和计算机方面的教学和研究多年,发表论文数篇,参编和翻译的图书多达20余部,还曾多次获得市部级奖项。近几年一直在跟踪.NET技术的发展,积极从事.NET技术文档和图书的翻译工作。

图书目录

第1章  C语言编程    1
1.1  创建C程序    1
1.1.1  编辑    1
1.1.2  编译    2
1.1.3  链接    2
1.1.4  执行    3
1.2  创建第一个程序    4
1.3  编辑第一个程序    4
1.4  处理错误    5
1.5  剖析一个简单的程序    6
1.5.1  注释    6
1.5.2  预处理指令    7
1.5.3  定义main()函数    7
1.5.4  关键字    8
1.5.5  函数体    8
1.5.6  输出信息    9
1.5.7  参数    10
1.5.8  控制符    10
1.6  用C语言开发程序    12
1.6.1  了解问题    12
1.6.2  详细设计    12
1.6.3  实施    13
1.6.4  测试    13
1.7  函数及模块化编程    13
1.8  常见错误    17
1.9  要点    17
1.10  小结    18
1.11  习题    18
第2章  编程初步    19
2.1  计算机的内存    19
2.2  什么是变量    21
2.3  存储数值的变量    21
2.3.1  整数变量    21
2.3.2  变量的命名    25
2.3.3  变量的使用    26
2.3.4  变量的初始化    28
2.3.5  算术语句    28
2.4  变量与内存    34
2.5  整数变量类型    35
2.5.1  无符号的整数类型    35
2.5.2  使用整数类型    36
2.5.3  指定整数常量    37
2.6  浮点数    38
2.7  浮点数变量    38
2.8  使用浮点数完成除法运算    39
2.8.1  控制小数位数    40
2.8.2  控制输出的字段宽度    41
2.9  较复杂的表达式    41
2.10  定义常量    44
2.10.1  极限值    46
2.10.2  sizeof运算符    49
2.11  选择正确的类型    50
2.12  强制类型转换    53
2.12.1  自动转换类型    53
2.12.2  隐式类型转换的规则    54
2.12.3  赋值语句中的隐式
类型转换    54
2.13  再谈数值数据类型    55
2.13.1  字符类型    56
2.13.2  字符的输入输出    57
2.13.3  宽字符类型    60
2.13.4  枚举    60
2.13.5  存储布尔值的变量    63
2.13.6  复数类型    63
2.14  赋值操作的op=形式    66
2.15  数学函数    68
2.16  设计一个程序    69
2.16.1  问题    69
2.16.2  分析    69
2.16.3  解决方案    71
2.17  小结    75
2.18  练习    76
第3章  条件判断    79
3.1  判断过程    79
3.1.1  算术比较    80
3.1.2  涉及关系运算符的表达式    80
3.1.3  基本的if语句    81
3.1.4  扩展if语句:if-else    84
3.1.5  在if语句中使用代码块    86
3.1.6  嵌套的if语句    87
3.1.7  更多的关系运算符    90
3.1.8  逻辑运算符    93
3.1.9  条件运算符    97
3.1.10  运算符的优先级    99
3.2  多项选择问题    103
3.2.1  给多项选择使用
else-if语句    104
3.2.2  switch语句    104
3.2.3  goto语句    113
3.3  按位运算符    114
3.3.1  按位运算符的op=用法    116
3.3.2  使用按位运算符    117
3.4  设计程序    120
3.4.1  问题    120
3.4.2  分析    120
3.4.3  解决方案    121
3.5  小结    124
3.6  练习    124
第4章  循环    127
4.1  循环    127
4.2  递增和递减运算符    128
4.3  for循环    129
4.4  for循环的一般语法    132
4.5  再谈递增和递减运算符    133
4.5.1  递增运算符    133
4.5.2  递增运算符的前置和
后置形式    134
4.5.3  递减运算符    134
4.6  再论for循环    135
4.6.1  修改for循环变量    137
4.6.2  没有参数的for循环    138
4.6.3  循环内的break语句    138
4.6.4  使用for循环限制输入    141
4.6.5  生成伪随机整数    143
4.6.6  再谈循环控制选项    145
4.6.7  浮点类型的循环控制变量    146
4.7  while循环    147
4.8  嵌套循环    150
4.9  嵌套循环和goto语句    153
4.10  do-while循环    154
4.11  continue语句    157
4.12  设计程序    157
4.12.1  问题    157
4.12.2  分析    157
4.12.3  解决方案    158
4.13  小结    170
4.14  习题    170
第5章  数组    173
5.1  数组简介    173
5.1.1  不用数组的程序    173
5.1.2  什么是数组    175
5.1.3  使用数组    176
5.2  内存    179
5.3  数组和地址    182
5.4  数组的初始化    184
5.5  确定数组的大小    184
5.6  多维数组    185
5.7  多维数组的初始化    187
5.8  设计一个程序    191
5.8.1  问题    192
5.8.2  分析    192
5.8.3  解决方案    193
5.9  小结    200
5.10  习题    200
第6章  字符串和文本的应用    201
6.1  什么是字符串    201
6.2  处理字符串和文本的方法    203
6.3  字符串操作    206
6.3.1  连接字符串    206
6.3.2  字符串数组    208
6.4  字符串库函数    210
6.4.1  使用库函数复制字符串    210
6.4.2  使用库函数确定
字符串的长度    211
6.4.3  使用库函数连接字符串    212
6.4.4  比较字符串    213
6.4.5  搜索字符串    216
6.5  分析和转换字符串    219
6.5.1  转换字符    222
6.5.2  将字符串转换成数值    225
6.7  使用宽字符串    225
6.8  设计一个程序    228
6.8.1  问题    229
6.8.2  分析    229
6.8.3  解决方案    229
6.9  小结    237
6.10  习题    237
第7章  指针    239
7.1  指针初探    239
7.1.1  声明指针    240
7.1.2  通过指针访问值    241
7.1.3  使用指针    244
7.1.4  指向常量的指针    248
7.1.5  常量指针    248
7.1.6  指针的命名    249
7.2  数组和指针    249
7.3  多维数组    252
7.3.1  多维数组和指针    255
7.3.2  访问数组元素    257
7.4  内存的使用    260
7.4.1  动态内存分配:
malloc()函数    260
7.4.2  分配内存时使用sizeof
运算符    261
7.4.3  用calloc()函数分配内存    265
7.4.4  释放动态分配的内存    265
7.4.5  重新分配内存    267
7.5  使用指针处理字符串    268
7.5.1  更多地控制字符串输入    268
7.5.2  使用指针数组    269
7.6  设计程序    280
7.6.1  问题    280
7.6.2  分析    281
7.6.3  解决方案    281
7.7  小结    291
7.8  习题    291
第8章  程序的结构    293
8.1  程序的结构    293
8.1.1  变量的作用域和生存期    294
8.1.2  变量的作用域和函数    297
8.2  函数    297
8.2.1  定义函数    298
8.2.2  return语句    301
8.3  按值传递机制    304
8.4  函数声明    305
8.5  指针用作参数和返回值    307
8.5.1  常量参数    310
8.5.2  从函数中返回指针值    318
8.5.3  在函数中递增指针    322
8.6  小结    322
8.7  习题    323

第9章  函数再探    325
9.1  函数指针    325
9.1.1  声明函数指针    325
9.1.2  通过函数指针调用函数    326
9.1.3  函数指针数组    329
9.1.4  作为变元的函数指针    331
9.2  函数中的变量    334
9.2.1  静态变量:函数
内部的追踪    334
9.2.2  在函数之间共享变量    336
9.3  调用自己的函数:递归    338
9.4  变元个数可变的函数    341
9.4.1  复制va_list    344
9.4.2  长度可变的变元
列表的基本规则    344
9.5  main()函数    345
9.6  结束程序    346
9.7  函数库:头文件    347
9.8  提高性能    348
9.8.1  内联声明函数    348
9.8.2  使用restrict关键字    348
9.9  设计程序    349
9.9.1  问题    349
9.9.2  分析    349
9.9.3  解决方案    351
9.10  小结    367
9.11  习题    368
第10章  基本输入和输出操作    369
10.1  输入和输出流    369
10.2  标准流    370
10.3  键盘输入    371
10.3.1  格式化键盘输入    371
10.3.2  输入格式控制字符串    372
10.3.3  输入格式字符串中
的字符    377
10.3.4  输入浮点数的各种变化    378
10.3.5  读取十六进制和
八进制值    379
10.3.6  用scanf()读取字符    381
10.3.7  scanf()的陷阱    383
10.3.8  从键盘上输入字符串    383
10.3.9  键盘的非格式化输入    384
10.4  屏幕输出    389
10.4.1  使用printf()格式
输出到屏幕    389
10.4.2  转义序列    391
10.4.3  整数输出    392
10.4.4  输出浮点数    394
10.4.5  字符输出    395
10.5  其他输出函数    398
10.5.1  屏幕的非格式化输出    398
10.5.2  数组的格式化输出    399
10.5.3  数组的格式化输入    400
10.6  打印机输出    400
10.7  小结    401
10.8  习题    401
第11章  结构化数据    403
11.1  数据结构:使用struct    403
11.1.1  定义结构类型和
结构变量    405
11.1.2  访问结构成员    405
11.1.3  未命名的结构    408
11.1.4  结构数组    408
11.1.5  表达式中的结构    411
11.1.6  结构指针    411
11.1.7  为结构动态分配内存    412
11.2  再探结构成员    414
11.2.1  将一个结构作为另一个
结构的成员    414
11.2.2  声明结构中的结构    415
11.2.3  将结构指针用作
结构成员    416
11.2.4  双向链表    420
11.2.5  结构中的位字段    423
11.3  结构与函数    424
11.3.1  结构作为函数的变元    424
11.3.2  结构指针作为函数变元    425
11.3.3  作为函数返回值的结构    426
11.3.4  修改程序    430
11.3.5  二叉树    433
11.4  共享内存    442
11.4.1  联合    442
11.4.2  联合指针    444
11.4.3  联合的初始化    444
11.4.4  联合中的结构成员    444
11.5  定义自己的数据类型    446
11.5.1  结构与类型定义
(typedef)功能    446
11.5.2  使用typedef简化代码    447
11.6  设计程序    448
11.6.1  问题    448
11.6.2  分析    448
11.6.3  解决方案    448
11.7  小结    459
11.8  习题    459
第12章  处理文件    461
12.1  文件的概念    461
12.1.1  文件中的位置    462
12.1.2  文件流    462
12.2  文件访问    462
12.2.1  打开文件    463
12.2.2  文件重命名    465
12.2.3  关闭文件    465
12.2.4  删除文件    466
12.3  写入文本文件    466
12.4  读取文本文件    467
12.5  将字符串写入文本文件    470
12.6  从文本文件中读入字符串    471
12.7  格式化文件的输入输出    474
12.7.1  格式化文件输出    474
12.7.2  格式化文件输入    475
12.8  错误处理    477
12.9  再探文本文件操作模式    478
12.10  二进制文件的输入输出    479
12.10.1  指定二进制模式    479
12.10.2  写入二进制文件    480
12.10.3  读取二进制文件    480
12.11  在文件中移动    488
12.11.1  文件定位操作    489
12.11.2  找出我们在文件中
的位置    489
12.11.3  在文件中设定位置    490
12.12  使用临时文件    496
12.12.1  创建临时文件    496
12.12.2  创建唯一的文件名    496
12.13  更新二进制文件    497
12.13.1  修改文件的内容    502
12.13.2  从键盘读取记录    503
12.13.3  将记录写入文件    504
12.13.4  从文件中读取记录    505
12.13.5  写入文件    506
12.13.6  列出文件内容    507
12.13.7  更新已有的文件内容    508
12.14  文件打开模式小结    515
12.15  设计程序    516
12.15.1  问题    516
12.15.2  分析    516
12.15.3  解决方案    516
12.16  小结    522
12.17  习题    522
第13章  支持功能    523
13.1  预处理    523
13.1.1  在程序中包含头文件    523
13.1.2  外部变量及函数    524
13.1.3  替换程序源代码    525
13.1.4  宏替换    526
13.1.5  看起来像函数的宏    526
13.1.6  多行上的预处理指令    528
13.1.7  字符串作为宏参数    528
13.1.8  结合两个宏展开式
的结果    529
13.2  预处理器逻辑指令    530
13.2.1  条件编译    530
13.2.2  测试指定值的指令    531
13.2.3  多项选择    531
13.2.4  标准预处理宏    532
13.3  调试方法    533
13.3.1  集成的调试器    533
13.3.2  调试阶段的预处理器    533
13.3.3  使用assert()宏    537
13.4  其他库函数    539
13.4.1  日期和时间函数库    539
13.4.2  获取日期    543
13.5  小结    549
13.6  习题    549
附录A  计算机中的数学知识    551
附录B  ASCII字符代码定义    559
附录C  C语言中的保留字    565
附录D  输入输出格式指定符    567

本目录推荐