Buscar

LINGUAGEM E TECNICAS DE PROGRAMAÇÃO-UNIP- QUESTIONARIO 06

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

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

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
Você viu 3, do total de 10 páginas

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

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

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
Você viu 6, do total de 10 páginas

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

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

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
Você viu 9, do total de 10 páginas

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

26/10/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 288S_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_49922456_1&course_id=_115240_1&content_id=_1544937_1&ret… 1/10
 
Revisar envio do teste: QUESTIONÁRIO UNIDADE VI
Linguagem e Técnicas de Programação 288S_18501_20202 CONTEÚDO
Usuário ROMULO NASCIMENTO DIAS
Curso Linguagem e Técnicas de Programação
Teste QUESTIONÁRIO UNIDADE VI
Iniciado 26/10/20 11:24
Enviado 26/10/20 11:30
Status Completada
Resultado da
tentativa
0,9 em 1 pontos  
Tempo decorrido 6 minutos
Resultados
exibidos
Todas as respostas, Respostas enviadas, Respostas corretas, Comentários, Perguntas
respondidas incorretamente
Pergunta 1
Resposta Selecionada: d. 
Respostas: a. 
b. 
c. 
d. 
e. 
 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; 
}
A variável "temp" não precisava 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.
UNIP BIBLIOTECAS MURAL DO ALUNOCONTEÚDOS ACADÊMICOS
0 em 0,1 pontos
http://company.blackboard.com/
https://ava.ead.unip.br/webapps/blackboard/execute/courseMain?course_id=_115240_1
https://ava.ead.unip.br/webapps/blackboard/content/listContent.jsp?course_id=_115240_1&content_id=_1544201_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
26/10/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 288S_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_49922456_1&course_id=_115240_1&content_id=_1544937_1&ret… 2/10
Pergunta 2
Resposta
Selecionada:
c.
Respostas: a.
b.
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.
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.
0,1 em 0,1 pontos
26/10/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 288S_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_49922456_1&course_id=_115240_1&content_id=_1544937_1&ret… 3/10
d.
e.
Feedback
da
resposta:
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. 
Feedback
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
0,1 em 0,1 pontos
26/10/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 288S_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_49922456_1&course_id=_115240_1&content_id=_1544937_1&ret… 4/10
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.
Pergunta 5
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
0,1 em 0,1 pontos
0,1 em 0,1 pontos
26/10/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 288S_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_49922456_1&course_id=_115240_1&content_id=_1544937_1&ret… 5/10
Resposta Selecionada:
b. 
Respostas:
a. 
b. 
c. 
d. 
e. 
Feedback
da
resposta:
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
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
0,1 em 0,1 pontos
26/10/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 288S_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_49922456_1&course_id=_115240_1&content_id=_1544937_1&ret… 6/10
Resposta Selecionada: e. 
Respostas: a. 
b. 
c. 
d. 
e. 
Feedback
da
resposta:
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
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 
 { 
0,1 em 0,1 pontos
26/10/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 288S_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_49922456_1&course_id=_115240_1&content_id=_1544937_1&ret… 7/10
Resposta Selecionada: d. 
Respostas: a. 
b. 
c. 
d. 
e. 
Feedback
da
resposta:
     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> 
  
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 em 0,1 pontos
26/10/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 288S_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_49922456_1&course_id=_115240_1&content_id=_1544937_1&ret… 8/10
Resposta Selecionada: a. 
Respostas: a. 
b. 
c. 
d. 
e. 
Feedback
da
resposta:
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. 
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.
0,1 em 0,1 pontos
26/10/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 288S_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_49922456_1&course_id=_115240_1&content_id=_1544937_1&ret… 9/10
Feedback
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
Resposta
Selecionada:
c.
Respostas: a. 
b.
c.
d.
e. 
Feedback
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> 
  
0,1 em 0,1 pontos
26/10/2020 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 288S_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_49922456_1&course_id=_115240_1&content_id=_1544937_1&re… 10/10
Segunda-feira, 26 de Outubro de 2020 11h30min42s GMT-03:00
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=_1544201_1&course_id=_115240_1&nolaunch_after_review=true');

Outros materiais