Trace: What is the output of the following program? char a = 'A'; char *p = &a; void fun1 (char b) { b = 'b'; printf("%c %c %c\n", a, b, *p); } void fun2 (char *p1) { char a = 'x'; *p = 'b'; *p1 = 'P'; printf("%c %c %c\n", a, *p1, *p); } void fun3(char b1, char *b2) { b1 = a; p = b2; printf("%c %c %c\n", a, b1, *p); } int main () { char b = 'B'; printf("%c %c %c\n", a, b, *p); fun1(b); printf("%c %c %c\n", a, b, *p); fun2(&b); printf("%c %c %c\n", a, b, *p); fun3(b, &b); printf("%c %c %c\n", a, b, *p); b = 'r'; a = 'j'; *p = 't'; printf("%c %c %c\n", a, b, *p); return(0); }