# C Programs Asked in Interview

For the creation of diverse software applications, systems, and embedded devices, C programming is a popular programming language. Technical interviews that test a candidate's proficiency in C programming are common for aspiring programmers searching for work in the software sector. We'll talk about a few typical C programs that come up in interviews and offer tips on how to handle them in this article.

Let’s discuss the most important and commonly asked c programs in interviews.

## Commonly Asked C Program in Interviews

### The Sum of Digits of a Number

The assignment is to create a program that computes a number's digit sum. The program must take each digit out of the number and add them all up to determine the total sum.

The answer to this query reveals how well a candidate comprehends loops, mathematical operations, and the fundamentals of programming logic.

Let’s understand with an example:

Suppose the number given is 3245. We have to sum all the digits, i.e., 3,2,4,5, So the output should be 14.

Here is the code of this question in C.

Example:

``````#include <stdio.h>
int digitSum(int x) {
int sum = 0;
while (x != 0) {
int digit = x % 10; // Here, the remainder gives the last digit of the number
sum += digit; // Add the remainder to the sum
x /= 10; // Reassign the number by removing the last digit
}
return sum;
}
int main() {
int n = 2345;
int result = digitSum(n);
printf("Total sum of digits of the given number is: %d\n", n, result);
return 0;
}
``````

Output:

``````The output of this code is:
Total sum of digits of the given number is: 14
``````

### Check for Palindrome

A group of characters or digits that reads the same forward and backward is known as a palindrome.The assignment is to create a program that determines whether a given text or number is a palindrome. So, this can be asked for a string as well as for numbers.

Let’s see an example:

Suppose the input string is asdfdsa. After reversing the string, we get asdfdsa. So, this string is a Palindrome string.

Example of a Palindromestring in C.

Example:

``````#include <stdio.h>
#include <string.h>
bool isPalindrome(char *str) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
if (str[start] != str[end]) {
return false;
}
start++;
end--;
}
return true;
}
int main() {
char str[100] = "asdfghgfdsa";
if (isPalindrome(str)) {
printf("%s is a palindrome.\n", str);
} else {
printf("%s is not a palindrome.\n", str);
}
return 0;
}
``````

Output:

`The output of this code is: asdfghgfdsa is a palindrome.`

Now, try to understand and code for the Palindrome number.

Here is an example of a Palindrome number: 34243. It results in true, whereas in the case ofnumber 3245, it says false as it is not a Palindrome number.

Example of a Palindrome number in C.

Example:

``````#include <stdio.h>
#include <stdbool.h>
bool isPalindrome(int num) {
int o_Num = num;
int r_Num = 0;
int digit;
while (num> 0) {
digit = num % 10;
r_Num = r_Num * 10 + digit;
num /= 10;
}
return o_Num == r_Num;
}
int main() {
int x = 1234321;
if (isPalindrome(x)) {
printf("%d is a palindrome number.\n", x);
} else {
printf("The number is not a palindrome number.\n");
}
return 0;
}
``````

Output:

`The output of this code is: 1234321 is a palindrome.`

### Find the Factorial of a Number

In this question, we have to create a computer program that figures out the factorial of a given number. The multiplication of all positive integers from 1 to that given number, called the factorial, is the given number.

Here is an example to understand this question.

Suppose the input is 5. To find the factorial of 5, we have to multiply all the integers from 1 to 5, i.e., 1*2*3*4*5 = 120. So, the factorial of the given number 5 is 120.

Let’s see the code for factorial in C.

Example:

``````#include <stdio.h>
int factorial(int x) {
if (x == 0 || x == 1) {
return 1;
} else {
return x * factorial(x - 1);
}
}
int main() {
int n = 4;
if (n < 0) {
printf("Invalid Input.\n");
} else {
int res = factorial(n);
printf("Factorial of %d = %d\n", n, res);
}
return 0;
}
``````

Output:

`The output of this code is: Factorial of 4 = 24`

### Reverse a String

The task is to create a program that accepts a string as input and prints the reverse of the string.

In order to achieve the reversal, the technique is usually either exchanging characters already in place or iterating through the string's characters in reverse order and adding them to a new string.

Let’s understand the question with an example.

Suppose the given input string is “TajMahal”. We have to reverse the string, i.e., the first string should be placed at last and the last string at first in the output string. So the output of this example is “lahaMjaT”.

Here is the code of this question in C.

Example:

``````#include <stdio.h>
#include <string.h>
void reverseString(char *str) {
int s = 0;
int e = strlen(str) - 1;
while (s < e) {
char temp = str[s];
str[s] = str[e];
str[e] = temp;
s++;
e--;
}
}
int main() {
char str[100] = " TajMahal ";
printf("Original string: %s\n", str);
reverseString(str);
printf("Reversed string: %s\n", str);
return 0;
}
``````

The output of this code is:

Output:

``````Original string: TajMahal
Reversed string: lahaMjaT
``````

### Count a Target Character in a String

In this question, the task is to create a program that counts the instances of a particular character in a given string. It shows how good a candidate is good in his knowledge of strings, loops, and conditional statements.

If you are confused about the question, see this example to understand the question.

Suppose the given input string is “hippopotamus”. The target character is the ‘p’. So, how many times does ‘p’ appears in the given string. ‘p’ appears three times, so the output of this question is 3.

Let’s see the C program code of this question.

Example:

``````#include <stdio.h>
#include <string.h>
int countChar(char *str, char ch) {
int count = 0;
for (int i = 0; i<strlen(str); i++) {
if (str[i] == ch) {
count++; // Increment count if a character match
}
}
return count;
}
int main() {
char given_str[100] = "AYUSH MILAN";
char target_ch = 'A';
int result = countChar(given_str, target_ch);
printf("The number of occurrences of '%c' in the given string is: %d\n", target_ch, result);
return 0;
}
``````

Output:

`The output of this code is: The number of occurrences of 'A' in the given string is: 2`

### Swap two numbers without using a third variable

In this question, the problem statement is to swap the two numbers without using a third variable.

Let’s see the program to swap two numbers without using a third variable.

Example:

``````#include <stdio.h>
int main()
{
int a = 34, b = 23;
a=a+b;
b=a-b;
a=a-b;
printf("\n After swapping: A= %d, B= %d\n",a,b);
return 0;
}
``````

The output of this code is:

Output:

`After swapping: A= 23, B= 34`

### Check Perfect Square

The task is to check whether a number is a perfect square or not. Let’s try to understand the question with an example.

Suppose the input number is 121. 121 is the perfect square of number 11, i.e.,

11 * 11 = 121. So, it will print 121 as a perfect square number.

C program to check perfect square.

Example:

``````#include <stdio.h>
#include <math.h>
int main() {
int n = 144;
int s_root = sqrt(n);
if (s_root * s_root == n) {
printf("%d is a perfect square.\n", n);
} else {
printf("%d is not a perfect square.\n", n);
}
return 0;
}
``````

The output of this code is:

Output:

`144 is a perfect square.`

### Check for Armstrong’s number

A number is said to be an Armstrong number when the sum of its own digits is in such a way that each raised to the power of the number of digits is equal to the given number. In other words, a number with n digits is an Armstrong number if its digits are added together in such a way that each raised to the nth power equals the number itself.

Let’s understand this question with an example.

Suppose the number is 153. Here, the total number of digits in the number is 3. So, 13 + 53 + 33 = 1 + 125 + 27 = 153. So, the given number is an Armstrong number.

C program to check for Armstrong number.

Example:

``````#include <stdio.h>
#include <math.h>
int main() {
int num = 153, c_num, r, res = 0, n = 0;
c_num = num;
// Count the total number of digits
while (c_num != 0) {
c_num /= 10;
++n;
}
c_num = num;
// Find the result
while (c_num != 0) {
r = c_num % 10;
res += pow(r, n);
c_num /= 10;
}
if (res == num) {
printf("%d is an Armstrong number.\n", num);
} else {
printf("%d is not an Armstrong number.\n", num);
}
return 0;
}
``````

The output of this code is:

Output:

`153 is an Armstrong number.`

Find Elements using Binary Search

A binary search is an algorithm that locates a target value's location within a sorted array. It works by periodically splitting in half the area of the array that might contain the target value until it is either found or it is determined that the value is not in the array.

In this method, it divides the area of the array that might contain the target value in half each time, continuing until either the value is found or it is determined that the value is not in the array. Then, it compares the target value with the array's middle element. The position is returned if the target value matches the center element. But if the target value is less than the middle element, then it searches in the lower half of the array. If the target value is higher than the middle element, then it searches in the upper half of the array. Repeat this procedure until the desired value is located or it is determined that the value is not present in the array.

In this question we have to find a target element in a sorted array using binary search.

Here is the code in the C program.

Example:

``````#include <stdio.h>
int binarySearch(int arr[], int low, int high, int target) {
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11};
int size = sizeof(arr) / sizeof(arr[0]);
int target = 7;
int res = binarySearch(arr, 0, size - 1, target);
if (res == -1) {
} else {
printf("Element found at index %d\n", res);
}
return 0;
}
``````

The output of this code is:

Output:

`Element found at index 3`

### Write a Program without using a Semicolon

Can you able to print your name without using the C program? This is also an important question that is asked in interviews.

So, in this question, we learn how to print any message without using a semicolon in the program.

Let’s see the C program code of this question.

Example:

``````#include <stdio.h>
void main() {
if (printf("Hello ")) {}
if (printf("World\n")) {}
}
``````

The output of this program is:

Output:

`Hello World`

### Check a Leap Year

In this question, we have to check a year whether it is a leap year or not.

Here is the C program to check a leap year.

Example:

``````#include <stdio.h>
int main() {
int year = 1960;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
printf("%d is a leap year\n", year);
} else {
printf("%d is not a leap year\n", year);
}
return 0;
}
``````

The output of this code is:

Output:

`1960 is a leap year`

### Converting String into Hexadecimal string

In this program, the input string is converted to a Hexadecimal String. We will translate each character in the string into its corresponding hexadecimal value, add the translated value to a string, and then output the translated string.

Let’s understand this with an example:

Suppose the input String is ayu. Then it will convert a, y, and u to their hexadecimal values, i.e.,61, 79, 75. So the output of this string is 617975.

Here is the code in the C program.

Example:

``````#include <stdio.h>
#include <string.h>
int main()
{
unsigned char strH[200];
int i, j;
char str[100] = "Hello World";
/*set strH with nulls*/
memset(strH, 0, sizeof(strH));
for (i = 0, j = 0; i<strlen(str); i++, j += 2) {
sprintf((char*)strH + j, "%02X", str[i]);
}
strH[j] = '\0'; /*adding NULL in the end*/
printf("Hexadecimal of the string %s is: %s\n", str, strH);
return 0;
}
``````

The output of this code is:

Output:

`Hexadecimal of the string Hello World is: 48656C6C6F20576F726C64`

### Print characters without using format specifier in C

In this question, we have to print the characters without using format specifiers like %d, %c, %f.

We can print the characters by using the ASCII code. The ASCII code of A, B, C, and D is 0x41, 0x42, 0x43, and 0x44, respectively.

Here is the C program to solve this question.

Example:

``````#include <stdio.h>
int main()
{
printf("\x41");
printf("\x42");
printf("\x43");
printf("\x44");
return 0;
}
``````

The output of this code is:

Output:

`ABCD`

## Conclusion

In this article, we have seen various C programs which are important from the interview point of view. Hope these discussed questions will be helpful for your interview.