Quiz 3 — Funções e Modularização

Avaliação das Aulas 13 a 17

20
Questões
5
Aulas cobertas
14/20
Aprovação (70%)
Cobre: Funções (declaração, definição, chamada) · Categorias de função · Call by Value e Call by Reference · Escopo de variáveis · Recursão · Protótipos e arquivos .h

Aula 13 — Funções: Declaração, Definição e Chamada

Questões 1 a 4

Aula 13

1. Qual é a diferença entre declaração e definição de uma função em C?

Aula 13

2. Qual é a saída do programa abaixo?

#include <stdio.h>
void saudar() { printf("Ola!"); }
int main() {
    saudar();
    saudar();
    return 0;
}
Aula 13

3. Uma função declarada como int calcular(int a, int b) deve obrigatoriamente:

Aula 13

4. O que faz a instrução return; (sem valor) dentro de uma função void?

Aula 14 — Categorias de Função · Call by Value · Call by Reference

Questões 5 a 8

Aula 14

5. Qual é a saída?

#include <stdio.h>
void f(int x) { x = 99; }
int main() {
    int a = 5;
    f(a);
    printf("%d", a);
}
Aula 14

6. Qual é a saída?

#include <stdio.h>
void dobrar(int *p) { *p = *p * 2; }
int main() {
    int x = 5;
    dobrar(&x);
    printf("%d", x);
}
Aula 14

7. Por que a função minMax abaixo usa ponteiros em vez de retornar os valores?

void minMax(int v[], int tam, int *minimo, int *maximo);
Aula 14

8. Ao passar um array int notas[] para uma função sem usar &, o que é efetivamente passado?

Aula 15 — Escopo de Variáveis

Questões 9 a 12

Aula 15

9. Qual é a saída?

#include <stdio.h>
int x = 5;
void f() { int x = 10; printf("%d ", x); }
int main() { f(); printf("%d\n", x); }
Aula 15

10. Qual é a saída?

#include <stdio.h>
void contar() {
    static int n = 0;
    n++;
    printf("%d ", n);
}
int main() { contar(); contar(); contar(); }
Aula 15

11. Qual é o valor inicial de uma variável float global que não foi inicializada explicitamente?

Aula 15

12. Qual é a principal diferença entre uma variável local static e uma variável global?

Aula 16 — Recursão

Questões 13 a 16

Aula 16

13. Qual é a saída?

#include <stdio.h>
int f(int n) {
    if (n == 0) return 0;
    return n + f(n - 1);
}
int main() { printf("%d", f(5)); }
Aula 16

14. Qual é a saída?

#include <stdio.h>
void f(int n) {
    if (n == 0) return;
    f(n - 1);
    printf("%d ", n);
}
int main() { f(4); }
Aula 16

15. Por que a implementação recursiva de Fibonacci é considerada ineficiente para valores grandes de n?

Aula 16

16. Em qual situação a recursão é claramente preferível à iteração?

Aula 17 — Protótipos de Funções e Arquivos de Cabeçalho (.h)

Questões 17 a 20

Aula 17

17. Qual das opções abaixo é um protótipo válido em C?

Aula 17

18. Por que o inclusion guard (#ifndef / #define / #endif) é necessário num arquivo .h?

Aula 17

19. Qual é a diferença entre #include "meuarquivo.h" e #include <stdio.h>?

Aula 17

20. Por que a recursão mútua (função A chama B, B chama A) exige protótipos em C?

—
de 20 questões corretas
—

Desempenho por Aula

Gabarito Detalhado

Continuar para a Aula 18 →