type your search

Wednesday, January 18, 2012

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

No comments:

Post a Comment