type your search

Wednesday, January 18, 2012

C programming questions

Well, to all the C programmers out there.. here are some of the questions which I
bet you would surely enjoy solving...

1)
Find the bug in this code.
#include<stdio.h>
int main()
{
    int i=3,j=5;
    printf("%d",(i+j)++);
    return(0);
}
Ans:



2)
What is the output of the following piece of code?
#include<stdio.h>
int main()
{
    char c='8';
    int d=8;
    printf("%d %d %d",d,d+=c>='0'&&c<='9',c++);
    return(0);
}
Ans:



3)
x=x*y+1;                               --------------1
Is this different from  x=x*(y+1);     --------------2

How to right the  assignment operation "2" with out using 
parenthesis in one statement.
Ans:




4)
What does this code do?
#include<stdio.h>
void func(char s[],int c)
{
    int i,j;
    for(i=j=0;s[i]!='\0';i++)
        if(s[i]!=c)
            s[j++]= s[i] + s[i]==c ;
    s[j]='\0';
}

int main()
{
    char s[]="aelloworld";
    func(s,'k');
    printf("%s",s);
    return(0);
}
Ans:



5)
Can you find any difference between the two scanf calls made in the 
code given below ?

#include<stdio.h>
int main()
{
    int x,y;
    scanf("%d",&x);
    scanf(" %d",&y);
    return 0;
}
Ans:




6)
Predict the output of the following piece of code.
Assume that bit position 0 is at the right end and that i and j are 
sensible positive values.
#include<stdio.h>
unsigned getbits(unsigned a,int i,int j)
{
    return(a>>(i+1-j)) & ~(~0<<j);
}
int main()
{
    unsigned num=128;
    printf("%d\n",getbits(num,7,5));
    return(0);
}
Ans:



7)
What does this code do on input 'abcd' from console?
#include<stdio.h>
int main()
{
    char c;
    while(c=getchar()!='\n')
        printf("%d",c);
    return(0);
}
Ans:


8)
What does this code do?
#include<stdio.h>
int main()
{
    int i;
    int a[20]={1,2,3,4,5,6,7,8,9,10,10,9,8,7,6,1,2,3,4,5};
    int n=20;
    for(i=0;i<20;i++)
    {
        printf("%6d%c",a[i],(i%10==9 || i== 19)?'\n':' ');
    }
    return(0);
}
Ans:



9)
Will this code work properly? If yes why? If not why not?
#include<stdio.h>
void swap(int *a,int *b)
{
    *a=*a+*b;
    *b=*a-*b;
    *a=*a-*b;
}
int main()
{
    int a=3617283450;
    int b=3617283449;
    swap(&a,&b);
    printf("%d %d\n",a,b);
    return(0);
}
Ans:



10)
What is the output of the following piece of code?
#include<stdio.h>
int main()
{
    int a=3,b=1;
    a = b<<a + b>>2;
    b = b<<a + b>>2;
    printf("%d %d",a,b);
    return 0;
}
Ans:



11)
Can you predict the output of the following code snippet ?
#include<stdio.h>
int main()
{
    int i=9876;

printf("%d\n",printf("%d",printf("%d",i)));
    return 0;
}
Ans:




12)
Give the output of the following code.
#include<stdio.h>
typedef struct s
{
    int a[10];
}s;
typedef struct t
{
    int *a;
}t;

int main()
{
    s s1,s2;t t1;
    s1.a[0]=0;

    t1.a=s1.a;
    s1.a[0]++;
    s2=s1;
    s1.a[0]++;

    printf("%d %d %d",s1.a[0],s2.a[0],t1.a[0]);
    return 0;
}
Ans:



13)
You just have to write the declaration of an unsigned int p; 
Obviously you can't use any spaces or new lines in the declaration !!
Ans:




14)
What is the output of the following code?
#include<stdio.h>
int main()
{
    int x=2,y=3,z1,z2;
    z1=x + + + y;
    z2=x+++y;
    printf("%d %d %d %d",x,y,z1,z2);
    return 0;
}
Ans:



15)
Predict the output of the following code with the following inputs ->
1. 2c3
2. 2  5
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int *i=0,*j=4;
    i=(int*)malloc(sizeof(int));
    scanf("%dc%d",&i,&j);
    printf("%d %d",i,j);
    return(0);
}
Ans:




16)
What is the output of the following code for the input "dcba"?
#include<stdio.h>
#include<stdlib.h>
int main()
{
    char c;
    while (c=getchar()!='a') printf("%d",c);
    return 0;
}
Ans:



17)
What is the output of the following code?
#include<stdio.h>
int array[]={1,2,3,4,5,6,7,8};
#define SIZE (sizeof(array)/sizeof(int))

int main()
{
    printf("%d",SIZE);
    if(-1<=SIZE) printf("1");
    else printf("2");
    return 0;
}
Ans:



18)
What is the output of the following code?
#include<stdio.h>
#include<string.h>
int main()
{
    char a[]="aaa";
    char *b="bbb";
    strcpy(a,"cc");
    printf("%s",a);
    strcpy(b,"dd");
    printf("%s",b);
    return 0;
}
Ans:




19)
Can you predict the output of the following code snippet ?
#include<stdio.h>
#define sq(x) x*x
int main()
{
    int a=3;
    printf("%d\n",sq(a+3));
}
Ans:



20)
What is the output of this code?
#include<stdio.h>
int main()
{
    int *i=0;
    printf(" %p\n",i);
    return(0);
}
Ans:




21)
Does the following C code compile ????  If it does .. can you 
explain what happens when you run it with some arbitrary text 
as input or what does it do ???? 
[ The input is redirected from a file called "input.txt" ]
int main()
{
    for(;scanf("%*[^a-z]")+1;putchar(getchar()));
}
Ans:




22)
What is the output of the following code?
#include<stdio.h>
int main()
{
    int a=1,b=3,c,d;
    c=(a,b);
    d=a,b,c;
    printf("%d %d",c,d);
    return 0;
}
Ans:




23)
What is the expected output of the code ?????
#include<stdio.h>
#define concatinate(a,b) a##b
#define same1(a)  #a
#define same2(a) same1(a)
int main()
{
    printf("%s\n",same2(concatinate(1,2)));
    printf("%s\n",same1(concatinate(1,2)));
    return 0;
}
Ans:



24)
The intention of the following program was to print 42 astericks('*') 
But it fails to do so.
You have to add/replace/delete exactly one character in the program
to make it work ???
Find as many solutions as possible.

#include <stdio.h>
int main()
{
    int n = 42;
    for(int i = 0; i < n; i-- )
        printf("*");
    return 0;
}
Ans:























25)
What does this code do?
#include<stdio.h>
void insert(char s[],int c)
{
    int i,j;
    for(i=j=0;s[i]!='\0';i++)
        if(s[i]!=c)
            s[j++]= s[i];
    s[j]='\0';
}

int main()
{
    char s[]="helloworld";
    insert(s,'l');
    printf("%s",s);
    return(0);
}
Ans:




26)
What is the output of the following code?
#include<stdio.h>
#include<string.h>
int s(char *A[20],char *B[20])
{
    char *a,*b;
    a=A;b=B;
    while(*a++!=*b++); *a=*b='\0';
    return strlen(A);
}
int main()
{
    char A[20]="somestring",
         B[20]="debugthecbug";
    printf("%d %s %s\n",s(&A,&B),A,B);
    return 0;
}
Ans:




27)
Can you predict the output ?
#include<stdio.h>
#define print(var) printf("%s : %d\n",#var,(var))
int main()
{
    int y = 100;
    int *p;
    p = new int;
    *p = 10;
    y = y/*p; /*dividing y by *p */;
    print(y);
    return 0;
}
Ans:



28)
Take the input as 4, and write the output of the following code.
#include <stdio.h>
main()
{
    int i=0;
    printf("%d %d\n",scanf(" %d",&i),i);
    printf("%d %d\n",i=4,i);
}
Ans:



29)
Predict the output of the following program.
#include <stdio.h>
int main()
{
  

int a=3, b = 5;
printf(&a["Ya!Hello! how is this? %s\n"], &b["junk/super"]);
printf(&a["WHAT%c%c%c\n%c%c\n%c !\n"], 1["this"],
2["beauty"],0["tool"],0["is"],3["sensitive"],4["CCCCCC"]);
    return 0;
}
Ans:





30)
What is the output of the following code?
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int *ptr=(int*)malloc(sizeof(int));
    *ptr=4;
    printf("%d",(*ptr)+++*ptr++);
    return(0);
}
Ans:




31)
What is the output of the following piece of code?
#include<stdio.h>
int main(int k)
{
    if(k<10)
        printf("%d ",main(k+1));
    return k;
}
Ans:





32)
Predict the output or error if any in the following code.
#include<stdio.h>
main()
{
    int i = 4;
    printf("%d %d %d",++i,i++,i*i);
    printf("\n");
    printf("%d %d %d",i*i,++i,i++);
    system("PAUSE");
}
Ans:



33)
Give the output of the following piece of code.
#include<stdio.h>
int main()
{
    int a,b,c=2,d=10;

printf("%d\n ",scanf("%d%d%d",&a,&b,&c,&d) ) ;
    printf("%d\n%d\n%d\n%d\n",a,b,c);
    return(0);
}
Ans:



34)
#include <stdio.h>
main()
{
    int a[15][10][5]={1};
    func(a);
}
Which of these is/are correct function prototypes for func ?

void func( int a[][10][5] );
void func( int a[15][][5] );
void func( int a[15][10][] );
Ans:





35)
Give the output of the following piece of code.
#include <stdio.h>
main()
{
    float x=3.14;
    printf("%e, %E, %f",x,x,x);
}
Ans:



36)
What is the output of the following program?
#include<stdio.h>
int fun1()
{
    static int c=20;
    return --c;
}

int fun2()
{
    static int c=1;
    return fun1()+c--;
}

int main()
{
    int i=0;
    while(i<fun2())
        printf("%d ",i++);
    return 0;
}
Ans:



37)
What is the output of the following program?
#include<stdio.h>
#include<string.h>
void p(char *a)
{
    static int y=1;
    if(y=1-y) printf("%c",*a);
    return;
}

int main()
{
    char *a;a=(char*)malloc(20*sizeof(char));
    strcpy(a,"DbugtheCbug");
    while(*a!='\0') p(a++);
    printf("\n");
    return 0;
}
Ans:



38)
Give the output of the following piece of code.
#include <stdio.h>
main()
{
    int a=4,b=10;

printf("%d %d %d %d\n",a,a^=b=b^=a=a^=b,b,printf("%d %d %d\n",b,a,a^=b=b^=a=a^=b));
}
Ans:




39)
Predict the output of the following program.
#include<stdio.h>
int main()
{
    int x = 5,p = 10;
    printf("%*d",x,p);
}
Ans:




40)
What is the output of the following code?
#include<stdio.h>
int main()
{
    int i=2;
    i=i++;
    printf("%d ",i++ + i++);
}
Ans:




41)
Predict the output for the below code.
#include<stdio.h>
int main()
{
    int a[]={2,3,4,5,6};
    int i=0;
    printf("%d",a[i++]+i[a+1]);
    return(0);
}
Ans:



42)
What is the output of the following piece of code?
#include<stdio.h>
#include<stdlib.h>
void weird(int *a)
{
    a=(int*)malloc(sizeof(int));
}
int main()
{
    int *a;
    weird(a);
    *a=6;
    printf("%d\n",*a);
    return(0);
}
Ans:



43)
What is the output of the following piece of code?
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int *ptr=(int*)malloc(sizeof(int));
    *ptr=4;
    printf("%d",*ptr++);
    return(0);
}
Ans:




44)
Correct the following code in case of any errors.
#include <stdlib.h>
#include <stdio.h>
#define SIZE 15
int main()
{
    int *a, i;
    a = (void*)malloc(SIZE*sizeof(int));
    for (i=0; i<SIZE; i++)
        *(a + i) = (int)i * i;
    for (i=0; i<SIZE; i++)
        printf("%d\n", *a++);
    free(a);
    return 0;
}
Ans:




45)
What is the output of the following program?
#include<stdio.h>
int main()
{
    char c;
    c=255;
    printf("%d",c);
    return(0);
}





click here for solutions


No comments:

Post a Comment