LATEST DISCOUNTS & SALES: PROMOTIONS

Close Notification

Your cart does not contain any items

$37.95

Paperback

Not in-store but you can order this
How long will it take?

QTY:

English
OUP India
12 October 2011
Beginning with the basic concept of programming, the book gives an exhaustive coverage of arrays, strings, functions, pointers, and data structures. Separate chapters on linked lists and stacks, queues, and trees, with their implementation in C, have been provided to simplify the learning of complex concepts. Some advanced features of C such as memory models, command-line arguments, and bitwise operators have also been included. Case studies demonstrating the use of C in solving mathematical as well as real-life problems have also been presented. This edition also highlights C99 features wherever relevant in the text. The book is easy-to-understand and student-friendly with plenty of programs complete with source codes, sample outputs, and test cases. Readers will find this book an excellent companion for self-study owing to its numerous examples, review questions, and programming exercises.

By:   , , ,
Imprint:   OUP India
Edition:   2nd Revised edition
Dimensions:   Height: 280mm,  Width: 218mm,  Spine: 23mm
Weight:   1.058kg
ISBN:   9780198065289
ISBN 10:   0198065280
Pages:   528
Publication Date:  
Audience:   Professional and scholarly ,  Undergraduate
Format:   Paperback
Publisher's Status:   Active
1: Introduction To Programming, Algorithms, And Flowcharts 1.1 Programs and Programming 1.1.1 System Software 1.1.2 Application Software 1.2 Programming Languages 1.2.1 System Programming Languages 1.2.2 Application Programming Languages 1.2.3 Low-level Languages 1.2.4 High-level Languages 1.3 Compiler, Interpreter, Loader, and Linker 1.3.1 Compiling and Executing High-level Language Programs 1.3.2 Linker 1.3.3 Loader 1.3.4 Linking Loader and Linkage Editor 1.4 Program Execution 1.5 Fourth Generation Languages 1.6 Fifth Generation Languages 1.7 Classification of Programming Languages 1.7.1 Procedural Languages 1.7.2 Problem-oriented Languages 1.7.3 Non-procedural Languages 1.8 Structured Programming Concept 1.8.1 Top-Down Analysis 1.8.2 Modular Programming 1.8.3 Structured Code 1.8.4 The Process of Programming 1.9 Algorithms 1.9.1 What is an Algorithm? 1.9.2 Different Ways of Stating Algorithms 1.9.3 The Key Features of an Algorithm and the Step Form 1.9.4 What are Variables? 1.9.5 Subroutines 1.9.6 A Strategy for Designing Algorithms 1.9.7 Tracing an algorithm to Depict Logic 1.9.8 Specification for converting algorithms into programs 2: Basics of C 2.1. Introduction 2.1.1. Why Learn C? 2.1.2 The Future of C 2.2. Standardizations of C Language 2.3. Developing Programs In C 2.4. A Simple C Program 2.5. Parts Of C Program Revisited 2.6. Structure Of A C Program 2.7. Concept Of A Variable 2.8. Datatypes In C 2.9. Program Statement 2.10. Declaration 2.11. How does the computer store things in memory? 2.11.1. How Integers Are Stored? 2.11.2. How Floats And Doubles Are Stored? 2.12. Token 2.12. 1. Identifier 2.12.2. Keywords 2.12.3. Constant 2.12.3. Assignment 2.12.4. Initialization 2.12.5. Operators and Expressions 2.12.6. Expression Evaluation - Precedence and Associativity 2.13. Expressions Revisited 2.14. Lvalues And Rvalues 2.15. Type Conversion In C 2.16 Working With Complex Numbers 3: Input and Output 3.1 Introduction 3.2 Basic Screen and keyboard I/O in C 3.3 Non-formatted Input and Output 3.3.1 Single Character Input and Output 3.3.2 Single Character Input 3.3.3 Single Character Output 3.3.4 Additional Single Character Input and Output Functions 3.3.5 Worked-out Programs with getchar ( ) and putchar ( ) 3.4 Formatted Input and Output Functions 3.4.1 Output Function printf ( ) 3.4.2 Input Function scanf ( ) 3.5 Worked-out Examples using scanf ( ) and printf ( ) 4: Control Statements 4.1 Introduction 4.2 Specifying Test Condition for Selection and Iteration 4.3 Writing Test Expression 4.3.1 Understanding How True and False is Represented in C 4.4 Conditional Execution and Selection 4.4.1 Selection Statements 4.4.2 The Conditional Operator 4.4.3 The switch Statement 4.5 Iteration and Repetitive Execution 4.5.1 while Construct 4.5.2 for Construct 4.5.3 do-while Construct 4.6 Which Loop Should be Used? 4.6.1 Using Sentinel Values 4.6.2 Using Prime Read 4.6.3 Using Counter 4.7 goto Statement 4.8 Special Control Statements 4.9 Nested Loops 5: Arrays and Strings 5.1 Introduction 5.2 One-dimensional Array 5.2.1 Declaration of a One-dimensional Array 5.2.2 Initializing Integer Arrays 5.2.3 Accessing Array Elements 5.2.4 Other Allowed Operations 5.2.5 Internal Representation of Arrays in C 5.2.6 Variable Length Arrays and the C99 changes 5.2.7 Working with a One-dimensional Array 5.3 Strings: One-dimensional Character Arrays 5.3.1 Declaration of a String 5.3.2 String Initialization 5.3.3 Printing Strings 5.3.4 String Input 5.3.5 Character Manipulation in the String 5.3.6 String Manipulation 5.4 Multidimensional Arrays 5.4.1 Declaration of a Two-dimensional Array 5.4.2 Declaration of a Three-dimensional Array 5.4.3 Initialization of Multidimensional Arrays 5.4.4 Unsized Array Initializations 5.4.5 Accessing Multidimensional Arrays 5.5 Arrays of Strings: Two-dimensional Character Array 5.5.1 Initialization 5.5.2 Manipulating String Arrays 6: Functions 6.1 Introduction 6.2 Concept of Function 6.2.1 Why are functions needed? 6.3 Using Functions 6.3.1 Function prototype declaration 6.3.2 Function definition 6.3.3 Function calling 6.4 Call by Value Mechanism 6.5 Working with Functions 6.6 Passing Arrays to Functions 6.7 Scope and Extent 6.7.1 Concept of Global and Local Variables 6.7.2 Scope Rules 6.8 Storage Classes 6.8.1 Storage class specifiers for variables 6.8.2 Storage class specifiers for functions 6.8.3 Linkage 6.9 The Inline Function 6.10 Recursion 6.10.1 What is needed for implementing recursion? 6.10.2 How is Recursion implemented? 6.10.3 Comparing Recursion and Iteration 6.11 Searching and Sorting 6.11.1 Searching Algorithms 6.11.2. Sorting Algorithms 6.12. Analysis of Algorithms 6.12.1 Asymptotic Notation 6.12.2 Efficiency of Linear Search 6.12.3 Binary Search Analysis 6.12.4 Analysis of Bubble Sort 6.12.5 Analysis of Quick Sort 6.12.6 Disadvantages of Complexity Analysis 7: Pointers in C 7.1 Introduction 7.2 Understanding Memory Addresses 7.3 Address Operator (&) 7.4 Pointers 7.4.1 Declaring a Pointer 7.4.2 Initializing Pointers 7.4.3 Indirection Operator and Dereferencing 7.5 void Pointer 7.6 Null Pointer 7.7 Use of Pointers 7.8 Arrays and Pointers 7.8.1 One-dimensional Arrays and Pointers 7.8.2 Passing an Array to a Function 7.8.3 Differences between Array Name and Pointer 7.9 Pointer and String 7.10 Pointer Arithmetic 7.10.1 Assignment 7.10.2 Addition or Subtraction on Integer 7.10.3 Subtraction of Pointers 7.10.4 Comparing Pointers 7.11 Pointers to Pointers 7.12 Array of Pointers 7.13 Pointers to an Array 7.14 Two-dimensional Arrays and Pointers 7.14.1 Passing Two-dimensional Array to a Function 7.15 Three-dimensional Arrays 7.16 Pointers to Functions 7.16.1 Declaration of a Pointer to a Function 7.16.2 Initialization of Function Pointers 7.16.3 Calling a Function using a Function Pointer 7.16.4 Passing a Function to Another Function 7.16.5 How to Return a Function Pointer 7.16.6 Arrays of Function Pointers 7.17 Dynamic Memory Allocation 7.17.1 Dynamic Allocation of Arrays 7.17.2 Freeing Memory 7.17.3 Reallocating Memory Blocks 7.17.4 Implementing Multidimensional Arrays using Pointers 7.18 Offsetting a Pointer 7.19 Memory Leak and Memory Corruption 7.20 Pointer and Const Qualifier 7.20.1 Pointer to Constant 7.20.2 Constant Pointers 7.20.3 Constant Parameters 8: User-defined Data Types and Variables: Structures, Unions, Enumerations, and Bitfields 8.1 Introduction 8.2 Structures 8.2.1 Declaring Structures and Structure Variables 8.2.2 Accessing the Members of a Structure 8.2.3 Initialization of Structures 8.2.4 Copying and Comparing Structures 8.2.5 typedef and its Use in Structure Declarations 8.2.6 Nesting of Structures 8.2.7 Arrays of Structures 8.2.8 Initializing Arrays of Structures 8.2.9 Arrays within the Structure 8.2.10 Structures and Pointers 8.2.11 Structures and Functions 8.3 Union 8.3.1 Declaring a Union and its Members 8.3.2 Accessing and Initializing Members of a Union 8.3.3 Structure Versus Union 8.4 Enumeration Types 8.5 Bitfields 9: Files in C 9.1 Introduction 9.2 Using Files in C 9.2.1 Declaration of a File Pointer 9.2.2 Opening a File 9.2.3 Closing and Flushing Files 9.3 Working with Text Files 9.3.1 Character Input and Output 9.3.2 End of File (EOF) 9.3.3 Detecting the End of a File using feof() Function 9.4 Working with Binary Files 9.5 Direct File Input and Output 9.5.1 Sequential Versus Random File Access 9.6 Files of Records 9.6.1 Working with Files of Records 9.7 Random Access to Files of Records 9.8 Other File Management Functions 9.8.1 Deleting a File 9.8.2 Renaming a File 9.9 Low-Level I/O 10: Linked Lists 10.1 Introduction 10.2 Singly Linked Lists 10.2.1 Insertion of a Node in a Singly Linked List 10.2.2 Deletion of a Node from a Singly Linked List 10.2.3 Sorting a Singly Linked List 10.2.4 Destroying a Singly Linked List 10.2.5 More Complex Operations on Singly Linked Lists 10.3 Circular Linked Lists 10.3.1 Appending a Node 10.3.2 Displaying a Circular Linked List 10.3.3 Inserting a Node after a Specified Node 10.3.4 Inserting a Node before a Particular Node 10.3.5 Deleting a Node 10.3.6 Sorting a Circular Linked List 10.4 Doubly Linked Lists 10.4.1 Operations on Doubly Linked Lists 10.4.2 Advantages/Disadvantages of Doubly Linked Lists 10.5 Introduction to Circular Doubly Linked Lists 10.6 Applications of Linked Lists 10.6.1 Dynamic Storage Management 10.6.2 Garbage Collection and Compaction 10.7 Disadvantages of Linked Lists 10.8 Array versus Linked List Revisited 11: Advanced C 11.1 Introduction 11.2 Bitwise Operator 11.2.1 Bitwise AND 11.2.2 Bitwise OR 11.2.3 Bitwise Exclusive-OR 11.2.4 Bitwise NOT 11.2.5 Bitwise Shift Operator 11.3 Command-line Arguments 11.4 The C Preprocessor 11.4.1 The C Preprocessor Directives 11.4.2 Predefined Identifiers 11.5 Type Qualifier 11.5.1 const Qualifier 11.5.2 volatile Qualifier 11.5.3 restrict Qualifier 11.6 Variable Length Argument List 11.7 Memory Models and Pointers 12: Stacks, Queues, and Trees 12.1. Introduction 12.2. Stack 12.2.1 Implementation Of Stack 12.2.2 Application Of Stack 12.3. Queue 12.3.1 Implementation of a queue 12.3.2 Other variations of queue 12.3.3 Applications of queue 12.4. Tree 12.4.1 Some basic tree terminology 12.4.2 Binary tree 12.4.3 Traversals of a binary tree 12.4.4 Kinds of binary trees 12.4.5 Binary search tree 12.4.6 Application of tree Appendices Index

See Also