### Key Topics to Focus On:
1. **Basic Concepts:**
- Understanding of programming in C, its history, and its compilation process.
- Basic data types and their usage.
2. **Control Structures:**
- Logical operators, expressions, and short-circuit evaluation.
- Conditional statements (`if`, `else`, `switch`).
- Iterative statements (loops such as `for`, `while`, `do-while`).
3. **Advanced Data Types:**
- Structures (`struct`) and Enumerations (`enum`).
- Abstract Data Types (ADTs) and their applications.
- Pointers and dynamic memory allocation.
4. **Functions:**
- Function definitions, prototypes, and recursion.
- Passing arguments to functions by value and by reference.
5. **File Handling:**
- Reading from and writing to files using functions like `fwrite`.
6. **Algorithms:**
- Basic algorithms and their properties (asymptotic notation).
- Binary tree traversal and other tree-related algorithms.
- Stack operations and their applications.
### Specific Questions to Practice:
- **Short-Answer Questions:**
- Benefits of using `enum` over `#define`.
- Difference between `if` statement and `switch` statement.
- Uses and applications of stack.
- Explanation of pointers to character strings with examples.
- **Programs:**
- Writing a C program to shut down Windows in Turbo C.
- Writing a C program to convert decimal to binary using bitwise operators.
- Writing a C program to add days to the current date and display the updated date.
- **Conceptual Questions:**
- Differences between `struct` and `enum`.
- Abstract Data Types and examples.
- Properties of algorithms and asymptotic notation.
Some important question from previous years question:--
1. **What is the difference between a declaration and a definition in C?**
2. **Explain the use of the `sizeof` operator with an example.**
3. **Describe the concept of scope and lifetime of variables in C.**
4. **What is the purpose of the `static` keyword in C?**
5. **How do you allocate and deallocate dynamic memory in C?**
### Program Writing Questions:
1. **Write a C program to find the factorial of a number using recursion.**
2. **Write a C program to reverse a string without using library functions.**
3. **Write a C program to implement a simple calculator using switch case.**
4. **Write a C program to merge two sorted arrays into a single sorted array.**
5. **Write a C program to implement a stack using arrays and provide push, pop, and
display operations.**
### Conceptual Questions:
1. **Explain the difference between pass-by-value and pass-by-reference with examples.**
2. **What are the different storage classes in C? Explain each with an example.**
3. **What is a pointer to a pointer in C? Provide a program to demonstrate its usage.**
4. **Explain the concept of recursion with an example of the Fibonacci series.**
5. **What are preprocessor directives in C? Explain the `#include` and `#define`
directives with examples.**
### File Handling Questions:
1. **Write a C program to read a text file and count the number of lines, words, and
characters in it.**
2. **Explain the difference between text mode and binary mode in file handling with
examples.**
3. **Write a C program to copy the contents of one file to another.**
4. **What are the different modes of opening a file in C? Explain each mode with an
example.**
5. **Write a C program to append data to an existing file.**
### Data Structures and Algorithms:
1. **Explain the working of a queue and provide a C program to implement it using arrays.**
2. **Write a C program to perform insertion and deletion operations in a linked list.**
3. **What is a binary search tree? Write a C program to implement insertion in a binary
search tree.**
4. **Describe the bubble sort algorithm and provide a C program to sort an array using
bubble sort.**
5. **What is a circular linked list? Write a C program to create and display a circular linked
list.**
### Detailed Questions:
1. **Describe the different types of linked lists and their applications.**
2. **Explain the concept of dynamic memory allocation and its importance in C
programming.**
3. **What is a doubly linked list? Write a C program to implement insertion and deletion in
a doubly linked list.**
4. **Explain the concept of function pointers and provide an example where function
pointers are useful.**
5. **Discuss the advantages and disadvantages of using recursion in algorithms. Provide
examples to support your discussion.**
Here are some questions based on the key topics I provided:
### Basic Concepts:
1. **Explain the compilation process in C. What are the different stages involved?**
2. **List and describe the basic data types in C. Provide examples of each.**
3. **What are the differences between `int`, `float`, and `double` data types?**
### Control Structures:
1. **Write a C program that uses an `if-else` statement to determine whether a number is
positive, negative, or zero.**
2. **Explain the syntax and use of the `switch` statement in C with an example.**
3. **Describe the use of logical operators in C. How does short-circuit evaluation work with
`&&` and `||` operators?**
### Advanced Data Types:
1. **Explain the difference between `struct` and `enum` in C. Provide examples.**
2. **What is an Abstract Data Type (ADT)? Give an example of an ADT and its
applications.**
3. **Write a C program that demonstrates the use of pointers to access and modify the
value of a variable.**
### Functions:
1. **Write a C program to calculate the factorial of a number using a recursive function.**
2. **What is the difference between function declaration and function definition? Provide
examples.**
3. **Explain how arguments are passed to functions in C. What are the differences
between pass-by-value and pass-by-reference?**
### File Handling:
1. **Write a C program to open a file in read mode, read its contents, and display them on
the screen.**
2. **Explain the differences between `fopen`, `fclose`, `fread`, and `fwrite` functions in
C. Provide examples.**
3. **Write a C program that appends text to an existing file.**
### Algorithms:
1. **Define asymptotic notation and explain the properties of Big O notation.**
2. **Write a C program to perform binary tree traversal (in-order, pre-order, and post-
order).**
3. **Explain the concept of a stack and its applications. Write a C program to implement a
stack using arrays.**
### Specific Questions:
1. **What are the benefits of using an `enum` rather than a `#define` constant in C?**
2. **Write a C program to shut down Windows using Turbo C.**
3. **Describe the difference between the `if` statement and the `switch` statement in C
with examples.**
4. **Explain pointers to character strings in C with an example program.**