The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+6 votes
1.1k views

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 invoking printxy(1,1) is

  1. 0, 0
  2. 0, 1
  3. 1, 0
  4. 1, 1

 

asked in Programming by Active (2k points)
edited by | 1.1k views
already solved

7 Answers

+14 votes
Best answer

at first in loop we are giving x=0 then ptr is pointing to X.

so *ptr=0

now we copying the value of ptr to y ,so Y=0

 x=0;      //value of x = 0  
    ptr= &x;      // ptr points to variable x
    y= *ptr;      // Y contain value pointed by ptr i.e. x= 0;


now value of ptr is changed to 1. so the location of X itself got modified

 *ptr=1;  

as it is pointing to x so x will also be changed to 1

so 1,0 will be the value

 C is correct answer here

answered by Veteran (20.5k points)
selected by
+2 votes
we got x= 1 and y= 1;
void printxy(int x, int y) 
{  
    int *ptr;     //pointer is created which contain integer value.
    x=0;          //value of x = 0 here. 
    ptr= &x;      // ptr point to variable which has 0 
    y= *ptr;      // y contain value pointed by ptr i.e. x= 0;
    *ptr=1;       // value pointer by ptr is now set to 1 i.e. x= 1;
    printf("%d,%d",x,y);  // print x,y = x= 1 y=0

}

C is answer

answered by Veteran (55.6k points)
0 votes
C) 1,0
answered by Active (1.4k points)
0 votes

1,0 is the answer

answered by (91 points)
0 votes

hope it might help.......

answered by Veteran (19.6k points)
0 votes
Option C
answered by Loyal (2.6k points)
0 votes
C is the answer
answered by (313 points)


Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

29,157 questions
36,984 answers
92,154 comments
34,823 users