Baixe o app para aproveitar ainda mais
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');
Compartilhar