Wednesday, 22 July 2015

c programs in technical interview

write a c program which produces its own source code as its output
#include<stdio.h>
int main(){
    FILE *fp;
    char c;
    fp = fopen(__FILE__,"r");
    do{
         c= getc(fp);
         putchar(c);
    }
    while(c!=EOF);
    fclose(fp);
    return 0;
}

C program to print hello world without using semicolon
#include<stdio.h>
void main(){
    if(printf("Hello world")){
    }
}

To Find Factorial Of A Number Using C Program
#include<stdio.h>
int main(){
  int i,f=1,num;
  printf("Enter a number: ");
  scanf("%d",&num);
  for(i=1;i<=num;i++)
      f=f*i;
  printf("Factorial of %d is: %d",num,f);
  return 0;
}

To Find Fibonacci Series Using C Program
#include<stdio.h>
int main(){
    int i,range;
    long int arr[40];
    printf("Enter the number range: ");
    scanf("%d",&range);
    arr[0]=0;
    arr[1]=1;
    for(i=2;i<range;i++){
         arr[i] = arr[i-1] + arr[i-2];
    }
    printf("Fibonacci series is: ");
    for(i=0;i<range;i++)
         printf("%ld ",arr[i]);
    return 0;
}

calculate roots of a quadratic equation
#include<stdio.h>
#include<math.h>
int main(){
  float a,b,c;
  float d,root1,root2;
  printf("Enter a, b and c of quadratic equation: ");
  scanf("%f%f%f",&a,&b,&c);
  d = b * b - 4 * a * c;
  if(d < 0){
    printf("Roots are complex number.\n");
    printf("Roots of quadratic equation are: ");
    printf("%.3f%+.3fi",-b/(2*a),sqrt(-d)/(2*a));
    printf(", %.3f%+.3fi",-b/(2*a),-sqrt(-d)/(2*a));
    return 0;
  }
  else if(d==0){
   printf("Both roots are equal.\n");
   root1 = -b /(2* a);
   printf("Root of quadratic equation is: %.3f ",root1);
   return 0;
  }
  else{
   printf("Roots are real numbers.\n");
   root1 = ( -b + sqrt(d)) / (2* a);
   root2 = ( -b - sqrt(d)) / (2* a);
   printf("Roots of quadratic equation are: %.3f , %.3f",root1,root2);
  }
  return 0;
}

Write a c program to check given string is palindrome number or not
#include <stdio.h>
#include <conio.h>
void main() {
char *a;
int i,len,flag=0;
clrscr();
printf("\nENTER A STRING: ");
gets(a);
len=strlen(a);
for (i=0;i<len;i++) {
if(a[i]==a[len-i-1])
    flag=flag+1;
}
if(flag==len)
            printf("\nTHE STRING IS PALINDROM"); else
            printf("\nTHE STRING IS NOT PALINDROM");
getch();
}

palindrome Program For Number
#include<stdio.h>
int main(){
    int num,r,sum=0,temp;
    printf("Enter a number: ");
    scanf("%d",&num);
    temp=num;
    while(num){
         r=num%10;
         num=num/10;
         sum=sum*10+r;
    }
    if(temp==sum)
         printf("%d is a palindrome",temp);
    else
         printf("%d is not a palindrome",temp);
    return 0;
}

Write a c program to check given number is strong number or not (sum of factorials of the digits is equal to the given number.)
#include<stdio.h>
int main() {
int num,i,f,r,sum=0,temp;
printf("Enter a number: ");
scanf("%d",&num);
temp=num;
while(num) {
i=1,f=1;
r=num%10;
while(i<=r) {
f=f*i;
i++;
}
sum=sum+f;
num=num/10;
}
if(sum==temp)
     printf("%d is a strong number",temp); else
     printf("%d is not a strong number",temp);
return 0;
}

C program to find given number is prime or not
#include<stdio.h>
int main(){
    int num,i,count=0;
    printf("Enter a number: ");
    scanf("%d",&num);
    for(i=2;i<=num/2;i++){
        if(num%i==0){
         count++;
            break;
        }
    }
   if(count==0 && num!= 1)
        printf("%d is a prime number",num);
   else
      printf("%d is not a prime number",num);
   return 0;
}

Write a c program to print Pascal triangle
#include<stdio.h>
long fact(int);
int main(){
    int line,i,j;
    printf("Enter the no. of lines: ");
    scanf("%d",&line);
    for(i=0;i<line;i++){
         for(j=0;j<line-i-1;j++)
             printf(" ");
         for(j=0;j<=i;j++)
             printf("%ld ",fact(i)/(fact(j)*fact(i-j)));
         printf("\n");
    }
    return 0;
}
long fact(int num){
    long f=1;
    int i=1;
    while(i<=num){
         f=f*i;
         i++;
  }
  return f;
 }

Printing ascii value using c program
#include<stdio.h>
int main(){
  int i;
    for(i=0;i<=255;i++)
         printf("ASCII value of character %c: %d\n",i,i);
    return 0;
}

Write a c program to check given number is perfect number or not.(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 )
#include<stdio.h>
int main(){
  int n,i=1,sum=0;
  printf("Enter a number: ");
  scanf("%d",&n);
  while(i<n){
      if(n%i==0)
           sum=sum+i;
          i++;
  }
  if(sum==n)
      printf("%d is a perfect number",i);
  else
      printf("%d is not a perfect number",i);
  return 0;
}

How to swap two numbers without using a temporary variable?
#include <stdio.h>
int main()
{
  int x = 10, y = 5;
  // Code to swap 'x' and 'y'
  x = x + y;  // x now becomes 15
  y = x - y;  // y becomes 10
  x = x - y;  // x becomes 5
  printf("After Swapping: x = %d, y = %d", x, y);
  return 0;
}

Write a program to find the greatest among ten numbers
#include <stdio.h>
  int main() {
    int a[10];
    int i;
    int greatest;
    printf("Enter ten values:");
    //Store 10 numbers in an array
    for (i = 0; i < 10; i++) {
    scanf("%d", &a[i]);
    }
    //Assume that a[0] is greatest
    greatest = a[0];
    for (i = 0; i < 10; i++) {
if (a[i] > greatest) {
greatest = a[i];
    }
    }
    printf("
    Greatest of ten numbers is %d", greatest);
    return 0;
  }

C Program to Print a Semicolon without using a Semicolon anywhere in the Code
#include <stdio.h>
int main(void)
{
    //59 is the ascii value of semicolumn
    if (printf("%c ", 59))
    {
    }
    return 0;
}

C program to compare two strings without using string functions
#include<stdio.h>
int stringCompare(char[],char[]);
int main(){
    char str1[100],str2[100];
    int compare;
    printf("Enter first string: ");
    scanf("%s",str1);
    printf("Enter second string: ");
    scanf("%s",str2);
    compare = stringCompare(str1,str2);
    if(compare == 1)
         printf("Both strings are equal.");
    else
         printf("Both strings are not equal");
    return 0;
}
int stringCompare(char str1[],char str2[]){
    int i=0,flag=0;
    while(str1[i]!='\0' && str2[i]!='\0'){
         if(str1[i]!=str2[i]){
             flag=1;
             break;
         }
         i++;
    }
    if (flag==0 && str1[i]=='\0' && str2[i]=='\0')
         return 1;
    else
         return 0;
}

Write a program to delete a specified line from a text file.
#include <stdio.h>
      int main() {
        FILE *fp1, *fp2;
        //consider 40 character string to store filename
        char filename[40];
        char c;
        int del_line, temp = 1;
        //asks user for file name
        printf("Enter file name: ");
        //receives file name from user and stores in 'filename'
        scanf("%s", filename);
        //open file in read mode
        fp1 = fopen(filename, "r");
        c = getc(fp1);
        //until the last character of file is obtained
        while (c != EOF)
        {
          printf("%c", c);
          //print current character and read next character
          c = getc(fp1);
        }
        //rewind
        rewind(fp1);
        printf(" \n Enter line number of the line to be deleted:");
        //accept number from user.
        scanf("%d", &del_line);
        //open new file in write mode
        fp2 = fopen("copy.c", "w");
        c = getc(fp1);
        while (c != EOF) {
          c = getc(fp1);
          if (c == '\n')
          temp++;
          //except the line to be deleted
          if (temp != del_line)
          {
            //copy all lines in file copy.c
            putc(c, fp2);
          }
        }
        //close both the files.
        fclose(fp1);
        fclose(fp2);
        //remove original file
        remove(filename);
        //rename the file copy.c to original name
        rename("copy.c", filename);
        printf("\n The contents of file after being modified are as  follows:\n");
        fp1 = fopen(filename, "r");
        c = getc(fp1);
        while (c != EOF) {
            printf("%c", c);
            c = getc(fp1);
        }
        fclose(fp1);
        return 0;
      }

write a program to check a string is Caliondrome or not.()
#include <stdio.h>
void main()
{
int i,j=0; char a[100];
clrscr();
printf("\n Enter the string to check for caliondrom e:\n");
gets(a);
if(strlen( a)%6)
{
printf("\n %s: is Not a caliondrom e..",a);
getch();
exit(0);
}
for (i=0;a[i]! ='\0'
{
if((a[i]== a[i+5])&&( a[i+1]==a[ i+4])&&(a[ i+2]==a[i+ 3]))
     i=i+6;
else
{
    j=1;
    break;
}
}
if(j)
printf("\n %s: is Not a caliondrom e..",a);
else
printf("\n %s: is a caliondrom e..",a);
getch();
}

c program to find out the longest and shortest word in a string.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
    char string[100], word[20], max[20], min[20], c;
    int i = 0, j = 0, flag = 0;
    printf("Enter string: ");
    i = 0;
    do
    {
        fflush(stdin);
        c = getchar();
        string[i++] = c;
    } while (c != '\n');
    string[i - 1] = '\0';
    for (i = 0; i < strlen(string); i++)
    {
        while (i < strlen(string) && !isspace(string[i]) && isalnum(string[i]))
        {
            word[j++] = string[i++];
        }
        if (j != 0)
        {
            word[j] = '\0';
            if (!flag)
            {
                flag = !flag;
                strcpy(max, word);
                strcpy(min, word);
            }
            if (strlen(word) > strlen(max))
            {
                strcpy(max, word);
            }
            if (strlen(word) < strlen(min))
            {
                strcpy(min, word);
            }
            j = 0;
        }
    }
    printf("The largest word is '%s' and smallest word is '%s' in '%s'.\n", max, min, string);
    return 0;
}

C Program to Delete duplicate elements from an array
#include<stdio.h>
int main() {
   int arr[20], i, j, k, size;
   printf("\nEnter array size : ");
   scanf("%d", &size);
   printf("\nAccept Numbers : ");
   for (i = 0; i < size; i++)
      scanf("%d", &arr[i]);
   printf("\nArray with Unique list  : ");
   for (i = 0; i < size; i++) {
      for (j = i + 1; j < size;) {
         if (arr[j] == arr[i]) {
            for (k = j; k < size; k++) {
               arr[k] = arr[k + 1];
            }
            size--;
         } else
            j++;
      }
   }
   for (i = 0; i < size; i++) {
      printf("%d ", arr[i]);
   }
   return (0);
}

C program to find out if a given number is a power series of 2 or not,without any loop and without using % modulo operator.
#include<stdio.h>
int pow2(float );
void main()
{
int i,flag;
clrscr();
printf("Enter the number\n") ;
scanf("%d" ,&i);
flag=pow2( i);
if(flag)
printf("\n %d is power series of 2",i);
else
printf("\n %d is not a power series of 2",i);
getch();
}
int pow2(float j)
{
static float x;
x=j/2;
if(x==2)
return 1;
if(x
return 0;
x=pow2(x);
}

No comments:

Post a Comment