·

Análise e Desenvolvimento de Sistemas ·

Programação

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta
Equipe Meu Guru

Prefere sua atividade resolvida por um tutor especialista?

  • Receba resolvida até o seu prazo
  • Converse com o tutor pelo chat
  • Garantia de 7 dias contra erros

Texto de pré-visualização

A função abaixo (trecho de um programa) deveria trocar os valores entre duas variáveis, mas possui um erro.\n\nvoid troca (int *i, int *j) {\n int *temp;\n temp = i;\n *i = *j;\n j = temp;\n}\n\nA alternativa que identifica o erro é:\nResposta Selecionada: d. A variável \"temp\" não precisava ser um ponteiro.\n\nRespostas:\n\na. As variáveis \"i\" e \"j\" não precisavam ser um ponteiro.\n\nb. A variável \"i\" deveria ser um contador.\n\nc. A variável \"j\" deveria acumular o valor de \"i\".\n\nd. A variável \"temp\" não precisava ser um ponteiro.\n\ne. Não existe nenhum erro na função.\n\nFeedback da resposta: A resposta correta é a alternativa D.\nA 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:\n\nvoid troca (int *i, int *j) {\n int temp;\n temp = *i;\n *i = *j;\n *j = temp;\n} Curso LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO\nTeste QUESTIONÁRIO UNIDADE VI\nIniciado 10/10/18 15:36\nEnviado 10/10/18 15:39\nStatus Completada\nResultado da tentativa 0,9 em 1 pontos\nTempo decorrido 2 minutos\nResultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários, Perguntas respondidas incorretamente\n\nPergunta 1\nA função abaixo (trecho de um programa) deveria trocar os valores entre duas variáveis, mas possui um erro.\n0,1 em 0,1 pontos\n\n 0 em 0,1 pontos\nPergunta 2\nAnalise a função caracteres e identifique a alternativa que melhor descreve a tarefa executada por ela.\n\nchar *caracteres(char *s1, char *s2) {\n int i, j, w, n = 0, encontrado;\n char *s3;\n s3 = malloc((n + 1) * sizeof(char));\n n = 0;\n for (i = 0; s1[i] != '\\0'; i++) {\n for (j = 0; s2[j] != '\\0'; j++) {\n if (s1[i] == s2[j]) {\n n++;\n break;\n }\n }\n }\n s3[n] = '\\0';\n return s3;\n}\n\nResposta Selecionada: c. 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. Respostas: a. 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. b. 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. c. 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. d. Lê duas cadeias s1 e s2 e retorna uma nova cadeia s3 que é a maior cadeia entre s1 e em s2. e. Lê duas cadeias s1 e s2 e retorna uma nova cadeia s3 que é a menor cadeia entre s1 e em s2. Feedback 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 Quarta-feira, 10 de Outubro de 2018 15h39min19s BRT Analyse 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\", a[0], a[1], a[2]); system(\"pause\"); return 0; } A saída do programa será: Resposta Selecionada: a. 2 4 6 Respostas: a. 2 4 6 b. 0 1 2 c. 1 2 3 d. 1 3 5 e. 3 6 9 Feedback da resposta: 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 elementos deveriam compô-lo. Temos que prever o número máximo de elementos no vetor durante o processo da codificação. Com base nesses dados, avalie as afirmaçõ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. e. I e III, apenas Respostas: a. I, apenas b. II, apenas c. III, apenas d. I e II, apenas e. I e III, apenas Feedback da resposta: 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 em 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 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 f(int n) { if (n == 0) return (1); else return(n * f(n-1)); } int main(){\n int a, b;\n printf(\"Digite um valor inteiro:\");\n scanf(\"%d\", &a);\n b = f1(a);\n printf(\"%d\\n\", b);\n system(\"pause\");\n return 0;\n}\nResposta Selecionada: c. 1, 1, 120\nRespostas: a. 0, 1, 5\n\n b. 1, 2, 3\n\n c. 1, 1, 120\n\n d. 10, 20, 120\n\n e. 5, 10, 15\n\nFeedback da resposta: Resposta: A resposta correta é a alternativa C.\n O programa executa a função f1 de forma recursiva e sua saída\n será em n igual a 0.\nPergunta 6\nDado o programa abaixo e considerando as entradas 0, 1 e 5; qual será a saída apresentada para cada entrada respectivamente?\n#include <stdio.h>\nvoid f2(int n)\n{\n if (n == 0)\n return;\n printf(\"%d \", n);\n f2(n-1);\n}\nint main(){\n int a;\n printf(\"Digite um valor inteiro:\");\n scanf(\"%d\", &a);\n f2(a);\n system(\"pause\");\n return 0;\n}\nResposta Selecionada: Zero; 1 Zero; 5 4 3 2 1 Zero\nRespostas: a. 0; 0 1; 0 1 2 3 4 5\n\n b. 0; 1 0; 5 4 3 2 1 0\n\n c. 1; 1 2; 1 2 3 4 5\n\n d. Zero; Zero 1; Zero 1 2 3 4 5\n\nZero; 1 Zero; 5 4 3 2 1 Zero\n e. \n if (n == 0)\n {\n printf(\"Zero \");\n }\n else\n {\n printf(\"%d \", n);\n f2(n-1);\n }\n}\nint main(){\n int a;\n printf(\"Digite um valor inteiro:\");\n scanf(\"%d\", &a);\n f2(a);\n system(\"pause\");\n return 0;\n}\nResposta Selecionada: a. 0, 1, 15\nRespostas: a. 0, 1, 15\n\n b. 0, 0, 3\n\n c. 1, 1, 15\n\n e. 1, 1, 15\n Dado o programa abaixo e considerando as entradas 0, 1 e 5; qual será a saída apresentada para cada entrada respectivamente?\n#include <stdio.h>\nint func(int n)\n{\n if (n == 0)\n return(0);\n return(n + func(n-1));\n}\nint main(){\n int a, b;\n printf(\"Digite um valor inteiro:\");\n scanf(\"%d\", &a);\n b = func(a);\n printf(\"%d\\n\", b);\n system(\"pause\");\n return 0;\n}\nResposta Selecionada: a. 0, 1, 15\nRespostas: a. 0, 1, 15\n\n b. 0, 0, 3\n\n c. 1, 1, 15\n\n d. 1, 2, 3\n a. 0, 1, 15\n\nb. 0, 3, 9\n\nc. 1, 1, 15\n\nd. 0, 3, 15\n\n1, 3, 9\ne.\n\nFeedback da resposta:\n\nResposta: A resposta correta é a alternativa B.\n\nO programa executa a função func de forma recursiva e sua saída será em n igual a 0. Para que o programa execute corretamente sua tarefa, devemos preencher a linha 11 e a linha 25, respectivamente, conforme a alternativa:\n\nResposta Selecionada:\n\na. indices = (int *) malloc(n* sizeof(int));\n\nindices = acha_caracter(frase, 'a', n);\n\nRespostas:\n\nindices = (int *) malloc(n* sizeof(int));\n\nb. indices = acha_caracter(frase, 'a', &n);\n\nc. indices = acha_caracter(frase, 'a', n);\n\nd. indices = (int *) malloc(n* sizeof(int));\n\ne. indices = acha_caracter(frase, 'a', *n); Pergunta 10\n\nO programa abaixo deveria identificar entre duas palavras qual vem antes no dicionário:\n\n#include <stdio.h>\n#include <string.h>\n\nint main()\n{\n char *a, *b;\n a = \"abacate\";\n b = \"uva\";\n if (strcmp(a,b) < 0 )\n printf(\"%s vem antes de %s no dicionário\", a, b);\n else\n printf(\"%s vem depois de %s no dicionário\", a, b);\n printf(\"\\n\");\n system(\"pause\");\n return 0;\n}\n\nA alternativa que identifica o erro é:\nResposta\nSelecionada: c. As variáveis \"a\" e \"b\" não precisavam ser ponteiros na atribuição de valores.\n\nRespostas: a. O teste da condicional nunca pode ser menor que 0.\n\nb. Estão faltando as chaves para identificar os blocos na condicional.\n\nc. As variáveis \"a\" e \"b\" não precisavam ser ponteiros na atribuição de valores.\n\nd. As variáveis \"a\" e \"b\" deveriam ser declaradas como string e não char.\n\ne. O programa não possui erro.\n\nFeedback da resposta: 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 modificação abaixo:\n\n#include <stdio.h>\n#include <string.h>\n\nint main()\n{\n char *a, *b;\n a = \"abacate\";\n b = \"uva\";\n if (strcmp(a,b) < 0 )\n printf(\"%s vem antes de %s no dicionário\", a, b);\n else\n printf(\"%s vem depois de %s no dicionário\", a, b);\n printf(\"\\n\");\n system(\"pause\");\n return 0;\n}