Nossa, quase uma hora para entender kkk Mas como vimos a resposta letra B: @Fávio (Almeida)@
Depois que você entende que o texto da função a vai ficar entre parêntesis () e o texto da função b vai ficar entre dois @@, é só se concentrar no return da função c
return b(nome+" "+a(sobrenome));
Onde tanto nome como sobrenome ficam dentro dos parêntesis da função b, logo ambos ficarão entre @@, porém apenas o sobrenome fica dentro dos parêntesis da função a, logo apenas o sobrenome ficará entre ().
Vi um post aqui no fórum que perguntaram como ficaria o código para obter o resultado @Flávio@ (Almeida)
E mais uma vez é só se concentrar no return da função c
return b(nome)+" "+a(sobrenome);
Para obter o resultado da letra A: @(Flávio Almeida)@ é só ir pro return da função c de novo
return b(a(nome+" "+sobrenome));
E para o resultado da letra C: (Flávio @Almeida@) ,return da função c novamente
return a(nome+" "+b(sobrenome));
Espero ter ajudado alguém. Bons estudos para todos nós!! =D