GATE CS 2018 Set 1 — Question 39
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MCQ+2 / -0.67EasyPointers & Pointer ArithmeticC ProgrammingProgramming & Data Structures
Programming & Data Structures → C Programming → Pointers & Pointer Arithmetic
Last updated
Question
Consider the following C program:The output of the program above is
#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;
}
Correct answer
(A) Hi Bye Bye Hi
Solution
Let's trace the execution of the program:
1.
char *str1 = "Hi", *str2 = "Bye"; initializes two pointers to string literals.2.
fun1(str1, str2); is called. In C, arguments are passed by value. fun1 receives copies of the pointers str1 and str2. Swapping these local copies s1 and s2 inside fun1 has no effect on the original pointers str1 and str2 in main. 3.
printf("%s %s ", str1, str2); prints the original values: Hi Bye (note the trailing space).4.
fun2(&str1, &str2); is called. This passes the addresses of the pointers str1 and str2 (pass-by-reference using pointers to pointers). 5.Inside
fun2, *s1 refers to str1 and *s2 refers to str2. The code swaps the values stored at these addresses. Thus, str1 now points to "Bye" and str2 points to "Hi".6.
Combining the outputs: printf("%s %s", str1, str2); prints the updated values: Bye Hi.Hi Bye Bye Hi. The correct option is (A).Continue learning with Success Tracker
A step still unclear? Work through it with support
Use Success Tracker to ask about the reasoning, then try another GATE CS question to check your understanding.
AI-powered practice· Unlimited practice on eligible plans
- PYQs with solutions
- Attempt available previous-year questions, then compare your reasoning with the worked solution. Coverage varies by stream.
- Practice that adapts
- Choose a topic, work on weaker areas and bookmark questions to revisit. Your attempts feed your progress tracking.
- AI doubt support
- Ask follow-up questions about a step or concept while practising, instead of stopping at the final answer.
Unlimited practice is available on eligible plans. Free practice and AI usage have limits; check the current plan allowances before choosing.
This page stays readable without an account. AI responses can be wrong; check them against the solution and source material.
More questions on C Programming
2026 Set 2 Q12The set T represents various traversals over binary tree. The set S represents the order of…2026 Set 2 Q19Consider the following three ANSI-C programs, P1, P2, and P3. P1 [code] P2 [code] **P3**…2026 Set 1 Q23Let be an odd number greater than 100. Consider a binary minheap with elements stored in an…2026 Set 1 Q24Consider a hash table that is initially empty. The hash table is maintained…2026 Set 1 Q27Consider the following C statements: Which of the following options is/are correct? [figure]