C PROGRAMMING
MULTIPLE CHOICE QUESTION
OLD QUESTION BANK
SAMPLE QUESTION 2080 AND SOLUTION

1. WAP to find square of a number using function.

#include <stdio.h>

double square(double num) {
  return (num * num);
}
int main() {
  int num;
  double n;
  printf("\n\n Function : find square of any number :\n");
  printf("------------------------------------------------\n");

  printf("Input any number for square : ");
  scanf("%d", & num);
  n = square(num);
  printf("The square of %d is : %.2f\n", num, n);
  return 0;
}

2. Write a C program to input two or more numbers from user and find maximum and minimum of the given numbers using functions. 

/* 
 * C program to find maximum and minimum between two numbers using functions
 */

#include <stdio.h>

/* Function declarations */
int max(int num1, int num2);
int min(int num1, int num2);

int main() {
  int num1, num2, maximum, minimum;

  /* Input two numbers from user */
  printf("Enter any two numbers: ");
  scanf("%d%d", & num1, & num2);

  maximum = max(num1, num2); // Call maximum function
  minimum = min(num1, num2); // Call minimum function

  printf("\nMaximum = %d\n", maximum);
  printf("Minimum = %d", minimum);

  return 0;
}

/**
 * Find maximum between two numbers.
 */
int max(int num1, int num2) {
  return (num1 > num2) ? num1 : num2;
}

/**
 * Find minimum between two numbers.
 */
int min(int num1, int num2) {
  return (num1 > num2) ? num2 : num1;
}

3. Write a C program to check whether a number is armstrong or not using functions.

// Armstrong Number in C Using Function
#include<stdio.h>

int armstrong(int orgnum) {
  int remainder = 0;
  int sum = 0;
  int power = 0;

  int num = orgnum;
  while (num != 0) {
    // remainder contains the last digit
    remainder = num % 10;
    power = remainder * remainder * remainder;
    sum = sum + power;

    num = num / 10;
  }
  if (sum == orgnum)
    return 0;
  else
    return 1;
}

int main() {
  int num;

  // getting input from user
  // and store in a variable
  printf("Enter a number: ");
  scanf("%d", & num);

  if (armstrong(num) == 0) {
    printf("%d is an Armstrong Number.", num);
  } else {
    printf("%d is not an Armstrong Number.", num);
  }
  return 0;
}

4. Write a C program to check whether a number is prime, armstrong, perfect number or not using functions.

/**
 * C program to check prime, armstrong and perfect numbers using functions
 */

#include <stdio.h>

#include <math.h>


/* Function declarations */
int isPrime(int num);
int isArmstrong(int num);
int isPerfect(int num);

int main() {
  int num;

  printf("Enter any number: ");
  scanf("%d", & num);

  // Call isPrime() functions
  if (isPrime(num)) {
    printf("%d is Prime number.\n", num);
  } else {
    printf("%d is not Prime number.\n", num);
  }

  // Call isArmstrong() function
  if (isArmstrong(num)) {
    printf("%d is Armstrong number.\n", num);
  } else {
    printf("%d is not Armstrong number.\n", num);
  }

  // Call isPerfect() function
  if (isPerfect(num)) {
    printf("%d is Perfect number.\n", num);
  } else {
    printf("%d is not Perfect number.\n", num);
  }

  return 0;
}

/**
 * Check whether a number is prime or not. 
 * Returns 1 if the number is prime otherwise 0.
 */
int isPrime(int num) {
  int i;

  for (i = 2; i <= num / 2; i++) {
    /*  
     * If the number is divisible by any number  
     * other than 1 and self then it is not prime 
     */
    if (num % i == 0) {
      return 0;
    }
  }

  return 1;
}

/**
 * Check whether a number is Armstrong number or not. 
 * Returns 1 if the number is Armstrong number otherwise 0.
 */
int isArmstrong(int num) {
  int lastDigit, sum, originalNum, digits;
  sum = 0;

  originalNum = num;

  /* Find total digits in num */
  digits = (int) log10(num) + 1;

  /*
   * Calculate sum of power of digits
   */
  while (num > 0) {
    // Extract the last digit
    lastDigit = num % 10;

    // Compute sum of power of last digit
    sum = sum + round(pow(lastDigit, digits));

    // Remove the last digit
    num = num / 10;
  }

  return (originalNum == sum);
}

/**
 * Check whether the number is perfect number or not. 
 * Returns 1 if the number is perfect otherwise 0.
 */
int isPerfect(int num) {
  int i, sum, n;
  sum = 0;
  n = num;

  for (i = 1; i < n; i++) {
    /* If i is a divisor of num */
    if (n % i == 0) {
      sum += i;
    }
  }

  return (num == sum);
}

5. Write a function in C programming to find prime numbers using function. How to find all prime numbers between two intervals using functions.

/**
 * C program to list all prime number between an interval using function.
 */

#include <stdio.h>


/* Function declarations */
int isPrime(int num);
void printPrimes(int lowerLimit, int upperLimit);

int main() {
  int lowerLimit, upperLimit;

  printf("Enter the lower and upper limit to list primes: ");
  scanf("%d%d", & lowerLimit, & upperLimit);

  // Call function to print all primes between the given range.
  printPrimes(lowerLimit, upperLimit);

  return 0;
}

/**
 * Print all prime numbers between lower limit and upper limit. 
 */
void printPrimes(int lowerLimit, int upperLimit) {
  printf("All prime number between %d to %d are: ", lowerLimit, upperLimit);

  while (lowerLimit <= upperLimit) {
    // Print if current number is prime.
    if (isPrime(lowerLimit)) {
      printf("%d, ", lowerLimit);
    }

    lowerLimit++;
  }
}

/** 
 * Check whether a number is prime or not. 
 * Returns 1 if the number is prime otherwise 0. 
 */
int isPrime(int num) {
  int i;

  for (i = 2; i <= num / 2; i++) {
    /*   
     * If the number is divisible by any number   
     * other than 1 and self then it is not prime  
     */
    if (num % i == 0) {
      return 0;
    }
  }

  return 1;
}

6. Write a C program to print all strong numbers between a given interval in C programming. 

/**
 * C program to print strong numbers in a given interval using functions
 */

#include <stdio.h>

/* Function declaration */
long long fact(int num);
void printStrongNumbers(int start, int end);

int main() {
  int start, end;

  /* Input start and end range */
  printf("Enter the lower limit to find strong number: ");
  scanf("%d", & start);
  printf("Enter the upper limit to find strong number: ");
  scanf("%d", & end);

  printf("All strong numbers between %d to %d are: \n", start, end);
  printStrongNumbers(start, end);

  return 0;
}

/**
 * Print all strong numbers in a given range
 */
void printStrongNumbers(int start, int end) {
  long long sum;
  int num;

  // Iterates from start to end
  while (start != end) {
    sum = 0;
    num = start;

    // Calculate sum of factorial of digits
    while (num != 0) {
      sum += fact(num % 10);
      num /= 10;
    }

    // If sum of factorial of digits equal to current number
    if (start == sum) {
      printf("%d, ", start);
    }

    start++;
  }
}

/**
 * Recursively find factorial of any number
 */
long long fact(int num) {
  if (num == 0)
    return 1;
  else
    return (num * fact(num - 1));
}

7. Write a function to print all Armstrong numbers between given interval in C programming. 

/**
 * C program to print all Armstrong numbers between a given range
 */

#include <stdio.h>

/* Function declarations */
int isArmstrong(int num);
void printArmstrong(int start, int end);

int main() {
  int start, end;

  /* Input lower and upper limit to of armstrong numbers */
  printf("Enter lower limit to print armstrong numbers: ");
  scanf("%d", & start);
  printf("Enter upper limit to print armstrong numbers: ");
  scanf("%d", & end);

  printf("All armstrong numbers between %d to %d are: \n", start, end);
  printArmstrong(start, end);

  return 0;
}

/**
 * Check whether the given number is armstrong number or not.
 * Returns 1 if the number is armstrong otherwise 0.
 */
int isArmstrong(int num) {
  int temp, lastDigit, sum;

  temp = num;
  sum = 0;

  /* Calculate sum of cube of digits */
  while (temp != 0) {
    lastDigit = temp % 10;
    sum += lastDigit * lastDigit * lastDigit;
    temp /= 10;
  }

  /* 
   * Check if sum of cube of digits equals
   * to original number.
   */
  if (num == sum)
    return 1;
  else
    return 0;
}

/**
 * Print all armstrong numbers between start and end. 
 */
void printArmstrong(int start, int end) {
  /* 
   * Iterates from start to end and print the current number 
   * if it is armstrong
   */
  while (start <= end) {
    if (isArmstrong(start)) {
      printf("%d, ", start);
    }

    start++;
  }
}

8. Write a function to print all perfect numbers in a given interval in C programming. How to print all perfect numbers in a given range using functions in C program. 

/**
 * C program to print all perfect numbers in given range using function
 */

#include <stdio.h>


/* Function declarations */
int isPerfect(int num);
void printPerfect(int start, int end);

int main() {
  int start, end;

  /* Input lower and upper limit to print perfect numbers */
  printf("Enter lower limit to print perfect numbers: ");
  scanf("%d", & start);
  printf("Enter upper limit to print perfect numbers: ");
  scanf("%d", & end);

  printf("All perfect numbers between %d to %d are: \n", start, end);
  printPerfect(start, end);

  return 0;
}

/**
 * Check whether the given number is perfect or not.
 * Returns 1 if the number is perfect otherwise 0.
 */
int isPerfect(int num) {
  int i, sum;

  /* Finds sum of all proper divisors */
  sum = 0;
  for (i = 1; i < num; i++) {
    if (num % i == 0) {
      sum += i;
    }
  }

  /* 
   * If sum of proper positive divisors equals to given number 
   * then the number is perfect number
   */
  if (sum == num)
    return 1;
  else
    return 0;
}

/**
 * Print all perfect numbers between given range start and end.
 */
void printPerfect(int start, int end) {
  /* Iterates from start to end */
  while (start <= end) {
    if (isPerfect(start)) {
      printf("%d, ", start);
    }

    start++;
  }
}

9.Write a C program to input a number from user and find power of given number using recursion.

/**
 * C program to find power of a number using recursion
 */

#include <stdio.h>


/* Power function declaration */
double pow(double base, int expo);

int main() {
  double base, power;
  int expo;

  /* Input base and exponent from user */
  printf("Enter base: ");
  scanf("%lf", & base);
  printf("Enter exponent: ");
  scanf("%d", & expo);

  // Call pow function
  power = pow(base, expo);

  printf("%.2lf ^ %d = %f", base, expo, power);

  return 0;
}

/**
 * Calculate power of any number.
 * Returns base ^ expo
 */
double pow(double base, int expo) {
  /* Base condition */
  if (expo == 0)
    return 1;
  else if (expo > 0)
    return base * pow(base, expo - 1);
  else
    return 1 / pow(base, -expo);
}

10.Write a recursive function in C programming to find sum of all natural numbers between 1 to n. 

/**
 * C program to find sum of natural numbers from 1 to n using recursion
 */

#include <stdio.h>


/* Function declaration */
int sumOfNaturalNumbers(int start, int end);


int main()
{
    int start, end, sum;
    
    /* Input lower and upper limit from user */
    printf("Enter lower limit: ");
    scanf("%d", &start);
    printf("Enter upper limit: ");
    scanf("%d", &end);
    
    sum = sumOfNaturalNumbers(start, end);
    
    printf("Sum of natural numbers from %d to %d = %d", start, end, sum);
    
    return 0;
}


/**
 * Recursively find the sum of natural number
 */
int sumOfNaturalNumbers(int start, int end)
{
    if(start == end)
        return start;
    else
        return start + sumOfNaturalNumbers(start + 1, end); 
}

11. Write a recursive function in C programming to find reverse of a number. How to find reverse of a number in C programming using recursion.

/**
 * C program to find reverse of any number using recursion
 */
 
#include <stdio.h>
#include <math.h>


/* Fuction declaration */
int reverse(int num);


int main()
{
    int num, rev;

    /* Input number from user */    
    printf("Enter any number: ");
    scanf("%d", &num);
    
    /* Call the function to reverse number */
    rev = reverse(num); 
    
    printf("Reverse of %d = %d", num, rev);
    
    return 0;
}


/**
 * Recursive function to find reverse of any number
 */
int reverse(int num)
{
    // Find total digits in num
    int digit = (int) log10(num);
    
    // Base condition
    if(num == 0)
        return 0;
    
    return ((num%10 * pow(10, digit)) + reverse(num/10));
}

12. Write a recursive function in C to check palindrome number. How to check whether a number is palindrome or not using recursion in C program.

/**
 * C program to check palindrome number using recursion
 */

#include <stdio.h>

#include <math.h>


/* Function declarations */
int reverse(int num);
int isPalindrome(int num);

int main() {
  int num;

  /* Input any number from user */
  printf("Enter any number: ");
  scanf("%d", & num);

  if (isPalindrome(num) == 1) {
    printf("%d is palindrome number.\n", num);
  } else {
    printf("%d is NOT palindrome number.\n", num);
  }

  return 0;
}

/**
 * Function to check whether a number is palindrome or not.
 * This function returns 1 if the number is palindrome otherwise 0.
 */
int isPalindrome(int num) {
  /* 
   * Check if the given number is equal to 
   * its reverse.
   */
  if (num == reverse(num)) {
    return 1;
  }

  return 0;
}

/**
 * Recursive function to find reverse of any number
 */
int reverse(int num) {
  /* Find number of digits in num */
  int digit = (int) log10(num);

  /* Recursion base condition */
  if (num == 0)
    return 0;

  return ((num % 10 * pow(10, digit)) + reverse(num / 10));
}

13. Write a recursive function to generate nth fibonacci term in C programming. How to generate nth fibonacci term in C programming using recursion.

/**
 * C program to find nth Fibonacci term using recursion
 */

#include <stdio.h>


/* Function declaration */
unsigned long long fibo(int num);

int main() {
  int num;
  unsigned long long fibonacci;

  /* Input a number from user */
  printf("Enter any number to find nth fiboacci term: ");
  scanf("%d", & num);

  fibonacci = fibo(num);

  printf("%d fibonacci term is %llu", num, fibonacci);

  return 0;
}

/**
 * Recursive function to find nth Fibonacci term
 */
unsigned long long fibo(int num) {
  if (num == 0) //Base condition
    return 0;
  else if (num == 1) //Base condition
    return 1;
  else
    return fibo(num - 1) + fibo(num - 2);
}

14. Write a recursive function in C to find GCD (HCF) of two numbers. 

/**
 * C program to find GCD (HCF) of two numbers using recursion
 */
 
#include <stdio.h>

/* Function declaration */
int gcd(int a, int b);


int main()
{
    int num1, num2, hcf;
    
    /* Input two numbers from user */
    printf("Enter any two numbers to find GCD: ");
    scanf("%d%d", &num1, &num2);
    
    hcf = gcd(num1, num2);
    
    printf("GCD of %d and %d = %d", num1, num2, hcf);
    
    return 0;
}


/**
 * Recursive approach of euclidean algorithm to find GCD of two numbers
 */
int gcd(int a, int b)
{
    if(b == 0)
        return a;
    else
        return gcd(b, a%b); 
}

15. Write a recursive function in C to find factorial of a number. How to find factorial of a number using recursion in C program.

/**
 * C program to find factorial of any number using recursion
 */

#include <stdio.h>

/* Function declaration */
unsigned long long fact(int num);


int main()
{
    int num;
    unsigned long long factorial;
    
    /* Input an integer from user */
    printf("Enter any number: ");
    scanf("%d", &num);
    
    factorial = fact(num); // Call factorial function
    
    printf("Factorial of %d is %llu", num, factorial);
    
    return 0;
}


/**
 * Function to compute and return factorial of any number recursively. 
 */
unsigned long long fact(int num)
{
    // Base condition
    if(num == 0) 
        return 1;
    else
        return num * fact(num - 1);
}

16. WAP to find the sum of two inetger number using function.

#include<stdio.h>
int add(int,int);
int main()
{
   int a,b;
   printf("\nEnter The Two Values:");
   scanf("%d%d",&a,&b);
   printf("\nAddition:%d",add(a,b));
   return 0;
}
int add(int a,int b)
{
   int c;
   c=a+b;
   return c;
}  

17. WAP to find the greater of two number using function.

#include<stdio.h>  
  
int biggest(int, int); //  function prototype  
  
int main()  
{  
    int a, b;  
  
    printf("Enter 2 integer numbers\n");  
    scanf("%d%d", &a, &b);  
  
    // function call biggest(a, b)  
    printf("Biggest of %d and %d is %d\n", a, b, biggest(a, b));  
  
    return 0;  
}  
  
//function definition  
int biggest(int x, int y)  
{  
    return( x>y?x:y );  
}  

18. WAP to fnd value of nCr (combination) using funtion.

#include <stdio.h>

int fact(int);

void main()
{
	int n,r,ncr;
 
  	printf("Enter a number n\n");
  	scanf("%d",&n);
 	printf("Enter a number r\n");
  	scanf("%d",&r);
  	ncr=fact(n)/(fact(r)*fact(n-r));
    printf("Value of %dC%d = %d\n",n,r,ncr);
}

int fact(int n)
{
    int i,f=1;
    for(i=1;i<=n;i++)
    {
        f=f*i;
    }
    return f;
}

19. WAP to find factorial of a number using function.


#include <stdio.h>
int fact(int);
void main()
{
 int no,factorial;
  	printf("Enter a number: \n");
  	scanf("%d",&no);
  	factorial=fact(no);
    printf("The Factorial of %d is %d\n",no,factorial);
}
 
int fact(int n)
{
    int i,f=1;
    for(i=1;i<=n;i++)
    {
        f=f*i;
    }
    return f;
}