Pointer and Structure in C · Programming Languages · GATE CSE

Start Practice

Marks 1

1

Consider the following C function definition.

 int fX(char *a) {

   char *b = a; 

   while(*b) 
        b++; 

   return b - a; }  

Which of the following statements is/are TRUE?

GATE CSE 2024 Set 2
2

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

GATE CSE 2022
3

Consider the following ANSI C program.

#include<stdio.h>

int main(){

int arr[4][5];

int i, j;

for(i =0; i<4; i++){

for (j =0; j<5; j++){

arr [i][j] = 10*i + j;

}

}

print("%d", *(arr[1] + 9));

return 0;

}

What is the output of the above program?

GATE CSE 2021 Set 2
4
Consider the following C program :

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


The number that will be displayed on execution of the program is _______.
GATE CSE 2019
5
Consider the following C program.
#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:
GATE CSE 2018
6
Consider the following C program
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?
GATE CSE 2016 Set 1
7
Consider the following C program.
#include < stdio.h >
    void mystery(int *ptra, int *ptrb) {
    int *temp;
    temp = ptrb;
    ptrb = ptra;
    ptra = temp;
}
int main() {
    int a=2016, b=0, c=4, d=42;
    mystery(&a, &b);
    if (a < c)
       mystery(&c, &a);
    mystery(&a, &d);
    printf("%d\n", a);
}
The output of the program is _____________.
GATE CSE 2016 Set 1
8
The output of the following C program is__________.

void f1(int a, int b) { 
int c; 
c=a; a=b; b=c; 
}

void f2(int *a, int *b) { 
int c; 
c=*a; *a=*b; *b=c; 
}

int main(){ 
int a=4, b=5, c=6; 
f1(a,b); 
f2(&b, &c); 
printf(“%d”,c-a-b); 
}
GATE CSE 2015 Set 1
9
What does the following fragment of C-program print?
char c[ ] = "GATE2011";
char *p = c;
printf("%s", p + p[3] - p[1]);
GATE CSE 2011
10
What does the following program print?
#include < stdio.h >
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);
     return 0;
}
GATE CSE 2010
11
What does the following C statement declare?
int (*f)(int *);
GATE CSE 2005
12
Consider the following C function:
void swap (int a, int b)
{
   int temp;
   temp = a;
   a = b;
   b = temp;
}
In order to exchange the values of two variables x and y.
GATE CSE 2004
13
Assume the following C variable declaration

int * A[10], B[10][10];

Of the following expressions

I. A[2]
II. A[2] [3]
III. B[1]
IV. B[2] [3]

Which will not give compile-time errors if used as left hand sides of assignment statements in a C program?
GATE CSE 2003
14
The most appropriate matching for the following pairs

X: m=malloc(5); m= NULL;
Y: free(n); n->value = 5;
Z: char *p; *p='a';

1: using dangling
2: using uninitialized pointers
3. lost memory
is:
GATE CSE 2000
15
Consider the following C declaration
struct {
      short s[5];
      union {
      float y;
      long z;
      } u;
}t;
Assume that objects of the type short, float and long occupy 2 bytes, 4 bytes and 8 bytes, respectively. The memory requirement for variable t, ignoring alignment considerations, is
GATE CSE 2000
16
The following C declarations
struct node{
  int i:
  float j;
};
struct node *s[10];
define s to be
GATE CSE 2000

Marks 2

1

What is the output of the following C program?


#include <studio.h>
int main() {
  double a[2]={20.0, 25.0}, *p, *q;
  p = a;
  q = p + 1;
  printf("%d,%d", (int)(q - p), (int)(*q - *p));
  return 0;}
GATE CSE 2024 Set 2
2

Consider the following ANSI C program:

#include <stdio.h>

#include <stdlib.h>

struct Node{

int value;

struct Node ⋆next;};

int main(){

struct Node ⋆boxE, ⋆head, ⋆boxN; int index = 0;

boxE = head = (struct Node ⋆) malloc (sizeof(struct Node));

head -> value = index;

for (index = 1; index <=3; index++){

boxN = (struct Node ⋆) malloc(sizeof(struct Node));

boxE -> next = boxN;

boxN -> value = index;

boxE = boxN; }

for (index = 0; index <= 3; index++) {

printf("value at index %d is %d\m", index, head -> value);

head = head -> next;

printf("value at index %d is %d\n", index + 1, head -> value);}}

Which one of the statement below is correct about the program ?

GATE CSE 2021 Set 2
3
Consider the following C program:

       #include < stdio.h >
       int main()
       {
           int a[] = {2, 4, 6, 8, 10} ;
           int i, sum = 0, *b = a + 4 ;
           for (i = 0; i < 5; i++)
                 sum = sum + (*b - i) - *(b - i) ;
           printf ("%d\n", sum) ;
           return 0 ;
        }

The output of the above C program is _________.
GATE CSE 2019
4
Consider the following C program:
#include< stdio.h >
void fun1(char *s1, char *s2){
  char *tmp;
  tmp = s1;
  s1 = s2;
  s2 = tmp;
}
void fun2(char **s1, char **s2){
  char *tmp;
  tmp = *s1;
  *s1 = *s2;
  *s2 = tmp;
}
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
GATE CSE 2018
5
What is the output of the following C code? Assume that the address of x is 2000 (in decimal) and an integer requires four bytes of memory.
int main () { 
unsigned int x[4][3] = 
          {{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; 
          printf(“%u, %u, %u”, x+3, *(x+3), *(x+2)+3); 
}
GATE CSE 2015 Set 1
6
Consider the following C code segment.
int a, b, c = 0;
void prtFun(void);
main( )
{ 
   static int a = 1; /* Line 1 */
   prtFun();
   a + = 1;
   prtFun();
   printf("\n %d %d ", a, b);
}
void prtFun(void)
{ 
   static int a=2;   /* Line 2 */
   int b=1;
   a+ = ++b;
   printf("\n %d %d ", a, b);
}
What output will be generated by the given code segment if:
Line 1 is replaced by auto int a = 1;
Line 2 is replaced by register int a = 2;
GATE CSE 2012
7
Consider the following C code segment.
int a, b, c = 0;
void prtFun(void);
main( )
{ 
   static int a = 1; /* Line 1 */
   prtFun();
   a + = 1;
   prtFun();
   printf("\n %d %d ", a, b);
}
void prtFun(void)
{ 
   static int a=2;   /* Line 2 */
   int b=1;
   a+ = ++b;
   printf("\n %d %d ", a, b);
}
What output will be generated by the given code segment?
GATE CSE 2012
8
What is printed by the following C program?
#include < stdio.h >
int f(int x, int *py, int **ppz)
{
   int y, z;
  **ppz += 1; 
   z  = **ppz;
  *py += 2;
   y = *py;
   x += 3;
   return x + y + z;
}
 
void main()
{
   int c, *b, **a;
   c = 4;
   b = &c;
   a = &b; 
   printf( "%d", f(c,b,a));
   getchar();
}
GATE CSE 2008
9
Consider this C code to swap two integers and these five statements:
void swap(int *px, int *py) 
{ 
    *px = *px - *py; 
    *py = *px + *py; 
    *px = *py - *px; 
}
S1: will generate a compilation error

S2: may generate a segmentation fault at runtime depending on the arguments passed

S3: correctly implements the swap procedure for all input pointers referring to integers stored in memory locations accessible to the process

S4: implements the swap procedure correctly for some but not all valid input pointers

S5: may add or subtract integers and pointers.
GATE CSE 2006
10
Consider the following C program segment:
char p[20];
char *s = "string";
int length = strlen(s);
for(i=0; i < length; i++)
  p[i] = s[length-i];
printf("%s",p);
The output of the program is
GATE CSE 2004
11
Consider the C program shown below.
#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
GATE CSE 2003
12
Consider the following three C functions:
[P1] int*g(void)
     {
       int x=10;
       return(&x);
     }
[P2] int*g(void)
      {
        int *px;
       *px = 10;
        return px;
      }
[P3] int*g(void)
     {
       int *px
       px =(int*)malloc (size of (int));
       *px = 10;
       return px;
     }
Which of the above three functions are likely to cause problems with pointers?
GATE CSE 2001

Marks 5

EXAM MAP
Medical
NEETAIIMS
Graduate Aptitude Test in Engineering
GATE CSEGATE ECEGATE EEGATE MEGATE CEGATE PIGATE IN
Civil Services
UPSC Civil Service
Defence
NDA
Staff Selection Commission
SSC CGL Tier I
CBSE
Class 12