Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESAB Questão 1 : Com base na inicialização de matrizes e nos tipos de dados de C que você já estudou, assinale qual das instruções a seguir está correta como instrução válida da linguagem C. Resposta Errada! A resposta correta é a opção A Justificativa: Gabarito: A Comentário: De acordo com o que foi estudado na unidade 31, a alternativa A declara uma matriz de 2 linhas e 2 colunas e inicializa corretamente seus valores,. A alternativa C está errada, pois um dos valores não é inteiro; enquanto que a opção D possui quantidade diferente de elementos na declaração e na inicialização. A int matriz[2][2] = { {1, 4}, {7, 9} }; B int matriz[1][2] = { {8}, {6, -9} }; C int matriz[2][2] = { {9, 0.5}, {6, 3} }; D int matriz[3][3] = { {-2, -7}, {-4, -3} }; Questão 2 : Sobre os conceitos de variáveis locais e globais, assinale a alternativa correta. Resposta Errada! A resposta correta é a opção C Justificativa: Gabarito: C Comentário: Como explicado na unidade 12, variáveis criadas no escopo de uma estrutura de repetição são destruídas no fim da execução do bloco, mesmo que o bloco vá ser executado novamente em seguida. A Em C, a palavra static, quando usada na declaração de uma variável global, indica que a variável terá escopo de programa, ou seja, existirá em todo o programa, mesmo quando este possuir vários arquivos. B Quando criamos novas variáveis, não podemos repetir o nome de variáveis já existentes, mesmo se a variável já existente estiver em outro escopo. C Se criarmos uma variável dentro de uma estrutura de repetição, estaremos destruindo e recriando essa variável a cada repetição do bloco de instruções da estrutura. D Quando temos em um escopo a presença de uma variável global e outra local com o mesmo nome, prevalece a variável global. Questão 3 : Com base no que você estudou sobre os tipos de dados homogêneos, analise o código a seguir e responda quais variáveis do programa possuem tipo de dados composto e homogêneo. Algoritmo – Atividade 1. struct ponto{ 2. float x; 3. float y; 4. }; 5. 6. int main(void) 7. { 8. struct ponto array_pontos[2]; 9. struct ponto ponto_a, ponto_b; 10. ponto_a.x = 3.14; 11. ponto_a.y = 6.87; 12. ponto_b.x = ponto_a.x + ponto_a.y; 13. ponto_b.y = -ponto_b.x; 14. array_pontos[0] = ponto_b; 15. array_pontos[1] = ponto_a; 16. struct ponto matriz_pontos[2][2]; 17. matriz_pontos[0][0] = array_pontos[0]; 18. matriz_pontos[0][1] = array_pontos[1]; 19. return 0; 20. } Fonte: Elaborado pelo autor (2013). Resposta Errada! A resposta correta é a opção A Justificativa: Gabarito: A Comentário: Como estudado na unidade 31, arrays e matrizes são tipos de dados compostos homogêneos. A variável array_pontos é um array de tamanho 2 e a variável matriz_pontos é uma matriz de 2 linhas por 2 colunas. A array_pontos e matriz_pontos B ponto_a e ponto_b C array_pontos, ponto_a e ponto_b D x e y Questão 4 : Sobre a passagem de parâmetros por referência na chamada de funções, assinale a alternativa correta. Acertou! A resposta correta é a opção A Justificativa: Gabarito: A Comentário: Conforme estudado na unidade 21, uma das utilidades da passagem de parâmetros por referência é permitir o compartilhamento de variáveis entre diferentes funções. A Uma das utilidades na passagem de parâmetros por referência é permitir que outra função trabalhe com as mesmas variáveis que a função chamadora. B Tanto a linguagem C quanto a linguagem C++ possuem suporte à passagem direta de parâmetros por referência. C O desreferenciamento, usado para acessar o valor apontado por um ponteiro, também pode ser usado para acessar o endereço de uma variável que não seja ponteiro. D A instrução *x = 1; está errada na linguagem C, pois não podemos usar asteriscos antes do nome de uma variável à esquerda do símbolo de igual (=). Questão 5 : Considerando o caso de estudo de gerenciamento de uma padaria – no qual criamos as funções de cadastro de funcionários e busca pelo funcionário de maior salário – e levando em conta o que você estudou sobre sub-rotinas de funções na unidade 36, assinale a alternativa que representa a assinatura mais adequada para uma função que implemente a funcionalidade de editar os dados de algum funcionário. Considere também que a função deve perguntar para o usuário qual o nome do funcionário que ele deseja modificar. Resposta Errada! A resposta correta é a opção A Justificativa: Gabarito: A Comentário: No exemplo apresentado nos estudos, a lista de funcionários e a quantidade de funcionários já cadastrados não são variáveis globais, logo precisam ser passados às funções como parâmetros de entrada. Dados como o nome e o salário de algum funcionário específico não têm como ser recebidos pela função, pois a função main não tem conhecimento de qual funcionário o usuário deseja alterar os dados. A void edita_funcionario(funcionario_t lista_funcionarios[], int tamanho_lista); B void edita_funcionario(funcionario_t lista_funcionarios[], float salario_funcionario); C void edita_funcionario(funcionario_t lista_funcionarios[], char nome_funcionario[]); D void edita_funcionario(char nome_funcionario[]); Questão 6 : Dado o programa apresentado a seguir e com base no que você estudou sobre variáveis locais, assinale a alternativa correta. Algoritmo – Exemplo do uso de variáveis 1. 1.#include <stdio.h> 2. 2.#include <stdlib.h> 3. 3. 4. 4.int main(void) 5. 5.{ 6. 6. int a; 7. 7. int b; 8. 8. scanf("%d", &b); 9. 9. a = 5; 10. 10. if (a > b){ 11. 11. int c = 10; 12. 12. } 13. 13. system("pause"); 14. 14. return 0; 15. 15.} Fonte: Elaborado pelo autor (2013). Resposta Errada! A resposta correta é a opção D Justificativa: Gabarito: D Comentário: De acordo com o que foi estudado na unidade 11, o escopo da variável c existe apenas na linha 11. Se essa linha não for executada, então a variável nunca existirá e, consequentemente, não será armazenada na memória. A Sempre que o programa é executado, são declaradas 3 variáveis locais. B A variável a é declarada na linha 9. C A variável b é inicializada na linha 7. D Se a condição da linha 10 não for verdadeira, a variável c jamais será armazenada na memória principal. Questão 7 : Sobre as constantes e funções matemáticas, vistas na unidade 15, assinale a alternativa correta. Resposta Errada! A resposta correta é a opção B Justificativa: Gabarito: B Comentário: M_E e M_PI são realmente constantes, e como tais, seus valores não podem ser alterados. Essas constantes estão definidas no arquivo math.h da biblioteca de C. A letra A está errada pois é possível realizar a mudança de bases mostrada no conteúdo. A A biblioteca de C fornece apenas as funções log() e log10() para cálculo respectivamente do logaritmo na base e e do logaritmo na base 10. É impossível então calcular um logaritmo na base 2 usando essas funções B M_E e M_PI são constantes matemáticas definidas no arquivo math.h, e como tais, seus valores não podem ser alterados durante a execução de nenhum programa. C O tipo de dados double usado nas funções matemáticas vistas é igual ao tipo de dados float. D Embora sejam números reais com diversas casas após a vírgula, as constantes M_E e M_PI de C armazenam exatamente o valor das constantes e e Pi, respectivamente. Questão 8 : Dado o programa a seguir, responsável por implementar um somatório de uma série convergente, responda qual alternativa descreve a série que está sendo calculada. Algoritmo 1. 1.#include <math.h> 2. 2.#include <stdio.h> 3. 3.#include <stdlib.h> 4. 4. 5. 5.int main(void) 6. 6.{ 7. 7.int n = 1; 8. 8.float soma = 0; 9. 9.int i; 10. 10.for (i = 1; i<= 100; i++){ 11. 11.soma = soma + (1/ pow(2, i-1)); 12. 12.} 13. 13.printf("%f \n", soma); 14. 14. system("pause"); 15. 15. return 0; 16. 16.} Fonte: Elaborado pelo autor (2013). Resposta Errada! A resposta correta é a opção C Justificativa: Gabarito: C Comentário: O exemplo é bem parecido com um visto na unidade 5. A expressão 1 / pow(2, i-1) calcula exatamente o termo da série para n = i. A B C D Questão 9 : Com base no que você estudou na unidade 3 sobre o comando de repetição, assinale a alternativa correta. Acertou! A resposta correta é a opção C Justificativa: Gabarito: C Comentário: O comando só é executado se a condição for verdadeira. Logo, na primeira vez em que for falsa, o comando será interrompido. A O bloco de instruções dentro de um comando de repetição pode ter qualquer número finito de instruções, porém não pode ser vazio. B No comando de repetição com teste no início não é possível que o bloco de instruções não seja executado nenhuma vez. C Nos comandos de repetição, a condição definida só é avaliada com valor falso uma única vez na execução do comando. D O comando i++ utilizado em comandos de repetição com controle, é usado geralmente na etapa de inicialização do comando. Questão 10 : Na unidade 13, você estudou sobre comandos em programação, principalmente o comando de atribuição. Analise as alternativas, a seguir, a respeito do comando de atribuição e assinale a correta: Resposta Errada! A resposta correta é a opção C Justificativa: Gabarito: C Comentário: Qualquer valor número é verdadeiro, com exceção do 0. Na opção A, a instrução b &= 1 compara o valor lógico de b (que é verdadeiro) com o valor lógico de 1 (também verdadeiro), resultando em um valor tambpem verdadeiro, ou seja, diferente de 0. Opção B está errada pois a ordem do incremento pode influenciar a execução dos programas. Na opção D, strings vazias são na verdade strings que só possuem um caractere, o caractere nulo. Esse caractere, porém, é diferente de 0, e portanto, é verdadeiro. A Se b possui valor 2 e executamos a instrução b &= 1;, a variável b passará a ter valor 0. B Escrever ++x ou x++ em um programa não faz nenhuma diferença durante a execução do programa. C Em uma comparação de variáveis, em que, por exemplo, uma variável numérica é tratada como valor lógico, se a variável possuir valor negativo, seu valor lógico será verdadeiro. D Em uma comparação de variáveis, em que, por exemplo, uma string literal vazia é tratada como valor lógico, seu valor lógico será falso. Tempo Gasto 00:00:15
Compartilhar