Você está na página 1de 6

1a Questo (Ref.

: 201308401676)

Pontos: 0,5 / 0,5

Com relao struct, correto afirmar que :

A struct sempre definida dentro da main.


Cada elemento da struct chamado componente.
No possvel criar um vetor de structs, pois o vetor trabalha apenas com dados do
mesmo tipo.
Cada elemento da struct chamado campo e cada campo deve ser, obrigatoriamente,
de um tipo de dados distinto de outro campo.
Cada elemento da struct denominado membro ou campo, sendo que a struct pode
armazenar elementos de tipos diferentes ou no.

2a Questo (Ref.: 201308188521)

Pontos: 0,5 / 0,5

Em relao a estruturas de dados, avalie a correspondncia existente entre as estruturas


de dados Lineares e No Lineares com suas respectivas colees de dados.

A correta associao entre os elementos das duas tabelas :

a2, b2, c1, d2.


a2, b1, c2, d1.
a1, b1, c2, d1
a1, b1, c2, d2.
a1, b2, c1, d1.

3a Questo (Ref.: 201308199801)

Pontos: 0,0 / 0,5

No programa abaixo, diga em que rea de memria sero alocados os elementos de dados y e r,
respectivamente.
#include
using namespace std;
int x, y;
float media( float a, float b )
{ float tmp;
tmp = (a + b ) / 2.0;
return ( tmp );
}
int main()
{
float r;
cout<<"Informe 2 valores: ";
cin>>x>> y;
r = media( x, y );
cout<<"\nMedia = "<< r<<"\n";
system ("pause");
}

( ) rea de registro / rea de dados globais


( ) rea de pilha / rea de registro
( ) rea de dados globais / rea de registro
( ) rea de dados globais / rea de pilha
( ) rea de registro / rea de pilha

4a Questo (Ref.: 201308785266)

Pontos: 0,0 / 0,5

Qual papel do for mais interno na funo ordena abaixo ?


void ordena( int n, int v[])
{
int i, j, x;
for (j = 1; j < n; ++j) {
x = v[j];
for (i = j-1; i >= 0 && v[i] > x; --i)
v[i+1] = v[i];
v[i+1] = x;
}
}

Encontrar o menor valor v[j] que deve ser inserido em v[0..j-1].


Encontrar o ponto onde v[j] deve ser inserido em v[0..j-1].
Encontrar o elmento a ser eliminado do vetor
Encontrar o maior valor de x que deve ser inserido em v[0..j-1].
Encontrar o valor de v[j] deve em v[0..j-1].

5a Questo (Ref.: 201308264089)

Pontos: 0,0 / 0,5

A estrutura de dados do tipo pilha (stack) um tipo abstrato de dado baseada no princpio:

Da indiferena.
De dividir para conquistar.
Da localidade de referncia.
Last In First Out (LIFO).
First In First Out (FIFO).

6a Questo (Ref.: 201308399243)

Pontos: 0,5 / 0,5

As pilhas sequenciais so estruturas que guardam a ordem reversa dos dados nelas armazenados, e isto em
muitas ocasies muito vantajoso. A operao usada para inserir um elemento X numa pilha conhecida
na literatura como PUSH (X). Para remover um elemento de uma pilha a operao o POP( ). Assim estas
duas funes devem implentar o algoritmo LIFO (Last In - First Out ) ou o ltimo a entrar o primeiro a
sair. Sendo assim se aplicarmos as seguintes operaes em uma PILHA vazia:
PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ).
Quais valores restaro na pilha?

Nenhum, a pilha estar vazia.

10 e 2
Apenas o 10
Apenas o 2
7e2

7a Questo (Ref.: 201308399265)

Pontos: 0,0 / 1,5

Escreva em linguagem C++ uma funo de nome achaMaior( ), que receba como parmetros um vetor
de inteiros e um outro parmetro do tipo inteiro que represente o tamanho deste vetor. A funo deve
tambm, buscar e retornar o maior elemento do vetor.

Resposta: void achaMaior ( int v[]) { int i, x; x=30 x=v[]; for(i=0,i ,++1) }
Gabarito:
int achaMaior(int v[ ], int t)
{
int maior=v[0];
for( int i=1; i < t; i++)
{
if( maior < v[i] ) maior=v[i];
}
return maior;
}

8a Questo (Ref.: 201308399264)

Pontos: 0,0 / 1,5

Listas encadeadas so estruturas cujos nodos so alocados dinamicamente, isto em tempo de


execuo, na medida em que se necessite de mais espao. Sendo um nodo representado por:
struct elemento{
string nome;
int idade;
elemento *prox;
};
Escreva em linguagem C++ uma funo de nome criaNodo( ), que crie um novo nodo para ser inserido
no final da lista, e fornea um ponteiro com o endereo do nodo criado.

Resposta: void criaNodo() { int a; int *ponteiro=&a; cout<< *ponteiro; }

Gabarito:
elemento * criaNodo ( )
{

elemento *p=new elemento;


p->prox=null;
return p;
}

9a Questo (Ref.: 201308436843)

Pontos: 0,0 / 1,0

As variveis so na verdade trecho de memrias que armazenam dados de


diversas naturezas, portanto sempre que declara-se uma varivel, na
linguagem C++, necessrio informar o tipo de dado que esta ir armazenar.
Um tipo especial de variveis so os ponteiros, isto , variveis que
armazenam apenas os endereos de outras variveis. Assim os ponteiros
so usados para que se possa acessar de forma indireta uma outra varivel.
Sabendo-se disto e supondo que o endereo na memria da varivel "a"
100 e o endereo da memria da varivel ponteiro 200, analise o trecho de
cdigo abaixo e marque a alternativa que representa a sada do programa:

100 100 200


100 9 200
200 9 100
9 9 200
9 100 200

10a Questo (Ref.: 201308200039)

Pontos: 1,0 / 1,0

Em algumas situaes, principalmente na utilizao de listas, h a necessidade de posicionar o ponteiro em


determinado local da lista. Dessa forma, analisando o trecho de cdigo abaixo, que mostra uma funo, assinale
a alternativa correta que descreve o objetivo desta. Sabe-se que o sinal de asterisco (*) sinaliza um ponteiro.
void funcao (Nodo **P){
if ( *P != NULL ){
while ( (*P) -> Anterior != NULL )
*P= (*P) -> Anterior;
}
}

Posicionar o ponteiro onde houver o valor NULL


Colocar o valor NULL em todos os ponteiros
Posicionar o ponteiro no meio da lista
Posicionar o ponteiro no final da lista
Posicionar o ponteiro no incio da lista