Buscar

QUESTIONÁRIO UNIDADE VI _ (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Revisar envio do teste: QUESTIONÁRIO UNIDADE VILINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO 288S_18501_20232 CONTEÚDO
LINGUAGEM E
TÉCNICAS DE
PROGRAMAÇÃO
(288S_18501_2023
2)
CONTEÚDO
Sexta-feira, 8 de Setembro de 2023 13h23min16s GMT-03:00
Usuário RODRIGO DE TOLEDO RODRIGUES
Curso LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO
Teste QUESTIONÁRIO UNIDADE VI
Iniciado 08/09/23 13:21
Enviado 08/09/23 13:23
Status Completada
Resultado da tentativa 1 em 1 pontos  
Tempo decorrido 1 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. 
Comentário 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:
void troca (int *i, int *j) {
 int temp;
 temp = *i;
 *i = *j;
 *j = temp;
}
Pergunta 2
Resposta
Selecionada:
c.
Respostas: a.
b.
c.
d. 
e. 
Comentário da
resposta:
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.
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. 
c. 
d. 
e. 
Comentário da
resposta:
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.
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. 
Comentário 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.
Pergunta 5
Resposta Selecionada:
b. 
Respostas:
a. 
b. 
c. 
d. 
e. 
Comentário 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 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. 
Comentário 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
Resposta Selecionada: d. 
Respostas: a. 
b. 
c. 
d. 
e. 
Comentário 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
Resposta Selecionada: a. 
Respostas: a. 
b. 
c. 
d. 
e. 
Comentário 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 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
Resposta Selecionada: b. 
Respostas: a. 
b. 
c. 
d. 
e. 
Comentário 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 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);
}
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. 
c. 
d. 
e. 
Comentário da
resposta:
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.
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
UNIP BIBLIOTECAS MURAL DO ALUNOCONTEÚDOS ACADÊMICOS
0,1 em 0,1 pontos
0,1 em 0,1 pontos
0,1 em 0,1 pontos
0,1 em 0,1 pontos
0,1 em 0,1 pontos
0,1 em 0,1 pontos
0,1 em 0,1 pontos
0,1 em 0,1 pontos
0,1 em 0,1 pontos
0,1 em 0,1 pontos
RODRIGO RODRIGUES
http://company.blackboard.com/
https://ava.ead.unip.br/webapps/blackboard/execute/courseMain?course_id=_310910_1
https://ava.ead.unip.br/webapps/blackboard/content/listContent.jsp?course_id=_310910_1&content_id=_3640762_1&mode=reset
https://ava.ead.unip.br/webapps/blackboard/content/listContent.jsp?course_id=_310910_1&content_id=_3640762_1&mode=reset
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_49_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=_25_1
https://ava.ead.unip.br/webapps/login/?action=logout

Continue navegando