Thursday 20 April 2017

Some C program for practice

Predict the output or error(s) for the following:


C aptitude 1.1







void main()
{
            int  const * p=5;
            printf("%d",++(*p));

}


Explanation: p is a pointer to a "constant integer". But we tried to change the value of the "constant integer".

C aptitude 1.2








main()
{
            char s[ ]="man";
            int i;
            for(i=0;s[ i ];i++)
            printf("\n%c%c%c%c",s[ i ],*(s+i),*(i+s),i[s]);
}


Explanation: s[i], *(i+s), *(s+i), i[s] are all different ways of expressing the same idea. Generally array name is the base address for that array. Here s is the base address. i is the index number/displacement from the base address. So, indirecting it with * is same as s[i]. i[s] may be surprising. But in the case of C it is same as s[i].

C aptitude 1.3










main()
{
            float me = 1.1;
            double you = 1.1;
            if(me>=you)
              printf("I love U");
             else
                        printf("I hate U");
}

No comments:

Post a Comment