TY - BOOK AU - Balagurusamy,E TI - Programming in ANSI C SN - 9780070681828 (pb) U1 - 005.13 PY - 2011/// CY - New Delhi PB - Tata Mcgraw-hill KW - C (Computer program language) N1 - Previous ed. published 1990 under title: Applications programming in ANSI C; Includes index; Preface to the Fifth Edition 1 Overview of C 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 2.1 Introduction 23 2.2 Character Set 23 2.3 C Tokens 25 2.4 Keywords and Identifiers 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 \ 2.14 Overflow and Underflow of Data 46 Review Questions 49 Programming Exercises 51 3 Operators and Expressions 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 Fimctions 74 Review Questions 78 Programming Exercises 81 4 Managing Input and Output Operations 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 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 6 Decision Making and Looping 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 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 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 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 !■ 'i 9.9 Category of Functions 274 9.10 No Arguments and no Return Values 274 9.11 Arguments but no Retxim Values 277 9.12 Arguments with Return Values 280 9.13 No Arguments but Returns a Value 284 9.14 Fxmctions 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 Vzuiables 295 9.20 Multifile Programs 305 Review Questions 311 Programming Exercises 315 10 Structures and Unions 10.1 Introduction 317 10.2 Defining a Structure 317 10.3 Declaring Structure Vgiriables 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 Structmes 331 10.11 Structures and Functions 333 10.12 Unions 335 10.13 Size of Structiires 337 10.14 Bit Fields 337 11 Pointers Review Questions 344 Programming Exercises 348 11.1 Introduction 351 11.2 Understanding Pointers 351 11.3 Accessing the Address of a Variable 354 11.4 Declaring Pointer Vgiriables 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 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 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 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 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 15 Developing a G Program: Some Guidelines 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 ER -