S1: False
S2:True
if we pass address NULL to px and NULL to py then there can be segmentation fault at runtime
S3: False
reason1:If we give address of single integer to both px and py
e.g
x=10;
swap(&x,&x) i.e.
px=&x
py=&x
now
$*px = *px - *py;$
it will make x=0
$*py = *px + *py;$
x will still remain 0
$*px = *py - *px;$
x will still remain 0
so no swapping occurred
reason2:if we have very large two integer e.g
x=-32,768(max negative no. that int datatype can hold)
y=32,767(max positive no. that int datatype can hold)
now on calling swap(&x,&y)
*px = *px - *py
this line does $-32,768-32,768=65535$
int cannot hold 65535 so overflow occurred and it won’t swap the numbers
S4:True
S5:False
Answer(c)