Prévia do material em texto
27/11/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_53340134_1&course_id=_115302_1&content_id=_1545682_1&return_c… 1/10
Revisar envio do teste: QUESTIONÁRIO UNIDADE VI
LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO 6654-120_57501_R_20202 CONTEÚDO
Usuário CASSIANO UECHI
Curso LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO
Teste QUESTIONÁRIO UNIDADE VI
Iniciado 27/11/20 23:25
Enviado 27/11/20 23:25
Status Completada
Resultado da
tentativa
1 em 1 pontos
Tempo decorrido 0 minuto
Resultados
exibidos
Todas as respostas, Respostas enviadas, Respostas corretas, Comentários, Perguntas
respondidas incorretamente
Pergunta 1
Resposta Selecionada: a.
Respostas: a.
b.
c.
d.
e.
Feedback
da
resposta:
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;
}
As variáveis "i" e “j” não precisavam ser um ponteiro.
As variáveis "i" e “j” não precisavam ser um ponteiro.
A variável “i” deveria ser um contador.
A variável “j” deveria acumular o valor de “i”.
A variável "temp" não precisava ser um ponteiro.
Não existe nenhum erro na função.
Resposta: A
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:
UNIP EAD BIBLIOTECAS MURAL DO ALUNO TUTORIAISCONTEÚDOS ACADÊMICOS
0,1 em 0,1 pontos
http://company.blackboard.com/
https://ava.ead.unip.br/webapps/blackboard/execute/courseMain?course_id=_115302_1
https://ava.ead.unip.br/webapps/blackboard/content/listContent.jsp?course_id=_115302_1&content_id=_1545449_1&mode=reset
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_10_1
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_27_1
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_47_1
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_29_1
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_25_1
https://ava.ead.unip.br/webapps/login/?action=logout
27/11/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_53340134_1&course_id=_115302_1&content_id=_1545682_1&return_c… 2/10
void troca (int *i, int *j) {
int temp;
temp = *i;
*i = *j;
*j = temp;
}
Pergunta 2
Resposta
Selecionada:
c.
Analise a função caracteres() e identi�que 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++;
break;
}
}
}
}
s3[n] = '\0';
return s3;
}
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.
0,1 em 0,1 pontos
27/11/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_53340134_1&course_id=_115302_1&content_id=_1545682_1&return_c… 3/10
Respostas: a.
b.
c.
d.
e.
Feedback
da
resposta:
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.
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.
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.
Lê duas cadeias s1 e s2 e retorna uma nova cadeia s3 que é a maior cadeia
entre s1 e em s2.
Lê duas cadeias s1 e s2 e retorna uma nova cadeia s3 que é a menor cadeia
entre s1 e em s2.
Resposta: C
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
Resposta Selecionada: a.
Respostas: a.
b.
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]);
}
2 4 6.
2 4 6.
0 1 2.
0,1 em 0,1 pontos
27/11/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_53340134_1&course_id=_115302_1&content_id=_1545682_1&return_c… 4/10
c.
d.
e.
Feedback
da
resposta:
1 2 3.
1 3 5.
3 6 9.
Resposta: A
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
Resposta Selecionada: e.
Respostas: a.
b.
c.
d.
e.
Feedback
da
resposta:
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 codi�cação.
Com base nesses dados, avalie as a�rmaçõ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.
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 a�rma em:
I e III, apenas.
I, apenas.
II, apenas.
III, apenas.
I e II, apenas.
I e III, apenas.
Resposta: E
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.
0,1 em 0,1 pontos
27/11/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_53340134_1&course_id=_115302_1&content_id=_1545682_1&return_c… 5/10
Pergunta 5
Resposta Selecionada:
b.
Respostas:
a.
b.
c.
d.
e.
Feedback
da
resposta:
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:
indices = (int *) malloc(n* sizeof(int));
indices = acha_caractere(frase, 'a', &n);
indices = (int) malloc(n sizeof(int));indices = acha_caractere(frase, 'a', &n);
indices = (int *) malloc(n* sizeof(int));
indices = acha_caractere(frase, 'a', &n);
indices = (int *) malloc(n* sizeof(int));
indices = acha_caractere(frase, 'a', n);
indices = (int *) malloc(n* sizeof(int));
indices = acha_caractere(frase, 'a', *n);
indices = (int ) malloc(n sizeof(int));
indices = acha_caractere(frase, 'a', n);
Resposta: B
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
0,1 em 0,1 pontos
27/11/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_53340134_1&course_id=_115302_1&content_id=_1545682_1&return_c… 6/10
acha_caractere(), passando as informações necessárias (frase, 'a', &n) por
parâmetro, retornando os índices – linha 19.
Pergunta 6
Resposta Selecionada: e.
Respostas: a.
b.
c.
d.
e.
Feedback
da
resposta:
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);
}
1, 1, 120.
0, 1, 5.
1, 2, 3.
5, 10, 15.
10, 20, 120.
1, 1, 120.
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
0,1 em 0,1 pontos
27/11/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_53340134_1&course_id=_115302_1&content_id=_1545682_1&return_c… 7/10
Resposta Selecionada: d.
Respostas: a.
b.
c.
d.
e.
Feedback
da
resposta:
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);
}
Zero; 1 Zero; 5 4 3 2 1 Zero
0; 0 1; 0 1 2 3 4 5
0; 1 0; 5 4 3 2 1 0
1; 1 2; 1 2 3 4 5
Zero; 1 Zero; 5 4 3 2 1 Zero
Zero; Zero 1; Zero 1 2 3 4 5
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
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>
0,1 em 0,1 pontos
27/11/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_53340134_1&course_id=_115302_1&content_id=_1545682_1&return_c… 8/10
Resposta Selecionada: a.
Respostas: a.
b.
c.
d.
e.
Feedback
da
resposta:
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);
}
0, 1, 15.
0, 1, 15.
0, 0, 3.
1, 1, 15.
1, 2, 3.
3, 2, 1.
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
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;
0,1 em 0,1 pontos
27/11/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_53340134_1&course_id=_115302_1&content_id=_1545682_1&return_c… 9/10
Resposta Selecionada: b.
Respostas: a.
b.
c.
d.
e.
Feedback
da
resposta:
printf("Digite um valor inteiro:");
scanf("%d", &a);
b= func(a);
printf ("%d \n", b);
}
0, 3, 45.
0, 1, 15.
0, 3, 45.
1, 1, 15.
0, 3, 15.
1, 3, 9.
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
Resposta
Selecionada:
c.
Respostas: a.
b.
O programa realiza comparações entre duas strings
veri�cando 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);
}
As variáveis “a” e “b” não precisavam ser ponteiros na atribuição de
valores.
O teste da condicional nunca pode ser menor que 0.
0,1 em 0,1 pontos
27/11/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_53340134_1&course_id=_115302_1&content_id=_1545682_1&return_… 10/10
Sexta-feira, 27 de Novembro de 2020 23h25min53s GMT-03:00
c.
d.
e.
Feedback
da
resposta:
Estão faltando as chaves para identi�car os blocos na condicional.
As variáveis “a” e “b” não precisavam ser ponteiros na atribuição de
valores.
As variáveis “a” e “b” deveriam ser declaradas como string e não char.
O programa não possui erro.
Resposta: C
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);
}
← OK
javascript:launch('/webapps/blackboard/content/listContent.jsp?content_id=_1545449_1&course_id=_115302_1&nolaunch_after_review=true');