标题：标准C程序设计
基本信息
作者:特尼博姆 
  出版社：清华大学出版社
页码：543 页
出版日期：2009年
ISBN：9787302197959
装帧：平装
开本：16
丛书名：大学计算机教育国外著名教材系列
外文书名：Programming in ANSI C
定价：49.00
内容简介
《标准C程序设计》是印度各大学使用最广的C语言程序设计教材之一。
本书在前一版的基础上增加介绍了C99的一些新特性，并增加了不少复习题和项目设计题，而且在附录IV中给出了4个完整的应用程序开发示例，使得本书的实际应用性更强。
编辑推荐
《标准C程序设计》第3版融入了过去10年中采用本书的学生和老师的很多反馈意见。本版的特点包括：
l 基于最新的C语言标准。
l 在本书的最后给出了4个完整的应用程序开发示例。
l 扩展讨论了C的指针。
l 每章后面的“谨记”一节给出了很有用的编程提示以及可能容易出错的问题。
l 20多个真实的开发案例，展示了C程序的设计过程。
l 80多个程序设计范例，向读者阐述了良好程序设计的基本原则。
l 还有200多个复习题和150多个项目设计题。
总之，本书的语言简洁易懂，示例非常丰富且具有很强的实际指导意义，是一本很好的C语言程序设计的教材。
目录
第1章 C语言概述
第2章 常量、变量及数据类型
第3章 运算符与表达式
第4章 输入输出操作管理
第5章 判断与分支
第6章 判断与循环
第7章 数组
第8章 字符数组与字符串 
第9章 自定义函数
第10章 结构与联合
第11章 指针
第12章 文件管理
第13章 动态内存分配与链表
第14章 预处理器
第15章 C程序开发指导原则
附录I 位级程序设计
附录II
附录III
附录IV 项目设计
附录V C99的特性
Preface to the Fourth Edition xi
lace to the Fourth Edition xi
1 Overview of C 1
1.1 History of C 1
1.2 Importance of C 3
1.3 Sample Program 1: Printing a Message 3
1.4 Sample Program 2: Adding Two Numbers 6
1.5 Sample Program 3: Interest Calculation 8
1.6 Sample Program 4: Use of Subroutines 10
1.7 Sample Program 5: Use of Math Functions 11
1.8 Basic Structure of C Programs 12
1.9 Programming Style 14
1.10 Executing a 'C' Program 14
1.11 Unix System 16
1.12 Ms-Dos System 18
Review Questions 19
Programming Exercises 20
2 Constants, Variables, and Data Types 23
2.1 Introduction 23
2.2 Character Set 23
2.3 C Tokens 25
2.4 KeyWords and identifiers 25
y words and ldentiners 25
2.5 Constants 26
2.6 Variables 30
2.7 Data Types 31
~'
2.8 Declaration of Variables 34
2.9 Declaration of Storage Class 37
2.10 Assigning Values to Variables 38
2.11 Defining Symbolic Constants 44
2.12 Declaring a Variable as Constant 45
2.13 Declaring a Variable as Volatile 45
Vi Contents
2.14 Overflow and Underflow of Data 46
Review Questions 49
Programming Exercises 51
3 Operators and Expressions 52
3.1 Introduction 52
3.2 Arithmetic Operators 52
3.3 Relational Operators 55
3.4 Logical Operators 57
3.5 Assignment Operators 57
3.6 Increment and Decrement Operators 59
3.7 Conditional Operator 61
3.8 Bitwise Operators 61
3.9 Special Operators 61
3.10 Arithmetic Expressions 63
3.11 Evaluation of Expressions 64
3.12 Precedence of Arithmetic Operators 65
3.13 Some Computational Problems 67
3.14 Type Conversions in Expressions 68
3.15 Operator Precedence and Associativity 72
3.16 Mathematical Functions 74
Review Questions 78
Programming Exercises 81
4 Managing input and Output Operations 84
4.1 Introduction 84
4.2 Reading a Character 85
4.3 Writing a Character 88
4.4 Formatted input 89
4.5 Formatted Output 98
Review Questions 110
Programming Exercises 112
5 Decision Making and Branching 114
5.1 Introduction 114
5.2 Decision Making with iF Statement 114
5.3 Simple iF Statement 115
5.4 The IF.....ELSE Statement 119
5.5 Nesting of IF....ELSE Statements 122
5.6 The ELSE IF Ladder 126
5.7 The Switch Statement 129
5.8 The ?' Operator 133
5.9 The GOTO Statement 136
Review Questions 144
Programming Exercises 148
Contents Vii
6 Decision Making and Looping 152
6.1 Introduction 152
6.2 The WHILE Statement 154
6.3 The DO Statement 157
6.4 The FOR Statement 159
6.5 Jumps in LOOPS 166
6.6 Concise Test Expressions 174
Review Questions 182
Programming Exercises 186
7 Arrays 190
7.1 Introduction 190
7.2 One-dimensional Arrays 192
7.3 Declaration of One-dimensional Arrays 193
7.4 Initialization of One-dimensional Arrays 195
7.5 Two-dimensional Arrays 199
7.6 Initializing Two-dimensional Arrays 204
7.7 Multi-dimensional Arrays 208
7.8 Dynamic Arrays 209
7.9 More about Arrays 209
Review Questions 223
Programming Exercises 225
8 Character Arrays and Strings 229
8.1 Introduction 229
8.2 Declaring and initializing String Variables 230
8.3 Reading Strings from Terminal 231
8.4 Writing Strings to Screen 236
8.5 Arithmetic Operations on Characters 241
8.6 Putting Strings Together 242
8.7 Comparison of Two Strings 244
8.8 String-handling Functions 244
8.9 Table of Strings 250
8.10 Other Features of Strings 252
Review Questions 257
Programming Exercises 259
9 User-defined Functions 262
9.1 Introduction 262
9.2 Need for User-defined Functions 262
9.3 A Multi-function Program 263
9.4 Elements of User-defined Functions 266
9.5 Definition of Functions 267
9.6 Return Values and their Types 269
9.7 Function Calls 270
9.8 Function Declaration 272
Vin Contents
9.9 Category of Functions 274
9.10 No Arguments and no Return Values 274
9.11 Arguments but no Return Values 277
9.12 Arguments with Return Values 280
9.13 No Arguments but Returns a Value 284
9.14 Functions that Return Multiple Values 285
9.15 Nesting of Functions 286
9.16 Recursion 288
9.17 Passing Arrays to Functions 289
9.18 Passing Strings to Functions 294
9.19 The Scope, Visibility and Lifetime of Variables 295
9.20 Multifile Programs 305
Review Questions 311
Programming Exercises 315
10 Structures and Unions 317
10.1 Introduction 317
10.2 Defining a Structure 317
10.3 Declaring Structure Variables 319
10.4 Accessing Structure Members 321
10.5 Structure initialization 322
10.6 Copying and Comparing Structure Variables 324
10.7 Operations on individual Members 326
10.8 Arrays of Structures 327
10.9 Arrays within Structures 329
10.10 Structures within Structures 331
10.11 Structures and Functions 333
10.12 Unions 335
10.13 Size of Structures 337
10.14 Bit Fields 337
Review Questions 344
Programming Exercises 348
11 Pointers 351
11.1 Introduction 351
11.2 Understanding Pointers 351
11.3 Accessing the Address of a Variable 354
11.4 Declaring Pointer Variables 355
11.5 Initialization of Pointer Variables 356
11.6 Accessing a Variable through its Pointer 358
11.7 Chain of Pointers 360
11.8 Pointer Expressions 361
11.9 Pointer increments and Scale Factor 362
11.10 Pointers and Arrays 364
11.11 Pointers and Character Strings 367
11.12 Array of Pointers 369
Contents iX
11.13 Pointers as Function Arguments 370
11.14 Functions Returning Pointers 373
11.15 Pointers to Functions 373
11.16 Pointers and Structures 376
11.17 Troubles with Pointers 379
Review Questions 385
Programming Exercises 388
12 File Management in C 389
12.1 Introduction 389
12.2 Defining and Opening a File 390
12.3 Closing a File 391
12.4 Input/Output Operations on Files 392
12.5 Error Handling During I/O Operations 398
12.6 Random Access to Files 400
12.7 Command Line Arguments 405
Review Questions 408
Programming Exercises 409
13 Dynamic Memory Allocation and Linked Lists 411
13.1 Introduction 411
13.2 Dynamic Memory Allocation 411
13.3 Allocating a Block of Memory: MALLOC 413
13.4 Allocating Multiple Blocks of Memory: CALLOC 415
13.5 Releasing the Used Space: Free 415
13.6 Altering the Size of a Block' REALLOC 416
13.7 Concepts of Linked Lists 417
13.8 Advantages of Linked Lists 420
13.9 Types of Linked Lists 421
13.10 Pointers Revisited 422
13.11 Creating a Linked List 424
13.12 Inserting an item 428
13.13 Deleting an item 431
13.14 Application of Linked Lists 433
Review Questions 440
Programming Exercises 442
14 The Preprocessor 444
14.1 Introduction 444
14.2 Macro Substitution 445
14.3 File inclusion 449
14.4 Compiler Control Directives 450
14.5 ANSI Additions 453
Review Questions 456
Programming Exercises 457
X Contents
15 Developing a C Program: Some Guidelines 458
15.1 Introduction 458
15.2 Program Design 458
15.3 Program Coding 460
15.4 Common Programming Errors 462
15.5 Program Testing and Debugging 469
15.6 Program Efficiency 471
Review Questions 472
Appendix i: Bit-level Programming 474
Appendix II: ASCll Values of Characters 480
Appendix ill: ANSI C Library Functions 482
Appendix IV: Projects 486
Appendix V: C99 Features 537
Bibliography 545
……