type your search

Showing posts with label C language. Show all posts
Showing posts with label C language. Show all posts

Wednesday, January 18, 2012

C Programming Puzzles 6

126)
#include<stdio.h>
main()
{
        char c='6';
        int d=6;
        printf("%d %d %d",d,d+=c>'0'&&c<='7',c++);
}

127)
#include<stdio.h>
main()
{
        int a=4,b=2;
        a=b<<a + b>>2;
        b=b<<a + b>>2;
        printf("%d %d",a,b);
}

128)
#include<stdio.h>
main()
{
        int i=98765;
        printf("%d\n",printf("%d",printf("%d",i)));
}

129)
#include<stdio.h>
main()
{
        char c;
        while(c=getchar()!='a')printf("%d",c);
}
//INPUT=dcba

130)
#include<stdio.h>
main()
{
        int *i=0;
        printf(" %p\n",i);
}

131)
#include<stdio.h>
#include<stdlib.h>
main()
{
        int *ptr=(int*)malloc(sizeof(int));
        *ptr=4;
        printf("%d",(*ptr)+++*ptr++);
}

132)
#include<stdio.h>
unsigned getbits(unsigned a,int i,int  j)
{
        return(a>>(i+1-j)) & ~(~0<<j);
}
main()
{
        unsigned num=128;
        printf("%d\n",getbits(num,7,5));
}

133)
#include<stdio.h>
#define sq(x) x*x
main()
{
        int a=5;
        printf("%d\n",sq(a+5));
}

134)
#include<stdio.h>
#define concatinate(a,b) a##b
#define same1(a)  #a
#define same2(a)  same1(a)
main()
{
        printf("%s\n",same2(concatinate(1,2)));
        printf("%s\n",same1(concatinate(1,2)));
}

135)
#include<stdio.h>
main()
{
        int a=1,b=3,c,d;
        c=(a,b);
        d=a,b,c;
        printf("%d %d",c,d);
}

136)
#include<stdio.h>
#include<stdlib.h>
main()
{
        int*ptr=(int*)malloc(sizeof(int));
        *ptr=4;
        printf("%d",(*ptr)+++*ptr++);
}

137)
#include<stdio.h>
main()
{
        int x;
        x=20;
        printf("x:%d\n",x);
        printf("sizeof(x++) is: %d\n",sizeof(x++));
        printf("x:%d\n",x);
}

138)
#include <stdio.h>
#define f(x,y) x##y
#define g(x)   #x
#define h(x) g(y)

int main()
{
        printf("%s\n",h(f(2,3)));
        printf("%s\n",g(f(2,3)));
        return 0;
}

139)
#include <stdio.h>
int main()
{
        int i;
        i = 10,20,30;
        printf("i:%d\n",i);
}

140)
#include <stdio.h>
#define PrintInt(expr) printf("%s : %d\n",#expr,(expr))
int Shiftfn(int a)
{
        int t;
        t = a<<2 + a;
        return t;
}

int main()
{
        int i = 1, j = 2,k = 3;
        PrintInt(Shiftfn(i));
        PrintInt(Shiftfn(j));
        PrintInt(Shiftfn(k));
}

141)
#include<stdio.h>
enum {false,true};

int main()
{
        int i=1;
        do
        {
                printf("%d\n",i);
                i++;
                if(i < 15)
                        continue;
        }while(false);
}

142)
#include <stdio.h>
int main()
{
        float a = 12.5;
        printf("%d\n",a);
        printf("%d\n", *(int *)&a);
        return 0;
}

143)
#include<stdio.h>
int main()
{
        int a=1;
        switch(a)
        {   int b=20;
                case 1: printf("b is %d\n",b);
                        break;
                default:printf("b is %d\n",b);
                        break;
        }
        return 0;
}

144)
#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;
}

145)
#include<stdio.h>
void insert(char a[],int n)
{
        int i,j;
        for(i=j=0;a[i]!='\0';i++)
                if(a[i]!=n)
                        a[j++]=a[i];
        a[j]='\0';
}
main()
{
        char a[]="helloworld";
        insert(a,'l');
        printf("%s",a);
}

146)
#include<stdio.h>
#include<stdlib.h>
void weird(int*a)
{
        a=(int*)malloc(sizeof(int));
}
main()
{
        int*a;
        weird(a);
        *a=6;
        printf("%d\n",*a);
}

147)
#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));
}

148)
#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;
}

149)
#include<stdio.h>
#include<string.h>
main()
{
        char a[]="aaa";
        char *b="bbb";
        strcpy(a,"cc");
        printf("%s",a);
        strcpy(b,"dd");
        printf("%s",b);
}

150)
#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;
}

C Programming Puzzles 5

101)
#include <stdio.h>
main()
{
        int i=4;
        if (i>5) printf("Hi");
        else f(i);
}

f(int j)
{
        if (j>=4) f(j-1);
        else if(j==0)return;
        printf("Hi");
        return;
}

102)
#include <stdio.h>
int *NEXT(register int  i)
{
        int *ipt;
        ipt = &i;
        ipt++;
        return ipt;
}

main ()
{
        int j;
        printf("%d",(NEXT(j)));
}

103)
#include <stdio.h>
#define PRINT(int) printf("int = %d  ",int)
main()
{
        int x,y,z;
        x=03;y=02;z=01;
        PRINT(x^x);
        z<<=3;PRINT(x);
        y>>=3;PRINT(y);
}

104)
#include <stdio.h>
#define PRINT(int) printf( "int = %d ", int)
main()
{
        int x=03,y=02,z=01;
        PRINT (x | y & ~z);
        PRINT (x & y && z);
        PRINT (x ^ y & ~z);
}

105)
#include <stdio.h>
main()
{
        int p;
        for(p = 1; p<=10,--p; p=p+2)
                puts("Hello");
}

106)
#include <stdio.h>
int n, R;
main()
{
        R = 0;
        scanf("%d",&n);
        printf("\n %d, %d",fun(n),R);
}

int fun(int n)
{
        if (n>3) return R = 5;
        R = 6;
        return(1);
}

107)
#include <stdio.h>
main()
{
        int arr[3][3] = {1,2,3,4,5,6,7,8,9};
        int i,j;
        for (j=2;j>=0;j--){
                for(i=2;i>=0;i--){
                        printf("\n%d",*(*(arr+i)+j));
                        printf("\n TATATATA");
                }
        }
}

108)
#include <stdio.h>
main()
{
        int a = 10, b = 5,c = 3,d = 3;

        if ((a<b) &&  (c = d++))
                printf(" %d  %d  %d  %d ", a, b, c, d);
        else
                printf(" %d  %d  %d  %d ", a, b, c, d);

}

109)
#include <stdio.h>
main()
{
        struct test
        {
                char c;
                int i;
                char m;
        } t1;
        printf("%d %d\n",sizeof(t1), sizeof(t1.c));
}

110)
#include <stdio.h>
main()
{
        int a,b;
        scanf("%d %d", &a, &b);
        printf("%d\n", a+++b);
        printf("%d %d\n",a,b);
}

111)
#include <stdio.h>
int i;
main()
{
        char a[] = "Shiva";
        printf("%c\n",i[a]);
}

112)
#include <stdio.h>
myread(a,b)
{
        printf("%d  %d",a,b);
}

main()
{
        myread(2,4);
}

113)
#include <stdio.h>
funct(char* str)
{
        printf("%s\n",str);
}

main()
{
        static  int  ii = 1;
        int jj = 5;
        ii+=++jj;
        funct(ii+++ "Campus Interview");
}

114)
#include <stdio.h>
funct(str)
{
         printf("%s\n",str);
}

main()
{
         funct('-'-'-'+"DEShaw");
}

115)
#include <stdio.h>
main()
{
         printf(" %d\n",'-'-'-'+'/'/'/');
}

116)
#include <stdio.h>
static  int a  = 6;
extern  int a;

main()
{
         printf("%d",a);
}

117)
#include <stdio.h>
main()
{
        int i=6,j=4;
        printf("NO\n");
        switch(i)
        {
                do{
                        case 1: printf("yes\n");

                        case 2:

                        case 3:

                        case 4:

                        case 5:

                        case 6:
                                j--;
                }while (j);
        }
}

118)
#include <stdio.h>
abc(int *i, int *j)
{
        *i = *i + *j;
        *j = *i - *j;
        *i = *i - *j;
}
main()
{
        int i = 5, j=10;
        abc(&i,&j);
        printf("%d..%d",i,j);
}

119)
#include<stdio.h>
int main()
{
        char c;
        c=255;
        printf("%d",c);
        return(0);
}

120)
#include<stdio.h>
main()
{
        int x=5,p=10;
        printf("%*d",x,p);
}

121)
#include<stdio.h>
main()
{
        int a[]={2,3,4,5,6};
        int i=0;
        printf("%d",a[i++]+i[a+1]);
}

122)
#include<stdio.h>
#include<stdlib.h>
main()
{
        int *ptr=(int*)malloc(sizeof(int));
        *ptr=4;
        printf("%d",*ptr++);
}

123)
#include<stdio.h>
main()
{
        float x=3.14;
        printf("%e, %E, %f",x,x,x);
}

124)
#include<stdio.h>
int main(int k)
{
        if(k<10)
                printf("%d ",main(k+1));
        return k;
}

125)
#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++);
}

C Programming Puzzles 4

76)
#include <stdio.h>
#define MAXI 100
main(){
        int x=6,done,i;
        done=i=0;
        do
        {
                if((x/=2)>1)
                {i++; continue;}
                else
                        done++;
        }while ((i < MAXI) && !done);

        printf("%d %d\n",i,done);
}

77)
#include <stdio.h>
main()
{
        extern int i;
        i=20;
        printf("%d\n",sizeof(i));
}

78)
#include <stdio.h>
fun()
{
        printf("Yes\n");
}

#define fun()  printf("No\n")

main()
{
        fun();
        (fun)();
}

79)
#include <stdio.h>
main()
{
        int i = 1;
        switch(i) {
                printf("\nHello, ");
                case 1: printf("One, ");
                        i++;
                        break;
                case 2: printf("Two");
                        break;
        }
}

80)
#include <stdio.h>
#define DESHAWCURRENTDEBUGLEVEL 1
void main(void)
{
        int i = 10 ;
        int j = 15 ;

#ifdef DESHAWCURRENTDEBUGLEVEL
        printf("%d\n",i);
#else
        printf("%d\n",j);
#endif
}

81)
#include <stdio.h>
#define scanf "%s DE Shaw"
main()
{
        printf(scanf,scanf);
}

82)
#include <stdio.h>
main()
{
        char *p="abc";
        char *q="abc123";

        while(*p==*q)
        {
                printf("%c %c",*p,*q);
                p++;q++;
        }
}

83)
#include <stdio.h>
#define INTPTR int *
main()
{
        INTPTR pi, pj;
        int i,j;
        i=10;j=20;
        pi = &j;
        pj = &j;
        j++;
        i= *pi;
        printf("%d,",i);
        j++;
//      i= *pj;
        printf("%d",pj);
}

84)
#include <stdio.h>
#include<string.h>
main()
{
        char strp[] = "Never ever say no";
        char *chp, c='e';
        int i,j;
        chp = strrchr(strp, c);
        i = chp-strp;
        for(j=0;j<=i;j++)printf("%c",strp[j]);
}

85)
#include <stdio.h>
main()
{
        char str[] ="abcdef";
        printf("str is %s",str);
        str = "DESIS";
        printf("str is %s",str);
}

86)
#include <stdio.h>
main()
{
        int i = 10;
        printf(" %d %d %d \n", ++i, i++, ++i);
}

87)
#include <stdio.h>
#include<string.h>
main()
{
        char *str ="India pvt. ltd.";
        char *str1 = "DESIS";
        printf("str is %s",str);
        printf("str is %s",str1);
        strcpy(str,str1);
        printf("str is %s",str);
}

88)
#include <stdio.h>
#include<string.h>
main()
{
        char str[] ="DESIS India pvt. ltd.";
        const char *str1= str;
        strcpy(str1,"DESHAW");
        printf("str is %s",str);
}

89)
#include <stdio.h>
main()
{
        int i=4,j=2,k=0;
        char c1='a',c2='b';
        if(k==0)printf("k is zero\n");
        else if(j==2)printf("j is 2\n");
        else if(i==4)printf("i is 4\n");
        if(c1!='a')printf("c1 is not a\n");
        else if (c2=='a')printf("c2 is b");
        else printf("Hello\n");
}

90)
#include <stdio.h>
main()
{
        int a[3] = {1,2,3};
        int i= 2;
        printf("\n %d %d\n", a[i], i[a]);
}

91)
#include <stdio.h>
void fun(int, int*);
main()
{
        int j,i;
        int * intptr;
        printf("enter an integer\n");
        scanf("%d",&i);
        intptr = &j;
        j = i;
        printf("i and j are %d %d \n",i,j);
        fun(j,intptr);
        printf("i is:%d",i);
        printf("\n j is:%d",j);
}
void fun(int k, int *iptr)
{
        k++;
        (*iptr)++;
        return;
}

92)
#include <stdio.h>
main()
{
        int x;
        x = printf("%d\n",x=printf("%d\n",100));
        printf("%d\n",x);
}

93)
#include <stdio.h>
main()
{
        int i;
        char c;
        for (i=0;i<5;i++){
                scanf("%d",&c);
                printf("%d",i);
        }
}

94)
#include <stdio.h>
main()
{
        int x = 10,y=2,z;
        z=x/*y+y*/+y;
        printf("%d\n",z);
}

95)
#include <stdio.h>
main()
{
        int a[] = {0,1,2,3,4};
        int *p[] = {a,a+1,a+2,a+3,a+4};
        int **pp = p;

        printf("%d, %d, %d ", *pp-a, pp-p, **pp);
        pp++; pp++;;++pp;*++pp;
        printf("%d, %d, %d ", pp-p, *pp-a, **pp);
}

96)
#include <stdio.h>
#include<stdlib.h>
#include<ctype.h>
main()
{
        int *p, *c, i;
        i = 5;
        p = malloc(sizeof(i));
        printf("\n%d",*p);
        *p = 10;
        printf("\n%d  %d",i,*p);
        c = calloc(2,i);
        printf("\n%d\n",*c);
}

97)
#include <stdio.h>
main()
{
        char input[] = "SSSWILTECH1\1\1";
        int i, c;
        for ( i=2; (c=input[i])!='\0'; i++)
        {
                switch(c)
                {
                        case 'a': putchar ('i'); continue;
                        case '1': break;
                        case 1: while (( c = input[++i]) != '\1' && c!= '\0');
                        case 9: putchar('S');
                        case 'E': case 'L': continue;
                        default: putchar(c);continue;
                }
                putchar(' ');
        }
        putchar('\n');
}

98)
#include <stdio.h>
main()
{
        unsigned int k = 987 , i = 0;
        char trans[10];

        do
        {
                trans[i++]  = (k%16 > 9) ? (k%16 - 10 + 'a') : (k%16 - '0' );

        } while(k /= 16);

        for(i=0;i<10;i++)
                printf("%c", trans[i]);
}

99)
#include <stdio.h>

main()
{
        unsigned int k = 987 , i = 0;
        char trans[10];

        do {
                trans[i++]  = (k%16 > 9 ? k%16 - 10 + 'a' : k%16 - '0' );
                printf("%d %d\n",k,k%16);

        } while(k /= 16);

        printf("%s\n", trans);
}

100)
#include <stdio.h>
main()
{
        char *pk;
        const char* p;
        const char c = 'a';
        char c1='b';
        p=&c1;
        pk = &c;
        printf("%c %c",*pk,*p);
}

C Programming Puzzles 3

51)
#include <stdio.h>
main()
{
        int i = 3,j;
        j = add(++i);
        printf("i = %d *p= %d\n", i, j);
}

add(ii)
        int ii;
{
        ii++;
        printf("ii = %d\n", ii);
}

52)
#include <stdio.h>
#define DEBUG(args) (printf("DEBUG: "), printf args)

main()
{
        int n = 0,i = 0 ;
        printf("%d\n", n);
        if(n != 0) DEBUG(("n is %d\n", n));
        DEBUG(("%d",i));

}

53)
#include <stdio.h>
main()
{
        printf("hello");
        fork();
}

54)
#include <stdio.h>
#include<malloc.h>
#include<string.h>
main()
{
        char *s2, *s1 ;
//      s1 = malloc(sizeof(char) * 1000);
        s1 = "Hello, ";
//      s2 = malloc(sizeof(char) * 10);
        s2 = "world!";
        strcat(s1, s2);
        printf("%s", s2);
}

55)
#include <stdio.h>
char*s="char*s=%c%s%c;main(){printf(s,34,s,34);}";
main()
{
        printf(s,34,s,34);
}

56)

#include <stdio.h>
#include<string.h>
main()
{
        char *s1 = "alpha", *s2 = "alpha";
        if(!strcmp(s1,s2)) printf("yes\n");
}

57)
#include <stdio.h>
#define DEBUG(args) (printf("DEBUG: "), printf args)

main()
{
        int n = 10;
        if(n != 0) DEBUG(("n is %d\n", n));

}

58)
#include <stdio.h>
main()
{
        int i;
        struct
        {
                int left,y;
        }a;
        printf("%5d\n",a[i].left);
}

59)
#include <stdio.h>
main()
{
        char c1,c2,c3;
        c1 = getc(stdin);
        putc(c1,stdout);
//      c2 = getche();
//      putc(c2,stdout);
        c3 = getchar();
        putc(c3,stdout);
}

60)
#include <stdio.h>
#include<malloc.h>
struct test{
        int f;
};

struct test* f(struct test * (*fPtr)() )
{
        struct test *ptr = (struct test*) malloc(sizeof(struct test));
        return ptr;
}
main()
{
        f(f)->f;
}

61)
#include <stdio.h>
void print_in_reverse( char *str )
{
        if( *str == '\0' )
                return;

        print_in_reverse(str+1);

        printf( "%c" , *str );
}
main()
{
        print_in_reverse( "char *str" );
}

62)
#include <stdio.h>
#include<math.h>
//#define sqrt(x) (( x < 0) ? sqrt(-x) : sqrt(x))
main()
{
        int y;
        y = sqrt(-9);
        printf("%d",y);
}

63)
#include <stdio.h>
#define MAXI 100
main(){
        int done,i,x=6;
        done=i=0;
        for(i = 0; (i< MAXI) && (x/=2)>1; i++)
                done++;
        printf("%d %d\n",i,done);
}

64)
#include <stdio.h>
main()
{

        char    as[] = "\\0\0";

        int     i = 0;
        do{
                switch( as[i++]){
                        case '\\' : printf("A");
                                    break;
                        case 0   : printf("B");
                                   break;
                        default : printf("C");
                                  break;
                }
        }
        while(i<3);
}

65)
#include <stdio.h>
#define MAXI 100
main(){
        int done,i,x=6;
        done=i=0;
        while (i < MAXI && !done){
                if ((x/=2)>1){ i++; continue;}
                done++;
        }
        printf("%d %d\n",i,done);
}

66)
#include <stdio.h>
main()
{
        struct emp
        {       char name[20];
                int age;
                float sal;
        };
        struct emp e = {"Tiger"};
        printf("\n%d %f",e.age,e.sal);
}

67)
#include <stdio.h>
main()
{
        char str[] = "Taj is 2 miles away";
        int i;
        for(i=0;i<19;++i)
                if(isalpha(str[i]))printf("%c",toupper(str[i]));
}

68)
#include <stdio.h>
main()
{
        int c;

        while((c=getchar()) != 0){
                printf("%c",c);
        }
}

69)
#include <stdio.h>
f( )
{
        printf("I am f()");
}
extern f1();
main()
{
        int i=10;
        f1(i);
}

f1(int i )
{
        printf("the i value is %d",i);
        f();
}

70)
#include <stdio.h>
#define abs(x) x>0?x:-x
#define mabs(x) (((x)>=0)?(x):-(x))
int kabs(int);
main()
{
        printf("\n%d   %d",abs(10)+1,abs(-10)+1);
        printf("\n%d   %d",mabs(10)+1,mabs(-10)+1);
        printf("\n%d   %d\n",kabs(10)+1,kabs(-10)+1);
}
int kabs(int n)
{
        return(n>0? n: -n);

}

71)

#include <stdio.h>
        unsigned char
f(unsigned n)
{
        static const unsigned char table[64] = {
                0, 0, 0, 9, 0, 0, 10, 1, 0, 0, 0, 0, 0, 11, 2, 21, 7, 
                0,0, 0, 0, 0, 0,15, 0, 0, 12, 0, 17, 3, 22, 27,32, 8,
                0, 0,0, 0, 0, 20, 6, 0, 0, 14,0, 0, 16, 26,31, 0, 0, 
                19, 5, 13,0, 25, 30, 18, 4, 24, 29, 23, 28, 0
        };
        return table[((n & -n) * 0x1d0d73df) >> 26];
}
main()
{
        printf("%c",f(8));
}

72)
#include <stdio.h>
int myfunc(char *str)
{
        char *ptr =str;
        while(*ptr++);
        return ptr-str-1;
}
main()
{
        printf("length is %d", myfunc("DESIS"));
}

73)
#include <stdio.h>
struct _tag
{
        int i;
        union
        {
                int a;
                int b;
        }c;
} a;

main()
{
        a.c.a=10;
        printf("test %d\n",a.c.b);
}

74)
#include <stdio.h>
main()
{
        int a=10,b;
        b=a>=5?100:200;
        printf("%d\n",b);
}

75)
#include <stdio.h>
main()
{
        int a;

        a = (1,45,012);

        printf("%d", a);
}

C Programming Puzzles 2

26)
#include <stdio.h>
main()
{
 int i ;
 i = 1;
 i= i+2*i++;
 printf("i is now %d",i);
}

27)
#include <stdio.h>
#define MAX(x,y) (x) >(y)?(x):(y)
main()

{
 int i=10,j=5,k=0;
 k=  MAX(i++,++j);
 printf("%d..%d..%d",i,j,k);
}

28)
#include <stdio.h>
main()
{
 const int i = 100;
 int *p = &i;
 *p = 200;
 printf("%d\n",i);

}

29)
#include <stdio.h>
static int count;
void f(int n)
{
 int i;
 for(i =1;i<=n;i++)
  f(n-i);
 count++;
}
main()
{
 extern int count;
 f(5);
 printf("%d",count);
}

30)
#include <stdio.h>
void test(int , int *);
main()
{
 int * iptr, j, k = 2;
 iptr = &j;
 j = k;
 printf( "%d %d ", k, j);
 test(j, iptr);
 printf("%d %d\n", k, j);
}
void test(int l, int *p)
{
 l++;
 (*p)++;
}

31)
#include <stdio.h>
main()
{
 char a= 'A';
 if( (a=='Z')||( (a='L')&&( a=='A')))
  a=a;
 printf("%c",a);
 printf(" Nothing ");
}

32)
#include <stdio.h>
int myfunc(char *str)
{
 char *ptr =str;
 while(*ptr++);
 return ptr-str-1;
}
main()
{
 printf("%d", myfunc("DESIS"));
}

33)
#include <stdio.h>
main(int sizeofargv, char *argv[])
{
 while(sizeofargv)
  printf("%s ",argv[--sizeofargv]);
}

34)
#include <stdio.h>
main()
{
 int x,y=1,z;
 if(x=z=y); x = 3;
 printf("%d %d %d\n",x,y,z);
 while (y<4) x+=++y;
 printf("%d %d\n",x,y);
}

35)
#include <stdio.h>
main()
{
 union {
  long l_e;
  float f_e;
 } u;

 long l_v;
 float f_v;
 l_v = u.l_e = 10;
 printf("%f ", (float)l_v);
 printf("%f ", u.f_e);
 f_v = u.f_e = 3.555;
 printf("%d ", (long)f_v);
 printf("%d ", u.l_e);
}

36)
#include <stdio.h>
main()
{
 char a[5] = "abcd";
 int b = 3;

 printf("%c\n",a[b]);
 printf("%c\n",((char *) b)[(int) a]);
}

37)
#include <stdio.h>
#define PRINTIFLESS(x,y) if((x) < (y)) printf("First is smaller");else
main()
{
 int i = 2, k =1;
 if(i>0 && k>0) PRINTIFLESS(i,k);
 else  printf("Numbers not greater than 0\n");

}

38)
#include <stdio.h>
#include<malloc.h>
main()
{
 int *iptr,*dptr, i;
 dptr = malloc(sizeof(i));
 iptr =&i ;
 *iptr = 10;
 free(iptr);
 *dptr = 20;
 /*dptr = iptr;*/
  free(dptr);
 printf("%d,%d,%d",*dptr,*iptr,i);
}

39)
#include <stdio.h>
main()
{
 char line[80];
 gets(line);
 puts(line);

}

40)
#include <stdio.h>
main()
{
 char c1;
 int i=0;
 c1='a';
 while(c1>='a' && c1 <='z')
 {
  c1++;
  i++;
 }
 printf("%d",i);
}

41)
#include <stdio.h>
main()
{
 char ch = 'A';
 while(ch <='F'){
  switch(ch){
   case 'A':case 'B':case 'C': case 'D': ch++; continue;
   case 'E': case 'F': ch++;
  }
  putchar(ch);
 }
}

42)
#include <stdio.h>

f(int x,int *y)
{
 x=*(y)+=2;
}

main()
{
 static int a[5] = {2,4,6,8,10};
 int i,b=5;
 for(i=0; i< 5;i++){
  f(a[i],&b);
  printf("%d %d\n",a[i],b);
 }
}

43)
#include <stdio.h>
main()
{
 FILE *fp1,*fp2;
 fp1 = fopen("one","w");
 fp2 = fopen("one","w");
 fputc('A',fp1);
 fputc('B',fp2);
 fclose(fp1);
 fclose(fp2);
}

44)
#include <stdio.h>
main()
{
 int a = 0xff;
 if(a<<4>>12)
  printf("Right");
 else
  printf("Wrong");
}

45)
#include <stdio.h>
main()
{
 enum _tag{ left=10, right, front=100, back};
 printf("left is %d, right is %d, front is %d, back is %d",left,right,front,back);
}

46)
#include <stdio.h>
main()
{
 char *arr = "This is to test";
 printf("\n%c %c ",*(arr), *(arr++));

}

47)
#include <stdio.h>
main()
{
 int I =-3, j=2, k = 0,m;
 m = ++I && ++j && ++k;
 printf("\n%d %d %d %d", I, j, k, m);
}

48)
#include <stdio.h>
#define MAX 20

main()
{
 FILE *fp1, *fp2;
 char *this1, *this2;
 fp1 = fopen("ip1.dat","r");
 if(fp1==NULL)printf("file open error\n");

 fp2 = fopen("ip2.dat","r");
 if(fp2==NULL)printf("file open error\n");

 if((getline(this1,fp1)!=0) && (getline(this2,fp2)!=0)){
  if(strcmp(this1,this2))
   continue;
  else { printf("lines do not match\n"); break;}
 }
}
int getline(char *line, FILE *fp)
{
 if(fgets(line,MAX, fp) == NULL)
  return 0;
 else
  return strlen(line);
}

49)
#include <stdio.h>
main()
{
 FILE *fp;
 fp = fopen("testbuf.txt", "wt");
 fwrite("1. This is fwrite\n",1, 18, fp);
 write(fileno(fp),  "2.This is write\n", 17);
 fclose(fp);
}

50)
#include <stdio.h>
#define PR(a)   printf("a = %d\t",(int) (a));
#define PRINT(a)  PR(a); putchar('\n');
#define FUDGE(k)        k + 3.14

main()
{
 int x = 2;
 PRINT( x * FUDGE(2));
}

C Programming Puzzles

C programming is very important topic for freshers, interviewers usually asks questions from C,C++,Data structures when it comes to programming. So i am starting this Topic , i will gather some good puzzles and keep on continuing this topic. I will also post the answers to the puzzles listed here soon.

The puzzles mostly covers on typo mistakes, basic understanding of some C concepts , i will explain the answers tho these puzzles covering those concepts also, And please use comment section.

A small poll here, should i post the answers just below each puzzle or should i post the answer in some other post and link it from here. I will post the answers in 3 days.Poll through comments.

 
1)
#include <stdio.h>

main()
{
 auto int i = 0;
 printf("%d\n",i);

 {
  int i = 2;
  printf("%d\n",i);
  {
   i+=1;
   printf("%d\n",i);
  }
  printf("%d\n",i);
 }
 printf("%d\n",i);
 printf("%d\n",reset());
 printf("%d\n",ret10());
 printf("%d\n",reset());
 printf("%d\n",ret10());
}


int reset()
{
 int j = 0;
 return(j);
}

int ret10()
{
 static int i = 10;
 i+=1;
 return(i);
}


2)
#include <stdio.h>
#include<string.h>
main()
{
 struct emp1
 {
  char *name;
  int age;
 };
 struct emp2
 {
  char *cp;
  struct emp1 e1;
 }e2 = {"ghi",{"jkl",123}};

 struct emp1 e3 = {"rwer",2341};
 printf("\n%s %d\n",e3.name,e3.age);
 printf("\n%s %s %d\n",e2.cp,e2.e1.name,e2.e1.age);
}

3)
#include <stdio.h>
struct xyz
{
 int xyz ;
}
;

main()
{
 union xyz
 {
  int xyz;
 }
 ;
}

4)
#include <stdio.h>
main()
{
 char s[] = "Bouquets and Brickbats";
 printf("\n%c, ",*(&s[2]));
 printf("%s, ",s+5);
 printf("\n%s",s);
 printf("\n%c",*(s+2));
}

5)
#include <stdio.h>
#include <stdio.h>
struct s
{
 char *st;
 struct s *sptr;
};
main()
{
 int i;
 struct s *p[3];
 static struct s a[]={
  {"abcd",a+1},
  {"pqrs",a+2},
  {"stuv",a}
 };
 for( i=0;i<3;i++ )
  p[i] = a[i].sptr;
 swap(*p,a);
 printf("%s %s %s \n",p[0]->st,(*p)->st, (*p)->sptr->st);
}

swap(p1,p2)
struct s *p1,*p2;
{
 char *temp;
 temp = p1->st;
 p1->st = p2->st;
 p2->st = temp;
}

6)
#include <stdio.h>
Swap( int *x , int *y)
{
 int tmp = *x ;
 *x = *y ;
 *y = tmp;
}
main()
{
 int a = 1, b = 2;
 Swap(&a, &b);
 printf("%d %d\n", a, b);
}

7)
#include <stdio.h>
main()
{
 int i;
 scanf("%d",&i);
 switch(i) {
  printf("\nHello");
  case 1: printf("\none");
  break;
  case 2: printf("\ntwo");
  break;
 }
}

8)
#include <stdio.h>
main()
{
 int x;
 x = 3;
 f(x);
 printf("MAIN");

}

f(int n)
{
 printf("F");
 if (n != 0)
  f(n-1);
}


9)
#include <stdio.h>
main()
{
 int ptr[] = {1,2,23,6,5,6};
 char str[] = {'a','b','c','d','e','f','g','h'};

 printf("pointer differences are %ld, %d",&ptr[3], &str[3]-&str[0]);
}

10)
#include <stdio.h>
main()
{
 char a,b,c;
 scanf("%c %c %c",&a,&b,&c);
 printf("%c %c %c ", a, b, c);
 }

11)
#include <stdio.h>
#define PRINT(int) printf( "int = %d ", int)
main()
{
 int x=03,y=02,z=01;
 PRINT (x | y & ~z);
 PRINT (x & y && z);
 PRINT (x ^ (y & ~z));
}

12)
#include <stdio.h>
main()
{
 int a = 10000;
 char b='c';
 int i,j;

 printf("%d,%d",printf("%d\n",a),printf("%c\n",b));
}

13)
#include <stdio.h>
#define PR(a)   printf("%d\t",(int) (a));
#define PRINT(a,b,c) PR(a);PR(b);PR(c);
#define MAX(a,b) (a<b?b:a)
main(){
 int x = 1,y = 2;
 PRINT(MAX(x++,y),x,y);
 PRINT(MAX(x++,y),x,y);
}

14)
#include <stdio.h>
main()
{
 unsigned int i=1;
 for(;i>=0;i--)  printf("hello: %u\n",i);
}

15)
#include <stdio.h>
main()
{
 struct ist{
  int x;
  int y;
};

 struct list{
  int x;
  struct ist next;
 }head;
  head.x = 100;
  head.next.x=10;
  printf("%d %d", head.x,head.next.x);
}

16)
#include <stdio.h>
main()
{
 typedef union
 {
  struct
  {
   char c1,c2;
  } s;
  long j;
  float x;
 } U;

 U example;
 example.s.c1 = 'a';
 example.s.c2 = 'b';
   example.j = 5;
 printf("%c %c %d", example.s.c1, example.s.c2, example.j);
}

17)
#include <stdio.h>
main()
{
 struct s1
 {       char *str;
  struct s1 *ptr;
 };
 static struct s1 arr[] = { {"Hyderabad",arr+1},{"Bangalore",arr+2},
{"Delhi",arr}};
 struct s1 *p[3];
 int i;

 for(i=0;i<=2;i++)
  p[i] = arr[i].ptr;

 printf("%s\n",(*p)->str);
 printf("%s\n",(++*p)->str);
 printf("%s\n",((*p)++)->str);
}

18)
#include <stdio.h>
main()
{
 struct s1
 {       char *str;
  struct s1 *ptr;
 };
 static struct s1 arr[] = {{"Hyderabad",arr+1},
  {"Bangalore",arr+2},
  {"Delhi",arr}
 };
 struct s1 *p[3];
 int i;

 for(i=0;i<=2;i++)       p[i] = arr[i].ptr;

 printf("%s  ",(*p)->str);
 printf("%s ",(++*p)->str);
 printf("%s ",((*p)++)->str);
}

19)
#include <stdio.h>
main()
{
 char input[] = "SSSWILTECH1\1\1";
 int i, c;
 for ( i=2; (c=input[i])!='\0'; i++){
  switch(c){
   case 'a': putchar ('i'); continue;
   case '1': break;
   case 1: while (( c = input[++i]) != '\1' && c!= '\0');
   case 9: putchar('S');
   case 'E': case 'L': continue;
   default: putchar(c);continue;
  }
  putchar(' ');
 }
 putchar('\n');
}

20)
#include <stdio.h>
main()
{
 int i, n, m, b, x[25];
 int f1(int, int, int j[25]);
 for(i=0;i<25;i++) x[i] = i;
 i=0; m = 24;
 b=f1(i, m, x);
 printf("res %d\n",b);
}

int f1( int p, int q, int a[25])
{
int m1,m2;
if (q==0)
 return(a[p]);
 else
 { 
 m1 = f1 (p, q/2, a);
 m2 = f1(p+q/2+1,q/2,a);
 if(m1<m2)
  return (m2);
 else
  return(m1);
 }
}

21)
#include <stdio.h>
main()
{
 int a[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12} ;
 int i,j,k=99 ;
 for(i=0;i<3;i++)
  for(j=0;j<4;j++)
  if(a[i][j] < k) k = a[i][j];
 printf("%d", k);
}

22)
#include <stdio.h>
main()
{
 int a,b,c;
 for (b=c=10;a= "Love Your INDIA \
                           TFy!QJu ROo TNn(ROo)SLq SLq ULo+UHs UJq TNn*
RPn/QPbEWS_JSWQAIJO^NBELP\
                           eHBFHT}TnALVlBLOFAKFCFQHFOQIAIREETMSQGCSQOU
HATFAJKSbEALGSkMCSlOASn^r\
                           ^r\\tZvYxXyT|S~Pn SPm SOn TNn 
ULo0ULo#ULo-WHq!WFs XDt!"[b+++6];)
  while(a-->64) putchar (++c=='Z'?c=c/9:33^b&1);
}

23)
#include <stdio.h>
main()
{
 char *p = "hello world!";
 *(p+0) = 'H';
 printf("%s",p);
}

24)
#include <stdio.h>
main()
{
 unsigned int m[] = { 0x01,0x02, 0x04, 0x08,0x10, 0x20, 0x40, 0x80};
 unsigned int n,i;
 printf("%d",m[7]);
 scanf("%d",&n);
 for(i=0;i<=7;i++)
 {  if (n& m[i])
  printf("\nyes");
  else
   printf("\nno");
 }
}

25)
#include <stdio.h>
main()
{
 int a,b=2,c;
 int *pointer;
 c = 3;
 pointer = &c;
 a = c/*pointer*/;
 b = c /* assigning 3 to b*/;
 printf("a = %d; b = %d", a,b);
}

solve them and comment the solutions.