Exercício – Linguagem C
Responda às questões a seguir.
Funções
1. Implementar a função INVERTE que recebe um número unsigned int como parâmetro e retorna
este número escrito ao contrário. Ex: 431 <-> 134.
2. Implementar a função doublé POWER (double base, doublé expoente), que retorna o valor de
base elevado a expoente. Dicas:
a. Transformar o expoente em uma razão de inteiros (multiplicando ambos por 10 até o
numerador ficar inteiro).
b. Simplificar a razão de inteiros com sucessivas divisões de numerador e denominador.
c. Calcular basenumerador
d. Calcular (basenumerador)1/denominador . Utilizar a função de raiz anteriormente
implementada.
e. Se basenumerador estourar a faixa dos doublé, dividir numerador e denominador por 10 e
repetir.
f. Se numerador for negativo, resultado é 1/resultado.
3. Fazer uma função que recebe um mês e um ano como parâmetros e retorna o número de dias
daquele mês daquele ano. Dica: um ano é bissexto quando é múltiplo de 4 e não múltiplo de 100,
ou também quando é múltiplo de 400.
4. Faça uma função que recebe, por parâmetro, a hora de inicio e a hora de término de um jogo,
ambas subdivididas em 2 valores distintos: horas e minutos. A função deve retornar, a duração do
jogo em minutos, considerando que o tempo máximo de duração de um jogo é de 24 horas e que
o jogo pode começar em um dia e terminar no outro.
Recursividade
5. Escreva a função para cálculo do N-ésimo termo da série de Fibonacci utilizando recursividade.
6. Implementar a função EXP com as seguintes características:
a. Recebe um valor de base e um valor de expoente como parâmetros do tipo unsigned int.
b. Recebe o endereço de uma variável, do tipo unsigned int, em cujo conteúdo será
armazenado o resultado de baseexpoente.
c. Retorna 1 se foi bem sucedida e 0 se a exponenciação não pôde ser calculada devido a
estouro.
d. Utiliza a característica recursiva da exponenciação:
i. Baseexp = base.baseexp-1 , exp > 0
ii. Baseexp = 1, exp ==0
7. Considere uma partida de futebol entre duas equipes A x B, cujo placar final é m x n, em que m e
n são números de gols marcados por A e B, respectivamente. Escreva um algoritmo recursivo que
imprima todas as possíveis sucessões de gols marcados. Por exemplo, para um placar final de 3 x
1, as possíveis sucessões de gols são “AAAB”, “AABA”, “ABAA” e “BAAA”.