1. Introduction to Programming1.1 Introduction to Computer Software 11.2 Classification of Computer Software 21.2.1 System Software 21.2.2 Application Software 51.
3 Programming Languages 51.4 Generation of Programming Languages 61.4.1 First Generation: Machine Language 61.4.2 Second Generation: Assembly Language 71.4.3 Third Generation Programming Languages 71.
4.4 Fourth Generation: Very High-level Languages 81.4.5 Fifth Generation Programming Languages 82. Introduction to C2.1 Introduction 122.1.1 Background 122.
1.2 Characteristics of C 132.1.3 Uses of C 142.2 Structure of a C Program 142.3 Writing the First C Program 152.4 Files Used in a C Program 162.4.
1 Source Code Files 162.4.2 Header files 162.4.3 Object Files 172.4.4 Binary Executable Files 172.5 Compiling and Executing C Programs 172.
6 Using Comments 182.7 C tokens 192.8 Character Set in C 192.9 Keywords 192.10 Identifiers 202.10.1 Rules for Forming Identifier Names 202.11 Basic Data Types in C 202.
11.1 How are Float and Double Stored? 212.12 Variables 222.12.1 Numeric Variables 222.12.2 Character Variables 222.12.
3 Declaring Variables 222.12.4 Initializing Variables 222.13 Constants 232.13.1 Integer Constants 232.13.2 Floating Point Constants 232.
13.3 Character Constants 242.13.4 String Constants 242.13.5 Declaring Constants 242.14 Input/Output Statements in C 242.14.
1 Streams 242.14.2 Formatting input/output 252.14.3 printf() 252.14.4 scanf() 282.14.
5 Examples of printf/scanf 302.14.6 Detecting Errors During Data Input2.15 Operators in C 322.15.1 Arithmetic Operators 322.15.2 Relational Operators 342.
15.3 Equality Operators 352.15.4 Logical Operators 352.15.5 Unary Operators 362.15.6 Conditional Operator 372.
15.7 Bitwise Operators 382.15.8 Assignment Operators 392.15.9 Comma Operator 402.15.10 Sizeof Operator 402.
15.11 Operator Precedence Chart 402.16 Type Conversion and Typecasting 462.16.1 Type Conversion 462.16.2 Typecasting 47Annexure 1 563. Decision Control and Looping Statements3.
1 Introduction to Decision Control Statements 573.2 Conditional Branching Statements 573.2.1 if Statement 573.2.2 IfElse Statement 593.2.3 IfElseIf Statement 613.
2.4 Switch Case 653.3 Iterative Statements 693.3.1 While loop 693.3.2 Do-while Loop 723.3.
3 For Loop 753.4 Nested Loops 783.5 The Break and Continue Statements 873.5.1 break Statement 873.5.2 continue Statement 883.6 goto Statement 89Case Study 1: Chapters 2 and 3 1014.
Functions4.1 Introduction 1054.1.1 Why are functions needed? 1054.2 Using Functions 1064.3 Function Declaration/Function Prototype 1074.4 Function Definition 1084.5 Function Call 1084.
5.1 Points to Remember While Calling Functions 1094.6 Return Statement 1104.6.1 Using Variable Number of Arguments 1104.7 Passing Parameters to Functions 1114.7.1 Call by Value 1114.
7.2 Call by Reference 1124.8 Scope of Variables 1154.8.1 Block Scope 1154.8.2 Function Scope 1164.8.
3 Program Scope 1164.8.4 File Scope 1174.9 Storage Classes 1174.9.1 auto Storage Class 1174.9.2 register Storage Class 1184.
9.3 extern Storage Class 1194.9.4 static Storage Class 1194.9.5 Comparison of Storage Classes 1204.10 Recursive Functions 1204.10.
1 Greatest Common Divisor 1224.10.2 Finding Exponents 1224.10.3 The Fibonacci Series 1234.11 Types of Recursion 1234.11.1 Direct Recursion 1234.
11.2 Indirect Recursion 1234.11.3 Tail Recursion 1234.11.4 Linear and Tree Recursion 1244.12 Tower of Hanoi 1244.13 Recursion Versus Iteration 126Annexure 2 1335.
Arrays5.1 Introduction 1345.2 Declaration of Arrays 1355.3 Accessing the Elements of an Array 1365.3.1 Calculating the Address of Array Elements 1365.3.2 Calculating the Length of an Array 1375.
4 Storing Values in Arrays 1375.4.1 Initializing Arrays during Declaration 1375.4.2 Inputting Values from the Keyboard 1385.4.3 Assigning Values to Individual Elements 1385.5 Operations on Arrays 1385.
5.1 Traversing an Array 1395.5.2 Inserting an Element in an Array 1445.5.3 Deleting an Element from an Array 1465.5.4 Merging Two Arrays 1485.
5.5 Searching for a Value in an Array 1505.6 Passing Arrays to functions 1535.7 Two-dimensional Arrays 1565.7.1 Declaring Two-dimensional Arrays 1565.7.2 Initializing Two-dimensional Arrays 1585.
7.3 Accessing the Elements of Two-dimensional Arrays 1585.8 Operations on Two-dimensional Arrays 1615.9 Passing Two-Dimensional Arrays to Functions 1645.9.1 Passing a Row 1645.9.2 Passing an Entire 2D Array 1655.
10 Multidimensional Arrays 1675.11 Sparse Matrices 1685.11.1 Array Representation of Sparse Matrices 1695.12 Applications of Arrays 170Case Study 2: Chapter 5 1756. Strings6.1 Introduction 1806.1.
1 Reading Strings 1826.1.2 Writing Strings 1826.1.3 Summary of Functions Used to Read and Write Characters 1836.2 Suppressing Input 1846.2.1 Using a Scanset 1846.
3 String Taxonomy 1856.4 Operations on Strings 1866.4.1 Finding the Length of a String 1866.4.2 Converting Characters of a String into Upper Case 1876.4.3 Converting Characters of a String Into Lower Case 1886.
4.4 Concatenating Two Strings to Form a New String 1886.4.5 Appending a String to Another String 1896.4.6 Comparing two strings 1896.4.7 Reversing a String 1906.
4.8 Extracting a Substring from Left 1916.4.9 Extracting a Substring from Right of the String 1926.4.10 Extracting a Substring from the Middle of a String 1926.4.11 Inserting a String in Another String 1936.
4.12 Indexing 1946.4.13 Deleting a String from the Main String 1946.4.14 Replacing a Pattern with Another Pattern in a String 1956.5 Miscellaneous String and Character Functions 1966.5.
1 Character Manipulation Functions 1966.5.2 String Manipulation Functions 1966.6 Arrays of Strings 2027. Pointers7.1 Understanding the Computers Memory 2137.2 Introduction to Pointers 2147.3 Declaring Pointer Variables 2157.
4 Pointer Expressions and Pointer Arithmetic 2177.5 Null Pointers 2217.6 Generic Pointers 2227.7 Passing Arguments to Function Using Pointers 2227.8 Pointers and Arrays 2237.9 Passing an Array to a Function 2277.10 Difference Between Array Name and Pointer 2287.11 Pointers and Strings 2297.
12 Arrays of Pointers 2327.13 Pointers and 2D Arrays 2347.14 Pointers and 3D Arrays 2367.15 Function Pointers 2377.15.1 Initializing a Function Pointer 2377.15.2 Calling a Function Using a Function Pointer 2377.
15.3 Comparing Function Pointers 2387.15.4 Passing a Function Pointer as an Argument to a Function 2387.16 Array of Function Pointers 2387.17 Pointers to Pointers 2397.18 Memory Allocation in C Programs 2407.19 Memory Usage 2407.
20 Dynamic Memory Allocation 2407.20.1 Memory Allocations Process 2417.20.2 Allocating a Block of Memory 2417.20.3 Releasing the Used Space 2427.20.
4 To Alter the Size of Allocated Memory 2427.21 Drawbacks of Pointers 244Annexure 3 253Case Study 3: Chapter 6 and 7 2568. Structure, Union, and Enumerated Data Types8.1 Introduction 2598.1.1 Structure Declaration 2598.1.2 Typedef Declarations 2618.
1.3 Initialization of Structures 2618.1.4 Accessing the Members of a Structure 2628.1.5 Copying and Comparing Structures 2628.2 Nested Structures 2658.3 Arrays of Structures 2668.
4 Structures and Functions 2688.4.1 Passing Individual Members 2688.4.2 Passing the Entire Structure 2688.4.3 Passing Structures Through Pointers 2718.5 Self-referential Structures 2768.
6 Unions 2768.6.1 Declaring a Union 2768.6.2 Accessing a Member of a Union 2778.6.3 Initializing Unions 2778.7 Arrays of Union Variables 2788.
8 Unions Inside Structures 2788.9 Structures Inside Unions 2798.10 Enumerated Data Type 2798.10.1 enum Variables 2808.10.2 Using the Typedef Keyword 2818.10.
3 Assigning Values to Enumerated Variables 2818.10.4 Enumeration Type Conversion 2818.10.5 Comparing Enumerated Types 2818.10.6 Input/Output Operations on Enumerated Types 281Annexure 4 2889. Files9.
1 Introduction to Files 2909.1.1 Streams in C 2909.1.2 Buffer Associated with File Stream 2919.1.3 Types of Files 2919.2 Using Files in C 2929.
2.1 Declaring a File Pointer Variable 2929.2.2 Opening a File 2929.2.3 Closing a File Using fclose () 2949.3 Read Data From Files 2949.3.
1 fscanf () 2949.3.2 fgets () 2959.3.3 fgetc () 2969.3.4 fread () 2969.4 Writing Data to Files 2979.
4.1 fprintf () 2979.4.2 fputs () 2999.4.3 fputc () 2999.4.4 fwrite () 2999.
5 Detecting the End-of-file 3009.6 Error Handling During File Operations 3019.6.1 clearerr() 3019.6.2 perror () 3029.7 Accepting Command Line Arguments 3029.8 Functions for Selecting a Record Randomly 3169.
8.1 fseek () 3169.8.2 ftell () 3189.8.3 rewind () 3189.8.4 fgetpos () 3199.
8.5 fsetpos () 3199.9 remove () 3209.10 Renaming the File 3209.11 Creating a Temporary File 32010. Preprocessor Directives10.1 Introduction 32510.2 Types of Preprocessor Directives 32510.
3 #define 32610.3.1 Object-like Macro 32610.3.2 Function-like Macros 32710.3.3 Nesting of Macros 32810.3.
4 Rules for Using Macros 32810.3.5 Operators Related to Macros 32810.4 #include 32910.5 #undef 33010.6 #line 33010.7 Pragma Directives 33110.8 Conditional Directives 33310.
8.1 #ifdef 33310.8.2 #ifndef 33310.8.3 #if Directive 33410.8.4 #else Directive 33410.
8.5 #elif Directive 33410.8.6 #endif Directive 33510.9 Defined Operator 33510.10 #error directive 33610.11 Predefined Macro Names 336Annexure 5 34011. Linked Lists11.
1 Introduction 34411.2 Linked Lists Versus Arrays 34511.3 Memory Allocation and Deallocation for a Linked List 34611.4 Different Types of Linked Lists 34711.5 Singly Linked Lists 34811.5.1 Traversing a Singly Linked List 34811.5.
2 Searching for a Value in a Linked List 34811.5.3 Inserting a New Node in a Linked List 34911.6 Circular Linked Lists 35711.7 Doubly Linked Lists 35811.8 Circular Doubly Linked Lists 35911.9 Header Linked Lists 35911.10 Applications of Linked Lists 360Case Study 4: Chapter 8, 9, and 11 36612.
Stacks and Queues12.1 Stacks 36912.2 Array Representation of Stacks 37012.3 Operations on Stacks 37012.3.1 Push Operation 37112.3.2 Pop Operation 37112.
3.3 Peep Operation 37112.4 Applications of Stacks 37312.4.1 Evaluation of Algebraic Expressions 37312.5 Queues 38012.6 Array Representation of Queues 3.