This repository contains my learning and practice work for the C programming language.
It is created to strengthen core programming concepts and build a strong foundation for advanced computer science subjects.
- Understand the fundamentals of C programming
- Practice logical problem-solving using C
- Develop clean and readable code
- Build a strong base for Data Structures and System Programming
- Components of computer systems: Memory, Processor, I/O devices, Storage
- System software concepts: Operating System, Assembler, Compiler, Interpreter, Loader, Linker
- Computational thinking concepts:
- Problem definition and decomposition
- Algorithmic thinking and divide-and-conquer approach
- Flowcharts and pseudo code
- Algorithms to programs
- Algorithm efficiency (time and space complexity)
- Structure of a C program
- Writing, compiling, and executing C programs
- Syntax errors vs logical errors
- Source code, object code, and executable code
- Standard input/output in C
- Fundamental data types, identifiers, variables, and memory locations
- Storage classes
- Arithmetic, relational, logical, bitwise, and assignment operators
- Operator precedence and associativity
- Implicit and explicit type conversion
- Conditional statements:
- if, else, else-if
- switch statements
- Nested conditional logic
- while, do-while, and for loops
- Nested loops and multiple loop variables
- break, continue, and goto statements
- One-dimensional, two-dimensional, and multidimensional arrays
- Array manipulation techniques
- Character arrays and strings
- Standard string functions
- Built-in and user-defined functions
- Passing arrays and parameters to functions
- Call by value and call by reference
- Recursive problem-solving techniques
- Searching techniques:
- Linear search
- Binary search
- Hashing concepts
- Sorting algorithms:
- Bubble sort
- Insertion sort
- Selection sort
- Structures and unions
- Enumerated data types
- Arrays of structures
- Pointer-based concepts for DSA
- Self-referential structures
- Basics of linked lists and node creation
- Pointer declaration and usage
- Dynamic memory allocation:
- malloc
- calloc
- realloc
- free
- File input/output operations
- File handling functions
- Command-line arguments
- C preprocessor directives
- Macros:
- Types of macros
- Functions vs macros
- Language: C
- Compiler: GCC
- Editor: VS Code
- Platform: Windows / Linux
- Clone the repository:
git clone https://github.com/your-username/c-programming-fundamentals.git
2.Navigate to the project folder:
- cd c-programming-fundamentals
3.Compile a C program:
- gcc filename.c -o output
4.Run the program:
- Linux : ./a.exe
- MacOS : ./a.out
- Windows : ./a.exe
- Completed core C programming fundamentals
- Concepts have been implemented through practice programs and mini exercises
- Repository is maintained for revision, optimization, and reference
- Code may be refined and extended with advanced examples when required
📄 Notes
-This repository is intended for learning and practice purposes.
-Code quality and structure improve over time.
-Suggestions and improvements are welcome.
👤 Author
Suryansh Tiwari
B.Tech CSE (AI & ML)
⭐ Acknowledgements
College coursework and lab practice
Online documentation and learning resources