Declare um vetor a de 5 ints inicializado com {10, 20, 30, 40, 50}.
int a[[1]] = {[2]};
[1]: [2]:
Resposta: 5, 10, 20, 30, 40, 50
Q17laço sobre vetor
O que isso imprime?
int a[5] = {1, 2, 3, 4, 5};
int sum =0;
for (int i =0; i <5; i++)
if (a[i] %2==0) sum += a[i];
printf("%d\n", sum);
Saída:
Resposta: 6
Q18terminador NUL
Escreva o terminador de string em C (como aparece no código-fonte).
Resposta: \\0
Q19funções de string
Preencha os nomes das funções da biblioteca padrão.
// concatenar[1](dst, src);
// comprimentosize_t len =[2](s);
// comparar (0 se iguais)if ([3](a, b) ==0) { }
[1]: [2]: [3]:
Resposta: strcat, strlen, strcmp
Q20sizeof 2D
Para int m[3][4];, dê o número de elementos e sizeof(m) (assuma int = 4).
elementos: sizeof(m):
Resposta: 12, 48
Q21vetor para função
Escreva o protótipo de uma função que recebe um vetor de int e seu tamanho e retorna a soma.
Resposta: int sum(int a[], int n);
Q22tamanho de vetor de char
Para char s[] = "Hello";, dê sizeof(s) e strlen(s).
sizeof: strlen:
Resposta: 6, 5
Funções, recursão, escopo
Q23protótipo
Escreva o protótipo de uma função add(a, b) que recebe dois ints e retorna um int.
Resposta: int add(int a, int b);
Q24return
Qual palavra-chave retorna um valor de uma função?
if (a > b) [1] a;
else[1] b;
[1]:
Resposta: return
Q25recursão
Complete a função fatorial.
intfact(int n) {
if (n <=1) return[1];
return n *fact([2]);
}
[1]: [2]:
Resposta: 1, n - 1
Q26Fibonacci
Dado fib(0)=0 e fib(1)=1, quanto é fib(6)?
fib(6) =
Resposta: 8
Q27passagem por valor
O que é impresso para a e b depois de swap()?
voidswap(int x, int y) { int t = x; x = y; y = t; }
int a =3, b =5;
swap(a, b);
printf("%d %d", a, b);
Saída:
Resposta: 3 5
Q28escopo
Depois do bloco interno, qual é o valor de x?
int x =10;
{ int x =20; }
printf("%d", x);
Saída:
Resposta: 10
Q29global
O que isso imprime?
int g =0;
voidadd(int x) { g += x; }
intmain(void) {
add(3); add(4);
printf("%d", g);
}
Saída:
Resposta: 7
Q30static
O que é impresso depois de 3 chamadas?
voidcount(void) {
staticint n =0;
n++;
printf("%d ", n);
}
Saída:
Resposta: 1 2 3
Resultado do Bloco B: não corrigido
C. Ponteiros e Avançado
ponteiro, struct, malloc, bitwise, misto (Q31-45)
Pontuação: 0/15
Ponteiros, struct, memória dinâmica
Q31fundamentos de ponteiro
Crie um ponteiro para n e depois some 10 através do ponteiro.
int n =100;
int[1]p =[2]n;
[3]p +=10;
[1]: [2]: [3]:
Resposta: *, &, *
Q32vetor vs ponteiro
Marque todas as afirmações corretas.
A: o nome de um vetor é o endereço do primeiro elemento.
B: a[i] é equivalente a *(a+i).
C: sizeof(a) sempre é igual a sizeof(&a[0]).
D: dentro de uma função, sizeof em um parâmetro de vetor dá o tamanho de um ponteiro.
Resposta:
Resposta: A, B, D
Q33acesso a struct
Preencha os operadores de acesso a membro corretos.
struct Point { int x, y; };
struct Point p = {3, 4};
printf("%d", p[1]x);
struct Point *pp =&p;
printf("%d", pp[2]y);
[1]: [2]:
Resposta: ., ->
Q34malloc/free
Aloque n ints e depois libere-os.
int*a = (int*)[1](n *sizeof(int));
[2](a);
[1]: [2]:
Resposta: malloc, free
Q35swap por ponteiros
Complete a função swap.
voidswap(int[1]x, int[1]y) {
int t =[2]x;
[2]x =[2]y;
[2]y = t;
}
swap([3]a, [3]b);