Logo Passei Direto
Buscar
(COMPERVE-2016) Analise o trecho de código em C a seguir. #include int comp(int a, int b) { if (b == 0) return a; else return comp(b,a%b); } int main() { printf("%d",comp(15,20)); } O valor impresso após a execução desse código é

A) 1
B) 20
C) 0
D) 15
E) 5
User badge image
Exercícios Para o Conhecimento

ano passado

Respostas

User badge image

Ed Verified user icon

há 4 meses

Vamos analisar o código fornecido. O trecho de código em C implementa a função `comp`, que parece ser uma implementação do algoritmo de Euclides para calcular o máximo divisor comum (MDC) entre dois números. A função `comp` funciona da seguinte maneira: - Se `b` é igual a 0, retorna `a`. Isso significa que o MDC foi encontrado. - Caso contrário, chama a função recursivamente com `b` e o resto da divisão de `a` por `b` (`a % b`). No `main`, a função é chamada com os valores 15 e 20: 1. `comp(15, 20)`: - `b` (20) não é 0, então chama `comp(20, 15 % 20)` → `comp(20, 15)`. 2. `comp(20, 15)`: - `b` (15) não é 0, então chama `comp(15, 20 % 15)` → `comp(15, 5)`. 3. `comp(15, 5)`: - `b` (5) não é 0, então chama `comp(5, 15 % 5)` → `comp(5, 0)`. 4. `comp(5, 0)`: - Aqui, `b` é 0, então retorna `a`, que é 5. Portanto, o valor impresso após a execução do código é 5. A alternativa correta é: E) 5.

Essa resposta te ajudou?

0
Dislike0
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar essa resposta. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

User badge image

Ed Verified user icon

ano passado

O valor impresso após a execução desse código é E) 5. O código apresentado é uma função recursiva que calcula o máximo divisor comum (MDC) entre dois números inteiros a e b. Na função comp, o algoritmo utiliza o algoritmo de Euclides para calcular o MDC. Na função main, a função comp é chamada com os valores 15 e 20 como argumentos. O resultado da função comp(15,20) é 5, que é o MDC entre 15 e 20. Em seguida, o valor 5 é impresso na tela com o comando printf("%d",comp(15,20));.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Essa pergunta também está no material:

Mais perguntas desse material

Considerando a linguagem C, identifique como verdadeiras (V) ou falsas (F) as seguintes afirmativas. ( ) Uma função não pode ter espaço em branco na definição de seu nome, formando, por exemplo, nome como ‘valor total’. ( ) As funções podem retornar apenas um valor, ou seja, apenas uma referência para um tipo de dados (uma variável, uma constante, uma referência de memória). ( ) O número máximo de argumentos de uma função é 10. ( ) A estrutura de uma função deve ser limitada ao programa principal a qual será chamada, ou seja, só pode conter os mesmos elementos que já contem em seu programa principal. Assinale a alternativa que apresenta a sequência correta, de cima para baixo.

A) F – F – F – F.
B) V – V – V – V.
C) V – F – V – F.
D) F – F – V – V.
E) V – V – F – F.

Utilizamos o comando return no final das funções para:

A) cumprir com um requisito obrigatório no uso de funções.
B) nada, este comando não tem uma função específica
C) interromper o fluxo de execução da função retornando ao estado anterior à chamada da mesma
D) determinar o valor das variáveis locais da função
E) voltar algumas linhas de código e executar novamente a função

Avalie a seguintes afirmativas e marque a alternativa correta. I – O retorno de uma função especifica o tipo do valor que o comando return da função devolve. II – O que diferencia a declaração de uma função por uma variável são os parêntesis utilizados nas funções. III – Variáveis declaradas dentro de uma função são denominadas variáveis locais.

A) Apenas I e III estão corretas
B) Apenas I e II estão corretas
C) Apenas II está correta
D) Todas as alternativas estão corretas
E) Apenas I está correta

Mais conteúdos dessa disciplina