All mock tests are FREE till 31 December — register to save your progress
Unit 3 · Programming Languages and Computer Graphics Paper 2 CS · June 2024 (Re-Exam)

#include<stdio.h>
void f1(char *x, char *y) {
char *t1;
t1 = x;
x = y;
y = t1;
}
void f2(char **x, char **y) {
char *t1;
t1 = *x;
*x = *y;
*y = t1;
}
int main() {
char *a = "ONE", *b = "TWO";
f1(a, b);
printf("%s %s ", a, b);
f2(&a, &b);
printf("%s %s", a, b);
return 0;
}

Pick an option to check yourself, or open the answer below.

Show answer & explanation

Correct answer: A. ONE TWO TWO ONE

Explanation

f1 swaps only its local copies of the pointers, so main still prints ONE TWO. f2 receives the addresses of a and b and swaps the pointers themselves, so the second print is TWO ONE.

More Programming Languages and Computer Graphics questions