Open In App

Output of C Programs | Set 7

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Predict the output of below programs
Question 1 
 

c




int main()
{
    int i = 0;
    while (i <= 4)
    {
       printf("%d", i);
       if (i > 3)
        goto inside_foo;
       i++;
    
    getchar();
    return 0;
}
 
void foo()
{
   inside_foo:
     printf("PP");
}


Output: Compiler error: Label “inside_foo” used but not defined.
Explanation: Scope of a label is within a function. We cannot goto a label from other function.

Question 2 
 

c




#define a 10
int main()
{
  #define a 50
  printf("%d",a);
   
  getchar();
  return 0;
}


Output: 50
Preprocessor doesn’t give any error if we redefine a preprocessor directive. It may give warning though. Preprocessor takes the most recent value before use of and put it in place of a.
Now try following 
 

c




#define a 10
int main()
{
  printf("%d ",a); 
  #define a 50
  printf("%d ",a);
   
  getchar();
  return 0;
}


Question 3 
 

c




int main()
{
     char str[] = "geeksforgeeks";
     char *s1 = str, *s2 = str;    
     int i;
      
     for(i = 0; i < 7; i++)
     {
        printf(" %c ", *str);
        ++s1;    
     }
      
     for(i = 0; i < 6; i++)
     {
        printf(" %c ", *s2);
        ++s2;    
      }
     
      getchar();
      return 0;
}


Output 
g g g g g g g g e e k s f
Explanation 
Both s1 and s2 are initialized to str. In first loop str is being printed and s1 is being incremented, so first loop will print only g. In second loop s2 is incremented and s2 is printed so second loop will print “g e e k s f “

Question 4 
 

c




int main()
{
    char str[] = "geeksforgeeks";
    int i;
    for(i=0; str[i]; i++)
        printf("\n%c%c%c%c", str[i], *(str+i), *(i+str), i[str]);
    
    getchar();
    return 0;
}


Output: 
gggg 
eeee 
eeee 
kkkk 
ssss 
ffff 
oooo 
rrrr 
gggg 
eeee 
eeee 
kkkk 
ssss
Explanation: 
Following are different ways of indexing both array and string.
arr[i] 
*(arr + i) 
*(i + arr) 
i[arr]
So all of them print same character.

Question 5 
 

c




int main()
{
    char *p;
    printf("%d %d ", sizeof(*p), sizeof(p));
    
    getchar();
    return 0;
}


Output: Compiler dependent. I got output as “1 4”
Explanation: 
Output of the above program depends on compiler. sizeof(*p) gives size of character. If characters are stored as 1 byte then sizeof(*p) gives 1. 
sizeof(p) gives the size of pointer variable. If pointer variables are stored as 4 bytes then it gives 4. 
 



Last Updated : 19 Jan, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads