Paul Kelly,爱尔兰都柏林工业大学(DIT)的高级讲师Paul Kelly。Kelly 老师长期从事程序设计类课程的教学工作,在程序设计类课程教学方面教学实践经验丰富,在国外已先后出版多本程序设计语言类书籍。苏小红,哈尔滨工业大学计算机学院博士生导师,计算机应用技术专家,研究领域主要是色彩匹配,信息融合,空间计算,人工神经网络,进化算法,计算机图形学,灰色预测,彩色图像处理等。
目錄:
Chapter One Introduction to C(引言)1
1.1 Brief history of C(C 语言简史)1
1.2 Why programmers use C(为什么程序员爱用C语言)1
1.2.1 C is portable1
1.2.2 C is a structured programming language2
1.2.3 C is efficient2
1.2.4 C is flexible2
1.2.5 C is powerful2
1.2.6 C is concise3
1.3 Developing a C program(开发C 程序)3
1.4 Suggestions for learning C programming(学习C 语言程序设计的建议)4
Chapter Two C Data Types(C数据类型)6
2.1 Constants(常量)6
2.2 Variables(变量)6
2.3 Simple output to the screen(简单的屏幕输出)8
2.4 Comments(注释)9
2.5 Data types(数据类型)10
2.5.1 Short integer data types10
2.5.2 Long integer data types11
2.5.3 Unsigned integer data types11
2.5.4 Double floating-point data type11
2.6 Data type sizes(数据类型的大小)11
Programming pitfalls13
Quick syntax reference13
Exercises14
Chapter Three Simple Arithmetic Operations and Expressions(简单的算术运算和表达式)16
3.1 C operators(C 运算符)16
3.1.1 The assignment operator16
3.1.2 Arithmetic operators17
3.1.3 Increment and decrement operators19
3.1.4 Combined operators21
3.2 Operator precedence(运算符优先级)22
3.3 Type conversions and casts(类型转换与强制类型转换)24
Programming pitfalls26
Quick syntax reference27
Exercises27
Chapter Four Keyboard Input and Screen Output(键盘输入和屏幕输出)30
4.1 Simple keyboard input(简单的键盘输入)30
4.2 Using a width and precision specification in printf
[在函数printf 中使用域宽和精度说明]31
4.3 Single-character input and output(单个字符的输入和输出)33
Programming pitfalls35
Quick syntax reference35
Exercises36
Chapter Five Control Statements: if and switch(控制语句:if 和switch)38
5.1 The if statement(if 语句)38
5.2 The if-else statement(if-else 语句)39
5.3 Logical operators(逻辑运算符)41
5.4 Nested if statements(嵌套的if 语句)42
5.5 The switch statement(switch 语句)44
5.6 The conditional operator ?:(条件运算符)46
Programming pitfalls47
Quick syntax reference48
Exercises48
Chapter Six Iterative Control Statements: while, do-while, and for
(循环控制语句:while、do-while和for)51
6.1 The while statement(while 语句)51
6.2 The do-while loop(do-while 循环)52
6.3 The for statement(for 语句)54
6.4 Nested loops(嵌套的循环)56
Programming pitfalls58
Quick syntax reference59
Exercises59
Chapter Seven Arrays(数组)61
7.1 Introduction to arrays(引言)61
7.2 Initialising arrays(数组初始化)66
7.3 Two-dimensional arrays(二维数组)67
7.4 Initialising two-dimensional arrays(二维数组的初始化)68
7.5 Multi-dimensional arrays(多维数组)69
Programming pitfalls70
Quick syntax reference70
Exercises70
Chapter Eight Pointers(指针)73
8.1 Variable addresses(变量的地址)73
8.2 Pointer variables(指针变量)74
8.3 The dereference operator *(解引用运算符*)75
8.4 Why use pointers? (为什么使用指针)76
Programming pitfalls77
Quick syntax reference77
Exercises77
Chapter Nine Pointers and Arrays(指针和数组)79
9.1 Pointers and one-dimensional arrays(指针和一维数组)79
9.2 Pointers and multi-dimensional arrays(指针和多维数组)81
9.3 Dynamic memory allocation(动态内存分配)82
9.3.1 The malloc function82
9.3.2 The calloc function85
9.3.3 The realloc function86
9.3.4 Allocating memory for multi-dimensional arrays87
Programming pitfalls90
Quick syntax reference90
Exercises90
Chapter Ten Strings(字符串)93
10.1 String literals(字符串)93
10.2 Long character strings(长字符串)94
10.3 Strings and arrays(字符串和数组)94
10.4 Displaying a string(显示一个字符串)95
10.5 The puts function[puts 函数]97
10.6 The gets function[gets 函数]98
10.7 Accessing individual characters of a string(访问字符串中的单个字符)99
10.8 Assigning a string to a pointer(用字符串为字符指针赋值)100
10.9 String functions(字符串处理函数)101
10.9.1 Finding the length of a string101
10.9.2 Copying a string102
10.9.3 String concatenation102
10.9.4 Comparing strings102
10.9.5 Other string functions103
10.10 Converting numeric strings to numbers (数值字符串向数值的转换)103
10.11 Arrays of strings(字符串数组)105
Programming pitfalls108
Quick syntax reference109
Exercises109
Chapter Eleven Functions(函数)112
11.1 Introduction(引言)112
11.2 Function arguments(函数参数)114
11.3 Returning a value from a function(从函数返回一个值)116
11.4 Passing arguments by value(按值传参)118
11.5 Passing arguments by reference(按引用传参)119
11.6 Changing arguments in a function(在函数中改变实参的值)120
11.7 Passing a one-dimensional array to a function(向函数传递一维数组)121
11.8 Passing a multi-dimensional array to a function(向函数传递多维数组)123
11.9 Storage classes(变量的存储类型)124
11.9.1 auto124
11.9.2 static125
11.9.3 extern126
11.9.4 register128
11.10 Command line arguments(命令行参数)128
11.11 Mathematical functions(数学函数)130
11.11.1 Some commonly used trigonometric functions130
11.11.2 Other common mathematical functions131
11.11.3 Pseudo-random number functions132
11.11.4 Some time-related functions132
11.12 Recursion133
Programming pitfalls136
Quick syntax reference137
Exercises137
Chapter Twelve Structures(结构体)141
12.1 Defining a structure(定义结构体)141
12.2 Pointers to structures(结构体指针)144
12.3 Initialising a structure variable(结构体变量的初始化)145
12.4 Passing a structure to a function(向函数传递结构体变量)147
12.5 Nested structures(嵌套的结构体)149
12.6 Including a structure template from a file(从文件中引用结构体模板)150
12.7 The typedef statement(typedef 语句)151
12.8 Arrays of structures(结构体数组)152
12.9 Enumerated data types(枚举数据类型)158
Programming pitfalls160
Quick syntax reference161
Exercises162
Chapter Thirteen File Input and Output(文件的输入和输出)165
13.1 Binary and ASCII text files[二进制文件和ASCII(文本)文件]165
13.2 Opening and closing files(文件的打开和关闭)166
13.3 Reading a character from a file using fgetc
[使用函数fgetc 从文件中读字符]168
13.4 Writing a character to a file using fputc
[使用函数fputc 向文件中写字符]170
13.5 Reading a string of characters from a file using fgets
[使用函数fgets 从文件中读字符串]171
13.6 Writing a string of characters to a file using fputs
[使用函数fputs 向文件中写字符串]172
13.7 Formatted input-output to a file using fscanf and fprintf173
[使用函数fscanf 和fprintf 进行文件的格式化读写]173
13.8 The standard files(标准文件)174
13.9 Block input-output using fread and fwrite175
[使用函数fread 和fwrite 进行块读写]175
13.10 Rewinding a file using rewind[使用函数rewind 对文件重定位]177
13.11 Random access of files using fseek [使用函数fseek 随机访问文件]179
13.12 Finding the position in a file using ftell
[使用函数ftell 查找文件的当前位置]184
13.13 Deleting a file using remove[使用函数remove 删除文件]184
Programming pitfalls185
Quick syntax reference186
Exercises187
Chapter Fourteen The C Preprocessor(C编译预处理)190
14.1 Including files(包含文件)190
14.2 Defining macros(定义宏)191
14.3 Macro parameters(带参数的宏)192
14.4 Macros and functions(宏和函数)194
14.5 Some useful macros(一些有用的宏)195
14.6 Conditional directive
內容試閱:
Preface
Learn C through English and Chinese assumes no previous programming knowledge and has been carefully written to teach the fundamentals of programming through the medium of the C programming language. Although the book is primarily intended for use in a first year undergraduate Computer Science course, it will be equally useful to experienced programmers who intend to learn C programming on their own.
The book presents a thorough introduction to programming, using working programs to demonstrate the key features of the C language in a step-by-step logical sequence.
Using their professional teaching experience, the authors have carefully chosen each example program to carefully explain an important programming concept, confidently leading the learner to competence in C and programming in general. Emphasis is placed on key programming concepts and features of programming in C, while keeping explanations as simple and clear as possible.
Key concepts are re-enforced throughout the book by the use of Quick Syntax Reference and Programming Pitfalls sections at the end of each chapter. These are useful reference points for learners while writing their own programs.
Although mainly written in English, this book includes additional explanatory annotations in Chinese. This bi-lingual approach will be appreciated by Chinese learners and will help them focus on the learning task in hand, without being over-burdened by English technical terminology.
Despite C being available on a wide variety of platforms, this book is not specific to any particular machine, compiler, or operating system. All programs are designed to be portable with little or no modification to a wide variety of platforms.
Learn C through English and Chinese
Is a comprehensive introduction to C programming.
Uses practical examples to explain theoretical concepts.
Uses an active learning approach with detailed explanations of working programming examples.
Uses additional explanatory annotations written in Chinese.
Each chapter contains
A Quick syntax reference section.
A Programming pitfalls section.
End-of-chapter exercises, allowing the learner to test and re-enforce their understanding of the programming concepts covered in the chapter.
Is accompanied by a web site containing the example programs used in the book in addition to solutions to selected end-of-chapter exercises.
Typographic conventions used in this book.
The line numbers to the left of the program examples are for reference purposes only and are not part of the C language.
Keyboard input to a program is printed in this typeface.
When a C keyword is first introduce it is in bold and in this typeface.
Program examples, screen output, reference to part of a C statement, a variable, a value in a program or a C keyword are in this typeface.
When a new term is introduced it is in italic type.