Prévia do material em texto
AVALIAÇÃO FINAL PROGRAMAÇÃO II
Questão 1:
Sobre a instrução typedef, apresentada na unidade 25, assinale a alternativa correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como vimos, o uso de typedef cria um novo nome para algum tipo de
dado já existente, permitindo que o referenciemos através de um termo mais simples,
melhorando a legibilidade do código.
A
Essa instrução é usada para declarar novas structs em C.
B
Essa instrução é usada para definir um novo nome mais conveniente para algum tipo de dado.
C
Essa instrução é necessária na declaração de toda struct e serve para dar um nome à struct.
D
Essa instrução possui a desvantagem de diminuir a legibilidade do código.
Questão 2:
Analise o algoritmo a seguir, semelhante ao estudado na unidade 28, onde você aplicou em exemplos o
conhecimento adquirido sobre os variados tipos de dados. Em seguida, assinale a alternativa correta
sobre quais são os tipos de dados usados no programa.
Algoritmo – Programa em C que usa vários tipos de dados
1. #include <stdio.h>
2.
3. int main(void)
4. {
5. int matriz[2][2];
6. printf("Informe os valores\n");
7. int i, j;
8. int soma = 0;
9. for (i = 0; i < 2; i++){
10. for (j = 0; j < 2; j++){
11. scanf("%i", &matriz[i][j]);
12. soma += matriz[i][j];
13. }
14. }
15. float media = soma / 4.0;
16. printf("Media: %f\n", media);
17. system("pause");
18. return 0;
19. }
Fonte: Elaborado pelos autores (2013).
Resposta Errada! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: A variável matriz é um array bidimensional do tipo int, e existem também
as variáveis i, j e soma, que são do tipo int, e a variável media, que é do tipo float.
A
São usadas 7 variáveis do tipo int e uma do tipo float.
B
São usadas 4 variáveis do tipo int e uma do tipo float.
C
Só são usadas variáveis de tipos primitivos.
D
São usadas 3 variáveis do tipo int, uma do tipo float e um array bidimensional do tipo int.
Questão 3:
Sobre o que você estudou sobre o uso de ponteiros na programação em C e com base nas duas
instruções em C a seguir, assinale a alternativa correta.
char a = 'c';
char* b = &a;
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Como visto na unidade 19, a expressão &a acessa o endereço da
variável a e o atribui ao ponteiro b. Logo, b aponta para a.
A
A variável a e a variável b possuem o mesmo valor, pois são do mesmo tipo.
B
O endereço da variável b é o mesmo da variável a.
C
A variável b possui o endereço da variável a, logo, b aponta para a.
D
A variável a possui o endereço da variável b, em forma de uma string.
Questão 4:
Com base no exemplo a seguir e no que você aprendeu sobre tipos abstratos de dados e structs, assinale
a alternativa que apresenta corretamente o valor mostrado para o usuário na linha 19 do programa.
Algoritmo – Exemplo de tipos abstratos de dados em C
1. #include <stdio.h>
2. #include <stdlib.h>
3.
4. struct triangulo_t{
5. float lados[3];
6. };
7.
8. int main(void)
9. {
10. struct triangulo_t triangulo;
11. triangulo.lados[0] = 3;
12. triangulo.lados[1] = 4;
13. triangulo.lados[2] = 10;
14. float a = 0;
15. int i;
16. for (i = 0; i < 3; i++){
17. a += triangulo.lados[i];
18. }
19. printf("%f\n", a);
20. system("pause");
21. return 0;
1. }
Fonte: Elaborado pelo autor.
Resposta Errada! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Conforme estudado na unidade 24, o programa cria uma struct e inicializa
seu vetor de 3 posições, com os valores 3, 4 e 10. Em seguida, um comando de
repetição soma todos os elementos desse vetor, o que resulta em 17.
A
0
B
3
C
10
D
17
Questão 5 :
A função fopen() da linguagem C é utilizada para abrir um arquivo, ela recebe como parâmetro 2
argumentos, eles são, respectivamente:
Resposta Errada! A resposta correta é a opção A
Justificativa:
Gabarito: A
Conforme aprendemos na unidade 41, a função padrão fopen() é usada para abrir um
arquivo. Ela recebe dois argumentos do tipo string: o primeiro argumento é o nome do
arquivo (por exemplo, clientes.txt), o segundo argumento é a indicação do modo no
qual o arquivo deve ser aberto.
A
Nome do Arquivo e Modo de Abertura
B
Nome do Arquivo e Variável de Ponteiro
C
Modo de Leitura e Modo de Escrita
D
Nome do Arquivo e Função de Leitura
Questão 6 :
Sobre a abordagem usada para criação de tipos abstratos de dados, vista na unidade 18, assinale a
alternativa correta.
Resposta Errada! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Em C, usam-se arquivos diferentes para definição de interface e
implementação. As alternativas B e D descrevem conceitos opostos e a alternativa C
está errada, pois as interfaces são definidas no arquivo com extensão .h.
A
A definição de um tipo abstrato de dados em C é geralmente feita em dois arquivos diferentes, um
com extensão .h e outro .c.
B
Na criação de uma interface, define-se como cada funcionalidade do tipo de dados é implementada.
C
Em C, as interfaces são definidas sempre em arquivos com extensão .c, e para utilizá-las em um
programa é preciso adicionar uma instrução do tipo #include "novo_tipo.c" no arquivo do programa.
D
Na criação da implementação de um tipo abstrato de dados, definimos quais funcionalidades ele
terá, mas não definimos como cada funcionalidade deverá ser implementada.
Questão 7 :
Na unidade 41, aprendemos que para abrir um arquivo utilizando a linguagem C utilizamos a
função fopen(), essa função recebe dois parâmetros, o primeiro é o nome do arquivo que queremos abrir
e o segundo o modo de abertura. Qual o parâmetro deve ser passado para a função para abrir o arquivo
para leitura?
Resposta Errada! A resposta correta é a opção C
Justificativa:
Gabarito: C
Como vimos o parâmetro que deve ser passado para leitura de um arquivo é “r”, ele
abre um arquivo texto para leitura. O arquivo deve existir antes de ser aberto.
A
“a”
B
“l”
C
“r”
D
“w”
Questão 8 :
O termo persistência de dados é usado para as atividades de:
Resposta Errada! A resposta correta é a opção C
Justificativa:
Gabarito: C
Na unidade 39, vimos que o termo “persistência de dados” é usado para as atividades
de armazenamento e recuperação de dados na memória secundária.
A
Armazenamento e recuperação de dados em memória principal.
B
Atribuição e exclusão de valor em variáveis transientes.
C
Armazenamento e recuperação de dados em memória secundária.
D
Atualização e consulta de dados da memória principal.
Questão 9 :
Sobre a passagem de parâmetros por referência na chamada de funções, assinale a alternativa correta.
Resposta Errada! 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ãopodemos usar asteriscos antes do nome de uma
variável à esquerda do símbolo de igual (=).
Questão 10 :
Dado o programa a seguir e com base no que você estudou na unidade 12, assinale a alternativa correta.
Algoritmo – Exemplo do uso de variáveis globais e locais
1. 1.#include <stdio.h>
2. 2.#include <stdlib.h>
3. 3.
4. 4.static int var = 10;
5. 5.
6. 6.int main(void)
7. 7.{
8. 8. int x;
9. 9. scanf("%d", &x);
10. 10. if (x > 10){
11. 11. int c = 4;
12. 12. printf("%13d \n", c);
13. 13. }
14. 14. printf("%d \n", var);
15. 15. float var = 1.5;
16. 16. printf("%f \n", var);
17. 17. system("pause");
18. 18. return 0;
19. 19.}
Fonte: Elaborado pelo autor (2013).
Resposta Errada! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Isso é permitido em C apenas quando uma das variáveis é global e a outra
é local. No caso, a variável var da linha 4 é global e a da linha 15, local.
A
Por ser uma variável global, o escopo da variável var vai da linha 4 até a linha 19.
B
Na linha 16, o valor 10 é impresso para o usuário.
C
Existem duas variáveis var nesse programa, e isso é permitido em C.
D
A palavra reservada static é usada na declaração de constantes.
Questão 11 :
Dado o programa apresentado a seguir e com base no que você estudou na unidade 11, 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.void uma_funcao(void)
5. 5.{
6. 6. int a;
7. 7. for (a = 10; a > 0; a--){
8. 8. printf("%d \n", a);
9. 9. }
10. 10.}
11. 11.
12. 12.int main(void)
13. 13.{
14. 14. int x;
15. 15. int y;
16. 16. scanf("%d", &x);
17. 17. y = 5;
18. 18. if (x > y){
19. 19. int z = 4;
20. 20. }
21. 21. uma_funcao();
22. 22. system("pause");
23. 23. return 0;
24. 24.}
Fonte: Elaborado pelo autor (2013).
Resposta Errada! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: A instrução da linha 19 consiste na declaração e inicialização da variável z
em uma única instrução, o que é possível em C.
A
O escopo da variável a se inicia na linha 6 e vai até a linha 24.
B
Sempre que o programa é executado, são declaradas 4 variáveis locais.
C
As variáveis x e y são inicializadas nas linhas 14 e 15, respectivamente.
D
A variável z é declarada e inicializada na linha 19.
Questão 12 :
Sobre a abordagem usada para criação de tipos abstratos de dados, vista na unidade 18, assinale a
alternativa correta.
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como visto na unidade 18, definimos as interfaces em arquivos .h e
implementações em arquivos .c, de forma que possamos usar instruções #include para
incluir as interfaces em diversos arquivos .c de implementação.
A
A definição de um tipo abstrato de dados em C é geralmente separada em duas partes, a interface e a
implementação, ambas descritas em um arquivo com extensão .h.
B
Em C, criamos interfaces geralmente em arquivos com extensão .h e descrevemos a implementação dessas
interfaces em arquivos com extensão .c.
C
A criação de um tipo abstrato de dados novo é interessante principalmente em um cenário onde o tipo criado
será usado apenas em uma única aplicação.
D
Não poderíamos criar em C um tipo abstrato de dados chamado String, pois strings já são criadas através de
vetores de caracteres (char[]).
Questão 13 :
Na unidade 42, aprendemos sobre leitura e escrita de registros, quais são as funções utilizadas para este
propósito?
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Como aprendemos, para conseguir ler e escrever registros em um arquivo de texto,
teremos que usar as funções de entrada e saída formatada, são elas: fscanf() e
fprintf().
A
fgets() e puts()
B
scanf() e printf()
C
fgetc() e fputc()
D
fscanf() e fprintf()
Questão 14 :
Com base no que você estudou sobre o comando de repetição, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Como visto na unidade 3, nesse comando de repetição o bloco é sempre
executado pelo menos uma vez.
A
No comando de repetição com teste no fim não é possível que o bloco de instruções não seja executado
nenhuma vez.
B
Os comandos de repetição estudados existem em C, mas não costumam aparecer em outras linguagens de
programação.
C
Todos os tipos de comandos de repetição fazem uso de uma variável de controle.
D
O bloco de instruções dentro de um comando de repetição não pode ser vazio.
Questão 15 :
Analise o algoritmo a seguir, semelhante ao estudado na unidade 28, onde você aplicou em exemplos o
conhecimento adquirido sobre os variados tipos de dados. Em seguida, assinale a alternativa correta
sobre quais são os tipos de dados usados no programa.
Algoritmo – Programa em C que usa vários tipos de dados
1. #include <stdio.h>
2.
3. int main(void)
4. {
5. int matriz[2][2];
6. printf("Informe os valores\n");
7. int i, j;
8. int soma = 0;
9. for (i = 0; i < 2; i++){
10. for (j = 0; j < 2; j++){
11. scanf("%i", &matriz[i][j]);
12. soma += matriz[i][j];
13. }
14. }
15. float media = soma / 4.0;
16. printf("Media: %f\n", media);
17. system("pause");
18. return 0;
19. }
Fonte: Elaborado pelos autores (2013).
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: A variável matriz é um array bidimensional do tipo int, e existem também
as variáveis i, j e soma, que são do tipo int, e a variável media, que é do tipo float.
A
São usadas 7 variáveis do tipo int e uma do tipo float.
B
São usadas 4 variáveis do tipo int e uma do tipo float.
C
Só são usadas variáveis de tipos primitivos.
D
São usadas 3 variáveis do tipo int, uma do tipo float e um array bidimensional do tipo int.
Questão 16 :
Sobre os conceitos de variáveis e constantes, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como visto na unidade 10, o escopo das variáveis pode ser uma estrutura
de seleção, de repetição, uma função ou até mesmo o programa inteiro. Programas
não podem acessar variáveis que não pertencem a eles. A memória principal do
computador não armazena dados de programas que não estão em execução. A
alternativa D é falsa pois quando constantes e variáveis saem de escopo, elas deixam
de existir, e logo seu espaço na memória deixa de ter relevância, e pode ser usado
para armazenar outros dados do programa ou de outros programas.
A
Em C, é possível um programa acessar dados de variáveis que não pertencem a ele.
B
Em C, podemos criar variáveis que existem apenas dentro do escopo de funções ou estruturas de seleção ou
repetição.
C
A memória principal do computador possui a função de armazenar todos os dados usados por todos os
programas, mesmo quando eles não estão em execução.
D
Constantes e variáveis só ficam armazenadas na memória enquanto estiverem sendo usadas pelo programa.
Questão 17 :
Analise o código a seguir.
Figura – Exemplo de Algoritmo – Atividade.
Fonte: Elaborada pelo autor (2013).
Escolha a única alternativa que representa corretamente o número da linha na qual a instrução
fclose(arquivo) deve ser inserida para fechamento correto do arquivo.
Resposta Errada! A resposta correta é a opção C
Justificativa:
Resposta: C
O arquivo deve ser fechado após o laço se encerrarquando todos os dados já
estiverem sido visitados e antes do método se encerrar.
A
Na linha 3, pois o correto é fechar o arquivo assim que ele seja aberto.
B
Na linha 8, para que o arquivo seja fechado cada vez que o laço enquanto seja executado.
C
Após a linha 10, para que o arquivo seja fechado antes do encerramento do método listar.
D
Na linha 4, dentro do if(arquivo == NULL), para que o arquivo seja fechado somente se ocorrer erro na
abertura deste.
Questão 18 :
Sobre o tópico de linguagens de programação estudado na unidade 6, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Java de fato foi influenciada por C, inclusive tendo sintaxe e parte da
semântica muito semelhantes.
A
FORTRAN e COBOL foram uma das primeiras linguagens de programação, antes mesmo de surgirem as
linguagens de máquina.
B
A linguagem COBOL foi influenciada pela linguagem C, que é uma linguagem mais antiga e mais usada.
C
A linguagem Java foi bastante influenciada pela linguagem C, e hoje ambas são amplamente usadas.
D
Embora diferentes, linguagens como C e Java, costumam ser usadas na criação dos mesmos tipos de sistemas
computacionais.
Questão 19 :
Sobre as constantes e funções matemáticas, vistas na unidade 15, assinale a alternativa correta.
Acertou! 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 20 :
Sobre tipologias de linguagens, responda: o que são linguagens de alto nível?
Resposta Errada! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Na unidade 7, estudamos que abstração é uma redução do objeto que
está sendo estudado, até um ponto onde é possível descrevê-lo usando apenas a
linguagem em questão. Há vários conceitos que usamos na programação e que
abstraem conceitos bem maiores. Nesse cenário, quanto mais abstrações a linguagem
tiver, maior será o seu nível.
A
São linguagens complexas e difíceis de aprender.
B
São linguagens com fins específicos para pesquisa em inteligência artificial e robótica.
C
São linguagens como Java e C++, que possuem altos níveis de abstrações.
D
São linguagens com alto poder de processamento, como linguagens de máquina.
Questão 21 :
Sobre o conceito de tipos abstratos de dados estudado na unidade 23, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: As Structs são o principal mecanismo disponibilizado pela linguagem C
para a criação de tipos abstratos de dados.
A
O uso de tipos abstratos de dados, diferentes dos tipos primitivos de C, permite um maior desempenho aos
programas, pois eles executam seu código de forma mais rápida.
B
Manutenibilidade é a facilidade com que o programa tem de realizar a manutenção dos dados que ele usa.
C
A linguagem C é uma das linguagens que possui maior suporte a tipos abstratos de dados.
D
Uma das formas de se criar um tipo abstrato de dados em C é através de structs.
Questão 22 :
Analise o código a seguir.
Figura – Exemplo de Algoritmo – Atividade.
Fonte: Elaborada pelo autor (2013).
Escolha a única alternativa que representa corretamente o número da linha na qual a instrução
fclose(arquivo) deve ser inserida para fechamento correto do arquivo.
Acertou! A resposta correta é a opção C
Justificativa:
Resposta: C
O arquivo deve ser fechado após o laço se encerrar quando todos os dados já
estiverem sido visitados e antes do método se encerrar.
A
Na linha 3, pois o correto é fechar o arquivo assim que ele seja aberto.
B
Na linha 8, para que o arquivo seja fechado cada vez que o laço enquanto seja executado.
C
Após a linha 10, para que o arquivo seja fechado antes do encerramento do método listar.
D
Na linha 4, dentro do if(arquivo == NULL), para que o arquivo seja fechado somente se ocorrer erro na
abertura deste.
Questão 23 :
Analise o algoritmo a seguir, semelhante ao estudado na unidade 28, onde você aplicou em exemplos o
conhecimento adquirido sobre os variados tipos de dados. Em seguida, assinale a alternativa correta
sobre quais são os tipos de dados usados no programa.
Algoritmo – Programa em C que usa vários tipos de dados
1. #include <stdio.h>
2.
3. int main(void)
4. {
5. int matriz[2][2];
6. printf("Informe os valores\n");
7. int i, j;
8. int soma = 0;
9. for (i = 0; i < 2; i++){
10. for (j = 0; j < 2; j++){
11. scanf("%i", &matriz[i][j]);
12. soma += matriz[i][j];
13. }
14. }
15. float media = soma / 4.0;
16. printf("Media: %f\n", media);
17. system("pause");
18. return 0;
19. }
Fonte: Elaborado pelos autores (2013).
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: A variável matriz é um array bidimensional do tipo int, e existem também
as variáveis i, j e soma, que são do tipo int, e a variável media, que é do tipo float.
A
São usadas 7 variáveis do tipo int e uma do tipo float.
B
São usadas 4 variáveis do tipo int e uma do tipo float.
C
Só são usadas variáveis de tipos primitivos.
D
São usadas 3 variáveis do tipo int, uma do tipo float e um array bidimensional do tipo int.
Questão 24 :
Com base no que você estudou sobre os tipos de dados homogêneos na unidade 31, analise o código a
seguir e responda qual variável do programa possui tipo de dados composto e homogêneo.
Algoritmo – Atividade
1. struct caracteres{
2. char a;
3. char b;
4. };
5.
6. int main(void)
7. {
8. int uma_matriz[2][2] = {
9. {1, 0},
10. {-1, 2}
11. };
12. struct caracteres uma_instancia;
13. uma_instancia.a = 'x';
14. uma_instancia.b = 'y';
15. return 0;
16. }
Fonte: Elaborado pelo autor (2013).
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Arrays e matrizes são tipos de dados compostos homogêneos. Os
campos a e b não são compostos, e a struct uma_instancia é heterogênea.
A
uma_instancia
B
uma_matriz
C
a
D
b
Questão 25 :
Sobre os tipos de dados primitivos de C, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como visto na unidade 26, o tipo char aceita números, e estes devem
pertencer ao intervalo de -128 a 127.
A
O tipo de dado char permite o armazenamento de números, logo seria correto atribuir o valor 1000 a uma
variável char.
B
O tipo de dado char permite o armazenamento de números, logo seria correto atribuir o valor 100 a uma
variável char.
C
Como strings são formadas por valores do tipo primitivo char, o tipo string também é considerado um tipo
primitivo.D
Em C, quando atribuímos a uma variável de tipo primitivo um valor fora do seu intervalo de representação, um
erro ocorre e o programa para de ser executado.
Questão 26 :
Sobre a abordagem usada para criação de tipos abstratos de dados, vista na unidade 18, assinale a
alternativa correta.
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Em C, usam-se arquivos diferentes para definição de interface e
implementação. As alternativas B e D descrevem conceitos opostos e a alternativa C
está errada, pois as interfaces são definidas no arquivo com extensão .h.
A
A definição de um tipo abstrato de dados em C é geralmente feita em dois arquivos diferentes, um
com extensão .h e outro .c.
B
Na criação de uma interface, define-se como cada funcionalidade do tipo de dados é implementada.
C
Em C, as interfaces são definidas sempre em arquivos com extensão .c, e para utilizá-las em um
programa é preciso adicionar uma instrução do tipo #include "novo_tipo.c" no arquivo do programa.
D
Na criação da implementação de um tipo abstrato de dados, definimos quais funcionalidades ele
terá, mas não definimos como cada funcionalidade deverá ser implementada.
Questão 27 :
Com base no que você estudou sobre manipulação de string, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como explicado na unidade 4, a Linguagem C usa como padrão de
codificação de caracteres a tabela ASCII.
A
Ao criar uma string em C de forma litera, precisamos escrever também o caractere nulo no texto da string,
como em char uma_string[]="aluno\0";.
B
A Linguagem C utiliza por padrão os símbolos contidos na tabela ASCII.
Questão 28 :
De acordo com os estudos da unidade 43, qual é a estrutura de dados que faz um armazenamento
temporário e no encerramento do programa apaga todos os dados armazenados em memória principal?
Acertou! A resposta correta é a opção C
Justificativa:
Resposta: C
Comentário: O vetor faz um armazenamento temporário, que no encerramento do
programa apaga todos os dados armazenados em memória principal. O arquivo faz o
armazenamento em memória secundária com a persistência dos dados
(armazenamento permanente de grande quantidade de dados).
A
Arquivo binário
B
Arquivo-texto
C
Vetor
D
Arquivos
Questão 29 :
Em um arquivo-texto, foram executadas rotinas de append conforme as instruções a seguir.
Append(‘a’);
Append(‘b’);
Append(‘c’);
Escolha, entre as opções a seguir e com base nos estudos da unidade 43, a única alternativa que
representa corretamente o resultado de como ficará o arquivo após essas instruções.
Acertou! A resposta correta é a opção D
Justificativa:
Reposta: D
A função de append consiste em inserir um elemento sempre no final da estrutura de
dados; dessa forma, ao final da operação, os elementos do arquivo estarão na mesma
ordem da inserção.
A
c, a, b
B
a, a, a
C
c, b, a
D
a, b, c
Questão 30 :
Na unidade 41, vimos sobre leitura e escrita de strings em arquivos, aprendemos que a
função fgets() serve para:
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Conforme aprendemos a função fgets() lê do arquivo e guarda a linha do arquivo na
variável que está esperando o retorno da função, parando a leitura se for encontrada
uma mudança de linha.
A
Gravar uma string em um arquivo.
B
Ler uma string do arquivo.
C
Abrir o arquivo e ler uma string.
D
Fechar o arquivo depois de ler uma string.
Questão 31 :
Com base no que você estudou na unidade 3 sobre o comando de repetição, assinale a alternativa
correta.
Resposta Errada! 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 32 :
Com base no exemplo a seguir e no que você aprendeu sobre tipos abstratos de dados e structs, assinale
a alternativa que apresenta corretamente o valor mostrado para o usuário na linha 19 do programa.
Algoritmo – Exemplo de tipos abstratos de dados em C
1. #include <stdio.h>
2. #include <stdlib.h>
3.
4. struct triangulo_t{
5. float lados[3];
6. };
7.
8. int main(void)
9. {
10. struct triangulo_t triangulo;
11. triangulo.lados[0] = 3;
12. triangulo.lados[1] = 4;
13. triangulo.lados[2] = 10;
14. float a = 0;
15. int i;
16. for (i = 0; i < 3; i++){
17. a += triangulo.lados[i];
18. }
19. printf("%f\n", a);
20. system("pause");
21. return 0;
1. }
Fonte: Elaborado pelo autor.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Conforme estudado na unidade 24, o programa cria uma struct e inicializa
seu vetor de 3 posições, com os valores 3, 4 e 10. Em seguida, um comando de
repetição soma todos os elementos desse vetor, o que resulta em 17.
A
0
B
3
C
10
D
17
Questão 33 :
Sobre o conceito de tipos abstratos de dados estudado na unidade 23, assinale a alternativa correta.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: As Structs são o principal mecanismo disponibilizado pela linguagem C
para a criação de tipos abstratos de dados.
A
O uso de tipos abstratos de dados, diferentes dos tipos primitivos de C, permite um maior desempenho aos
programas, pois eles executam seu código de forma mais rápida.
B
Manutenibilidade é a facilidade com que o programa tem de realizar a manutenção dos dados que ele usa.
C
A linguagem C é uma das linguagens que possui maior suporte a tipos abstratos de dados.
D
Uma das formas de se criar um tipo abstrato de dados em C é através de structs.
Questão 34 :
Sobre o assunto de strings, visto na unidade 17, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Ela descreve exatamente como é a representação de strings em Pascal.
As outras alternativas estão erradas, pois: o tipo String de Pascal é usado para
armazenar strings; a tabela ASCII reduzida só representa 128 caracteres; e a linguagem
Java não possui tipo primitivo de strings.
A
Em Pascal, existe um tipo de dados primitivo para armazenamento de strings, embora ele internamente seja
implementado como um array de caracteres.
B
A tabela ASCII, usada em C para codificação padrão de caracteres, suporta até 256 caracteres em sua versão
regular e reduzida.
C
A linguagem Java, ao contrário de C, possui um tipo primitivo de dados para armazenamento de strings.
D
O tipo primitivo para armazenamento de strings em Pascal se chama Char.
Questão 35 :
Qual a finalidade da função feof()?
Acertou! A resposta correta é a opção C
Justificativa:
Resposta: C
Comentário: A função feof() significa “End of file”, ou seja, final do arquivo, e retorna
verdadeiro ou falso indicando se é ou não final do arquivo passado como parâmetro.
A
Verificar se o arquivo está aberto.
B
Verificar se o arquivo está fechado.
C
Verificar se é final do arquivo.
D
Verificar se é inícioVerificar se é início do arquivo. do arquivo.
Questão 36 :
Sobre os tipos de dadosheterogêneos estudados na unidade 32, analise o código a seguir e responda
qual variável do programa possui tipo de dados composto e heterogêneo.
Algoritmo – Atividade
1. struct caracteres{
2. char a;
3. char b;
4. };
5.
6. int main(void)
7. {
8. char matriz[5][6];
9. struct caracteres uma_instancia;
10. uma_instancia.a = 'x';
11. uma_instancia.b = 'y';
12. return 0;
13. }
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Tanto o array bidimensional matriz quanto os campos a e b não são
compostos, restando apenas a struct uma_instancia, que é heterogênea.
A
matriz
B
uma_instancia
C
a
D
b
Questão 37 :
Com base no que você estudou sobre strings na unidade 17, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Variáveis do tipo char são números, podem armazenar no máximo 256
valores diferentes e Pascal não usa o caractere '\0'.
A
Uma variável do tipo char não pode ser tratada como um número.
B
Se usarmos uma variável do tipo char para armazenar caracteres, conseguiremos armazenar no máximo 128
caracteres diferentes.
C
Não existe um tipo primitivo de armazenamento de strings em C.
D
Em Pascal também se usa um caractere '\0' no fim da string para facilitar o cálculo do seu tamanho.
Questão 38 :
Sobre o processo de compilação e execução de programas citado na unidade 8, assinale a alternativa
correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como explicado no texto, ambas as linguagens são compiladas, e a
ferramenta que usamos para compilar nossos programas é o Dev-C++. O prompt de
comando do Windows é usado apenas para interface textual, não gráfica. O
compilador usado para o Windows não pode ser usado para o Linux pois cada
implementação de um compilador funciona para apenas um sistema operacional.
A
O prompt de comando é usado para executar programas que possuem interface gráfica.
B
Linguagens como C e C++ são linguagens compiladas, pois seu código é analisado por um compilador, que gera
um executável do programa.
C
O compilador que usamos para compilar nossos programas e executá-los no sistema Windows também
poderia ser usado para executar os programas no sistema Linux.
D
Saber como é implementada uma linguagem de programação não ajuda o usuário da linguagem a programar
melhor usando essa linguagem.
Questão 39 :
Sobre a abordagem usada para criação de tipos abstratos de dados, vista na unidade 18, assinale a
alternativa correta.
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como visto na unidade 18, definimos as interfaces em arquivos .h e
implementações em arquivos .c, de forma que possamos usar instruções #include para
incluir as interfaces em diversos arquivos .c de implementação.
A
A definição de um tipo abstrato de dados em C é geralmente separada em duas partes, a interface e a
implementação, ambas descritas em um arquivo com extensão .h.
B
Em C, criamos interfaces geralmente em arquivos com extensão .h e descrevemos a implementação dessas
interfaces em arquivos com extensão .c.
C
A criação de um tipo abstrato de dados novo é interessante principalmente em um cenário onde o tipo criado
será usado apenas em uma única aplicação.
D
Não poderíamos criar em C um tipo abstrato de dados chamado String, pois strings já são criadas através de
vetores de caracteres (char[]).
Questão 40 :
Sobre os tipos de dados heterogêneos, analise o código a seguir e responda qual ou quais variáveis do
programa possuem tipo de dados composto e heterogêneo.
Algoritmo – Atividade
1. struct estrutura{
2. int matriz_a[2][2];
3. int matriz_b[3][3];
4. };
5.
6. int main(void)
7. {
8. struct estrutura uma_estrutura;
9. uma_estrutura.matriz_a[0][0] = 500;
10. uma_estrutura.matriz_a[0][1] = 35;
11. int uma_matriz[2][2];
12. return 0;
13. }
Fonte: Elaborado pelo autor (2013).
Resposta Errada! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Structs são heterogêneas, pois aceitam dados de qualquer tipo (como foi
estudado na unidade 32). A única instância de struct no exemplo acima é a
variável uma_estrutura.
A
uma_matriz, matriz_a e matriz_b
B
matriz_a e matriz_b
C
uma_estrutura, matriz_a e matriz_b
D
uma_estrutura
Questão 41 :
Sobre o conceito de tipos abstratos de dados, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Manutenibilidade é a capacidade de se modificar ou adicionar novas
funcionalidades a um programa, ou seja, a facilidade com que se realiza manutenção
do software, como visto na unidade 23.
A
Não é possível abstrair conceitos complexos usando tipos abstratos de dados.
B
Reusabilidade é uma característica importante em programas de computador e uma das formas de coloca-la
em prática em C é usando diversos comandos de repetição.
C
Manutenibilidade é a capacidade de se realizar a manutenção de um programa de computador, adicionando
ou modificando suas funcionalidades.
D
O uso de enums é a forma mais usada de criar tipos abstratos de dados em C.
Questão 42 :
Sobre a criação de tipos abstratos de dados em C e C++, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Como visto na unidade 25, as palavras private e public de C++ permitem
que restrinjamos algumas variáveis ou funções da classe para que sejam usadas
apenas de dentro da própria classe, melhorando a segurança da estrutura.
A
A criação de tipos de dados abstratos em C++ também é feita através da criação de structs, assim como em C.
B
As classes de C++ são iguais às structs de C.
C
Structs são mais avançadas que classes porque nelas podemos definir diferentes escopos para variáveis,
melhorando a segurança do código.
D
Classes possuem a capacidade de definir membros privados ou públicos, restringindo algumas partes da classe
e melhorando o funcionamento dela.
Questão 43 :
Na unidade 42, aprendemos sobre leitura e escrita de registros, quais são as funções utilizadas para este
propósito?
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Como aprendemos, para conseguir ler e escrever registros em um arquivo de texto,
teremos que usar as funções de entrada e saída formatada, são elas: fscanf() e
fprintf().
A
fgets() e puts()
B
scanf() e printf()
C
fgetc() e fputc()
D
fscanf() e fprintf()
Questão 44 :
Sobre as funções matemáticas da biblioteca padrão de C, assinale a alternativa correta.
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: O arquivo math.h possui a definição de toda a biblioteca matemática
padrão de C, como mostrado na unidade 5.
A
Para usarmos funções da biblioteca matemática padrão de C, precisamos colocar a instrução #include
<math.h> no início do nosso programa.
B
Funções como cos(), sin() e tan() recebem como parâmetro um ângulo em graus.
C
A função floor() arredonda um número para o menor número inteiro que seja maior ou igual ao número real
recebido como parâmetro.
D
As funções ceil() e floor() possuem a mesma funcionalidade, pois ambas arredondam números.
Questão 45 :
Sobre o conceito de subprogramas e sua implementação na linguagem C, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Como visto na unidade 35, subprogramas são implementados em C
através de funções. A modularização pormeio da separação do código do programa
em várias funções é uma forma de modularização de granularidade mais fina.
A
Em C, subprogramas são implementados através de tipos dados, tanto homogêneos como heterogêneos.
B
Subprogramas comunicam-se entre si com instruções do tipo scanf e printf.
C
A criação de subprogramas é uma técnica de modularização de granularidade mais fina.
D
A assinatura de uma função é independente da funcionalidade que a função implementa.
Questão 46 :
Com base na passagem de parâmetros por valor, estudada na unidade 20, e no exemplo a seguir,
assinale a alternativa que apresenta corretamente o valor que é mostrado para o usuário na linha 13 do
programa?
Algoritmo – Exemplo de passagem de parâmetros por valor
1. #include <stdio.h>
2. #include <stdlib.h>
3.
4. void uma_funcao(int x)
5. {
6. x = x + 4;
7. }
8.
9. int main(void)
10. {
11. int x = 2;
12. uma_funcao(x);
13. printf("%d \n", x);
14. system("pause");
15. return 0;
16. }
Fonte: Elaborado pelo autor.
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: A variável x é criada com valor 2 e a função uma_funcao não altera seu
valor. Logo, é mostrado para o usuário o valor 2.
A
0
B
2
C
4
D
6
Questão 47 :
Com base no que você estudou na unidade 4 sobre strings, assinale a alternativa correta.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: É necessário usar o caractere nulo em C para definir o fim da string.
A
Uma string vazia em C é representada por um vetor de tamanho 0.
B
A string “aluno ” em C é representada por um vetor de tamanho 5.
C
No vetor representando a string “maria” em C, não existe nenhum caractere no índice 6.
D
Todo vetor representando strings em C possui, obrigatoriamente, pelo menos uma ocorrência do caractere
nulo.
Questão 48 :
Sobre o que você estudou sobre o uso de ponteiros na programação em C e com base nas duas
instruções em C a seguir, assinale a alternativa correta.
char a = 'c';
char* b = &a;
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Como visto na unidade 19, a expressão &a acessa o endereço da
variável a e o atribui ao ponteiro b. Logo, b aponta para a.
A
A variável a e a variável b possuem o mesmo valor, pois são do mesmo tipo.
B
O endereço da variável b é o mesmo da variável a.
C
A variável b possui o endereço da variável a, logo, b aponta para a.
D
A variável a possui o endereço da variável b, em forma de uma string.
Questão 49 :
Sobre os tipos de dados heterogêneos estudados na unidade 32, analise o código a seguir e responda
qual variável do programa possui tipo de dados composto e heterogêneo.
Algoritmo – Atividade
1. struct caracteres{
2. char a;
3. char b;
4. };
5.
6. int main(void)
7. {
8. char matriz[5][6];
9. struct caracteres uma_instancia;
10. uma_instancia.a = 'x';
11. uma_instancia.b = 'y';
12. return 0;
13. }
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Tanto o array bidimensional matriz quanto os campos a e b não são
compostos, restando apenas a struct uma_instancia, que é heterogênea.
A
matriz
B
uma_instancia
C
a
D
b
Questão 50 :
Sobre o conceito de modularização, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: De acordo com o que foi estudado na unidade 33, as vantagens da
modularização são as melhorias na legibilidade e manutenibilidade, sendo que esta
última significa realizar mudanças no código de forma mais fácil.
A
Programas modularizados ficam mais legíveis, embora seja mais complicado realizar a manutenção do código.
B
Uma das vantagens de se ter um programa separado em módulos é permitir que mudanças no código fiquem
mais fáceis de ser realizadas.
C
Um programa que utilize modularização das suas funcionalidades dificulta o entendimento do seu código, pois
cada módulo deve ser compreendido separadamente.
D
Programas de computador sempre ficam mais rápidos quando suas funcionalidades estão divididas em
módulos.
Questão 51 :
Com base no que você estudou sobre tipologias de linguagens na unidade 7, assinale a alternativa que
responde corretamente a seguinte questão: o que são linguagens de baixo nível?
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: O nível é definido pela quantidade de abstrações. Então, Linguagens de
baixo nível possuem poucas abstrações, talvez nenhuma. Em outras palavras, são
linguagens muito parecidas ou iguais às linguagens de máquina.
A
Linguagens fáceis de aprender e programar.
B
Linguagens semelhantes à linguagem de máquina, com poucas ou nenhuma abstração.
C
Linguagens como SQL, que possuem fins específicos e abstraem muito o funcionamento interno das ações.
D
Linguagens como C e Java, que não possuem fins específicos, mas possuem várias abstrações como estruturas
de seleção, repetição, strings e arrays.
Questão 52 :
Com base no que você estudou sobre ponteiros, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Foi estudado na unidade 19 que a memória principal, também chamada
de memória RAM, recebe todas as instruções e os dados do programa quando a sua
execução é iniciada.
A
Um ponteiro inválido, se avaliado como expressão lógica, terá valor falso.
B
A memória principal do computador possui as instruções e os dados usados pelos programas que estão sendo
executados.
C
Ponteiros inválidos, na verdade, apontam para variáveis de outros programas e, por isso, podem ser usados
para acessar dados de outros programas.
D
Ponteiros são variáveis que guardam cópias do valor de outras variáveis.
Questão 53 :
Na unidade 41, aprendemos sobre manipulação de arquivos, qual das funções listadas a seguir servem
para fechar um arquivo antes de utilizá-lo:
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Como aprendemos na unidade a função fclose() da linguagem C é usada para fechar
um arquivo, recebe como parâmetro o ponteiro para o arquivo que será fechado.
A
fclose();
B
arqclose();
C
EOF (end-of-file)
D
FILE*
Questão 54 :
Sobre o assunto de strings, visto na unidade 17, assinale a alternativa correta.
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Ela descreve exatamente como é a representação de strings em Pascal.
As outras alternativas estão erradas, pois: o tipo String de Pascal é usado para
armazenar strings; a tabela ASCII reduzida só representa 128 caracteres; e a linguagem
Java não possui tipo primitivo de strings.
A
Em Pascal, existe um tipo de dados primitivo para armazenamento de strings, embora ele internamente seja
implementado como um array de caracteres.
B
A tabela ASCII, usada em C para codificação padrão de caracteres, suporta até 256 caracteres em sua versão
regular e reduzida.
C
A linguagem Java, ao contrário de C, possui um tipo primitivo de dados para armazenamento de strings.
D
O tipo primitivo para armazenamento de strings em Pascal se chama Char.
Questão 55 :
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 implementea 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 56 :
Com base no que você estudou sobre o comando de repetição, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Como visto na unidade 3, nesse comando de repetição o bloco é sempre
executado pelo menos uma vez.
A
No comando de repetição com teste no fim não é possível que o bloco de instruções não seja executado
nenhuma vez.
B
Os comandos de repetição estudados existem em C, mas não costumam aparecer em outras linguagens de
programação.
C
Todos os tipos de comandos de repetição fazem uso de uma variável de controle.
D
O bloco de instruções dentro de um comando de repetição não pode ser vazio.
Questão 57 :
Sobre o conceito de modularização estudado na unidade 33, assinale a alternativa correta.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Vimos que as maiores vantagens da modularização é a melhora na
legibilidade (entender o código) e na manutenibilidade (manipular e realizar mudanças
no código).
A
Uma das razões para realizar a modularização de um programa é aumentar a velocidade com que ele é
executado.
B
Programas modularizados ficam menos legíveis, embora o aspecto manutenibilidade seja melhorado.
C
A manutenção no código de um programa que utiliza modularização das suas funcionalidades através de
funções é mais difícil do que a de um programa que possua apenas uma função.
D
É mais fácil entender e manipular o código de um programa que possua suas funcionalidades divididas em
módulos.
Questão 58 :
Sobre o conceito de variáveis e constantes estudados na unidade 9, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Em C, a única informação que pode mudar a respeito de uma variável é o
seu valor. Na declaração da variável não é definido seu valor, assim como na
inicialização não é definido seu tipo. Na criação de constantes usando #define não
precisamos definir um tipo.
A
Declaração de variável é o momento no qual definimos o nome e o valor de uma variável.
B
A inicialização de uma variável é o momento no qual definimos o nome e o tipo de uma variável.
C
Em C, após a sua criação, não podemos mais mudar o nome, o tipo e nem o escopo de uma variável.
D
Tanto na criação de constantes quanto de variáveis, precisamos definir um nome e um tipo para o que
estamos criando.
Questão 59 :
Na unidade 13, você estudou sobre comandos em programação, principalmente o comando de
atribuição. Com base nisso, considere as duas linhas de código a seguir:
a = 3;
b = a++;
Qual o valor da variável b após a execução dessas duas instruções?
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: A
Comentário: O valor de a é 3 e o incremento só é realizado após a atribuição de 3 a b.
A
3
B
4
C
5
D
6
Questão 60 :
Analise o código a seguir.
Figura – Exemplo de Algoritmo – Atividade.
Fonte: Elaborada pelo autor (2013).
Escolha a única alternativa que representa corretamente o número da linha na qual a instrução
fclose(arquivo) deve ser inserida para fechamento correto do arquivo.
Acertou! A resposta correta é a opção C
Justificativa:
Resposta: C
O arquivo deve ser fechado após o laço se encerrar quando todos os dados já
estiverem sido visitados e antes do método se encerrar.
A
Na linha 3, pois o correto é fechar o arquivo assim que ele seja aberto.
B
Na linha 8, para que o arquivo seja fechado cada vez que o laço enquanto seja executado.
C
Após a linha 10, para que o arquivo seja fechado antes do encerramento do método listar.
D
Na linha 4, dentro do if(arquivo == NULL), para que o arquivo seja fechado somente se ocorrer erro na
abertura deste.
Questão 61 :
Com base no que você estudou sobre strings na unidade 17, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Variáveis do tipo char são números, podem armazenar no máximo 256
valores diferentes e Pascal não usa o caractere '\0'.
A
Uma variável do tipo char não pode ser tratada como um número.
B
Se usarmos uma variável do tipo char para armazenar caracteres, conseguiremos armazenar no máximo 128
caracteres diferentes.
C
Não existe um tipo primitivo de armazenamento de strings em C.
D
Em Pascal também se usa um caractere '\0' no fim da string para facilitar o cálculo do seu tamanho.
Questão 62 :
Sobre a criação de tipos abstratos de dados em C e C++, assinale a alternativa correta.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Como visto na unidade 25, as palavras private e public de C++ permitem
que restrinjamos algumas variáveis ou funções da classe para que sejam usadas
apenas de dentro da própria classe, melhorando a segurança da estrutura.
A
A criação de tipos de dados abstratos em C++ também é feita através da criação de structs, assim como em C.
B
As classes de C++ são iguais às structs de C.
C
Structs são mais avançadas que classes porque nelas podemos definir diferentes escopos para variáveis,
melhorando a segurança do código.
D
Classes possuem a capacidade de definir membros privados ou públicos, restringindo algumas partes da classe
e melhorando o funcionamento dela.
Questão 63 :
Analise o código a seguir.
Figura – Exemplo de Algoritmo – Atividade.
Fonte: Elaborada pelo autor (2013).
Entre as opções a seguir, assinale as instruções que devem ser inseridas no retângulo com símbolo “?” e
que permitam calcular corretamente a média de idade dos homens cadastrados no arquivo.
Resposta Errada! A resposta correta é a opção D
Justificativa:
Resposta: D
Comentário: Para descobrir a média de idade dos homens, é necessário verificar se o
sexo do funcionário cadastrado no arquivo é masculino (M ou m) e, em caso
afirmativo, é necessário somar a idade desse funcionário e acumular a quantidade de
homens cadastrados – informações representadas pelas variáveis somaIdade e
totalHomens, respectivamente.
A
somaIdade= somaIdade + func.idade;
totalHomens++;
B
if (func.sexo == 'F' || func.sexo == F'){
somaIdade= somaIdade + func.idade;
totalHomens++;
}
C
totalHomens++;
D
if (func.sexo == 'M' || func.sexo == 'm'){
somaIdade= somaIdade + func.idade;
totalHomens++;
}
Questão 64 :
Qual a finalidade da função feof()?
Acertou! A resposta correta é a opção C
Justificativa:
Resposta: C
Comentário: A função feof() significa “End of file”, ou seja, final do arquivo, e retorna
verdadeiro ou falso indicando se é ou não final do arquivo passado como parâmetro.
A
Verificar se o arquivo está aberto.
B
Verificar se o arquivo está fechado.
C
Verificar se é final do arquivo.
D
Verificar se é inícioVerificar seé início do arquivo. do arquivo.
Questão 65 :
Sobre os tipos de dados primitivos de C, assinale a alternativa correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como visto na unidade 26, o tipo char aceita números, e estes devem
pertencer ao intervalo de -128 a 127.
A
O tipo de dado char permite o armazenamento de números, logo seria correto atribuir o valor 1000 a uma
variável char.
B
O tipo de dado char permite o armazenamento de números, logo seria correto atribuir o valor 100 a uma
variável char.
C
Como strings são formadas por valores do tipo primitivo char, o tipo string também é considerado um tipo
primitivo.
D
Em C, quando atribuímos a uma variável de tipo primitivo um valor fora do seu intervalo de representação, um
erro ocorre e o programa para de ser executado.
Questão 66 :
Sobre os tipos de dados heterogêneos estudados na unidade 32, analise o código a seguir e responda
qual variável do programa possui tipo de dados composto e heterogêneo.
Algoritmo – Atividade
1. struct caracteres{
2. char a;
3. char b;
4. };
5.
6. int main(void)
7. {
8. char matriz[5][6];
9. struct caracteres uma_instancia;
10. uma_instancia.a = 'x';
11. uma_instancia.b = 'y';
12. return 0;
13. }
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Tanto o array bidimensional matriz quanto os campos a e b não são
compostos, restando apenas a struct uma_instancia, que é heterogênea.
A
matriz
B
uma_instancia
C
a
D
b
Questão 67 :
Dado o procedimento a seguir, determine o valor que será impresso na tela quando a chamada for
equacao(30, 33, 4):
Algoritmo – Exercício sobre procedimentos
1 void equacao(int a, int b, int c) {
2 int x;
3 x = 0;
4 if (a > b - 3) {
5 x = c * 2;
6 } else {
7 x = c * 3;
8 }
9 printf("%d", x);
10 }
Fonte: Elaborado pelo autor (2013).
Resposta Errada! A resposta correta é a opção C
Justificativa:
Gabarito: C
Os procedimentos apresentados anteriormente passam por parâmetro de valores 30,
33 e 4, sendo a = 10, b = 8 e c = 4. Na linha 3, o x recebe o valor 0 (zero) e, na linha 4, é
testado se a é maior que b - 3, logo se a = 30 e b – 3 = 33 – 3 = 30, o teste é falso e o
procedimento vai para a linha 7 e multiplica o c pelo 3, logo c = 4, 4 * 3 = 12, o x recebe
o valor 12. Por fim, na linha 9, o procedimento escreve o resultado: 12 (unidade 37).
A
Será impresso na tela: 4
B
Será impresso na tela: 90
C
Será impresso na tela: 12
D
Será impresso na tela: 3
Questão 68 :
Os dois principais modos de abertura de um arquivo de texto utilizando a função fopen() são “r” e “w”, o
significado deles, respectivamente, são:
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Conforme visto na unidade 41, os principais modos com os quais o arquivo deve ser
aberto são:
Modo de Abertura Significado
r Abre um arquivo-texto para leitura
w Cria um arquivo-texto para escrita
r+ Abre um arquivo-texto para leitura/escrita
w+ Cria um arquivo-texto para leitura/escrita
A
“r” abre um arquivo para gravação e “w” abre um arquivo para leitura.
B
“r” abre um arquivo para leitura e “w” abre um arquivo para gravação.
C
“r” abre um arquivo e exclui o conteúdo e “w” abre um arquivo para gravação.
D
“r” abre um arquivo para leitura e “w” abre um arquivo para gravação somente se ele existir.
Questão 69 :
Sobre os tipos de dados heterogêneos, analise o código a seguir e responda qual ou quais variáveis do
programa possuem tipo de dados composto e heterogêneo.
Algoritmo – Atividade
1. struct estrutura{
2. int matriz_a[2][2];
3. int matriz_b[3][3];
4. };
5.
6. int main(void)
7. {
8. struct estrutura uma_estrutura;
9. uma_estrutura.matriz_a[0][0] = 500;
10. uma_estrutura.matriz_a[0][1] = 35;
11. int uma_matriz[2][2];
12. return 0;
13. }
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Structs são heterogêneas, pois aceitam dados de qualquer tipo (como foi
estudado na unidade 32). A única instância de struct no exemplo acima é a
variável uma_estrutura.
A
uma_matriz, matriz_a e matriz_b
B
matriz_a e matriz_b
C
uma_estrutura, matriz_a e matriz_b
D
uma_estrutura
Questão 70 :
A função fopen() da linguagem C é utilizada para abrir um arquivo, ela recebe como parâmetro 2
argumentos, eles são, respectivamente:
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Conforme aprendemos na unidade 41, a função padrão fopen() é usada para abrir um
arquivo. Ela recebe dois argumentos do tipo string: o primeiro argumento é o nome do
arquivo (por exemplo, clientes.txt), o segundo argumento é a indicação do modo no
qual o arquivo deve ser aberto.
A
Nome do Arquivo e Modo de Abertura
B
Nome do Arquivo e Variável de Ponteiro
C
Modo de Leitura e Modo de Escrita
D
Nome do Arquivo e Função de Leitura
Questão 71 :
De acordo com os estudos da unidade 45, a função sizeof() tem como finalizade:
Acertou! A resposta correta é a opção C
Justificativa:
Resposta: C
Comentário: A função sizeof() retorna o espaço de memória que um determinado tipo
de dado ocupará no momento em que for armazenado na memória.
A
gravar um registro no arquivo.
B
remover um registro do arquivo.
C
retornar o espaço de memória alocado por um tipo de dados.
D
retornar o endereço de memória alocado por um tipo de dados.
Questão 72 :
Sobre a abordagem usada para criação de tipos abstratos de dados, vista na unidade 18, assinale a
alternativa correta.
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Em C, usam-se arquivos diferentes para definição de interface e
implementação. As alternativas B e D descrevem conceitos opostos e a alternativa C
está errada, pois as interfaces são definidas no arquivo com extensão .h.
A
A definição de um tipo abstrato de dados em C é geralmente feita em dois arquivos diferentes, um
com extensão .h e outro .c.
B
Na criação de uma interface, define-se como cada funcionalidade do tipo de dados é implementada.
C
Em C, as interfaces são definidas sempre em arquivos com extensão .c, e para utilizá-las em um
programa é preciso adicionar uma instrução do tipo #include "novo_tipo.c" no arquivo do programa.
D
Na criação da implementação de um tipo abstrato de dados, definimos quais funcionalidades ele
terá, mas não definimos como cada funcionalidade deverá ser implementada.
Questão 73 :
O termo persistência de dados é usado para as atividades de:
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Na unidade 39, vimos que o termo “persistência de dados” é usado para as atividades
de armazenamento e recuperação de dados na memória secundária.
A
Armazenamento e recuperação de dados em memória principal.
B
Atribuição e exclusão de valor em variáveis transientes.
C
Armazenamento e recuperação de dados em memória secundária.
D
Atualização e consulta de dados da memória principal.
Questão 74 :
Sobre os tipos de dados primitivos de C, assinale a alternativa correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como visto na unidade 26, o tipo char aceita números, e estes devem
pertencer ao intervalo de -128 a 127.
A
O tipo de dado char permite o armazenamento de números,logo seria correto atribuir o valor 1000 a uma
variável char.
B
O tipo de dado char permite o armazenamento de números, logo seria correto atribuir o valor 100 a uma
variável char.
C
Como strings são formadas por valores do tipo primitivo char, o tipo string também é considerado um tipo
primitivo.
D
Em C, quando atribuímos a uma variável de tipo primitivo um valor fora do seu intervalo de representação, um
erro ocorre e o programa para de ser executado.
Questão 75 :
Sobre o conceito de variável e constante, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Como visto na unidade 9, usar uma variável após a sua declaração, porém
antes da sua inicialização, não é recomendado, pois seu valor ainda é indefinido e
incerto. Nesse momento, a variável já foi criada, logo possui um valor, porém seu valor
ainda não foi definido pelo programador, logo pode ser qualquer valor dentre todos os
que a variável consegue representar. Essa incerteza pode causar comportamento
inesperado caso a variável seja usada nesse momento.
A
Podemos usar uma variável sem declará-la primeiro, mas o processo de inicialização é obrigatório.
B
Toda constante possui um nome, um tipo e um escopo explícitos.
C
Usar uma variável antes de inicializar seu valor não é um erro, porém não é recomendado, pois isso pode gerar
um comportamento inesperado no programa.
D
Em C, constantes são obrigatoriamente escritas com letras maiúsculas.
Questão 76 :
Sobre as funções matemáticas da biblioteca padrão de C, assinale a alternativa correta.
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: O arquivo math.h possui a definição de toda a biblioteca matemática
padrão de C, como mostrado na unidade 5.
A
Para usarmos funções da biblioteca matemática padrão de C, precisamos colocar a instrução #include
<math.h> no início do nosso programa.
B
Funções como cos(), sin() e tan() recebem como parâmetro um ângulo em graus.
C
A função floor() arredonda um número para o menor número inteiro que seja maior ou igual ao número real
recebido como parâmetro.
D
As funções ceil() e floor() possuem a mesma funcionalidade, pois ambas arredondam números.
Questão 77 :
Dado o programa apresentado a seguir e com base no que você estudou na unidade 11, 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. void uma_funcao(void)
5. 5. {
6. 6. int a;
7. 7. for (a = 10; a > 0; a--){
8. 8. printf("%d \n", a);
9. 9. }
10. 10. }
11. 11.
12. 12. int main(void)
13. 13.{
14. 14. int x;
15. 15. int y;
16. 16. scanf("%d", &x);
17. 17. y = 5;
18. 18. if (x > y){
19. 19. int z = 4;
20. 20. }
21. 21. uma_funcao();
22. 22. system("pause");
23. 23. return 0;
24. 24. }
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: A instrução da linha 19 consiste na declaração e inicialização da variável z
em uma única instrução, o que é possível em C.
A
O escopo da variável a se inicia na linha 6 e vai até a linha 24.
B
Sempre que o programa é executado, são declaradas 4 variáveis locais.
C
As variáveis x e y são inicializadas nas linhas 14 e 15, respectivamente.
D
A variável z é declarada e inicializada na linha 19.
Questão 78 :
Com base no que você estudou sobre a instrução typedef, assinale a alternativa correta.
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Foi estudado na unidade 25 que a instrução typedef define um novo
nome para um tipo de dado já existente, e que uma das vantagens disso é melhorar a
legibilidade do programa, usando nomes mais simples.
A
Com a instrução typedef podemos melhorar a legibilidade do código definindo nomes mais fáceis para tipos de
dados.
B
Toda declaração de uma struct deve vir seguida de uma instrução typedef.
C
Existem duas formas de se criar tipos abstratos de dados em C, com structs ou com typedef.
D
Não podemos usar a instrução typedef para definir nomes para tipos primitivos de C, apenas para structs.
Questão 79 :
Sobre os tipos de dados primitivos de C, estudados na unidade 26, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Foi visto que existem tipos de dados que suportam o armazenamento de
números negativos e outros não. Por exemplo, os tipos de dados iniciados
em unsigned armazenam apenas números positivos.
A
Strings são um exemplo de tipo primitivo de C.
B
Com exceção do tipo char, todo tipo primitivo de C aceita valores numéricos.
C
Existem tipos de dados primitivos que só armazenam números positivos.
D
Os tipos short e float são usados para armazenar números reais.
Questão 80 :
Sobre o processo de compilação e execução de programas, assinale a alternativa correta.
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Na unidade 8, aprendemos que o papel do compilador é justamente
traduzir o programa para a linguagem de máquina, gerando um arquivo que o usuário
possa executar. Foi estudado que o mesmo compilador não serve para diferentes
linguagens de programação, e nem gera código para diferentes linguagens de
máquina. Além disso, nenhum programa criado na disciplina possui interface gráfica,
apenas textual.
A
O resultado do processo de compilação é um arquivo executável, o qual realiza exatamente o que foi descrito
nas instruções do programa.
B
Embora as linguagens de programação sejam muito diferentes, podemos usar o mesmo compilador para
compilar programas escritos em qualquer linguagem.
C
Os programas que criamos nesta disciplina possuem interface gráfica de comunicação com o usuário.
D
Um mesmo compilador pode ser usado para compilar programas para qualquer linguagem de máquina.
Questão 81 :
Sobre os tipos de dados compostos de C, estudados na unidade 27, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Como foi estudado, uma struct apenas agrupa um conjunto de variáveis
quaisquer, as quais podem ser de qualquer tipo, tanto primitivo quanto composto. Um
array ou matriz, por outro lado, só pode ter valores de um mesmo tipo.
A
Como strings já são arrays, não é possível criar um array de strings.
B
Arrays e matrizes podem ser de qualquer tipo de dado, desde que esse tipo seja primitivo.
C
Uma única struct pode conter valores de diferentes tipos, ao contrário de um array ou de uma matriz, que só
aceitam valores de um mesmo tipo.
D
Não é possível criar arrays de structs em C.
Questão 82 :
Com base na passagem de parâmetros por valor, analise o programa a seguir e assinale a alternativa que
responda corretamente a esta questão: que valor é mostrado para o usuário na linha 14 do programa?
Algoritmo – Exemplo de passagem de parâmetros por valor
1. #include <stdio.h>
2. #include <stdlib.h>
3.
4. int uma_funcao(int x)
5. {
6. x = x + 4;
7. return x;
8. }
9.
10. int main(void)
11. {
12. int x = 2;
13. int y = uma_funcao(x);
14. printf("%d \n", x + y);
15. system("pause");
16. return 0;
17. }
Fonte: Elaborado pelo autor.
Resposta Errada! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Conforme estudado na unidade 20, a variável x possui valor 2. A
variável y possui o retorno da função uma_funcao, que é x + 4, ou seja, 6. Na linha 14,
é somado então 2 + 6, o que resulta em 8.
A
2
B
4
C
6
D
8
Questão 83 :
Sobretipologias de linguagens, responda: o que são linguagens de alto nível?
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Na unidade 7, estudamos que abstração é uma redução do objeto que
está sendo estudado, até um ponto onde é possível descrevê-lo usando apenas a
linguagem em questão. Há vários conceitos que usamos na programação e que
abstraem conceitos bem maiores. Nesse cenário, quanto mais abstrações a linguagem
tiver, maior será o seu nível.
A
São linguagens complexas e difíceis de aprender.
B
São linguagens com fins específicos para pesquisa em inteligência artificial e robótica.
C
São linguagens como Java e C++, que possuem altos níveis de abstrações.
D
São linguagens com alto poder de processamento, como linguagens de máquina.
Questão 84 :
Sobre o processo de compilação e execução de programas citado na unidade 8, assinale a alternativa
correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como explicado no texto, ambas as linguagens são compiladas, e a
ferramenta que usamos para compilar nossos programas é o Dev-C++. O prompt de
comando do Windows é usado apenas para interface textual, não gráfica. O
compilador usado para o Windows não pode ser usado para o Linux pois cada
implementação de um compilador funciona para apenas um sistema operacional.
A
O prompt de comando é usado para executar programas que possuem interface gráfica.
B
Linguagens como C e C++ são linguagens compiladas, pois seu código é analisado por um compilador, que gera
um executável do programa.
C
O compilador que usamos para compilar nossos programas e executá-los no sistema Windows também
poderia ser usado para executar os programas no sistema Linux.
D
Saber como é implementada uma linguagem de programação não ajuda o usuário da linguagem a programar
melhor usando essa linguagem.
Questão 85 :
Analise o algoritmo a seguir, que aplica em um exemplo o conhecimento que você adquiriu sobre os
variados tipos de dados. Em seguida, assinale a alternativa correta sobre quais são os tipos de dados
usados no programa.
Algoritmo – Programa em C que usa vários tipos de dados
1. #include <stdio.h>
2. #include <stdlib.h>
3.
4. int main(void)
5. {
6. int matriz[2][2];
7. printf("Informe os valores\n");
8. unsigned int i, j;
9. float soma = 0;
10. for (i = 0; i < 2; i++){
11. for (j = 0; j < 2; j++){
12. scanf("%i", &matriz[i][j]);
13. soma += matriz[i][j];
14. }
15. }
16. double media = soma / 4;
17. printf("Media: %f\n", media);
18. system("pause");
19. return 0;
20. }
Fonte: Elaborado pelos autores (2013).
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Como visto nos exemplos da unidade 28, arrays são considerados uma
única vez; logo, existe um array bidimensional do tipo int. Além disso, existem duas
variáveis do tipo unsigned int, usadas no controle da estrutura de repetição, e mais
uma variável float e outra double.
A
São usadas 6 variáveis do tipo int, 1 do tipo float e 1 do tipo double.
B
São usadas 3 variáveis do tipo int, 1 do tipo float e 1 do tipo double.
C
São usadas 2 variáveis do tipo unsigned int, 1 array bidimensional do tipo int, 1 variável do tipo float e 1 do
tipo double.
D
São usadas 4 variáveis do tipo int, 2 do tipo unsigned int, 1 do tipo float e 1 do tipo double.
Questão 86 :
Na unidade 41, aprendemos que para abrir um arquivo utilizando a linguagem C utilizamos a
função fopen(), essa função recebe dois parâmetros, o primeiro é o nome do arquivo que queremos abrir
e o segundo o modo de abertura. Qual o parâmetro deve ser passado para a função para abrir o arquivo
para leitura?
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Como vimos o parâmetro que deve ser passado para leitura de um arquivo é “r”, ele
abre um arquivo texto para leitura. O arquivo deve existir antes de ser aberto.
A
“a”
B
“l”
C
“r”
D
“w”
Questão 87 :
O termo persistência de dados é usado para as atividades de:
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Na unidade 39, vimos que o termo “persistência de dados” é usado para as atividades
de armazenamento e recuperação de dados na memória secundária.
A
Armazenamento e recuperação de dados em memória principal.
B
Atribuição e exclusão de valor em variáveis transientes.
C
Armazenamento e recuperação de dados em memória secundária.
D
Atualização e consulta de dados da memória principal.
Questão 88 :
Com base na inicialização de matrizes estudada na unidade 31, 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 D
Justificativa:
Gabarito: D
Comentário: A alternativa D é a única que não está sintaticamente errada. A
alternativa B não possui as chaves obrigatórias, e as alternativas A e C possuem
quantidades diferentes de elementos na declaração e na inicialização.
A
int uma_matriz[2][2] = {
{2, 7, 8},
{-4, 3, -5},
{1, 4, 9}
};
B
int uma_matriz[2][2] = {
1, 23,
-64, 3
};
C
int uma_matriz[3][3] = {
{9, 0},
{6, 3}
};
D
int uma_matriz[2][2] = {
{-12, -17},
{-14, -13}
};
Questão 89 :
Com base no que você estudou sobre ponteiros, assinale a alternativa correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Foi estudado na unidade 19 que a memória principal, também chamada
de memória RAM, recebe todas as instruções e os dados do programa quando a sua
execução é iniciada.
A
Um ponteiro inválido, se avaliado como expressão lógica, terá valor falso.
B
A memória principal do computador possui as instruções e os dados usados pelos programas que estão sendo
executados.
C
Ponteiros inválidos, na verdade, apontam para variáveis de outros programas e, por isso, podem ser usados
para acessar dados de outros programas.
D
Ponteiros são variáveis que guardam cópias do valor de outras variáveis.
Questão 90 :
Sobre o conceito de variáveis e constantes estudados na unidade 9, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Em C, a única informação que pode mudar a respeito de uma variável é o
seu valor. Na declaração da variável não é definido seu valor, assim como na
inicialização não é definido seu tipo. Na criação de constantes usando #define não
precisamos definir um tipo.
A
Declaração de variável é o momento no qual definimos o nome e o valor de uma variável.
B
A inicialização de uma variável é o momento no qual definimos o nome e o tipo de uma variável.
C
Em C, após a sua criação, não podemos mais mudar o nome, o tipo e nem o escopo de uma variável.
D
Tanto na criação de constantes quanto de variáveis, precisamos definir um nome e um tipo para o que
estamos criando.
Questão 91 :
Com base no conhecimento que você adquiriu em Programação I, e relembrou na unidade 1 desta
disciplina, assinale a alternativa correta.Com base no conhecimento que você adquiriu em Programação
I, e relembrou na unidade 1 desta disciplina, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Na unidade 1, estudamos que algoritmos sequenciais são aqueles em que
existe apenas um fluxo de execução, pois não possuem estruturas de seleção nem de
repetição.
A
Em C, usamos o tipo de dados int para armazenar números reais.
B
Um algoritmo é uma sequência finita ou infinita de passos, dependendoda quantidade de fluxos de execução
alternativos.
C
Algoritmos sequenciais possuem exatamente um fluxo de execução possível.
D
Estruturas de seleção condicional não causam fluxos de execução alternativos para um algoritmo.
Questão 92 :
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.
Questão 93 :
Na unidade 42, aprendemos sobre leitura e escrita de registros, quais são as funções utilizadas para este
propósito?
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Como aprendemos, para conseguir ler e escrever registros em um arquivo de texto,
teremos que usar as funções de entrada e saída formatada, são elas: fscanf() e
fprintf().
A
fgets() e puts()
B
scanf() e printf()
C
fgetc() e fputc()
D
fscanf() e fprintf()
Questão 94 :
Dado o programa apresentado a seguir e com base no que você estudou na unidade 11, 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. void uma_funcao(void)
5. 5. {
6. 6. int a;
7. 7. for (a = 10; a > 0; a--){
8. 8. printf("%d \n", a);
9. 9. }
10. 10. }
11. 11.
12. 12. int main(void)
13. 13.{
14. 14. int x;
15. 15. int y;
16. 16. scanf("%d", &x);
17. 17. y = 5;
18. 18. if (x > y){
19. 19. int z = 4;
20. 20. }
21. 21. uma_funcao();
22. 22. system("pause");
23. 23. return 0;
24. 24. }
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: A instrução da linha 19 consiste na declaração e inicialização da variável z
em uma única instrução, o que é possível em C.
A
O escopo da variável a se inicia na linha 6 e vai até a linha 24.
B
Sempre que o programa é executado, são declaradas 4 variáveis locais.
C
As variáveis x e y são inicializadas nas linhas 14 e 15, respectivamente.
D
A variável z é declarada e inicializada na linha 19.
Questão 95 :
Analise o algoritmo a seguir, semelhante ao estudado na unidade 28, onde você aplicou em exemplos o
conhecimento adquirido sobre os variados tipos de dados. Em seguida, assinale a alternativa correta
sobre quais são os tipos de dados usados no programa.
Algoritmo – Programa em C que usa vários tipos de dados
1. #include <stdio.h>
2.
3. int main(void)
4. {
5. int matriz[2][2];
6. printf("Informe os valores\n");
7. int i, j;
8. int soma = 0;
9. for (i = 0; i < 2; i++){
10. for (j = 0; j < 2; j++){
11. scanf("%i", &matriz[i][j]);
12. soma += matriz[i][j];
13. }
14. }
15. float media = soma / 4.0;
16. printf("Media: %f\n", media);
17. system("pause");
18. return 0;
19. }
Fonte: Elaborado pelos autores (2013).
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: A variável matriz é um array bidimensional do tipo int, e existem também
as variáveis i, j e soma, que são do tipo int, e a variável media, que é do tipo float.
A
São usadas 7 variáveis do tipo int e uma do tipo float.
B
São usadas 4 variáveis do tipo int e uma do tipo float.
C
Só são usadas variáveis de tipos primitivos.
D
São usadas 3 variáveis do tipo int, uma do tipo float e um array bidimensional do tipo int.
Questão 96 :
Qual o tipo de estrutura de dados que melhor se adapta ao contexto apresentado a seguir.
Arquivos em que há o armazenamento de pequenos volumes de dados e a frequência de acessos
aleatórios (posições variadas e não sequenciais) aos dados não são elevados.
Com base nos estudos da unidade 43, escolha a única alternativa que representa corretamente a
estrutura de dados que melhor se adapta ao contexto apresentado anteriormente.
Acertou! A resposta correta é a opção D
Justificativa:
Reposta: D
Quando no arquivo há o armazenamento de pequenos volumes de dados e a
frequência de acessos aleatórios (posições variadas e não sequenciais) aos dados não
é elevada, o arquivo sequencial atende às necessidades. Entretanto, se o volume de
dados e a frequência de acessos se tornam elevadas, há a necessidade de acesso
rápido aos dados dos arquivos, nesse caso o acesso indexado é o mais indicado.
A
Arquivos indexados
B
Arquivos binários
C
Arquivos-textos
D
Arquivos sequenciais
Questão 97 :
Sobre os tipos de dados compostos de C, estudados na unidade 27, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Como foi estudado, uma struct apenas agrupa um conjunto de variáveis
quaisquer, as quais podem ser de qualquer tipo, tanto primitivo quanto composto. Um
array ou matriz, por outro lado, só pode ter valores de um mesmo tipo.
A
Como strings já são arrays, não é possível criar um array de strings.
B
Arrays e matrizes podem ser de qualquer tipo de dado, desde que esse tipo seja primitivo.
C
Uma única struct pode conter valores de diferentes tipos, ao contrário de um array ou de uma matriz, que só
aceitam valores de um mesmo tipo.
D
Não é possível criar arrays de structs em C.
Questão 98 :
Sobre a estrutura de dados de pilha, declarada na unidade 29, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: A implementação natural e mais simples da estrutura de dados de pilha
possui um número máximo de elementos na pilha, predeterminado, representado
pela constante MAX.
A
Sabemos que a pilha está vazia quando a variável que guarda o índice do seu topo está com valor 0.
B
Se uma pilha está vazia, a função obtem_topo não retorna nada.
C
A função desempilha retorna o elemento no topo da pilha.
D
A implementação mostrada da estrutura de pilha define um tamanho máximo para a pilha.
Questão 99 :
Sobre a estrutura de dados de pilha, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Conforme foi estudado na unidade 29, a implementação de pilha consiste
em uma struct que possui um array no qual são armazenados todos os seus elementos
e uma variável numérica na qual é guardado o índice do topo da pilha.
A
Uma pilha é implementada em C como uma struct que possui um array unidimensional e uma variável
numérica que guarda o índice do topo da pilha.
B
Uma pilha é implementada em C como uma struct que possui um array bidimensional e uma variávelque
guarda a quantidade de elementos na pilha.
C
Uma pilha é implementada em C como um array unidiminensional de tamanho indefinido.
D
Uma pilha é implementada em C como uma sequência finita de arrays de tamanho definido.
Questão 100:
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).
Acertou! 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 101 :
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 (=).
Resposta Errada! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Conforme visto na unidade 22, funções em C podem agir como
procedimentos e não retornar nenhum valor. Se a função possuir valor de retorno, ela
se comporta como uma função matemática. Logo, só pode ter 1 valor de retorno.
A
Se uma função não recebe nenhum valor como dado de entrada, ela não pode retornar nenhum valor como
dado de saída.
B
Uma função só pode ter uma instrução return dentro do seu código.
C
O retorno de uma função em C é sempre uma variável, não um valor.
D
Funções em C podem não ter valor de retorno, porém, se tiverem, será no máximo um.
Questão 102 :
Com base no que você estudou sobre ponteiros, assinale a alternativa correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Foi estudado na unidade 19 que a memória principal, também chamada
de memória RAM, recebe todas as instruções e os dados do programa quando a sua
execução é iniciada.
A
Um ponteiro inválido, se avaliado como expressão lógica, terá valor falso.
B
A memória principal do computador possui as instruções e os dados usados pelos programas que estão sendo
executados.
C
Ponteiros inválidos, na verdade, apontam para variáveis de outros programas e, por isso, podem ser usados
para acessar dados de outros programas.
D
Ponteiros são variáveis que guardam cópias do valor de outras variáveis.
Questão 103 :
Na unidade 19, você estudou a respeito do uso de ponteiros na programação em C. Assinale a alternativa
correta com base nas duas instruções em C a seguir:
int a = 3;
int* b = &a;
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Ter um asterisco na sua declaração faz da variável b um ponteiro. A
expressão &a acessa o endereço da variável a, que é então atribuído ao ponteiro b.
A
A variável b e a variável a possuem o mesmo valor.
B
Usamos a expressão &a para acessar o valor que está sendo apontado pelo ponteiro a.
C
A variável b é um ponteiro que aponta para o endereço da variável a.
D
O endereço da variável a é 3.
Questão 104 :
Sobre o conceito de tipos abstratos de dados estudado na unidade 23, assinale a alternativa correta.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: As Structs são o principal mecanismo disponibilizado pela linguagem C
para a criação de tipos abstratos de dados.
A
O uso de tipos abstratos de dados, diferentes dos tipos primitivos de C, permite um maior desempenho aos
programas, pois eles executam seu código de forma mais rápida.
B
Manutenibilidade é a facilidade com que o programa tem de realizar a manutenção dos dados que ele usa.
C
A linguagem C é uma das linguagens que possui maior suporte a tipos abstratos de dados.
D
Uma das formas de se criar um tipo abstrato de dados em C é através de structs.
Questão 105 :
Com base no que você estudou sobre manipulação de string, assinale a alternativa correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como explicado na unidade 4, a Linguagem C usa como padrão de
codificação de caracteres a tabela ASCII.
A
Ao criar uma string em C de forma litera, precisamos escrever também o caractere nulo no texto da string,
como em char uma_string[]="aluno\0";.
B
A Linguagem C utiliza por padrão os símbolos contidos na tabela ASCII.
Questão 106 :
Sobre o conceito de variável e constante, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Como visto na unidade 9, usar uma variável após a sua declaração, porém
antes da sua inicialização, não é recomendado, pois seu valor ainda é indefinido e
incerto. Nesse momento, a variável já foi criada, logo possui um valor, porém seu valor
ainda não foi definido pelo programador, logo pode ser qualquer valor dentre todos os
que a variável consegue representar. Essa incerteza pode causar comportamento
inesperado caso a variável seja usada nesse momento.
A
Podemos usar uma variável sem declará-la primeiro, mas o processo de inicialização é obrigatório.
B
Toda constante possui um nome, um tipo e um escopo explícitos.
C
Usar uma variável antes de inicializar seu valor não é um erro, porém não é recomendado, pois isso pode gerar
um comportamento inesperado no programa.
D
Em C, constantes são obrigatoriamente escritas com letras maiúsculas.
Questão 107 :
Sobre o uso de enumerações em C e com base no exemplo a seguir, assinale a alternativa que responda
corretamente o seguinte questionamento: que valor é mostrado para o usuário na linha 17?
Algoritmo – Exemplo de uso de enum em C
1. #include <stdio.h>
2. #include <stdlib.h>
3.
4. enum mes{
5. janeiro = 1,
6. fevereiro = 2,
7. marco = 3,
8. abril = 4
9. };
10.
11. int main(void)
12. {
13. enum mes a = janeiro;
14. enum mes b = abril;
15. enum mes c;
16. c = abril - janeiro;
17. printf("%d \n", c);
18. system("pause");
19. return 0;
20. }
Fonte: Elaborado pelo autor.
Resposta Errada! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Conforme visto na unidade 22, enums são enumerações, as quais
possuem rótulos e valores numéricos que correspondem a esses rótulos. Uma
variável enum pode, porém, ser tratada como número, como acontece no exemplo
anterior. Se desconsiderarmos os rótulos, o código subtrai 4 - 1 e mostra o resultado
ao usuário.
A
marco
B
3
C
fevereiro
D
4
Questão 108 :
Sobre os tipos de dados primitivos de C, estudados na unidade 26, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Foi visto que existem tipos de dados que suportam o armazenamento de
números negativos e outros não. Por exemplo, os tipos de dados iniciados
em unsigned armazenam apenas números positivos.
A
Strings são um exemplo de tipo primitivo de C.
B
Com exceção do tipo char, todo tipo primitivo de C aceita valores numéricos.
C
Existem tipos de dados primitivos que só armazenam números positivos.
D
Os tipos short e float são usados para armazenar números reais.
Questão 109 :
Com base na passagem de parâmetros por valor, analise o programa a seguir e assinale a alternativa que
responda corretamente a esta questão: que valor é mostrado para o usuário na linha 14 do programa?
Algoritmo – Exemplo de passagem de parâmetros por valor
1. #include <stdio.h>
2. #include <stdlib.h>
3.4. int uma_funcao(int x)
5. {
6. x = x + 4;
7. return x;
8. }
9.
10. int main(void)
11. {
12. int x = 2;
13. int y = uma_funcao(x);
14. printf("%d \n", x + y);
15. system("pause");
16. return 0;
17. }
Fonte: Elaborado pelo autor.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Conforme estudado na unidade 20, a variável x possui valor 2. A
variável y possui o retorno da função uma_funcao, que é x + 4, ou seja, 6. Na linha 14,
é somado então 2 + 6, o que resulta em 8.
A
2
B
4
C
6
D
8
Questão 110 :
Sabendo que uma das formas de persistir as variáveis em memória secundária é a serialização, marque V
para a(s) alternativa(s) verdadeira(s) e F para a(s) falsa(s).
( ) Serialização é a leitura da variável no disco
( ) A linguagem JAVA possui um mecanismo de serialização de objetos.
( ) Desserialização é a escrita da variável no disco
( ) Para transformar um objeto serializável no JAVA ele deve implementar a
interface serializable.
Em seguida, assinale a alternativa que apresente a sequência correta.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
A primeira afirmativa é falsa, pois serialização é a escrita da variável no disco. A
segunda e a quarta afirmativas sobre a linguagem JAVA estão corretas e a terceira
sobre a desserialização é falsa porque a desserialização é a leitura da variável no disco
(unidade 40, item 2).
A
V – V – V – V
B
V – F – V – F
C
F – F – F – V
D
F – V – F – V
Questão 111 :
Sobre os tipos de dados primitivos de C, assinale a alternativa correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como visto na unidade 26, o tipo char aceita números, e estes devem
pertencer ao intervalo de -128 a 127.
A
O tipo de dado char permite o armazenamento de números, logo seria correto atribuir o valor 1000 a uma
variável char.
B
O tipo de dado char permite o armazenamento de números, logo seria correto atribuir o valor 100 a uma
variável char.
C
Como strings são formadas por valores do tipo primitivo char, o tipo string também é considerado um tipo
primitivo.
D
Em C, quando atribuímos a uma variável de tipo primitivo um valor fora do seu intervalo de representação, um
erro ocorre e o programa para de ser executado.
Questão 112 :
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 113 :
Analise o código a seguir:
Figura – Exemplo de Algoritmo – Atividade.
Fonte: Elaborada pelo autor (2013).
Entre as opções a seguir, escolha o único código que deve ser inserido no retângulo “Conjunto de
Instruções” que permite descobrir o nome do funcionário mais idoso cadastrado no arquivo. Considere
que existe apenas um funcionário mais idoso.
Acertou! A resposta correta é a opção B
Justificativa:
Resposta: B
Comentário: De acordo com o que vimos na unidade 45, para descobrir o nome do
funcionário mais idoso, é necessário verificar se a idade do funcionário que está
armazenada na variável func é maior do que o valor armazenado na variável maior,
que começou valendo 0. Caso a condição seja verdadeira, a variável maior deve ser
atualizada e a variável aux deve guardar o nome desse funcionário.
A
if(func.idade == maior){
maior = func.idade;
}
B
if(func.idade > maior){
maior = func.idade;
strcpy(aux,func.nome);
}
C
if(func.idade < maior){
maior = func.idade;
strcpy(aux,func.nome);
}
D
if(idade > maior){
maior = func.idade;
strcpy(aux,func.nome);
}
Questão 114 :
Na unidade 42, aprendemos sobre leitura e escrita de registros, quais são as funções utilizadas para este
propósito?
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Como aprendemos, para conseguir ler e escrever registros em um arquivo de texto,
teremos que usar as funções de entrada e saída formatada, são elas: fscanf() e
fprintf().
A
fgets() e puts()
B
scanf() e printf()
C
fgetc() e fputc()
D
fscanf() e fprintf()
Questão 115 :
Na unidade 38, aprendemos a definição de pacotes, além de organizar o nosso código os pacotes
também servem para auxiliar o programador:
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Como não temos controle sobre os nomes das entidades de terceiros, pode ser gerado
um conflito das entidades que estamos reusando com as que estamos criando. E é
nesse momento que os pacotes entram em cena para auxiliar o desenvolvedor.
A
Tornando o código fonte uma caixa preta.
B
Aumentando a complexidade do código.
C
Oferecendo mais segurança ao código e aplicação.
D
Evitando que o nome de nossas entidades conflitem com o nome de entidades de componentes de terceiros.
Questão 116 :
Com base na passagem de parâmetros por valor, estudada na unidade 20, e no exemplo a seguir,
assinale a alternativa que apresenta corretamente o valor que é mostrado para o usuário na linha 13 do
programa?
Algoritmo – Exemplo de passagem de parâmetros por valor
1. #include <stdio.h>
2. #include <stdlib.h>
3.
4. void uma_funcao(int x)
5. {
6. x = x + 4;
7. }
8.
9. int main(void)
10. {
11. int x = 2;
12. uma_funcao(x);
13. printf("%d \n", x);
14. system("pause");
15. return 0;
16. }
Fonte: Elaborado pelo autor.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: A variável x é criada com valor 2 e a função uma_funcao não altera seu
valor. Logo, é mostrado para o usuário o valor 2.
A
0
B
2
C
4
D
6
Questão 117 :
Sobre as tipologias de linguagens de programação, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Na unidade 7, aprendemos que quanto maior o nível de abstração dos
comandos mais alto é o nível da linguagem e, consequentemente, ela será mais
parecida com a linguagem humana.
A
Linguagens de alto nível são mais parecidas com a linguagem humana do que as linguagens de baixo nível.
B
A linguagem de máquina dos computadores é uma linguagem de muito alto nível.
C
C e Java são exemplos de linguagens da segunda geração.
D
Algumas linguagens possuem fins bem específicos, como é o caso da Prolog, que é usada exclusivamente na
programação de sistemas operacionais.
Questão 118 :
Sobre os tipos de dados heterogêneos estudados na unidade 32, analise o código a seguir e responda
qual variável do programa possui tipo de dados composto e heterogêneo.
Algoritmo – Atividade
1. struct caracteres{2. char a;
3. char b;
4. };
5.
6. int main(void)
7. {
8. char matriz[5][6];
9. struct caracteres uma_instancia;
10. uma_instancia.a = 'x';
11. uma_instancia.b = 'y';
12. return 0;
13. }
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Tanto o array bidimensional matriz quanto os campos a e b não são
compostos, restando apenas a struct uma_instancia, que é heterogênea.
A
matriz
B
uma_instancia
C
a
D
b
Questão 119 :
Dado o programa apresentado a seguir e com base no que você estudou na unidade 11, 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.void uma_funcao(void)
5. 5.{
6. 6. int a;
7. 7. for (a = 10; a > 0; a--){
8. 8. printf("%d \n", a);
9. 9. }
10. 10.}
11. 11.
12. 12.int main(void)
13. 13.{
14. 14. int x;
15. 15. int y;
16. 16. scanf("%d", &x);
17. 17. y = 5;
18. 18. if (x > y){
19. 19. int z = 4;
20. 20. }
21. 21. uma_funcao();
22. 22. system("pause");
23. 23. return 0;
24. 24.}
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: A instrução da linha 19 consiste na declaração e inicialização da variável z
em uma única instrução, o que é possível em C.
A
O escopo da variável a se inicia na linha 6 e vai até a linha 24.
B
Sempre que o programa é executado, são declaradas 4 variáveis locais.
C
As variáveis x e y são inicializadas nas linhas 14 e 15, respectivamente.
D
A variável z é declarada e inicializada na linha 19.
Questão 120 :
Sobre os tipos de dados heterogêneos, analise o código a seguir e responda qual ou quais variáveis do
programa possuem tipo de dados composto e heterogêneo.
Algoritmo – Atividade
1. struct estrutura{
2. int matriz_a[2][2];
3. int matriz_b[3][3];
4. };
5.
6. int main(void)
7. {
8. struct estrutura uma_estrutura;
9. uma_estrutura.matriz_a[0][0] = 500;
10. uma_estrutura.matriz_a[0][1] = 35;
11. int uma_matriz[2][2];
12. return 0;
13. }
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Structs são heterogêneas, pois aceitam dados de qualquer tipo (como foi
estudado na unidade 32). A única instância de struct no exemplo acima é a
variável uma_estrutura.
A
uma_matriz, matriz_a e matriz_b
B
matriz_a e matriz_b
C
uma_estrutura, matriz_a e matriz_b
D
uma_estrutura
Questão 121 :
Sobre o assunto de strings, visto na unidade 17, assinale a alternativa correta.
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Ela descreve exatamente como é a representação de strings em Pascal.
As outras alternativas estão erradas, pois: o tipo String de Pascal é usado para
armazenar strings; a tabela ASCII reduzida só representa 128 caracteres; e a linguagem
Java não possui tipo primitivo de strings.
A
Em Pascal, existe um tipo de dados primitivo para armazenamento de strings, embora ele internamente seja
implementado como um array de caracteres.
B
A tabela ASCII, usada em C para codificação padrão de caracteres, suporta até 256 caracteres em sua versão
regular e reduzida.
C
A linguagem Java, ao contrário de C, possui um tipo primitivo de dados para armazenamento de strings.
D
O tipo primitivo para armazenamento de strings em Pascal se chama Char.
Questão 122 :
Sobre os tipos de dados compostos de C, estudados na unidade 27, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Como foi estudado, uma struct apenas agrupa um conjunto de variáveis
quaisquer, as quais podem ser de qualquer tipo, tanto primitivo quanto composto. Um
array ou matriz, por outro lado, só pode ter valores de um mesmo tipo.
A
Como strings já são arrays, não é possível criar um array de strings.
B
Arrays e matrizes podem ser de qualquer tipo de dado, desde que esse tipo seja primitivo.
C
Uma única struct pode conter valores de diferentes tipos, ao contrário de um array ou de uma matriz, que só
aceitam valores de um mesmo tipo.
D
Não é possível criar arrays de structs em C.
Questão 123 :
Com base nos estudos da unidade 43, leia as afirmativas a seguir.
I. A forma mais comum e intuitiva de armazenar dados em um arquivo consiste na distribuição dos
registros em uma ordem arbitrária, um após o outro, dentro da área destinada ao armazenamento
(muito semelhante a um vetor), chamada de acesso sequencial.
II. O acesso sequencial facilita as rotinas de inserção, remoção, alteração e pesquisa aos dados.
III. Append consiste na rotina de inserção dos dados no arquivo em uma posição informada pelo usuário.
IV. Em arquivos que utilizam o acesso sequencial, quanto maior o arquivo, maior será o tempo de
pesquisa aos dados.
Entre as opções a seguir, escolha a única alternativa que representa corretamente o resultado de sua
análise.
Resposta Errada! A resposta correta é a opção C
Justificativa:
Resposta: C
Comentário: O acesso sequencial facilita as rotinas de inserção, já que o dado é
inserido sempre no final. Porém, as rotinas de alteração, remoção, listagem e consulta
tornam-se mais demoradas devido à necessidade de visitar cada posição até que se
encontre o registro pesquisado. A função de append consiste em inserir um elemento
sempre no final da estrutura de dados. A forma mais comum e intuitiva de armazenar
dados em um arquivo consiste na distribuição dos registros em uma ordem arbitrária,
muito semelhante a um vetor, chamada de acesso sequencial. Em arquivos que
utilizam o acesso sequencial, quanto maior o arquivo, maior será o tempo de pesquisa
aos dados.
A
Apenas as assertivas I, II e III estão corretas.
B
Apenas as assertivas I, II e IV estão corretas.
C
Apenas as assertivas I e IV estão corretas.
D
Todas as alternativas estão corretas.
Questão 124 :
A função fopen() da linguagem C é utilizada para abrir um arquivo, ela recebe como parâmetro 2
argumentos, eles são, respectivamente:
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Conforme aprendemos na unidade 41, a função padrão fopen() é usada para abrir um
arquivo. Ela recebe dois argumentos do tipo string: o primeiro argumento é o nome do
arquivo (por exemplo, clientes.txt), o segundo argumento é a indicação do modo no
qual o arquivo deve ser aberto.
A
Nome do Arquivo e Modo de Abertura
B
Nome do Arquivo e Variável de Ponteiro
C
Modo de Leitura e Modo de Escrita
D
Nome do Arquivo e Função de Leitura
Questão 125 :
Na unidade 13, você estudou sobre comandos em programação, principalmente o comando de
atribuição. Com base nisso, considere as duas linhas de código a seguir:
a = 3;
b = a++;
Qual o valor da variável b após a execução dessas duas instruções?
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: A
Comentário: O valor de a é 3 e o incremento só é realizado após a atribuição de 3 a b.
A
3
B
4
C
5
D
6
Questão 126 :
Sobre o conceito de subprogramas e sua implementação na linguagem C, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Como visto na unidade 35, subprogramas são implementados em C
através de funções. A modularização por meio da separação do código do programa
em várias funções é uma forma de modularização de granularidade mais fina.
A
Em C, subprogramas são implementados através de tipos dados, tantohomogêneos como heterogêneos.
B
Subprogramas comunicam-se entre si com instruções do tipo scanf e printf.
C
A criação de subprogramas é uma técnica de modularização de granularidade mais fina.
D
A assinatura de uma função é independente da funcionalidade que a função implementa.
Questão 127 :
Sobre as funções matemáticas vistas na unidade 5, assinale a alternativa correta.
Resposta Errada! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: A descrição da opção C sumariza exatamente a funcionalidade da
função ceil(), como descrito na documentação da biblioteca padrão de C.
A
Para usarmos funções da biblioteca matemática padrão de C, precisamos colocar a instrução #include
<stdio.h> no início do nosso programa.
B
Funções como cos(), sin() e tan() não aceitam números inteiros como parâmetro.
C
A função ceil() arredonda um número para o menor número inteiro que seja maior ou igual ao número real
recebido como parâmetro.
D
A função pow() recebe um número real como parâmetro e retorna seu valor elevado ao quadrado.
Questão 128 :
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 e modularização, assinale a alternativa que representa a
assinatura mais adequada para uma função que remove os dados de algum funcionário. Considere
também que a função deve perguntar ao usuário qual o nome do funcionário que ele deseja remover.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Como visto na unidade 36, a lista de funcionários e a quantidade de
funcionários precisam ser recebidos pelas funções como parâmetros de entrada, para
que operações em cima da lista de funcionários sejam realizadas.
A
void remove_funcionario(void);
B
void remove_funcionario(char nome_funcionario[]);
C
void remove_funcionario(funcionario_t lista_funcionarios[]);
D
void remove_funcionario(funcionario_t lista_funcionarios[], int tamanho_lista);
Questão 129 :
Sobre a criação de tipos abstratos de dados em C e C++, assinale a alternativa correta.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Como visto na unidade 25, as palavras private e public de C++ permitem
que restrinjamos algumas variáveis ou funções da classe para que sejam usadas
apenas de dentro da própria classe, melhorando a segurança da estrutura.
A
A criação de tipos de dados abstratos em C++ também é feita através da criação de structs, assim como em C.
B
As classes de C++ são iguais às structs de C.
C
Structs são mais avançadas que classes porque nelas podemos definir diferentes escopos para variáveis,
melhorando a segurança do código.
D
Classes possuem a capacidade de definir membros privados ou públicos, restringindo algumas partes da classe
e melhorando o funcionamento dela.
Questão 130 :
Sobre as constantes e funções matemáticas, vistas na unidade 15, e com base no programa visto a
seguir, assinale a alternativa correta.
Algoritmo – Constantes e funções matemáticas
1. 1.#include <math.h>
2. 2.
3. 3.double novo_log(double x)
4. 4.{
5. 5. double variavel1 = log(x);
6. 6. double variavel2 = log(10);
7. 7. double resultado = variavel1 / variavel2;
8. 8. return resultado;
9. 9.}
Fonte: Elaborado pelo autor (2013).
Resposta Errada! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: O programa troca um logaritmo da base 10 para base e e calcula o
resultado.
A
Pode ocorrer de o valor de variavel2 ser 0 e causar um erro matemático na linha 7 do programa.
B
O programa anterior usa o logaritmo de base 10 para calcular o logaritmo de base e.
C
O programa anterior calcula o logaritmo natural do número x na base 10.
D
O programa anterior calcula o logaritmo na base 10 usando as funções do logaritmo natural.
Questão 131 :
Com base no que você estudou sobre ponteiros, assinale a alternativa correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Foi estudado na unidade 19 que a memória principal, também chamada
de memória RAM, recebe todas as instruções e os dados do programa quando a sua
execução é iniciada.
A
Um ponteiro inválido, se avaliado como expressão lógica, terá valor falso.
B
A memória principal do computador possui as instruções e os dados usados pelos programas que estão sendo
executados.
C
Ponteiros inválidos, na verdade, apontam para variáveis de outros programas e, por isso, podem ser usados
para acessar dados de outros programas.
D
Ponteiros são variáveis que guardam cópias do valor de outras variáveis.
Questão 132 :
Com base no que você estudou sobre os tipos de dados homogêneos na unidade 31, analise o código a
seguir e responda qual variável do programa possui tipo de dados composto e homogêneo.
Algoritmo – Atividade
1. struct caracteres{
2. char a;
3. char b;
4. };
5.
6. int main(void)
7. {
8. int uma_matriz[2][2] = {
9. {1, 0},
10. {-1, 2}
11. };
12. struct caracteres uma_instancia;
13. uma_instancia.a = 'x';
14. uma_instancia.b = 'y';
15. return 0;
16. }
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Arrays e matrizes são tipos de dados compostos homogêneos. Os
campos a e b não são compostos, e a struct uma_instancia é heterogênea.
A
uma_instancia
B
uma_matriz
C
a
D
b
Questão 133 :
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:
Acertou! 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.
Questão 134 :
Dado o programa a seguir e com base no que você estudou na unidade 12, assinale a alternativa correta.
Algoritmo – Exemplo do uso de variáveis globais e locais
1. 1.#include <stdio.h>
2. 2.#include <stdlib.h>
3. 3.
4. 4.static int var = 10;
5. 5.
6. 6.int main(void)
7. 7.{
8. 8. int x;
9. 9. scanf("%d", &x);
10. 10. if (x > 10){
11. 11. int c = 4;
12. 12. printf("%13d \n", c);
13. 13. }
14. 14. printf("%d \n", var);
15. 15. float var = 1.5;
16. 16. printf("%f \n", var);
17. 17. system("pause");
18. 18. return 0;
19. 19.}
Fonte: Elaborado pelo autor (2013).
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Isso é permitido em C apenas quando uma das variáveis é global e a outra
é local. No caso, a variávelvar da linha 4 é global e a da linha 15, local.
A
Por ser uma variável global, o escopo da variável var vai da linha 4 até a linha 19.
B
Na linha 16, o valor 10 é impresso para o usuário.
C
Existem duas variáveis var nesse programa, e isso é permitido em C.
D
A palavra reservada static é usada na declaração de constantes.
Questão 135 :
Sobre o conceito de modularização, assinale a alternativa correta.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: Como foi visto na unidade 34, uma das técnicas de modularização mais
comuns é a separação do código do programa em pacotes, porém a linguagem C não
dá suporte a esses pacotes. Em Java existe o conceito de package e em C++ o de
namespace – ambos são usados para modularização do programa em pacotes.
A
Um programa modularizado possui melhor confiabilidade e legibilidade, porém torna-se mais inflexível a
mudanças.
B
Programas cujo código está dividido em vários módulos são geralmente menos confiáveis do que programas
com apenas uma função em um único arquivo, pois possuir mais módulos significa ter mais chances de que o
código tenha erros.
C
A granularidade de uma técnica de modularização indica o tamanho relativo de cada módulo do programa,
sendo que um programa com módulos pequenos possui uma granularidade mais grossa.
D
Uma das formas mais comuns de modularização é através da criação de pacotes, embora a linguagem C não
suporte a criação destes.
Questão 136 :
Analise o algoritmo a seguir, semelhante ao estudado na unidade 28, onde você aplicou em exemplos o
conhecimento adquirido sobre os variados tipos de dados. Em seguida, assinale a alternativa correta
sobre quais são os tipos de dados usados no programa.
Algoritmo – Programa em C que usa vários tipos de dados
1. #include <stdio.h>
2.
3. int main(void)
4. {
5. int matriz[2][2];
6. printf("Informe os valores\n");
7. int i, j;
8. int soma = 0;
9. for (i = 0; i < 2; i++){
10. for (j = 0; j < 2; j++){
11. scanf("%i", &matriz[i][j]);
12. soma += matriz[i][j];
13. }
14. }
15. float media = soma / 4.0;
16. printf("Media: %f\n", media);
17. system("pause");
18. return 0;
19. }
Fonte: Elaborado pelos autores (2013).
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: A variável matriz é um array bidimensional do tipo int, e existem também
as variáveis i, j e soma, que são do tipo int, e a variável media, que é do tipo float.
A
São usadas 7 variáveis do tipo int e uma do tipo float.
B
São usadas 4 variáveis do tipo int e uma do tipo float.
C
Só são usadas variáveis de tipos primitivos.
D
São usadas 3 variáveis do tipo int, uma do tipo float e um array bidimensional do tipo int.
Questão 137 :
Analise o código a seguir.
Figura – Exemplo de Algoritmo – Atividade.
Fonte: Elaborada pelo autor (2013).
Entre as opções a seguir, assinale a única instrução que deve ser inserida na linha 102 do código e que
permite contar quantos funcionários estão cadastrados no arquivo.
Resposta Errada! A resposta correta é a opção A
Justificativa:
Resposta: A
Comentário: Para descobrir a quantidade de funcionários cadastrados no arquivo, a
cada repetição do laço enquanto, a variável “qtde” deve ser incrementada em 1. Por
isso, a opção correta é qtde++, que é a forma abreviada de qtde = qtde + 1.
A
qtde++;
B
sizeof(qtde);
C
qtde--;
D
arquivo++;
Questão 138 :
Com base no que você estudou na unidade 4 sobre manipulação de strings, assinale a alternativa
correta.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
Comentário: O caractere nulo marca o fim da string e, se colocarmos ele no índice i,
então a string terá i caracteres.
A
A string “aluno” em C é criada da forma char uma_string[] = "aluno\0";.
B
Pode-se criar uma string com caracteres acentuados da Língua Portuguesa, pois eles fazem parte da tabela
ASCII.
C
Se quisermos criar um vetor vazio e usá-lo para armazenar a string “aluno”, podemos fazer da forma char
uma_string[5];.
D
Se colocarmos o caractere '\0' no índice i de um vetor e mostrarmos esse vetor para o usuário como
uma string, o usuário verá uma string com i letras.
Questão 139 :
Qual o tipo de estrutura de dados que melhor se adapta ao contexto apresentado a seguir.
Arquivos em que há o armazenamento de pequenos volumes de dados e a frequência de acessos
aleatórios (posições variadas e não sequenciais) aos dados não são elevados.
Com base nos estudos da unidade 43, escolha a única alternativa que representa corretamente a
estrutura de dados que melhor se adapta ao contexto apresentado anteriormente.
Acertou! A resposta correta é a opção D
Justificativa:
Reposta: D
Quando no arquivo há o armazenamento de pequenos volumes de dados e a
frequência de acessos aleatórios (posições variadas e não sequenciais) aos dados não
é elevada, o arquivo sequencial atende às necessidades. Entretanto, se o volume de
dados e a frequência de acessos se tornam elevadas, há a necessidade de acesso
rápido aos dados dos arquivos, nesse caso o acesso indexado é o mais indicado.
A
Arquivos indexados
B
Arquivos binários
C
Arquivos-textos
D
Arquivos sequenciais
Questão 140 :
Sobre os tipos de dados primitivos de C, assinale a alternativa correta.
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: Como visto na unidade 26, o tipo char aceita números, e estes devem
pertencer ao intervalo de -128 a 127.
A
O tipo de dado char permite o armazenamento de números, logo seria correto atribuir o valor 1000 a uma
variável char.
B
O tipo de dado char permite o armazenamento de números, logo seria correto atribuir o valor 100 a uma
variável char.
C
Como strings são formadas por valores do tipo primitivo char, o tipo string também é considerado um tipo
primitivo.
D
Em C, quando atribuímos a uma variável de tipo primitivo um valor fora do seu intervalo de representação, um
erro ocorre e o programa para de ser executado.
Questão 141 :
Com base na revisão básica de Programação I vista na unidade 1, assinale a alternativa correta.
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: A alternativa ‘a’ sumariza bem a definição de algoritmo como um
artefato que possui uma sequência finita de passos capazes de resolver um problema,
como foi bastante estudado em Programação I.
A
Um algoritmo é uma sequência finita de passos que devem ser realizados para que um problema seja
resolvido.
B
Algoritmos sequenciais possuem diversos fluxos de execução possíveis.
C
Estruturas de repetição, ao contrário das estruturas de seleção condicional, não causam fluxos de execução
alternativos para um algoritmo.
D
Em C, usamos o tipo de dados float para armazenar números inteiros.
Questão 142 :
Com base no que você estudou sobre tipologias de linguagens na unidade 7, assinale a alternativa que
responde corretamente a seguinte questão: o que são linguagens de baixo nível?
Acertou! A resposta correta é a opção B
Justificativa:
Gabarito: B
Comentário: O nível é definido pela quantidade de abstrações. Então, Linguagens de
baixo nível possuem poucas abstrações, talvez nenhuma. Em outras palavras, são
linguagens muito parecidas ou iguais às linguagens de máquina.
A
Linguagens fáceis de aprender e programar.
B
Linguagens semelhantes à linguagem de máquina, com poucas ou nenhuma abstração.
C
Linguagens como SQL, que possuem fins específicos e abstraem muito o funcionamento interno das ações.
D
Linguagens como C e Java, que não possuem fins específicos, mas possuem várias abstraçõescomo estruturas
de seleção, repetição, strings e arrays.
Questão 143 :
Com base no que você estudou sobre o comando de repetição, assinale a alternativa correta.
Acertou! A resposta correta é a opção A
Justificativa:
Gabarito: A
Comentário: Como visto na unidade 3, nesse comando de repetição o bloco é sempre
executado pelo menos uma vez.
A
No comando de repetição com teste no fim não é possível que o bloco de instruções não seja executado
nenhuma vez.
B
Os comandos de repetição estudados existem em C, mas não costumam aparecer em outras linguagens de
programação.
C
Todos os tipos de comandos de repetição fazem uso de uma variável de controle.
D
O bloco de instruções dentro de um comando de repetição não pode ser vazio.
Questão 144 :
Com base no que você estudou sobre precedência e associatividade de operadores, na unidade 14, e
também com base nos comandos vistos na unidade 13, analise o comando a seguir:
x = y++ == z + 2;
Agora, assinale a alternativa que corresponde à ordem correta de execução dos operadores desse
comando, sendo o comando mais à esquerda o primeiro e o comando mais à direita o último.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Embora o operador ++ tenha precedência maior, como ele está após o
nome da variável, ele deve ser o último operador. Os outros operadores seguem a
ordem de precedência deles, que é 4, 7 e 14, de acordo com o quadro 5.
A
++ , == , + , =
B
= , ++ , == , +
C
+ , == , = , ++
D
++, +, ==, =
Questão 145 :
Sobre as funções matemáticas vistas na unidade 5, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: A descrição da opção C sumariza exatamente a funcionalidade da
função ceil(), como descrito na documentação da biblioteca padrão de C.
A
Para usarmos funções da biblioteca matemática padrão de C, precisamos colocar a instrução #include
<stdio.h> no início do nosso programa.
B
Funções como cos(), sin() e tan() não aceitam números inteiros como parâmetro.
C
A função ceil() arredonda um número para o menor número inteiro que seja maior ou igual ao número real
recebido como parâmetro.
D
A função pow() recebe um número real como parâmetro e retorna seu valor elevado ao quadrado.
Questão 146 :
Sobre tipologias de linguagens, responda: o que são linguagens de alto nível?
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Na unidade 7, estudamos que abstração é uma redução do objeto que
está sendo estudado, até um ponto onde é possível descrevê-lo usando apenas a
linguagem em questão. Há vários conceitos que usamos na programação e que
abstraem conceitos bem maiores. Nesse cenário, quanto mais abstrações a linguagem
tiver, maior será o seu nível.
A
São linguagens complexas e difíceis de aprender.
B
São linguagens com fins específicos para pesquisa em inteligência artificial e robótica.
C
São linguagens como Java e C++, que possuem altos níveis de abstrações.
D
São linguagens com alto poder de processamento, como linguagens de máquina.
Questão 147 :
Sobre as constantes e funções matemáticas, vistas na unidade 15, assinale a alternativa correta.
Acertou! 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 148 :
Sobre o tópico de linguagens de programação estudado na unidade 6, assinale a alternativa correta.
Acertou! A resposta correta é a opção C
Justificativa:
Gabarito: C
Comentário: Java de fato foi influenciada por C, inclusive tendo sintaxe e parte da
semântica muito semelhantes.
A
FORTRAN e COBOL foram uma das primeiras linguagens de programação, antes mesmo de surgirem as
linguagens de máquina.
B
A linguagem COBOL foi influenciada pela linguagem C, que é uma linguagem mais antiga e mais usada.
C
A linguagem Java foi bastante influenciada pela linguagem C, e hoje ambas são amplamente usadas.
D
Embora diferentes, linguagens como C e Java, costumam ser usadas na criação dos mesmos tipos de sistemas
computacionais.
Questão 149 :
Sabendo que uma das formas de persistir as variáveis em memória secundária é a serialização, marque V
para a(s) alternativa(s) verdadeira(s) e F para a(s) falsa(s).
( ) Serialização é a leitura da variável no disco
( ) A linguagem JAVA possui um mecanismo de serialização de objetos.
( ) Desserialização é a escrita da variável no disco
( ) Para transformar um objeto serializável no JAVA ele deve implementar a
interface serializable.
Em seguida, assinale a alternativa que apresente a sequência correta.
Acertou! A resposta correta é a opção D
Justificativa:
Gabarito: D
A primeira afirmativa é falsa, pois serialização é a escrita da variável no disco. A
segunda e a quarta afirmativas sobre a linguagem JAVA estão corretas e a terceira
sobre a desserialização é falsa porque a desserialização é a leitura da variável no disco
(unidade 40, item 2).
A
V – V – V – V
B
V – F – V – F
C
F – F – F – V
D
F – V – F – V
Questão 150:
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.
Acertou! 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[]);