This comprehensive textbook on book on programming with C and data structures is designed to meet the requirements of the first year engineering curriculum of VTU. It aims to fulfil the broad objective of enabling students to learn the basic principles of problem solving through C programming language and develop programming skills.
The concepts of C programming are dealt with in a carefully planned manner, with emphasis on commonly used concepts and topics, supported by numerous short as well as complete working programming examples. A separate chapter on laboratory programs will help students to test their understanding of concepts and apply them in practice. In addition, the book also exposes learners to modular programming, basic concepts of pointers and data structures, and effective utilisation of memory using pointer technology.
Salient features:
Comprehensive coverage of concepts of C programming designed to meet VTU syllabus requirements
Large number of examples (short examples as well as complete working programs) for explaining concepts and enabling rapid development of C programming skills
Comprehensive coverage of data structures
Exposure to modular programming, basic concepts of pointers, data structures and effective utilization of memory using pointer technology
Carefully designed exercises at the end of each chapter including multiple-choice questions
Pseudocode approach; emphasis on problem solving
Lab programs along with algorithms and outputs given separately
Preface
Syllabus and Mapping with Book Contents
1 Introduction to Computers, Programming and the C Language
1.1 Introduction to Computers
1.2 Program Development
1.3 Structured and Modular Programming
1.4 Flowcharts
1.5 Algorithms and Pseudocode
1.6 Introduction to C Programming Language
Exercises
2 Representing Data
2.1 Character Set
2.2 Keywords
2.3 Basic Data Types
2.4 Constants
2.5 Identifiers
2.6 Variables
2.7 Symbolic Constants
2.8 Type Suffixes, Modifiers and Qualifiers
2.9 Constants in Octal and Hexadecimal Form
3 Operators and Expressions
3.1 Operators
3.2 Expressions
3.3 Assignment
3.4 Relational and Equality Operators and Expressions
3.5 Logical Operators and Boolean Expressions
3.6 Additional Operators
4 The C Standard Library
4.1 About the C Standard Library
4.2 Input and Output Facilities
4.3 Mathematical Library
4.4 Character Classification and Conversion
4.5 Utility Functions
5 Conditional Control or Branching
5.1 The if Statement
5.2 Nested if Statements
5.3 The switch Statement
5.4 Conditional Expression (Ternary) Operator (? :)
5.5 goto Statement
6 Looping Control
6.1 The for Loop
6.2 The while Loop
6.3 The do … while Loop
6.4 Intricacies of Loops
6.5 Using if Statements within Loops
6.6 Nested Loops
6.7 Using switch Statements within Loops
6.8 Loop Interruption (break and continue statements)
6.9 goto Statement and Loops
7 Functions
7.1 Functions
7.2 User-defined Functions
7.3 Call by Value Mechanism of Parameter Passing
7.4 Program Structure
7.5 void and Parameter-less Functions
7.6 Recursion
8 Vectors or One-dimensional Arrays
8.1 Introduction
8.2 One-dimensional Arrays
8.3 Arrays as Function Parameters
8.4 const, static and External Arrays
8.5 Searching
8.6 Sorting
9 Matrices and Multidimensional Arrays
9.1 Two-dimensional Arrays or Matrices
9.2 Multidimensional Arrays
9.3 Additional Concepts
10 Strings
10.1 Character Strings
10.2 String I/O (Printing and Reading Strings)
10.3 String Manipulation Functions
10.4 Processing Strings Using Loops
10.5 Writing Functions for String Processing
10.6 Array of Strings
11 Structures
11.1 Structures
11.2 Structures Containing Arrays
11.3 Nested Structures
11.4 Structures and Functions
11.5 Array of Structures
11.6 Type Definition and Structure Data Types
11.7 Unions
12 Files
12.1 File Basics
12.2 File Access Functions
12.3 Character I/O
12.4 Formatted I/O
12.5 Direct I/O
12.6 File Positioning
13 Pointers
13.1 Pointers and Address
13.2 Pointers and Function Arguments (Call by Reference)
13.3 Pointers and Arrays
13.4 Character Pointer and Functions
13.5 Pointer to a Pointer
13.6 Array of Pointers
13.7 Dynamic Memory Management
13.8 Pointer to a Structure
13.9 Complex Declarations Involving Pointers
14 C Preprocessor
14.1 Introduction to the C Preprocessor
14.2 File Inclusion
14.3 Macro Expansion
14.4 Conditional Compilation
14.5 Miscellaneous Concepts
14.6 Debugging Programs using Conditional Compilation
14.7 Writing Multi-File Programs
15 Introduction to Data Structures
15.1 Data Structures
15.2 Stack
15.3 Queue
15.4 Linked List
15.5 Tree
16 Laboratory Programs (Part B: Problem Solving in C)
Appendix A. The ASCII Character Set
Appendix B. Summary of C Operators
Appendix C. Past Question Papers