Advanced C Programming | Assignments
Advanced C Programming โ Assignments
Advanced C Programming Assignments and Exercises are a set of problem statements, which will ensure you apply the concept you have learned in your classroom. By solving these assignments, you will go through a systematic problem-solving approach which includes requirement understanding, algorithm design, pseudocode creation, dry run, and final execution. As you move from simple to more complex assignments of each module it will slowly start building your self-confidence.
C Assignments
Description:
In number theory, a perfect number is a positive integer that is equal to the sum of its proper positive divisors, that is, the sum of its positive divisors excluding the number itself (also known as its aliquot sum). Equivalently, a perfect number is a number that is half the sum of all of its positive divisors (including itself).
Example:
The first perfect number is 6, because 1, 2, and 3 are its proper positive divisors, and 1 + 2 + 3 = 6. Equivalently, the number 6 is equal to half the sum of all its positive divisors: ( 1 + 2 + 3 + 6 ) / 2 = 6. The next perfect number is 28 = 1 + 2 + 4 + 7 + 14. This is followed by the perfect numbers 496 and 8128
Prerequisites:
- Loops
- Arithmetic operators
Objective:
- To understand the concept of If-else constructs
- if-else construct
Inputs:
A positive integer say โNโ. Where N < 220
Sample Execution / Output:
Test Case 1: Positive Numbers
Test Case 2: Positive Numbers
Test Case 3: Negative Number
Test Case 4: N > 220
Description:
- In mathematics, the Fibonacci numbers or Fibonacci sequence are the numbers in the following integer sequence 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 . . . OR 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 . . .
- By definition, the first two numbers in the Fibonacci sequence are either 1 and 1, or 0 and 1, depending on the chosen starting point of the sequence, and each subsequent number is the sum of the previous two
Prerequisites:
- Loops
- Arithmetic operators
Objective:
- To understand the concept of
- if-else construct
- Continuos looping
Inputs:
- A integer say โNโ
Sample Execution / Output:
Test Case 1: Positive Numbers
Test Case 2: Positive Numbers
Test Case 3: Negative Number
Test Case 4: Negative Number
Description:
When the program is run, the provided string should be printed on the terminal in X formation.
Prerequisites:
- Loops
- Arithmetic operators
Objective:
- To understand the concept of
- if-else construct
- Continuos looping
Inputs:
A integer say โNโ. Where N < 25
Sample Execution / Output:
Test Case 1:
Test Case 2:
Test Case 3:
Description:
AP
In mathematics, an arithmetic progression (AP) or arithmetic sequence is a sequence of numbers such that the difference between the consecutive terms is constant.
For instance, the sequence 5, 7, 9, 11, 13, 15 โฆ is an arithmetic progression with common difference of 2.
GP
In mathematics, a geometric progression, also known as a geometric sequence, is a sequence of numbers where each term after the first is found by multiplying the previous one by a fixed, non-zero number called the common ratio.
For example, the sequence 2, 6, 18, 54, โฆ is a geometric progression with common ratio 3. Similarly 10, 5, 2.5, 1.25, โฆ is a geometric sequence with common ratio 1/2.
HP
In mathematics, a harmonic progression (or harmonic sequence) is a progression formed by taking the reciprocals of an arithmetic progression.
Prerequisites:
- Loops
- Arithmetic operators
- Data Types
Objective:
- To understand the concept of
- if-else construct
- Continuous looping
- Type Casting
Inputs:
Positive integers say โAโ, โRโ and โNโ
where:
- A = First number
- R = Common difference(AP & HP), Common ratio(GP)
- N = number of terms
- A, R and N should be < 210
Sample Execution / Output:
Test Case 1: Positive Inputs
Test Case 2: Negative Input(s)
Test Case 3: Any one value greater than 210
Description:
Suppose, in a week let us assume first day is โSundayโ, then second day will be โMondayโ and so on. If first day is โMondayโ then the second day will be โTuesdayโ and so on.
Prerequisites:
- Loops
- Arithmetic operators
- Switch Case
Objective:
- To understand the concept of
- Switch Case
Inputs:
- Positive integer say โNโ. Where 1 <= โNโ <= 365.
Option to set the first day.
Sample Execution / Output:
Description:
Print the Decimal numbers from 0 to 127 in Octal, Hexadecimal and in ASCII representation.
Display as โNon Printableโ for non-printable characters
Prerequisites:
- Loops
Objective:
- To understand the concept of
- Loops and ASCII characters
Inputs:
None
Sample Execution / Output:
Test Case 1:
Description:
Print the size of basic data types โ int, char, float, double, void
Print the size of the above data types while using different qualifiers โ short, long, unsigned etc.
Prerequisites:
- Sizeof operators
Objective:
- To understand the concept of
- Basic C datatypes and its size
Inputs:
None
Sample Execution / Output:
Test Case 1:
Description:
- Read number n from user.
- Check the zeroth bit(on LSB end) of the number.
- if last bit is 1, number is odd.
- if last bit is zero, number is even.
- Prompt for continue option.
Prerequisites:
- If Else
- Bitwise Operators
Objective:
- To understand the concept of
- Bitwise Operators
Inputs:
Integer N
Sample Execution / Output:
Test Case 1:
Test Case 2:
Description:
- Read number n from user.
- Print the 32 bit binary representation of n and -n.
- And compare both.
- Prompt for continue option.
Prerequisites:
- Bitwise Operators
Objective:
- To understand the concept of
- 2โs Compliment and Bitwise Operators
Inputs:
Integer N
Sample Execution / Output:
Test Case 1:
Description:
The user entered number should identified whether its a odd or a even number. Mention its sign too.
Prerequisites:
- Loops
- Arithmetic Operators
- Nested if-else construct
Objective:
- To understand the concept of
- Nested if-else
Inputs:
Integer N. Where โNโ < 220
Sample Execution / Output:
Test Case 1:
Description:
In mathematics, the sieve of Eratosthenes, one of a number of prime number sieves, is a simple, ancient algorithm for finding all prime numbers up to any given limit. It does so by iteratively marking as composite (i.e., not prime) the multiples of each prime, starting with the multiples of 2.
The sieve of Eratosthenes is one of the most efficient ways to find all of the smaller primes. It is named after Eratosthenes of Cyrene, a Greek mathematician.
Prerequisites:
- Loops
- Arithmetic Operators
- Arrays
Objective:
- To understand the concept of
- If-else constructs
- Arrays
Inputs:
Integer N. Where โNโ < 220
Sample Execution / Output:
Test Case 1: A positive number
Test Case 2: A negative number
Test Case 3: Number greater than 220
Description:
In probability theory and statistics, a median is described as the number separating the higher half of a sample, a population, or a probability distribution, from the lower half. The median of a finite list of numbers can be found by arranging all the numbers from lowest value to highest value and picking the middle one.
Example:
For getting the median of input array { 12, 11, 15, 10, 20 }, first sort the array. We get { 10, 11, 12, 15, 20 } after sorting. Median is the middle element of the sorted array which is 12.
Prerequisites:
- Loops
- Arrays
Objective:
- To understand the concept of
- One-dimensional Arrays
Inputs:
- 2 Integer Array of โNโ elements. Where โNโ < 10
Requirements:
- [ ]
Sample Execution / Output:
Test Case 1: Equal sized arrays
Test Case 2: Unequal sized arrays
Test Case 3: N greater than 10
Description:
c-type library functions check whether c, which must have the value of an unsigned char or EOF, falls into a certain character class according to the current locale.
- isalnum() โ checks for an alphanumeric character; it is equivalent to (isalpha(c) || isdigit(c)).
- isalpha() โ checks for an alphabetic character; in the standard โCโ locale, it is equivalent to (isupper(c) || islower(c)). In some locales, there may be additional characters for which isalpha() is trueโletters which are neither upper case nor lower case.
- isascii() โ checks whether c is a 7-bit unsigned char value that fits into the ASCII character set.
- isblank() โ checks for a blank character; that is, a space or a tab.
Prerequisites:
- Loops
- Functions
Objective:
- To understand the concept of
- Functions
Inputs:
- An ASCII character
Sample Execution / Output:
Test Case 1:
Test Case 2:
Description:
- get_nbits
- If num is 10 and n is 2,
10 -> 0 0 0 0 1 0 1 0
Take 2 bits from LSB end of 10 (1 0) and return the corresponding decimal of that.
So get_nbits(10, 2) function should return 2
- If num is 10 and n is 2,
- replace_nbits
- Read number num from user.
- Read number n from user.
- Read number val from user
- Fetch n number of bits from LSB end of val and replace in the last n bits of num.
- Return new value of num.
If num is 10 and n is 3 and val is 12
10 -> 0 0 0 0 1 0 1 0
โโ
12 -> 0 0 0 0 1 1 0 0
โโ
The function should return 12 (1 1 0 0) - get_nbits_from_pos
- Read number num from user.
- Read number n from user.
- Read number pos from user.
- Fetch n number of bits from given position โposโ (starting from LSB) of num and return the decimal value of it.
If num is 12, n is 3 and pos is 4
7 6 5 4 3 2 1 0
โโโโโโ
12 -> 0 0 0 0 1 1 0 0
โโโโโโ
The function should return 3 (0 1 1). - replace_nbits_from_pos
- Read number num from user.
- Read number n from user.
- Read number pos from user.
- Read number val from user.
- Fetch n number of bits from LSB of val.
- Place those fetched bits from pos positionth bit of num and return new value of num.
If num is 12, n is 3, pos is 4 and val is 20
7 6 5 4 3 2 1 0
20 -> 0 0 0 1 0 1 0 0
โโโโโโ
10 -> 0 0 0 0 1 1 0 0
โโโโโโ
return value-> 0 0 0 1 0 0 0 0
So function should return 16 (1 0 0 0 0). - toggle_bits_from_pos
- Read number num from user
- Read number n from user
- Read number pos from user
- Invert the n number of bits from pos positionth bit of num.
- Return the new value of num
If num is 10, n is 3, and pos is
7 6 5 4 3 2 1 0
โโโโโโ-
10 -> 0 0 0 0 1 0 1 0
โโโโโโ
return value -> 0 0 1 1 0 0 1 0
So the function should return 50 (0 0 1 1 0 0 1 0) - print_bits
- Read number num from user.
- Read number n from user.
- Do error checking
-> If n is greater than integer size, assign n value as sizeof integer.
d. Print n number of bits of num from LSB end.
If num is 10 and n is 12, then print last 12 bits of binary representation of 10.
The output should be -> 0 0 0 0 0 0 0 0 1 0 1 0
Prerequisites:
- Functions
- Bitwise Operators
Objective:
- To understand the concept of
- Bitwise Operators
Inputs:
- An integer N, No of bits B and Position P
Sample Execution / Output:
Test Case 1:
Description:
- Read number n from user.
- Read number i from user.
- Read number a from user(0 < a < 31)
- Do error checking
- Check a is within limit or not.
- Read number b from user(a < b < 31)
- Do error checking
- Check b is within limit or not.
- Call set_nbits_from_pos function by passing i, b โ a + 1, b and n as arguments.
- set_nbits_from_pos(i, b โ a + 1, b, n);
- Print the new value of i.
- Prompt for continue option.
Prerequisites:
- Loops
- Bitwise Operators
- Type Modifiers
- Functions
Objective:
- To understand the concept of
- Functions
- Bitwise Operators
Inputs:
- Integers N, I, A, B
Sample Execution / Output:
Test Case 1:
Description:
- Read a number num from user.
- Read a number n from user.
- Select the option among
- Circular right shift
- Circular left shift
- Pass num and n to the corresponding functions.
- Shift num, n times (either left or right, depends on function).
- While shifting the shifted bits should get replaced at the alternate end.
- For right shifting, the shifted bits should come at left most side.
- For left shifting, the shifted bits should come at right most side.
- Return the new number from the function.
- Print the new number.
Example:
If num is 12, and n is 3, in circular_right_shift fuction
12 -> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
new number -> 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Prerequisites:
- Loops
- Bitwise Operators
- Type Modifiers
- Functions
Objective:
- To understand the concept of
- Functions
- Bitwise Operators
Inputs:
- Integers N, S
Sample Execution / Output:
Test Case 1:
Description:
- In mathematics, the Fibonacci numbers or Fibonacci sequence are the numbers in the following integer sequence
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 . . .
OR
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 . . . - By definition, the first two numbers in the Fibonacci sequence are either 1 and 1, or 0 and 1, depending on the chosen starting point of the sequence, and each subsequent number is the sum of the previous two.
Prerequisites:
- Loops
- Arithmetic Operators
- Recursions
Objective:
- To understand the concept of
- Recursive Functions
Inputs:
- Integers N
Sample Execution / Output:
Test Case 1:
Test Case 2: Positive Numbers
Test Case 3: Negative Number
Test Case 4: Negative Number
- Read number n from user.
- Validate the given number
- Call main function from main for calculating factorial.
- Prompt for continue option.
Prerequisites:
- Storage Classes
- Recursions
Objective:
- To understand the concept of
- Recursion and static keyword
Inputs:
- Integers N
Sample Execution / Output:
Test Case 1:
Test Case 2:
Test Case 3:
Description:
- Read_int function should exactly behave like scanf(โ%dโ, &i)
- Implement read_int fuction without using scanf function.
Prerequisites:
- Functions
- Pointers
Objective:
- To understand the concept of
- Functions and Pointers
Inputs:
- An integer
Sample Execution / Output:
Test Case 1:
Description:
- Read the choice from user.
- float or double
- Read the fractional number from user.
- Print the bits of the entered number.
Prerequisites:
- Loops
- Bitwise Operators
- Type Casting
- Functions
- Pointers
Objective:
- To understand the concept of
- Type Casting
- Functions
- Type casting on Pointers
- IEEE Standard representation
Inputs:
- A real number
Sample Execution / Output:
Test Case 1:
Description:
In recreational mathematics, a magic square is an arrangement of distinct numbers (i.e. each number is used once), usually integers, in a square grid, where the numbers in each row, and in each column, and the numbers in the main and secondary diagonals, all add up to the same number
A magic square has the same number of rows as it has columns, and in conventional math notation, โnโ stands for the number of rows (and columns) it has.
Thus, a magic square always contains n2 numbers, and its size (the number of rows [and columns] it has) is described as being โof order nโ.
Example: if n = 3, the magic square
6
8 | 1 | |
3 | 7 | 5 |
4 | 9 | 2 |
- Read an odd number n from user.
- Do error checking.
- Check the number is odd or not.
- If not, continue step a.
- Create an n X n matrix.
- Insert 1 to (n * n) numbers into matrix.
- Arrange the numbers in such a way that, adding the numbers in any direction, either row wise column wise or diagonal wise, should result in same answer.
Prerequisites:
- Loops
- Arrays
- Pointers
Objective:
- To understand the concept of
- 2D Arrays
- Pointers on 2d arrays
Inputs:
- An integer N
Sample Execution / Output:
Test Case 1:
Description:
- Read number a from user.
- Read number b from user.
- Call a swap function by passing address of both a & b.
- After swap function, a and b values should get swapped.
- Prompt for continue option.
Prerequisites:
- Functions
- Pointers
Objective:
- To understand the concept of
- 2โs Compliment and Bitwise Operators
Inputs:
- 2 Integers N1 and N2
Sample Execution / Output:
Test Case 1:
Description:
- Pass a number โNโ from command line.
- If no numbers are entered through command line, read from user.
- Read the type of increment from user like menu drive.
- post increment
- pre increment
- Call the corresponding functions
- Return values of the functions should exactly behave as ++num and num++ operations
- We should use ++ operator in this program.
- With the help of bitwise operator we increment the given value.
Example: โ
If num is 5,i = pre_increment(&num);
printf(โi = %d\n num = %d\nโ, i, num);should print,
i = 6, num = 6If num is 5,
i = post_increment(&num);
printf(โi = %d\n num = %d\nโ, i, num);should print,
i = 5, num = 6
Prerequisites:
- Bitwise operators
- pointers
Objective:
- To understand the concept of
- To understand the concept of pre and post increment using bitwise
Inputs:
- Integer N
Sample Execution / Output:
Test Case 1:
Description:
- Ist method
- Read number n from user.
- Read n numbers from user.
- Calculate average of entered numbers and print it on the screen.
- IInd method
- Pass the numbers (for which average to be calculated) through command line.
- Collect them in main
- Calculate the average of them.
Hint : Use atoi function to convert string to integers.
- IIIrd method
- Pass the numbers (for which average to be calculated) through environment variables.
- Collect them in main
- Calculate the average of them.
Hint :
Use atoi function to convert string to integers.
Use strtok to split the strings.Example : From shell export a variable which contain numbers.
export arr=โ1 2 3 4โณIn main program receive this by third argument of main. Extract numbers from string and calculate their average.
Prerequisites:
- Main Prototypes
- Arrays and Pointers
Objective:
- To understand the concept of
- Arrays and pointers
Inputs:
- Array on N integers, N
Sample Execution / Output:
Test Case 1:
Test Case 2:
Test Case 3:
Description:
- int getword(char *word)
- Create a function named getword.
- Function should read a string from user and store them in the char address.
- Function should return the length of word.
- int atoi(const char *s)
- The function will recieve a string and covert the number stored in the string into exact integer number.
- Return the number.
- int itoa(int n, char *s)
- Convert integer n into a string and store the string in s.
- Return the length of string from the function.
Prerequisites:
- Functions
- Pointers
Objective:
- To understand the concept of
- Functions and Pointers
Inputs:
- String, String and Integer
Sample Execution / Output:
Test Case 1:
Test Case 2:
Test Case 3:
Test Case 4:
Test Case 5:
Test Case 6:
Description:
- Read string1 and string2 from user
- Provide the Display menu
- string compare
- string case compare
- Call the corresponding function for example :- my_strcmp (string1, string2)
- Should return integer number which indicates both string are equal or not
Prerequisites:
- Strings
- Pointers
Objective:
- To understand the concept of
- Strings functions
Inputs:
- 2 Strings
Sample Execution / Output:
Test Case 1:
Test Case 2:
Description:
- Read string1 and string2 from user.
- Call my_strtok (string1, string2);
- Should treat string2 as delimitter in string1 and should return 1st field.
- If you call again my_strtok (NULL, string2), it should return second field in string1 treating string2 as delimitter.
Prerequisites:
- Storage Classes
- Strings
- Pointers
Objective:
- To understand the concept of
- Strings functions
Inputs:
- 2 Strings
Sample Execution / Output:
Test Case 1:
Description:
- Check the memory assigning order of variables for checking whether little endian or big endian machine
Little Endian:
โโโโโ
Say int i = 10; gets stored in memory at1000
1001
1002
1003where 1000 contains LSB of i and 1003 contains MSB of ichar *ptr = &i; the ptr will now contain 1000
Big Endian:
โโโโ
Say int i = 10; gets stored in memory at1000
1001
1002
1003where 1000 contains MSB of i and 1003 contains LSB of i
char *ptr = &i; the ptr will now contain 1000
Fetch the values pointed by ptr for knowing whether they stored as little endian or big endian format.
Prerequisites:
- Pointers
Objective:
- To understand the concept of
- Strings functions
Inputs:
- 2 Strings
Sample Execution / Output:
Test Case 1:
Description:
- In probability theory and statistics, variance measures how far a set of numbers is spread out. A variance of zero indicates that all the values are identical. Variance is always non-negative: a small variance indicates that the data points tend to be very close to the mean (expected value) and hence to each other, while a high variance indicates that the data points are very spread out around the mean and from each other
Example:
x(input) | D = X โ Mean | D2 |
9 | -11 | 121 |
12 | -8 | 64 |
15 | -5 | 25 |
18 | -2 | 4 |
20 | 0 | 0 |
22 | 2 | 4 |
23 | 3 | 9 |
24 | 4 | 16 |
26 | 6 | 36 |
31 | 11 | 121 |
Sum = 200 | Sum=400 | |
Mean = (sum of x) / size | ||
where : size = Number of items in the input | ||
Formula to calulate the variance: | ||
sigma = (sum of D2) / size |
Prerequisites:
- Functions
- Pointers
- Static Arrays
Objective:
- To understand the concept of
- Functions and Pointers
- Static Functions
Inputs:
- Array of N Integers, N
Sample Execution / Output:
Test Case 1:
Description:
- Run a loop for printing the float elements in sorted order.
- Read the float elements from user and store them into an array.
Prerequisites:
- Functions
- Arrays
- Pointers
Objective:
- To understand the concept of
- Functions, Arrays, and Pointers
Inputs:
- Array on N floats, N
Sample Execution / Output:
Test Case 1:
Description:
- Read the N name from the user
- Sort it in alphabetical order
Prerequisites:
- Functions
- Static / Dynamic Arrays
- Pointers
Objective:
- To understand the concept of
- Functions, Arrays, and Pointers
Inputs:
- Array on N names, and Pointers
Sample Execution / Output:
Test Case 1:
Description:
- Input string:
Pointers are sharp knives. - Output String:
Pointers are sharp knives.
Prerequisites:
- Functions
- Pointers
- Dynamic Arrays
Objective:
- To understand the concept of
- Functions, Arrays, and Pointers
Inputs:
- String with multiple spaces between words
Sample Execution / Output:
Test Case 1:
Description:
- char *my_strstr(const char *haystack, const char *needle);
- The my_strstr() function finds the first occurrence of the substring needle in the string haystack.
- The terminating null bytes (โ\0โ) are not compared.
- Return Value:
- These functions return a pointer to the beginning of the substring, or NULL if the substring is not found.
Prerequisites:
- Functions
- Pointers
- Arrays
Objective:
- To understand the concept of
- Functions, Arrays, and Pointers
Inputs:
- String (Haystack) and Substring (needle)
Sample Execution / Output:
Test Case 1:
Description:
- Read a string from user.
- Without modifying that string, print it in reverse order.
- Implement in both recursive and non-recursive methods.
Prerequisites:
- Recursion
Objective:
- To understand the concept of
- Recursion
Inputs:
- String
Sample Execution / Output:
Test Case 1:
Description:
- Read two strings s1 and s2 from user.
- Remove the characters in s1 that matches with s2.
- Input string:
- string 1: Dennis Ritchie
- string 2: Linux
- Output String:
- After squeeze s1: Des Rtche
Prerequisites:
- Functions
- Pointers
- Arrays
Objective:
- To understand the concept of
- Functions
- Pointers & strings
- Arrays
Inputs:
- String 1 and String 2
Sample Execution / Output:
Test Case 1:
Description:
- Enter the number of elements to store in the array through the command line
- Read the type of data to store
- Enter the elements into the array.
- Pass them to calc mean function
- Should return mean value.
Prerequisites:
- Functions
- Void Pointers
- Arrays
Objective:
- To understand the concept of
- Functions
- Void Pointers
- Arrays
Inputs:
- Array of N elements, No of elements N, Size Option T,
Sample Execution / Output:
Test Case 1:
Description:
- Read characters from user till EOF
- If EOF received, print the character count, word count, and line count.
Prerequisites:
- Non formated function like getchar()
Objective:
- To understand the concept of
- Standard output
Inputs:
- A string with Ctrl-D
Sample Execution / Output:
Test Case 1:
Description:
- Take two file names through command line
- Do error checking.
- Check command line args
- Check file open status
- Open first file in read mode
- Open second file in write mode
- Copy first file contents into second file.
Prerequisites:
- file operation functions like fopen, fgets etc
Objective:
- To understand the concept of
- File handling in C
Inputs:
- Source File and a Destination File
Sample Execution / Output:
Test Case 1:
Test Case 2:
- Take an existing filename from user through command line
- Do error checking.
- If user passed any filename through command line or not.
- If passed, check the fopen success or not.
- Read Characters from file till EOF.
- If EOF reached, print the word count.
Prerequisites:
- file operation functions like fopen, fgets etc
Objective:
- To understand the concept of
- File handling in C
Inputs:
- Source File
Sample Execution / Output:
Test Case 1:
Test Case 2:
Description:
- Receive file names through command line.
- Do error checking.
- cmd line args
- fopen status
- if cmd line args are ./a.out
- then print stdin buffer contents into stdout buffer.
- If cmd line args are ./a.out file1 file2
- then print file1 and file2 contents to stdout.
- If cmd line args are ./a.out file1 file2 file3
- then print file1 and file2 contents into file3.
- Use a common function for doing file copy.
Prerequisites:
- file operation functions like fopen, fgets etc
Objective:
- To understand the concept of
- File handling in C
Inputs:
- Source File, Destination File
Sample Execution / Output:
Test Case 1:
Test Case 2:
Test Case 3:
Description:
- Treat address of x and address of x + 1as characters address.
- Both addresses difference will be sizeof x
Prerequisites:
- Macros
- Pointers
Objective:
- To understand the concept of
- Macros in preprocessing
Inputs:
- None
Sample Execution / Output:
Test Case 1:
Description:
- Implement swap concept with the help of macro
- The type of arguments to swap will be passed as t
- swap (int, x, y) where x and y are of types int.
Prerequisites:
- Macros
Objective:
- To understand the concept of
- Macros in preprocessing
Inputs:
- Integers N1 and N2
Sample Execution / Output:
Test Case 1:
Description:
- Allocate 8 consecutive bytes in memory
- Provide a display menu
- Add element
- Remove element
- Display element
- Exit from the program
- It should allow to add elements of different data types which data type size is less than or equal to 8
Prerequisites:
- Pointers
- Dynamic memory allocation
Objective:
- To understand the concept of
- Dynamic memory allocation
Inputs:
- Integers N1 and N2
Sample Execution / Output:
Test Case 1:
Description:
- Enter the length of array from command line.
- Read the type of data to search
- Initialise the array of mentioned type with variables read from user.
- Read the key element to search
- Sort the element in ascending order.
- Return the position of element in the array.
Prerequisites:
- Void pointer concepts
- Function pointer concepts
- Functions and arrays
Objective:
- To understand the concept of
- Function and void pointers
Inputs:
- Array on N elements, N, Data type T, Element to be searched K
Sample Execution / Output:
Test Case 1:
Description:
- int my_scanf (const char *format, โฆ);
- The scanf() function reads input from stdin (the standard input stream).
Return value
- Upon successful return, these function return the number of input item successfully matched and assigned
Prerequisites:
- Variadic Functions
- Pointers
Objective:
- To understand the concept of
- Variadic Function
Inputs:
- As passed to standard scanf() function
Sample Execution / Output:
Test Case 1:
Description:
- Tower of hanoi consists of three rods, and a number of disks of different sizes which can slide onto any rod. The puzzle starts with the disks in a neat stack in ascending order of size on one rod, the smallest at the top, thus making a conical shape.
- The objective of the puzzle is to move the entire stack to another rod, obeying the following simple rules :
- Only one disk can be moved at a time.
- Each move consists of taking the upper disk from one of the stacks and placing it on top of another stack (i.e) a disk can only be moved if it is the uppermost disk on a stack.
- No disk may be placed on top of a smaller disk.
Prerequisites:
- Recursions
Objective:
- To understand the concept of
- Recursions
Inputs:
- Number of disks N
Sample Execution / Output:
Test Case 1:
Description:
- Suppose k = 3 (say taking 3 distinct characters ).
- Let 3 distinct characters be a , b, c.
- Suppose โnโ is the string length to be formed using โkโ distinct words.
- Let n be 6
- The string should be formed in such a way that there should not be any consecutive repetitions of the strings.
Prerequisites:
- Strings
- Pointers
- Arrays
Objective:
- To understand the concept of
- String manupulations
Inputs:
- No of character C, Length of the string N and C disctint characters
Sample Execution / Output:
Test Case 1: