Pointers GATE CS PYQ Quiz

Last Updated :
Discuss
Comments

Question 1

Consider the following C program.

C
#include <stdio.h>
struct Ournode {
  char x, y, z;
};

int main() {
  struct Ournode p = {'1', '0', 'a' + 2};
  struct Ournode *q = &p;
  printf("%c, %c", *((char *)q + 1), *((char *)q + 2));
  return 0;
}

The output of this program is:

  • 0, c

  • 0, a+2

  • '0', 'a+2'

  • '0', 'c'

Question 2

Consider the following C program

C++
#include <stdio.h>
int main ()  {
    int  a[4] [5] = {{1, 2, 3, 4, 5},
                    {6, 7,8, 9, 10},
                    {11, 12, 13, 14, 15},
                    {16, 17,18, 19, 20}};
    printf(%d\n, *(*(a+**a+2)+3));
    return(0);
}

The output is

  • 19

  • 18

  • 20

  • 3

Question 3

Consider the following C program:

C
#include <stdio.h>
void fun1(char *s1, char *s2) {
  char *temp;
  temp = s1;
  s1 = s2;
  s2 = temp;
}
void fun2(char **s1, char **s2) {
  char *temp;
  temp = *s1;
  *s1 = *s2;
  *s2 = temp;
}
int main() {
  char *str1 = "Hi", *str2 = "Bye";
  fun1(str1, str2);
  printf("%s %s", str1, str2);
  fun2(&str1, &str2);
  printf("%s %s", str1, str2);
  return 0;
}

The output of the program above is

  • Hi Bye Bye Hi

  • Hi Bye Hi Bye

  • Bye Hi Hi Bye

  • Bye Hi Bye Hi

Question 4

What does the following program print?
 

C
#include
void f(int *p, int *q)
{
  p = q;
 *p = 2;
}
int i = 0, j = 1;
int main()
{
  f(&i, &j);
  printf("%d %d \n", i, j);
  getchar();
  return 0;
}
  • 2 2

  • 2 1

  • 0 1

  • 0 2 

Question 5

What is printed by the following ANSI C program? 

#include<stdio.h> 
int main(int argc, char *argv[])
{
int x = 1, z[2] = {10, 11};
int *p = NULL;
p = &x;
*p = 10;
p = &z[1];
*(&z[0] + 1) += 3;
printf("%d, %d, %d\n", x, z[0], z[1]);
return 0;
}
  • 1, 10, 11 

  • 1, 10, 14 

  • 10, 14, 11

  • 10, 10, 14 

Question 6

Consider the following function implemented in C:

void printxy(int x, int y)
{
    int *ptr;
    x = 0;
    ptr = &x;
    y = *ptr;
    *ptr = 1;
    printf("%d,%d", x, y);
}

The output of the printxy(1,1) is

  • 0,0

  • 0,1

  • 1,0

  • 1,1

Question 7

Consider the C program shown below.
C
#include <stdio.h>
#define print(x) printf("%d ", x)
int x;
void Q(int z)
{
    z += x;
    print(z);
}
void P(int *y)
{
    int x = *y + 2;
    Q(x);
    *y = x - 1;
    print(x);
}
main(void)
{
    x = 5;
    P(&x);
    print(x);
}
The output of this program is
  • 12 7 6

  • 22 12 11

  • 14 6 6

  • 7 6 6

Question 8

What does the following C-statement declare? [1 mark]

C
int ( * f) (int * ) ;
  • A function that takes an integer pointer as argument and returns an integer.

  • A function that takes an integer as argument and returns an integer pointer.

  • A pointer to a function that takes an integer pointer as argument and returns an integer.

  • A function that takes an integer pointer as argument and returns a function pointer

Question 9

Consider the following C program segment. 
 

C
# include <stdio.h>
int main( )
{
    char s1[7] = "1234", *p;
    p = s1 + 2;
    *p = '0' ;
    printf ("%s", s1);
}

What will be printed by the program?
 

  • 12 

  • 120400

  • 1204

  • 1034

Question 10

Consider the following C program.

C
void f(int, short);
void main()
{
  int i = 100;
  short s = 12;
  short *p = &s;
  __________ ;   // call to f()
}

Which one of the following expressions, when placed in the blank above, will NOT result in a type checking error?

  • f(s, *s)

  • i = f(i,s)

  • f(i,*s)

  • f(i,*p)

There are 28 questions to complete.

Take a part in the ongoing discussion