Baixe o app para aproveitar ainda mais
Prévia do material em texto
24/09/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8332075_1&course_id=_23458_1&content_id=_366460_1&outcome… 1/9 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO 6654-120_57501_D_20182 CONTEÚDO Usuário rondinele.clemente @unipinterativa.edu.br Curso LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO Teste QUESTIONÁRIO UNIDADE VI Iniciado 24/09/18 18:19 Enviado 24/09/18 18:21 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: d. Respostas: a. b. c. d. e. Feedback da resposta: A função abaixo (trecho de um programa) deveria trocar os valores entre duas variáveis, mas possui um erro. void troca (int *i, int *j) { int *temp; *temp = *i; *i = *j; *j = *temp; } A alternativa que identi�ca o erro é: 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. Resposta: A resposta correta é a alternativa D. 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; } CONTEÚDOS ACADÊMICOS BIBLIOTECAS MURAL DO ALUNO TUTORIAISUNIP EAD 0,1 em 0,1 pontos rondinele.clemente @unipinterativa.ed... 24/09/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8332075_1&course_id=_23458_1&content_id=_366460_1&outcome… 2/9 Pergunta 2 Resposta Selecionada: c. Respostas: a. b. c. d. Analise a função caracteres e identi�que a alternativa que melhor descreve a tarefa executada por ela. 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; } Lê 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 contém todas as vogais que aparecem em s1 e em s2. Lê duas cadeias s1 e s2 e retorna uma nova cadeia s3 que contém todas as consoantes que aparecem em s1 e em s2. Lê 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 24/09/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8332075_1&course_id=_23458_1&content_id=_366460_1&outcome… 3/9 e. Feedback da resposta: 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: A resposta correta é a alternativa C. A função lê duas cadeias s1 e s2 e retorna uma nova cadeia s3 que contém todos os caracteres que aparecem em s1 e em s2. Pergunta 3 Resposta Selecionada: a. Respostas: a. b. c. d. e. Feedback da resposta: Analise o programa abaixo e assinale a alternativa correta: #include <stdio.h> void incr_vetor (int *v , int tam) { int i; for (i = 0; i < tam; i++) v[i]++; } int main () { int a[ ] = {1, 3, 5}; incr_vetor(a, 3); printf("%d %d %d\n", a[0], a[1], a[2]); system("pause"); return 0; } A saída do programa será: 2 4 6 2 4 6 0 1 2 1 2 3 1 3 5 3 6 9 Resposta: A resposta correta é a alternativa A. A saída do programa é 2 4 6, pois os elementos do vetor serão incrementados dentro da função. Pergunta 4 Ao declarar um vetor, para dimensioná-lo, é necessário saber de antemão quantos 0,1 em 0,1 pontos 0,1 em 0,1 pontos 24/09/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8332075_1&course_id=_23458_1&content_id=_366460_1&outcome… 4/9 Resposta Selecionada: e. Respostas: a. b. c. d. e. Feedback da resposta: 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 pré-dimensionamento 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: A resposta correta é a alternativa E. Para o problema de prever o número máximo de elementos, uma solução seria superdimensionar o vetor para tentar contornar essa falta de elementos livres durante a execução do programa, mas isso acarreta um desperdício de memória, o que é inaceitável em diversas aplicações, como aplicativos portáteis, em que sempre estamos sujeitos a ter falta de memória. Pergunta 5 Resposta Selecionada: c. Respostas: a. Dado o programa abaixo e considerando as entradas 0, 1 e 5; qual será a saída apresentada para cada entrada respectivamente? #include <stdio.h> int f1(int n) { if (n == 0) return (1); else return(n * f1(n-1)); } int main(){ int a, b; printf("Digite um valor inteiro:"); scanf("%d", &a); b = f1(a); printf("%d \n", b); system ("pause"); return 0; } 1, 1, 120 0, 1, 5 0,1 em 0,1 pontos 24/09/2018 Revisar envio doteste: QUESTIONÁRIO UNIDADE VI – 6654-... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8332075_1&course_id=_23458_1&content_id=_366460_1&outcome… 5/9 b. c. d. e. Feedback da resposta: 1, 2, 3 1, 1, 120 10, 20, 120 5, 10, 15 Resposta: A resposta correta é a alternativa C. O programa executa a função f1 de forma recursiva e sua saída será em n igual a 0. Pergunta 6 Resposta Selecionada: e. Respostas: a. b. c. d. e. Feedback da resposta: Dado o programa abaixo e considerando as entradas 0, 1 e 5; qual será a saída apresentada para cada entrada respectivamente? #include <stdio.h> void f2(int n) { if (n == 0) printf("Zero "); else { printf("%d ",n); f2(n-1); } } int main(){ int a; printf("Digite um valor inteiro:"); scanf("%d", &a); f2(a); system ("pause"); return 0; } 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; Zero 1; Zero 1 2 3 4 5 Zero; 1 Zero; 5 4 3 2 1 Zero Resposta: A resposta correta é a alternativa E. 0,1 em 0,1 pontos 24/09/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8332075_1&course_id=_23458_1&content_id=_366460_1&outcome… 6/9 O programa executa a função f2 de forma recursiva e sua saída será em n igual a 0. Pergunta 7 Resposta Selecionada: a. Respostas: a. b. c. d. e. Feedback da resposta: Dado o programa abaixo e considerando as entradas 0, 1 e 5; qual será a saída apresentada para cada entrada respectivamente? #include <stdio.h> int func (int n) { if (n == 0) return(0); return(n + func(n-1)); } int main(){ int a, b; printf("Digite um valor inteiro:"); scanf("%d", &a); b= func(a); printf ("%d \n", b); system ("pause"); return 0; } 0, 1, 15 0, 1, 15 0, 0, 3 1, 1, 15 1, 2, 3 3, 2, 1 Resposta: A resposta correta é a alternativa A. O programa executa a função func de forma recursiva e sua saída será em n igual a 0. Pergunta 8 0,1 em 0,1 pontos 0,1 em 0,1 pontos 24/09/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8332075_1&course_id=_23458_1&content_id=_366460_1&outcome… 7/9 Resposta Selecionada: b. Respostas: a. b. c. d. e. Feedback da resposta: Dado o programa abaixo e considerando as entradas 0, 1 e 5; qual será a saída apresentada para cada entrada respectivamente? #include <stdio.h> int func (int n) { if (n == 0) return(0); return(3*n + func(n-1)); } int main(){ int a, b; printf("Digite um valor inteiro:"); scanf("%d", &a); b= func(a); printf ("%d \n", b); system ("pause"); return 0; } 0, 3, 9 0, 1, 15 0, 3, 9 1, 1, 15 0, 3, 15 1, 3, 9 Resposta: A resposta correta é a alternativa B. O programa executa a função func de forma recursiva e sua saída será em n igual a 0. Pergunta 9 O programa abaixo deve receber uma string de caracteres e uma letra. Possuir uma função que devolve um vetor de inteiros contendo as posições (índices no vetor da string) onde a letra foi encontrada e um inteiro contendo o tamanho do vetor criado (total de letras iguais encontradas). 0,1 em 0,1 pontos 24/09/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8332075_1&course_id=_23458_1&content_id=_366460_1&outcome… 8/9 Resposta Selecionada: a. Respostas: a. b. c. d. e. Feedback da resposta: Para que o programa execute corretamente sua tarefa, devemos preencher a linha 11 e a linha 25, respectivamente, conforme a alternativa: 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: A resposta correta é a alternativa A. Na linha 11 alocamos a memória para índices e na linha 25 chamamos a função acha_caractere, passando as informações necessárias (frase, 'a', &n) e recebendo o retorno de índices. Pergunta 10 O programa abaixo deveria identi�car entre duas palavras qual vem antes no dicionário: #include <stdio.h> #include <string.h> int main() 0,1 em 0,1 pontos 24/09/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE VI – 6654-... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8332075_1&course_id=_23458_1&content_id=_366460_1&outcome… 9/9 Segunda-feira, 24 de Setembro de 2018 18h23min14s BRT Resposta Selecionada: c. Respostas: a. b. c. d. e. Feedback da resposta: { char *a, *b; *a = "abacate"; *b = "uva"; if (strcmp(a,b) < 0 ) printf ("%s vem antes de %s no dicionário", a, b); else printf ("%s vem depois de %s no dicionário", a, b); printf("\n"); system("pause"); return 0; } A alternativa que identi�ca o erro é: 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: A resposta correta é a alternativa C. As variáveis “a” e “b” não precisavam ser ponteiros na atribuição de valores. Funcionaria com a modi�cação abaixo: #include <stdio.h> #include <string.h> int main() { char *a, *b; a = "abacate"; b = "uva"; if (strcmp(a,b) < 0 ) printf ("%s vem antes de %s no dicionário", a, b); else printf ("%s vem depois de %s no dicionário", a, b); printf("\n"); system("pause"); return 0; } ← OK
Compartilhar