Prévia do material em texto
1. (IUDS) Analise as afirmações, a seguir, a respeito dos TAD (Tipos
abstratos de dados) e marque (V) para verdadeiro e (F) para falso.
( v )Um TAD especifica o tipo de dado (domínio e operações) sem
referência a detalhes da implementação.
( v )Dando mais liberdade para mudar implementação com menor impacto nos
programas.
( f )Oferece muitas vantagens, apesar de não minimizar custos.
( v )Os programas que usam o TAD não "conhecem" as implementações dos
TADs.
2. Marque (V) para verdadeiro e (F) para falso quanto aos três tipos que
pode ser a alocação de memória na linguagem C:
(f )automática, elástica e dinâmica
( f )elástica, automática e dinâmica
( f )estática, automática e manual
( f )elástica, manual e dinâmica
( v )estática, automática e dinâmica
3. Marque (V) para verdadeiro e (F) para falso no tipos de dados a seguir
que é usado para representar uma estrutura de dados heterogênas.
( f )Variável de ponto flutuante
( f )Vetor ou array
( f )Árvore binária
( v )Struct
( f )Matriz
4. Considerando os códigos apresentados,
typedef struct
int dia;
int mes;
int ano;
) Data;
typedef struct
int codigo;
char nome[200];
Data datNasc;
YAluno;
Aluno aluno especial;
Marque (V) para verdadeiro e (F) para falso para o tipo de estrutura de
dados que é representada nele.
( f )Fila.
( v )Estrutura de dados aninhada.
( f )Lista encadeada.
( f )Matriz.
( f )Vetor de estrutura.
5. Os ponteiros permitem trabalhar com o armazenamento de dados em
memória, utilizando endereços. Analise o trecho de código em C abaixo:
inta,b;
int *ponteiro = &a;
A=10;
B=A+20;
*ponteiro = b*2;
printf("%d", a);
Marque (V) para verdadeiro e (F) para falso na alternativa que apresenta
o resultado da saída de dados.
( F )30
( F )20
( F )O
( V )10
( F )60
6. Na linguagem C, é possível realizar alocações de memória utilizando
alocação dinâmica ou estática. Marque (V) para verdadeiro e (F) para
falso na alternativa que representa uma alocação dinâmica de um vetor do
tipo primitivo double com 10 posições na linguagem C.
( F )double[10 * sizeof(double) - 1)
( F )double[10]
( F )double[10 * sizeof(double) + 1)
(V )malloc(10 * sizeof(double))
( F )malloc(10 * sizeof(double) + 1)
7. Referente a alocação dinâmica de memória em C, marque (V) para
verdadeiro e (F) para falso.
( F )As funções calloc e realloc são usadas para liberar arrays.
( F )A função malloc usa o número de blocos de memória que serão alocados
na memória.
( F )A função free é geralmente usada com o operador sizeof.
( V )As funções malloc e free e o operador sizeof, são essenciais para a
alocação dinâmica de memória.
( F )A função clear é usada para limpar o conteúdo de um ponteiro.
8. A linguagem C permite alocar (reservar) dinamicamente (em tempo de
execução) blocos de memórias utilizando ponteiros. A esse processo dá-se
o nome de alocação dinâmica, que faz uso das funções malloc, calloc,
realloc e free, disponíveis na biblioteca stdlib.h. Para liberar um bloco
de memória previamente alocado, por meio de um único parâmetro de
entrada, marque (V) para verdadeiro e (F) para falso na função
responsável.
( f )Clear
( f )Realloc
( v )Free
( f )Calloc
( f )Malloc
9. A utilização de ponteiros em linguagem C é uma das características que
tornam a linguagem flexível e poderosa. Os ponteiros ou apontadores, são
variáveis que armazenam o endereço de memória de outras variáveis. É
visível a importância dos ponteiros quando uma variável tem que ser
acessada em diferentes partes de um programa, ou seja, o código pode ter
vários ponteiros espalhados por diversas partes do programa, apontando
para a variável que contém o dado desejado, caso este dado seja alterado
todas as partes do programa tem um ponteiro que aponta para o endereço
onde reside o dado atualizado. Observe as instruções abaixo (instruções
em C):
O1-intx=5;
02-int*pt x;
03-pt x=&x;
04-*pt x=50;
Assim, diante das afirmações e instruções, marque (V) para verdadeiro e
(F) para falso.
( V )Em C os ponteiros são declarados pelo símbolo * entre o tipo e o
nome da variável, ex.: int *p;
( V )Na linha 3, onde temos a instrução pt x = &x; o ponteiro pt x recebe
o endereço de memória da variável x;
( V )Na linha 04, onde temos a instrução *pt x = 50; o ponteiro pt x
altera o valor da variável x, que guardava o dado inteiro 5 e passa a
guardar o dado inteiro 50;
( F )Na linha 04, onde temos a instrução *pt, x= 50; o ponteiro pt. x
passa a guardar o valor 50, e a variável x continua a guardar o dado
inteiro 5;.
10. A linguagem C possui uma estrutura que permite agrupar um conjunto de
informações de tipos diferentes com um mesmo nome. Marque (V) para
verdadeiro e (F) para falso.
( F )array
( F )list
( F )file
( F )typedef
( V )struct
11. Structs, estrutura de dados também conhecida como Registros, definem
tipos de dados que agrupam variáveis de tipos de dados diferentes. Em
relação a struct marque (V) para verdadeiro e (F) para falso.
( )As variáveis que compreendem o registro são chamadas de elementos ou
campos.
( )Permite organizar um grupo de variáveis como uma única variável. Em
C++ se definem com a palavra struct.
( )Todas as alternativas estão corretas.
( )Um registro é um agrupamento de dados, os quais não necessariamente
são do mesmo tipo.
( )Podemos criar arrays de estruturas
12. Analise as seguintes sentenças sobre modularização de código e marque
(V) para verdadeiro e (F) para falso.
( )Evita que os programas fiquem grandes demais e difíceis de serem
lidos e compreendidos
( )Facilita a leitura do código-fonte do programa
( )Evita que um trecho seja repetido várias vezes dentro de um mesmo
programa
13. Em um projeto de software para gerenciamento de bibliotecas, utiliza-
se a estrutura de dados heterogênea para modelar livros. Cada livro é
representado por uma estrutura contendo título, autor, ano de publicação
e status de empréstimo. Marque (V) para verdadeiro e (F) para falso na
estrutura de dados em C que é mais apropriada para armazenar os detalhes
de cada livro no projeto descrito.
( V )Estrutura (struct).
( F )Lista ligada de caracteres.
( F )Matriz bidimensional de floats.
( F )Array de inteiros.
( F )Ponteiro para void.
14. Com relação à struct, marque (V) para verdadeiro e (F) para falso:
( F )Cada elemento da struct é chamado campo e cada campo deve ser,
obrigatoriamente, de um tipo de dados distinto de outro campo.
( F )Cada elemento da struct é chamado componente.
( F )A struct é sempre definida dentro da main.
( V )Cada elemento da struct é denominado membro ou campo, sendo que a
struct pode armazenar elementos de tipos diferentes ou não.
( F )Não é possível criar um vetor de structs, pois o vetor trabalha
apenas com dados do mesmo tipo.
15. A linguagem C é uma linguagem de programação de alto nível amplamente
utilizada em sistemas operacionais, compiladores, interpretadores,
editores de texto, entre outras aplicações. Marque (V) para verdadeiro e
(F) para falso na alternativa que define o conceito de ponteiro na
linguagem C.
( F )Um ponteiro é um tipo de dado inteiro que permite armazenar valores
maiores que o limite permitido pelo tipo int.
( V )Um ponteiro é uma variável que armazena um endereço de memória.
(F )Um ponteiro é uma função que permite manipular vetores e matrizes.
( F )Um ponteiro é um tipo de dado que armazena funções que podem ser
acessadas por qualquer parte do programa.
( F )Um ponteiro é um tipo de dado que armazena valores booleanos.