L 3 C 3
Teachers Continuous Evaluation: 40 marks. Term-End Semester Examination: 60 marks.
Course outcomes
- Develop structured C programs using fundamental programming constructs, data types, operators, expressions, control structures, and standard input/output techniques to solve computational problems.
- Design modular C programs using functions, arrays, strings, storage classes, header files, recursion, and standard library functions for implementing searching, sorting, and numerical algorithms.
- Develop efficient C programs employing structures, unions, enumerations, pointers, dynamic memory allocation, file handling, and command-line arguments for solving engineering applications involving complex data.
- Design and implement Abstract Data Types (ADTs) and fundamental data structures using C, including linked lists, stacks, queues, and trees, while applying function pointers, generic programming concepts, and modern C programming practices for robust software development.
Unit I
Structure of a C program, Basic data types (int, char, float, double, bool, fixed-width integers), Declarations and initializations, Constants using const and #define, Operators and expressions (arithmetic, relational, logical, bitwise, assignment, conditional, increment/decrement), Type conversions (implicit, explicit casting), Input/output (printf, scanf, format specifiers), Compound statements (blocks), Conditional statements (if, if-else, else-if, switch), Loops (while, do- while, for, infinite loops, early exit), break, continue, goto, return, Algorithm development including flowcharts, pseudocode representation, Tracing and dry run, structured programming. C89, C99, C11 and C23 extensions and usage
Unit II
Function declaration, definition, and invocation, Argument passing (by value, recursion), Inline functions and macro functions, Storage classes (auto, static, extern, register, thread_local), Scope and lifetime of variables, Header files and modular program design, One- and two-dimensional arrays (declaration, access, memory layout), Bubble sort, selection sort, insertion sort, linear and binary search, String input/output (gets, puts, fgets, fputs), Standard string manipulation (strlen, strcpy, strcat, strcmp, etc.), Arrays of strings, Command-line arguments. Root finding of a positive floating point number.