CODEXINTERN
C Programming Internship — Assignment Pack
This document contains four structured, real-world assignments suitable for a C
programming internship. Each assignment specifies the Question Type, Objective, and a
clear Description with expected features. Students should write clean, modular code, handle
errors gracefully, and include comments explaining the logic.
Task 1: Calculator in C
Question Type: Programming Task
Objective: Implement basic arithmetic operations using functions in C.
Description: Write a C program to create a simple calculator that performs addition,
subtraction, multiplication, division, and modulus. The program should take two numbers
and an operator as input and display the result. Ensure proper error handling (e.g., division
by zero) and input validation.
● Use separate functions for each operation (add, subtract, multiply, divide, modulus).
● Read inputs from the console; show a clear operation menu.
● Handle division-by-zero and invalid operator gracefully with messages.
● Keep running until the user chooses to exit.
Task 2: Student Management System
Question Type: Programming & File Handling
Objective: Understand structures, arrays, and file handling in C.
Description: Develop a C program to manage student records using structures and file
handling. The program should allow adding, displaying, and searching records and must
persist data to a file so that information is available across runs.
● Use a struct with fields: Name, Roll Number, Marks (or an array of marks).
● Menu options: Add Student, Display All, Search by Roll, Save & Exit.
● Store and load data from a binary or text file.
● Validate duplicate roll numbers; ensure input sanitization.
Task 3: Bank Management System
Question Type: Mini Project
Objective: Simulate a real-world application using modular functions and file handling.
Description: Create a simple banking system that supports creating accounts, depositing,
withdrawing, and checking balances. Persist account information using files to simulate
real-world usage.
● Account fields: Name, Account Number (unique), Balance.
● Operations: Create Account, Deposit, Withdraw, Check Balance, List Accounts.
● Prevent overdrafts; validate amounts and account numbers.
● All changes must be saved to a file after each operation.
Task 4: Implementation of Stack using Array and Linked List
Question Type: Data Structure Implementation
Objective: Understand the stack ADT and apply operations via both static (array) and
dynamic (linked list) representations in C.
Description: Implement a Stack data structure in two ways: (1) using an array, and (2) using
a singly linked list. Provide a common interactive menu to perform stack operations and
show the current state after each operation.
● Operations: Push, Pop, Peek/Top, Display.
● Handle overflow/underflow properly and show user-friendly messages.
● For the array-based stack, allow user to set capacity; for the linked-list stack,
demonstrate dynamic growth.
● Write separate modules/files for array and linked-list implementations if possible.
Submission Guidelines
● Submit source code files (.c and .h where applicable) and a README with compilation &
run instructions.
● Follow consistent naming, indentation, and add meaningful comments.
● Include sample input/output screenshots in the README.
● Mention any assumptions, limitations, or known issues.
© CODEXINTERN — For educational use in internship programs.