Você está na página 1de 6

27/10/2023, 14:41 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – ...

UNIP EAD CONTEÚDOS ACADÊMICOS BIBLIOTECAS MURAL DO ALUNO TUTORIAIS

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO 6654-120_57501_R_E1_20232_01 CONTEÚDO Revisar envio do teste: QUESTIONÁRIO UNIDADE VI

Usuário LARISSA MESQUITA DA SILVA


Curso LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO
Teste QUESTIONÁRIO UNIDADE VI
Iniciado 27/10/23 14:08
Enviado 27/10/23 14:41
Status Completada
Resultado da tentativa 0,9 em 1 pontos
Tempo decorrido 33 minutos
Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários, Perguntas respondidas incorretamente

Pergunta 1 0 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.

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 < n; w++) {
if (s3[w] == s1[i]) {
encontrado = 1;
break;
}
}
if (encontrado == 0) {
s3[n] = s1[i];
n++;

https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_99619159_1&course_id=_310547_1&content_id=_3642837_1&retu… 1/6
27/10/2023, 14:41 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – ...
break;
}
}
}
}
s3[n] = '\0';
return s3;
}

Resposta c.
Selecionada: Recebe por parâmetro duas cadeias s1 e s2 e retorna uma nova cadeia s3 que contém todos os caracteres que
aparecem em s1 e em s2.

Respostas: a.
Recebe por parâmetro duas cadeias s1 e s2 e retorna uma nova cadeia s3 que contém todas as vogais que aparecem em
s1 e em s2.

b.
Recebe por parâmetro duas cadeias s1 e s2 e retorna uma nova cadeia s3 que contém todas as consoantes que
aparecem em s1 e em s2.

c.
Recebe por parâmetro duas cadeias s1 e s2 e retorna uma nova cadeia s3 que contém todos os caracteres que
aparecem em s1 e em s2.

d. Lê duas cadeias s1 e s2 e retorna uma nova cadeia s3 que é a maior cadeia entre s1 e em s2.

e. Lê duas cadeias s1 e s2 e retorna uma nova cadeia s3 que é a menor cadeia entre s1 e em s2.

Comentário da Resposta: C
resposta: Comentário: a função recebe por parâmetro duas cadeias s1 e s2 (ponteiros para char) e retorna uma nova cadeia s3
(ponteiro para char), concatenando as duas cadeias em uma só, ou seja, juntando todos os caracteres de s1 e de s2 em s3.

Pergunta 3 0,1 em 0,1 pontos

Analise o programa escrito em Linguagem C que possui uma função incr_vetor() que recebe um ponteiro para um inteiro e um inteiro. Assinale a
alternativa que apresenta a saída correta do programa:
#include <stdio.h>

void incr_vetor (int *v , int tam) {


int i;
for (i = 0; i < tam; i++)
v[i]++;
}

void main ()
{
int a[ ] = {1, 3, 5};
incr_vetor(a, 3);
printf("%d %d %d\n", a[0], a[1], a[2]);
}

Resposta Selecionada: a. 2 4 6.

Respostas: a. 2 4 6.

b. 0 1 2.

c. 1 2 3.

d. 1 3 5.

e. 3 6 9.

Comentário da Resposta: A
resposta: Comentário: o programa possui uma função incr_vetor(int *v , int tam) que recebe um ponteiro para um inteiro e um
inteiro, tendo como saída do programa os valores 2 4 6, pois os elementos do vetor serão incrementados dentro da
função.

Pergunta 4 0,1 em 0,1 pontos

Ao declarar um vetor, para dimensioná-lo, é necessário saber de antemão quantos elementos deveriam compô-lo. Temos de prever o número
máximo de elementos no vetor durante o processo da codificação.

Com base nesses dados, avalie as afirmações seguintes:


I. O predimensionamento do vetor é um fator que limita a programação.
II. Podemos superdimensionar o vetor, pois nunca estamos sujeitos a ter falta de memória.

https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_99619159_1&course_id=_310547_1&content_id=_3642837_1&retu… 2/6
27/10/2023, 14:41 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – ...
III. Podemos reservar a memória, isto é, solicitar ao programa que aloque dinamicamente um espaço na memória durante sua execução.

É correto apenas o que se afirma em:

Resposta Selecionada: e. I e III, apenas.

Respostas: a. I, apenas.

b. II, apenas.

c. III, apenas.

d. I e II, apenas.

e. I e III, apenas.

Comentário da Resposta: E
resposta: Comentário: visando a resolver o problema de “prever” o número máximo de elementos em um vetor, uma solução seria
superdimensionar o seu tamanho para tentar contornar essa falta de elementos livres durante a execução do programa.
Porém, isso acarreta desperdício de memória, o que é inaceitável em diversas aplicações, principalmente nos aplicativos
portáteis, em que sempre estamos sujeitos a ter falta de memória.

Pergunta 5 0,1 em 0,1 pontos

Considere o programa a seguir escrito em Linguagem C que deve receber uma string
de caracteres e uma letra. Para isso, o programa possui uma função que devolve um vetor de inteiros contendo as posições (índices no vetor da
string) em que a letra foi encontrada e um inteiro contendo o tamanho do vetor criado (total de letras iguais encontradas). Para que o programa
execute corretamente a sua função, é preciso adicionar comandos nas linhas 11 e 25, respectivamente. Assinale a alternativa que apresenta
corretamente esses comandos:

Resposta Selecionada: indices = (int *) malloc(n* sizeof(int));


b. indices = acha_caractere(frase, 'a', &n);

Respostas: indices = (int) malloc(n sizeof(int));


a. indices = acha_caractere(frase, 'a', &n);

indices = (int *) malloc(n* sizeof(int));


b. indices = acha_caractere(frase, 'a', &n);

indices = (int *) malloc(n* sizeof(int));


c. indices = acha_caractere(frase, 'a', n);

indices = (int *) malloc(n* sizeof(int));


d. indices = acha_caractere(frase, 'a', *n);

indices = (int ) malloc(n sizeof(int));


e. indices = acha_caractere(frase, 'a', n);

Comentário da Resposta: B
resposta: Comentário: o programa possui uma função – linhas 4 a 20. Porém, na linha 11 é preciso alocar memória para os índices e
na linha 25 chamar a função acha_caractere(), passando as informações necessárias (frase, 'a', &n) por parâmetro,
retornando os índices – linha 19.

Pergunta 6 0,1 em 0,1 pontos

https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_99619159_1&course_id=_310547_1&content_id=_3642837_1&retu… 3/6
27/10/2023, 14:41 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – ...

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 <stdio.h>

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: E
resposta: 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 as entradas 0, 1 e 5 e assinale a alternativa que
apresenta corretamente a saída para cada uma das entradas.

#include <stdio.h>

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: D
resposta: 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).

https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_99619159_1&course_id=_310547_1&content_id=_3642837_1&retu… 4/6
27/10/2023, 14:41 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – ...

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 <stdio.h>

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: A
resposta: 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 <stdio.h>

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: B
resposta: 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)).

https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_99619159_1&course_id=_310547_1&content_id=_3642837_1&retu… 5/6
27/10/2023, 14:41 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – ...

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 <stdio.h>
#include <string.h>

void main()
{
char *a, *b;
*a = "abacate";
*b = "uva";
if (strcmp(a, b) < 0 )
printf ("%s vem antes de %s no dicionário \n", a, b);
else
printf ("%s vem depois de %s no dicionário \n", a, b);
}

Resposta Selecionada: c. As variáveis “a” e “b” não precisavam ser ponteiros na atribuição de valores.

Respostas: a. O teste da condicional nunca pode ser menor que 0.

b. Estão faltando as chaves para identificar os blocos na condicional.

c. As variáveis “a” e “b” não precisavam ser ponteiros na atribuição de valores.

d. As variáveis “a” e “b” deveriam ser declaradas como string e não char.

e. O programa não possui erro.

Comentário da Resposta: C
resposta: Comentário: as variáveis “a” e “b” não precisaria ser ponteiros na atribuição de valores, tendo dessa forma um erro de
sintaxe. Uma solução desse problema seria:
#include <stdio.h>
#include <string.h>

void main()
{
char *a, *b;
a = "abacate";
b = "uva";
if (strcmp(a,b) < 0 )
printf ("%s vem antes de %s no dicionário \n", a, b);
else
printf ("%s vem depois de %s no dicionário \n", a, b);
}

Sexta-feira, 27 de Outubro de 2023 14h41min20s BRT ← OK

https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_99619159_1&course_id=_310547_1&content_id=_3642837_1&retu… 6/6

Você também pode gostar