CPDS Question Bank
CPDS Question Bank
Question Bank
1. Remembering:
o Define the different data types available in C programming.
o List the various conditional statements used in C.
2. Understanding:
o Explain the difference between single and multi-dimensional arrays.
o Describe how recursion works in C with an example.
3. Applying:
o Write a C program to calculate the factorial of a number using recursive
functions.
o Demonstrate the use of arrays to store and retrieve data for a student database.
4. Analyzing:
o Compare and contrast conditional statements with iterative loops.
o Analyze a given C program to identify how it handles variable operations and
expressions.
5. Evaluating:
o Evaluate the efficiency of recursive functions versus iterative loops in solving
problems.
o Judge the effectiveness of using multi-dimensional arrays over single-dimensional
arrays for matrix manipulation.
6. Creating:
o Design a C program that simulates a basic calculator using functions and
conditional statements.
o Develop a recursive solution for finding the greatest common divisor (GCD) of
two numbers.
1. Remembering:
o Define the purpose of structures and unions in C.
o List the different types of file handling modes in C.
2. Understanding:
o Explain the concept of pointers and how they relate to arrays and functions.
o Illustrate the use of enumerated data types with an example program.
3. Applying:
o Write a C program to store and display student information using structures.
o Implement a function that opens, reads, and writes data to a file in C.
4. Analyzing:
o Compare the use of structures and unions in managing memory.
o Analyze the performance of pointers in accessing array elements versus direct
indexing.
5. Evaluating:
o Evaluate the pros and cons of using pointers to functions in C.
o Judge the importance of preprocessor directives in optimizing C programs.
6. Creating:
o Design a C program that dynamically allocates memory for an array of structures
using pointers.
o Develop a file-handling system in C that stores and retrieves employee records
efficiently.
1. Remembering:
o Define what an Abstract Data Type (ADT) is.
o List the basic operations of a stack.
2. Understanding:
o Explain the difference between a singly linked list and a doubly linked list.
o Describe how queues are implemented using arrays.
3. Applying:
o Write a program to implement stack operations (push, pop, and display).
o Implement a circular linked list to manage the scheduling of tasks.
4. Analyzing:
o Compare array-based and linked list-based implementations of lists.
o Analyze the behavior of a priority queue in managing tasks with different
priorities.
5. Evaluating:
o Evaluate the performance differences between stacks and queues for real-time
applications.
o Judge the suitability of using a circular queue over a standard queue in specific
use cases.
6. Creating:
o Design a data structure that can efficiently switch between stack and queue
operations using a single implementation.
o Develop a task management system using priority queues to handle different
levels of task urgency.
UNIT IV: Non-Linear Data Structures
1. Remembering:
o Define the different types of tree traversals.
o List the types of hashing techniques used in C.
2. Understanding:
o Explain the purpose of binary search trees and their key operations.
o Illustrate the concept of separate chaining in hashing with an example.
3. Applying:
o Write a program to implement a binary search tree and perform insertion and
deletion.
o Implement a hashing function with linear probing in C.
4. Analyzing:
o Compare open addressing and separate chaining as methods of collision
resolution in hashing.
o Analyze how rehashing improves the performance of hash tables when they
become full.
5. Evaluating:
o Evaluate the advantages and disadvantages of using binary trees versus binary
search trees for data management.
o Judge the effectiveness of quadratic probing in reducing collisions in a hash table.
6. Creating:
o Design an efficient hashing system using double hashing for storing and
retrieving large datasets.
o Develop a binary tree structure that can evaluate mathematical expressions.
1. Remembering:
o Define the purpose of sorting algorithms.
o List the differences between linear and binary search.
2. Understanding:
o Explain the working of Quick Sort and how it partitions the data.
o Describe the key differences between merge sort and heap sort.
3. Applying:
o Write a program to implement insertion sort on an array of integers.
o Implement binary search on a sorted list of integers in C.
4. Analyzing:
o Compare the time complexity of Quick Sort and Merge Sort for large datasets.
o Analyze the best and worst-case performance scenarios of linear search.
5. Evaluating:
o Evaluate the efficiency of different sorting algorithms in terms of time and space
complexity.
o Judge the effectiveness of binary search when applied to a large dataset compared
to linear search.
6. Creating:
o Design a hybrid sorting algorithm that combines the advantages of Quick Sort and
Insertion Sort.
o Develop a search engine that uses both linear and binary search algorithms based
on dataset size.