Baixe o app para aproveitar ainda mais
Prévia do material em texto
APÊNDICE UNIDADE 2 Algoritmos e Técnicas de Programação U2 - Constantes, variáveis e operações2 UNIDADE 2: Constantes, variáveis e operações Gabarito 1. Faça valer a pena - Seção 2.1 1. Alternativa C. Resposta comentada: a alternativa correta é “Os valores numéricos podem ser armazenados em tipos primitivos inteiros ou de ponto flutuante.” - Todas as opções de tipos primitivos que vimos para C também existem em outras linguagens de programação, porém elas podem ter outras opções. Por exemplo, em Java existe o tipo byte, que não existe em C. - Cada tipo de variável primitiva ocupa um certo espaço na memória. - Um número inteiro pode ser guardado sem nenhum problema. - Armazenar um decimal em uma variável inteira não gera erro de compilação, ocorre apenas um corte no valor guardado. 2. Alternativa A. Resposta comentada: a resposta correta é "Valores constantes podem ser declarados usando o comando #defi ne <nome> <valor>.” - O comando const int a = 10, alocará um espaço de 4 bytes para a constante a. - O comando const int a = 13.4, guardará na constante a o valor 13 - A costante M_PI é usada para referenciar o valor do pi (com underline entre M e o P) Apêndice Gabaritos comentados com resposta-padrão U2 - Constantes, variáveis e operações3 - A constante definida pelo comando #define g 9.8 não ocupará espaço na memória essa definição é apenas um rótulo. 3. Alternativa D. Resposta comentada: a resposta correta é “Somente a alternativa III está correta.” A alternativa I está incorreta, pois a variável idade é do tipo inteiro, portanto o especificador de formato deverá ser o %d. A alternativa II está incorreta, pois ao usar o especificador %d em uma variável do tipo char, será impresso seu valor na tabela ASCII e não a letra “a”. Gabarito 2. Faça valer a pena - Seção 2.2 1. Alternativa B. Resposta comentada: a resposta correta é “Somente a afirmação II está correta.” A primeira afirmação feita está incorreta, pois o compilador reserva a última posição somente para vetores do tipo char, ou seja, somente para strings. A última também está incorreta, pois, para armazenar um valor na primeira posição de qualquer vetor, devemos usar o índice zero. 2. Alternativa D. Resposta comentada: a resposta correta é “A função scanf(“%s”,variavel”) pode ser usada somente para palavras simples.” Ao criar um vetor de caracteres em C podemos usar as seguinte sintaxes: char variavel[tamanho] = “valor”; char variavel[tamanho] = {“valor”}; char variavel[tamanho] = {‘l’,’e’,’t’,’r’,’a’}; char variavel[] = “valor”; A função fgets(variavel,tamanho,fluxo) pode ser usada para palavras simples, compostas ou frases. U2 - Constantes, variáveis e operações4 3. Alternativa C. Resposta comentada: a resposta correta é “A linha 8 imprimirá o conteúdo armazenado na variável x.” Ao implementar o código e compilar obtém-se o seguinte resultado: linha 5 = 60ff0c, imprime o endereço da variável x. linha 6 = 10, imprime o conteúdo armazenado na variável x. linha 7 = 0060FF0C, imprime o conteúdo do ponteiro, ou seja, o endereço da variável x. linha 8 = 10, imprime o conteúdo armazenado na variável x. linha 9 = 0060FF08, imprime o endereço do ponteiro. Gabarito 3. Faça valer a pena - Seção 2.3 1. Alternativa A. Resposta comentada: a resposta correta é: “O valor em resultado será 5.” Ao substituir os valores de cada variável na expressão, obtém-se: resultado = a + b * (c – b) / a resultado resultado resultado resul = + − = + = + 2 3 5 3 2 2 3 2 2 2 6 2 * ( ) / * / / ttado resultado = + = 2 3 5 Ou seja, aplicando a ordem de precedência dos operadores, chega- se ao resultado final. 2. Alternativa C. Resposta comentada: a resposta correta é “Somente a afirmação I é verdadeira”. Ao executar o código com os valores propostos, obtém-se o seguinte resultado para cada comparação lógica: U2 - Constantes, variáveis e operações5 printf("%d",((a > b) || (b < c) && (c < b))); 1 – Verdadeiro 2 – Falso 3 – Verdadeiro Ao montar a expressão lógica: (V) OU (F) E (V), obtém-se como resposta Verdadeiro, pois os operadores serão executados da esquerda para a direita. Assim teremos V OU F, que resulta em V, e depois V E V, que resulta em verdadeiro também. Em C, verdadeiro é representado pelo número 1. 3. Alternativa D. Resposta comentada: a resposta correta é “A função malloc() alocará 24 bytes na memória. A estrutura heterogênea “automóvel” foi criada com dois campos: um vetor de caracteres com 20 posições, nesse caso, são alocados 20 bytes, pois para cada caractere é alocado 1 byte; e um campo inteiro, que ocupa 4 bytes, portanto o tamanho total dessa estrutura é 24 bytes. Ao utilizar a função malloc() e passar como parâmetro o tamanho da variável auto1, serão alocados espaço para todos os campos dessa estrutura. 1 2 3
Compartilhar