C PROGRAMMING
Learn C Programming Language to Develop System and Application Programs
C Programming is a high-level, general purpose programming language which is widely used for developing computer programs. The language, having a wide range of features desired by the programmers, is frequently used for system programming such as embedded system applications, implementing operating systems and a variety of different applications. Besides this, its speed, stability and almost global availability makes C a preferred programming language. With C programming language, the programmers can read and write code for various platforms, from microcontrollers to highly complicated scientific systems. This proven, flexible and powerful programming language provides maximum control and efficiency to the programmers.
Course Code : CPROG
Course Duration : 45 days
Course Objective
- Provide knowledge on the need and importance of āCā programming language and problem solving methodologies.
- Nurture programming skills with complete understanding of the fundamentals and basics of C Language.
- Impart comprehensive knowledge about arrays, strings, functions, structures, and pointers.
- Help understand the implementation the memory management concepts.
- Study the complications in file organization and the implementation of file systems.
Delegates will be able to:
- Develop programs using the basic elements such as control statements, arrays and strings.
- Understand the code reusability with the help of user defined functions
- Implement pointers to resolve the memory access issues.
- Understand the uses of preprocessors and different header file directives.
- Create advanced applications with the use of enumerated data types, function pointers and nested structures.
Course Contents
C Basics
- History of C
- Characteristics of C
- C Program Structure
- Variables
Defining Global Variables
Printing Out and Inputting Variables - Constants
- Arithmetic Operations
- Comparison Operations
- Logical Operators
- Order of Precedence
Conditionals
- Conditionals
- The if statement
- The? Operator
- The switch Statement
Looping and Iteration
- The for statement
- The while statement
- The do-while statement
- Break and continue
Arrays and Strings
- Defining, initializing and using arrays
- Single and Multi-dimensional Arrays
- Arrays of Characters and Strings
- Arrays and pointers
- Strings
Functions
- Role of Functions
- Passing arguments to functions
- Returning values from functions
- Recursive functions
- Call back functions
- Implications on Stack
- Pass by value / reference
- Passing Arrays to functions
String Handling :
- Basic String handling functions
- String Searching
- Character Conversions and testing :
- Memory Operations:
Structures and Unions
- Structures
- Nested Structures
- Array of Structures
- Allocation of memory and holes
- Unions
Further Data Types
- Coercion or Type-Casting
- Enumerated Types
- Static Variables
Dynamic Memory Allocation & Dynamic Structures
- Malloc, Sized, and Free
- Calloc and Realloc
Advanced Pointer Topics
- The purpose of pointers
- Defining pointers
- The & and * Operators
- Pointer Assignment
- Pointers with functions
- Pointer Arithmetic
- Advanced pointer types
- Pointers to functions
- Pointers to String
- Pointers and Dynamic memory
- Pointers and Structures
- Common Pointer Pitfalls
Not assigning a pointer to memory address before using it
Illegal indirection
Storage Classes
- Scope
- Internal
- External
- Automatic
- Static
- Scope and extent of parameters
Low Level Operators and Bit Fields
- Bitwise Operators
- Bit Fields
Bit Fields: Practical Example
A note of Caution: Portability
The C Processor
- #define
- #undef
- #include
- #if ā conditional inclusion
- Preprocessor Compiler Control
- Other Preprocessor Commands
Integer Functions, Random Number
- String Conversion :
- Arithmetic Functions
- Random Numbers
- String Conversion
Mathematics:
- Math Functions
- Math Constants
Input and Output (I/O) :
- Reporting Errors
perror()
errno
exit() - Streams
Predefined Streams
Redirection - Basic I/O
Formatted I/O
Printf - Scanf
- Files
Reading and writing files - Sprintf and sscanf
Stream Status Enquiries
Data Structures
- Linked Lists
- Stacks & Queues
- Binary Tree
Sorting & Searching Techniques
- Insertion Sort
- Merge Sort
- Quick Sort
Writing Larger Programs
- Header Files
- Advantages of Using Several Files
- How to Divide a Program between Several Files
- Organization of Data in each file
- The Make Utility
- Make Programming
- Creating a make file
- Make Macros