InterviewQs

Top 25 C Interview Coding Questions

Carefully curated high-frequency C programs used in real technical interviews.

1.Swap two numbers without temporary variable

#include 
int main(){
    int a=5,b=10;
    a=a+b; b=a-b; a=a-b;
    printf("a=%d b=%d",a,b);
}

2.Factorial using recursion

#include 
int fact(int n){
    if(n==0) return 1;
    return n*fact(n-1);
}
int main(){
    printf("%d",fact(5));
}

3.Prime number check

#include 
int main(){
    int n=29,flag=1;
    for(int i=2;i<=n/2;i++)
        if(n%i==0){flag=0;break;}
    printf(flag?"Prime":"Not Prime");
}

4.Reverse a string

#include 
#include 
int main(){
    char s[]="hello";
    int n=strlen(s);
    for(int i=0;i

5.Palindrome number

#include 
int main(){
    int n=121,r=0,t=n;
    while(t){ r=r*10+t%10; t/=10; }
    printf(n==r?"Palindrome":"Not Palindrome");
}

6.GCD of two numbers

#include 
int gcd(int a,int b){
    return b==0?a:gcd(b,a%b);
}
int main(){
    printf("%d",gcd(24,36));
}

7.Fibonacci series

#include 
int main(){
    int a=0,b=1,c,n=10;
    printf("%d %d ",a,b);
    for(int i=2;i

8.Largest element in array

#include 
int main(){
    int a[]={3,8,1,9,4},max=a[0];
    for(int i=1;i<5;i++)
        if(a[i]>max) max=a[i];
    printf("%d",max);
}

9.Second largest element

#include 
int main(){
    int a[]={10,20,30,40},max=0,smax=0;
    for(int i=0;i<4;i++){
        if(a[i]>max){
            smax=max; max=a[i];
        }
    }
    printf("%d",smax);
}

10.Bubble sort

#include 
int main(){
    int a[]={5,1,4,2},n=4;
    for(int i=0;ia[j+1]){
                int t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
    for(int i=0;i

11.Binary search

#include 
int main(){
    int a[]={1,3,5,7,9},l=0,r=4,x=7;
    while(l<=r){
        int m=(l+r)/2;
        if(a[m]==x){printf("Found");return 0;}
        if(a[m]

12.Sum of digits

#include 
int main(){
    int n=123,sum=0;
    while(n){ sum+=n%10; n/=10; }
    printf("%d",sum);
}

13.String length without strlen

#include 
int main(){
    char s[]="hello";
    int i=0;
    while(s[i]) i++;
    printf("%d",i);
}

14.Anagram check

#include 
int main(){
    char a[]="listen",b[]="silent";
    int f[256]={0};
    for(int i=0;a[i];i++){
        f[a[i]]++; f[b[i]]--;
    }
    for(int i=0;i<256;i++)
        if(f[i]){printf("Not Anagram");return 0;}
    printf("Anagram");
}

15.Reverse linked list

struct Node{
    int data;
    struct Node* next;
};

16.Stack using array

int stack[5],top=-1;
void push(int x){ stack[++top]=x; }
int pop(){ return stack[top--]; }

17.Queue using array

int q[5],f=0,r=-1;
q[++r]=10; q[++r]=20;
printf("%d",q[f++]);

18.Balanced parentheses

char s[]="(())"; int c=0;
for(int i=0;s[i];i++)
    if(s[i]=='(') c++; else c--;
printf(c==0?"Balanced":"Not Balanced");

19.Decimal to binary

int n=10,b[10],i=0;
while(n){ b[i++]=n%2; n/=2; }
for(int j=i-1;j>=0;j--) printf("%d",b[j]);

20.Find duplicate in array

int a[]={1,2,3,2};
for(int i=0;i<4;i++)
 for(int j=i+1;j<4;j++)
  if(a[i]==a[j]) printf("%d",a[i]);

21.Missing number

int a[]={1,2,4,5},n=5,sum=0;
for(int i=0;i<4;i++) sum+=a[i];
printf("%d",(n*(n+1))/2-sum);

22.Array rotation

int a[]={1,2,3,4,5},k=2;
for(int i=k;i<5;i++) printf("%d ",a[i]);
for(int i=0;i

23.Matrix transpose

int a[2][2]={{1,2},{3,4}};
for(int i=0;i<2;i++){
 for(int j=0;j<2;j++)
  printf("%d ",a[j][i]);
 printf("\n");
}

24.Armstrong number

int n=153,sum=0,t=n;
while(t){
 int d=t%10;
 sum+=d*d*d;
 t/=10;
}
printf(sum==n?"Armstrong":"Not Armstrong");

25.Memory leak prevention

#include 
int main(){
    int *p = malloc(10*sizeof(int));
    free(p);
}
InterviewQs – Professional Footer