Prévia do material em texto
Usuário
Curso LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO
Teste QUESTIONÁRIO UNIDADE VI
Iniciado 26/11/24 23:39
Enviado 27/11/24 00:15
Status Completada
Resultado da
tentativa
1 em 1 pontos
Tempo
decorrido
35 minutos
Resultados
exibidos
Todas as respostas, Respostas enviadas, Respostas corretas, Comentários, Perguntas
respondidas incorretamente
Pergunta 1
0,1 em 0,1 pontos
A função troca() recebe dois ponteiros e faz a troca dos valores entre duas variáveis, porém esse
código possui um erro. Assinale a alternativa que corresponda ao erro nesta função:
void troca (int *i, int *j)
{
int *temp;
*temp = *i;
*i = *j;
*j = *temp;
}
Resposta Selecionada: d.
A variável "temp" não precisava ser um ponteiro.
Respostas: a.
As variáveis "i" e “j” não precisavam ser um ponteiro.
b.
A variável “i” deveria ser um contador.
c.
A variável “j” deveria acumular o valor de “i”.
d.
A variável "temp" não precisava ser um ponteiro.
e.
Não existe nenhum erro na função.
Comentário
da resposta:
Resposta: D
Comentário: a variável "temp" não precisava ser um ponteiro, já que apenas precisa
armazenar um valor inteiro, sem precisar apontar para algum lugar. O código correto
seria:
void troca (int *i, int *j) {
int temp;
temp = *i;
*i = *j;
*j = temp;
}
Pergunta 2
0,1 em 0,1 pontos
Analise a função caracteres() e identifique a alternativa que melhor descreve a tarefa executada por
ela. Faça um teste manual para compreender a lógica do programa.
char * caracteres(char *s1, char *s2) {
int i, j, w, n = 0, encontrado;
char *s3;
for (i = 0; s1[i] != '\0'; i++) {
for (j = 0; s2[j] != '\0'; j++) {
if (s1[i] == s2[j]) {
n++;
break;
}
}
}
s3 = malloc((n + 1) * sizeof(char));
n = 0;
for (i = 0; s1[i] != '\0'; i++) {
for (j = 0; s2[j] != '\0'; j++) {
if (s1[i] == s2[j]) {
encontrado = 0;
for (w = 0; w
void incr_vetor (int *v , int tam) {
int i;
for (i = 0; i
int f1(int n)
{
if (n == 0)
return (1);
else
return(n * f1(n-1));
}
void main(){
int a, b;
printf("Digite um valor inteiro:");
scanf("%d", &a);
b = f1(a);
printf("%d \n", b);
}
Resposta Selecionada: e.
1, 1, 120.
Respostas: a.
0, 1, 5.
b.
1, 2, 3.
c.
5, 10, 15.
d.
10, 20, 120.
e.
1, 1, 120.
Comentário
da resposta:
Resposta: E
Comentário: o programa executa a função f1() de forma recursiva retornando com o
resultado quando o n foi igual a zero. Enquanto o valor de n for diferente de zero, a
função é chamada de forma recursiva pelo código return(n * f1(n-1));
Pergunta 7
0,1 em 0,1 pontos
O programa a seguir tem como objetivo calcular o fatorial de um número n. Considere asentradas
0, 1 e 5 e assinale a alternativa que apresenta corretamente a saída para cada uma das entradas.
#include
void f2(int n)
{
if (n == 0)
printf("zero ");
else
{
printf("%d ", n);
f2(n-1);
}
}
void main(){
int a;
printf("Digite um valor inteiro:");
scanf("%d", &a);
f2(a);
}
Resposta Selecionada: d.
Zero; 1 Zero; 5 4 3 2 1 Zero
Respostas: a.
0; 0 1; 0 1 2 3 4 5
b.
0; 1 0; 5 4 3 2 1 0
c.
1; 1 2; 1 2 3 4 5
d.
Zero; 1 Zero; 5 4 3 2 1 Zero
e.
Zero; Zero 1; Zero 1 2 3 4 5
Comentário
da resposta:
Resposta: D
Comentário: o programa executa a função f2() de forma recursiva retornando com o
resultado quando o n foi igual a zero. Enquanto o valor de n for diferente de zero, a
função é chamada de forma recursiva pelo código f2(n-1).
Pergunta 8
0,1 em 0,1 pontos
O programa a seguir tem como objetivo calcular o fatorial de um número n. Considere as entradas
0, 1 e 5 e assinale a alternativa que apresenta corretamente a saída para cada uma das entradas.
#include
int func (int n)
{
if (n == 0)
return(0);
return(n + func(n-1));
}
void main(){
int a, b;
printf("Digite um valor inteiro:");
scanf("%d", &a);
b= func(a);
printf ("%d \n", b);
}
Resposta Selecionada: a.
0, 1, 15.
Respostas: a.
0, 1, 15.
b.
0, 0, 3.
c.
1, 1, 15.
d.
1, 2, 3.
e.
3, 2, 1.
Comentário
da resposta:
Resposta: A
Comentário: o programa executa a função func() de forma recursiva retornando com
o resultado quando o n foi igual a zero. Enquanto o valor de n for diferente de zero, a
função é chamada de forma recursiva pelo código return(n + func(n-1)).
Pergunta 9
0,1 em 0,1 pontos
O programa a seguir tem como objetivo calcular o fatorial de um número n. Considere as entradas
0, 1 e 5 e assinale a alternativa que apresenta corretamente a saída para cada uma das entradas.
#include
int func (int n)
{
if (n == 0)
return(0);
return(3*n + func(n-1));
}
void main(){
int a, b;
printf("Digite um valor inteiro:");
scanf("%d", &a);
b= func(a);
printf ("%d \n", b);
}
Resposta Selecionada: b.
0, 3, 45.
Respostas: a.
0, 1, 15.
b.
0, 3, 45.
c.
1, 1, 15.
d.
0, 3, 15.
e.
1, 3, 9.
Comentário
da resposta:
Resposta: B
Comentário: o programa executa a função func() de forma recursiva retornando com
o resultado quando o n foi igual a zero. Enquanto o valor de n for diferente de zero, a
função é chamada de forma recursiva pelo código return(3*n + func(n-1)).
Pergunta 10
0,1 em 0,1 pontos
O programa realiza comparações entre duas strings
verificando qual das duas aparece primeiro no dicionário, porém há um erro neste código. Assinale
a alternativa que apresenta o erro no programa a seguir:
#include
#include
void main()
{
char *a, *b;
*a = "abacate";
*b = "uva";
if (strcmp(a, b)
#include
void main()
{
char *a, *b;
a = "abacate";
b = "uva";
if (strcmp(a,b)