Buscar

Exercicio Aula 08

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ESTRUTURA DE DADOS
	
		Lupa
	 
	Calc.
	
	
	 
	 
	 
	
	
PPT
	
MP3
	 
	
	CCT0826_A8_201902160274_V1
	
	
	
	
	
	
	
		Aluno: OSMAR DA SILVA GUIMARÃES
	Matr.: 201902160274
	Disc.: ESTRUTURA DE DADOS 
	2020.1 EAD (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Considere 
int *ptr, *qtr, *r; 
int a = 10, b = 20; 
 
Após executar cada instrução conforme a ordem dada a seguir : 
ptr = &a; 
qtr = &b; 
 
*ptr = *ptr + *qtr; 
++(*qtr); 
r = qtr; 
qtr = ptr; 
 
assinale a opção que mostra, correta e respectivamente, os valores de *ptr, *qtr , *r , a e b . 
	
	
	
	30 30 21 10 20
	
	
	30 30 21 30 21
	
	
	30 20 0 30 21
	
	
	30 20 20 10 20
	
	
	30 21 21 10 20
	
	
	
	 
		
	
		2.
		Considere uma lista simplesmente encadeada com placas de carros.  Assinale a opção que, corretamente, imprime todas as placas da lista. Considere :
struct no {
                 string placa;
                 struct no *link;
};
no *p;    //p aponta para o início da lista
 
 
	
	
	
	void imprimir(no *p) {
    while (p != NULL)    {
           cout << pplaca;
   }
}
 
	
	
	void imprimir(no *p) {
   if  (p != NULL)    {
           cout << pplaca;
          p = plink;
   }
}
	
	
	 
void imprimir(no *p) {
   while (p != NULL)    {
           cout << p.placa;
          p = p.link;
   }
}
	
	
	void imprimir(no *p) {
   while (p != NULL)    {
           cout << pplaca;
          p = plink;
}
}
 
	
	
	 
void imprimir(no p) {
   while (p != NULL)    {
           cout << pno;
          p = plink;
    }
}
 
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		E C++, quando um ponteiro é declarado para uma struct, o acesso aos campos deste registro (struct) se dá pelo operador :
	
	
	
	∙ (ponto).
	
	
	* (asterisco).
	
	
	-> (seta).
	
	
	, (vírgula).
	
	
	& (e comercial ou eitza).
	
Explicação:
Por definição, o operador é o seta, pois se tem, no caso, ponteiro para struct. 
	
	
	
	 
		
	
		4.
		Sou uma empresária que quer crescer e por isso, tenho que aumentar progressivamente a minha lista de clientes, sem limitar este crescimento. Assim, à medida que novos clientes são cadastrados, posso, se necessário, contratar mais e mais empregados. Marque a opção que especifica o tipo de lista e o tipo de alocação de memória mais adequados para este problema.
	
	
	
	fila encadeada e alocação dinâmica de memória
	
	
	pilha dinâmica e alocação dinâmica de memória
	
	
	fila dinâmica e alocação dinâmica de memória
	
	
	lista encadeada e alocação dinâmica de memória
	
	
	lista sequencial e alocação dinâmica de memória
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		q       Considere 
 
int *p, *q, *r;
int x = 10, y = 20;
 
Após seguir cada instrução na ordem dada a seguir :
 
p = &x;
q = &y;
*p = *p + *q;
(*q)++;
r = q;
q = p;
 
identifique a opção que fornece correta e respectivamente, os valores de *p, *q ,  *r ,   x   e   y  :
 
	
	
	
	30  30  21  10   20
	
	
	30  30  21  30  21
	
	
	30  21  21  10  20
	
	
	30  20  20 10 20
	
	
	30  20  0   30 21
	
Explicação:
Fazendo passo a passo temos :
int *p, *q, *r;
int x = 10, y = 20;
p = &x;    //p aponta para x, que vale 10
q = &y;  // q aponta para y que recebeu 20
*p = *p + *q;    //a área apontada por p, que é x, vai receber 10 + 20, que dá 30. Logo, *p e x valem 30.
(*q)++;     //A área apontada por q é incrementada. Ou sejam, y ou *q recebem 21
r = q;     //r aponta para y
q = p;    // q aponta para onde p aponta, ou seja, q aponta para x
Logo :
*p , que é x, vale 30
*q, que é igual a *p, que é x, vale 30
*r é y, que vale 21
x vale 30
y vale 21
Logo, a resposta certa é  30  30  21  30  21
	
	
	
	 
		
	
		6.
		As structs (estruturas) são utilizadas para modelar os nodos de estruturas dinâmicas como, por exemplo, as listas encadeadas, seja o seguinte exemplo de nodo de uma lista de produtos:
 
struct nodo{
                     float valor;
                     string produto;
                     nodo * proximo;
           };
 
Suponha que um determinado ponteiro pt  esteja apontando para um nodo desta lista, e que se queira alterar o conteúdo do campo valor deste nodo, que está sendo apontado por pt, para 5.60. Marque a alternativa que corretamente possibilita esta operação:
	
	
	
	pt->próximo.valor=5.60;
	
	
	pt.valor->5.60;
	
	
	pt->valor=5.60;
	
	
	pt->5.60;
	
	
	pt->próximo->valor=5.60;
	
Explicação:
O codigo será:
pt->valor=5.60;
	
	
	
	 
		
	
		7.
		   Tenho uma lista não ordenada de clientes em que registro apenas a matrícula, o nome,  o endereço e o telefone de cada cliente. Como não tenho limites para o crescimento da minha lista, como posso implementar a inserção de um novo cliente na lista, sabendo que cada cliente é do tipo Cliente e a lista é do tipo Lista assim definidos :
struct Cliente {
     long int matricula;
      string nome, endereco, tel;
};
struct Lista {
                           Cliente c;
                           struct Lista *link;
                  };
	
	
	
	Lista * insereCliente(Lista *p, Cliente cl)
{
      Lista *novo ;
      novo->c = cl;
      novo->link = p;
     return novo;
}
	
	
	 Lista * insereCliente(Lista *p, Cliente cl)
{
      Lista *novo = new Lista;
      novo.c = cl;
      novo.link = p;
     return novo;
}
	
	
	Lista * insereCliente(Lista *p, Cliente cl)
{
      Lista *novo = new Lista;
      novo->c = cl;
      novo->link = p;
     return novo;
}
	
	
	Lista * insereCliente(Lista *p)  {
      Lista *novo = new Lista;
     Cliente cl;
      novo->c = cl;
      novo->link = p;
     return novo;
}
	
	
	Lista  insereCliente(Lista *p, Cliente cl)
{
      Lista  novo[];
      novo[0].c = cl;
      novo[0].link = p;
     return novo;
}
                    
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Qual é o resultado do código abaixo:
  int a =10;
int *p = &a;
cout<< &p << endl;
	
	
	
	Nenhuma das opções anteriores
	
	
	O endereço da variável a será impresso
	
	
	O endereço da variável p será impresso
	
	
	O conteúdo da variável p será impresso
	
	
	O conteúdo da variável a será impresso
	
Explicação:
Analisando o trecho de código :
Linha 1 : A variável a recebeu o valor 10 
Linha 2 : p é declarado como ponteiro para inteiro e recebe, na declaração, o endereço
de a.
Linha 3 : É impresso o endereço do ponteiro p.
Opções :
    
>> O endereço da variável a será impresso
Explicação :  Falso. O endereço de a é p ou &a.
    
>> O endereço da variável p será impresso
Explicação : Correto. Usou o operador & antes de p.
    
>> O conteúdo da variável a será impresso
Explicação : Falso. Para imprimir a temos que fazer cout << a;  ou fazer    cout << *p;
    
O conteúdo da variável p será impresso
Explicação : FAlso.  É impresso o endereço de p, pois se usou &.
    
Nenhuma das opções anteriores
Explicação : FAlso. Basta ver as opções anteriores.
	
		
	ESTRUTURA DE DADOS
	
		Lupa
	 
	Calc.
	
	
	 
	 
	 
	
	
PPT
	
MP3
	 
	
	CCT0826_A8_201902160274_V2
	
	
	
	
	
	
	
		Aluno: OSMAR DA SILVA GUIMARÃES
	Matr.: 201902160274
	Disc.: ESTRUTURA DE DADOS 
	2020.1 EAD (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Qual das inicializaçõesde ponteiros apresentadas abaixo está correta?
	
	
	
	int *p = new int;
	
	
	int *p = new *int;
	
	
	int *p = create int;
	
	
	int *p = new int*;
	
	
	int *p = new int[];
	
	
	
	 
		
	
		2.
		    Tei Ping , famosa  cabeleireira das estrelas,  possui uma lista não ordenada de clientes em que registra apenas o nome, endereço e o telefone de cada cliente. Como não se pode pré-definir um limite para o tamanho da lista, como se pode implementar a inserção de um novo cliente na lista ? Sabe-se  que cada  cliente é do tipo Cliente  e a lista é do tipo List assim definidos :
 
struct Cliente {
     long int matricula;
      string nome, endereco e tel;
};
struct List {
                           Cliente  p;
                           struct List *link;
                  };
	
	
	
	List * insereCliente(List  *i, Cliente c){
      List *novo ;
      novo->p = c;
      novo->link = i;
     return novo;
}
	
	
	List * insereCliente(List *i)  {
      List *novo = new List;
     Cliente c;
      novo->p =  c;
      novo->link = i;
     return novo;
}
	
	
	List * insereCliente(List *i, Cliente c)
{
      List *novo = new List;
      novo->p = c;
      novo->link =i;
     return novo;
}
	
	
	List  insereCliente(List *i, Cliente c)
{
      List  novo[];
      novo[0].p = c;
      novo[0].link = i;
     return novo;
}
	
	
	 List * insereCliente(List *i, Cliente c)
{
      List *novo = new List;
      novo.p = c;
      novo.link = i;
     return novo;
}
	
Explicação:
Analisando a resposta certa :
List * insereCliente(List *i, Cliente c)
{
      List *novo = new List;    //aloca memória para novo nó
      novo->p = c;    //acessa o campo p da área apontada por novo e atribui o cliente c ao campo p
      novo->link =i;   //faz o link do novo nó apontar para onde i está apontando
     return novo;    //retorna o endereço do novo nó
}
Logo, esta função insere um novo nó no início de uma lista simplesmente encadeada e retorna o ponteiro para o início da lista resultante.
Analisando as demais opções, que estão erradas :
2o. item .... Opção errada : faltou alocar memória
3o. item .... Opção errada : Cliente c não está definido.
4o. item .... Opção errada :  Usa ponto quando deveria ser o operador seta
5o. item .... Opção errada : Muitos erros... Usa vetor sem definir tamanho e trabalha com  o elemento de índice zero de novo, acessando os campos com ponto.
	
	
	
	 
		
	
		3.
		As funções abaixo tem objetivos de:
	
	
	
	A primeira faz uma busca retornando o valor do nó ou NULL quando não encontrado, já a segunda insere um novo nó no final da LSE;
	
	
	A primeira faz uma busca retornando o valor do nó ou NULL quando não encontrado, já a segunda insere um novo nó no inicio da LSE;
	
	
	A primeira faz uma busca retornando o endereço do nó ou NULL quando não encontrado, já a segunda insere um novo nó no final da LSE;
	
	
	A primeira faz uma busca retornando a posição do nó ou NULL quando não encontrado, já a segunda insere um novo nó no inicio da LSE;
	
	
	A primeira faz uma busca retornando o endereço do nó ou NULL quando não encontrado, já a segunda insere um novo nó no inicio da LSE;
	
	
	
	 
		
	
		4.
		Podemos dizer que uma lista encadeada tem as seguintes características:
i) conhecida como lista ligada.
ii) seus nós são responsáveis para manter a sequência da lista.
iii) o último nó deve apontar para NULL.
Assinale a alternativa que informa as afirmativas corretas.
	
	
	
	Todas as afirmativas estão incorretas.
	
	
	Todas as afirmativas estão corretas.
	
	
	Somente a afirmativa iii esta correta.
	
	
	Somente as afirmativas i e ii estão corretas.
	
	
	Somente a afirmativa i esta correta.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		Uma estrutura de dados pode ser Estática ou Dinâmica. No primeiro caso os limites são:
	
	
	
	Indeterminados
	
	
	Determinados pelo problema em que serão utilizados
	
	
	Determinados pelo usuário
	
	
	Determinados pela memória
	
	
	Determinados pelos ponteiros
	
Explicação:
Em uma estrutura estática o espaço em memória é definido antes da execução e será definido pelas características do problema.  Não é indeterminado, não temos que usar ponteiros, não é determinado pelo usuário ou pela memória.
 
Quando a alocação é dinâmica, o espaço em memória é definido durante a execução do programa e assim, não podemos determinar previamente o quanto de memória será alocada.
	
	
	
	 
		
	
		6.
		Uma lista linear implementada através de encadeamento deve apresentar obrigatoriamente:
i) um ponteiro para o primeiro nó da lista;
ii) encadeamento entre os nós, através de algum campo de ligação;
iii) não deve haver uma indicação de final da lista;
iv) um ponteiro para o final da lista.
Levando em consideração as afirmações apresentadas, qual das alternativas é a correta?
	
	
	
	as afirmações i e ii estão corretas.
	
	
	as afirmações ii e iv estão corretas.
	
	
	as afirmações i, ii e iii estão corretas.
	
	
	somente a afirmação iv esta correta.
	
	
	somente a afirmação i esta correta.
	
	
	
	 
		
	
		7.
		Numa Lista Encadeada, podemos afirmar que:
I) Todos os nós são alocados de uma única vez.
II) Os nós não são alocados contiguamente na memória obrigatoriamente.
III) Os elementos de uma lista encadeada são ligados por dois ponteiros.
IV) Para que possamos percorrer toda a lista, precisamos armazenar o endereço do próximo elemento para possibilitar o encadeamento.
	
	
	
	II e IV estão corretas
	
	
	I, III e IV estão corretas
	
	
	I, II, III e IV estão corretas
	
	
	I , II e III estão corretas
	
	
	Só a II está correta
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		QUAL A SAÍDA DO PROGRAMA ABAIXO?
#include 
main()
{
 int x=5,*p;
 p=&x;
 
 cout << x - *p << " " << **&*&p + 1 << " " << *p*2+*p << " " << x+**&p;
 system("pause");
}
	
	
	
	1 6 15 12
	
	
	0 8 16 10
	
	
	0 6 15 11
	
	
	0 6 15 10
	
	
	0 6 16 14
	
	ESTRUTURA DE DADOS
	
		Lupa
	 
	Calc.
	
	
	 
	 
	 
	
	
PPT
	
MP3
	 
	
	CCT0826_A8_201902160274_V3
	
	
	
	
	
	
	
		Aluno: OSMAR DA SILVA GUIMARÃES
	Matr.: 201902160274
	Disc.: ESTRUTURA DE DADOS 
	2020.1 EAD (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		O conceito de ponteiros foi estudado em uma de nossas aulas. Sendo assim, leia atentamente as afirmativas abaixo e assinale a opção correta.
I A variável ponteiro não precisa ser declarada.
II A variável ponteiro armazena endereço.
III Quanto se usa &nomeDaVariávelPonteiro com o comando cout, é exibido o endereço da variável apontada pela variável ponteiro.
IV Quando se usa nomeDaVariávelPonteiro com o comando cout, é exibido o endereço da variável ponteiro.
V Quando se usa *nomeDaVariávelPonteiro com o comando cout, é exibido o conteúdo da variável apontada pela variável ponteiro.
	
	
	
	II e V estão corretas
	
	
	I, II e IV estão corretas
	
	
	Somente a II está correta
	
	
	I IV e V estão corretas
	
	
	IV e V estão corretas
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		Dr. Pei Tam possui uma lista não ordenada de pacientes de seu consultório em que registra apenas o nome endereço e o telefone de cada paciente. Como não há limites para o crescimento de sua lista, como se pode implementar a inserção de um novo paciente na lista, sabendo que cada paciente é do tipo Paciente e a lista é do tipo List assim definidos :
struct Paciente {
     long int matricula;
      string nome, endereco e tel;
};
struct List {
                           Paciente p;
                           struct List *link;};
	
	
	
	List * inserePac(List  *i, Paciente pt){
      List *novo ;
      novo->p = pt;
      novo->link = i;
     return novo;
}
	
	
	List * inserePac(List *i, Paciente pt)
{
      List *novo = new List;
      novo->p = pt;
      novo->link =i;
     return novo;
}
	
	
	List  insereCliente(List *i, Paciente pac)
{
      List  novo[];
      novo[0].p = pac;
      novo[0].link = i;
     return novo;
}
	
	
	 List * inserePac(List *i, Paciente pac)
{
      List *novo = new List;
      novo.p = pac;
      novo.link = i;
     return novo;
}
	
	
	List * inserePac(List *i)  {
      List *novo = new List;
     Paciente pat;
      novo->p =  pat;
      novo->link = i;
     return novo;
}
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		Qual o valor de x no final do programa? int main() { int x, *p, y; x = 3; p = &x; y = *p; y = 7; (*p)++; (*p) += y; return(0); }
	
	
	
	11
	
	
	3
	
	
	-4
	
	
	7
	
	
	Nenhuma das anteriores. O programa possui um erro de sintaxe.
	
Explicação:
Considerando o trecho do programa dado, vamos analisar passo a passo.
int x, *p, y;
x = 3;
p = &x;        //p aponta para x, que vale 3
y = *p;        //y recebe  o conteúdo da área apontada por p, que é 3. Logo, y recebe 3.
y = 7;        //Agora y recebe 7
(*p)++;       //A área apontada por p é incrementada. Ou seja, x é incrementado, passando a valer 4
(*p) += y;     //Equivale a *p = *p + y;   Logo, *p recebe 4 + 7, pois *p é x.  Então, *p, que é x recebe 11.
Portanto, a resposta certa é 11.
	
	
	
	 
		
	
		4.
		Assinale a alternativa correta sobre alocação de memória.
	
	
	
	Na alocação dinâmica de memória, a memória é alocada sob demanda, apenas quando necessário.
	
	
	Uma das vantagens da alocação dinâmica sobre a alocação estática é que não é necessário fazer a liberação da memória utilizada.
	
	
	É correto afirmar que a alocação dinâmica de memória sempre leva a programas mais rápidos.
	
	
	A declaração de um vetor é um exemplo clássico de alocação dinâmica de memória.
	
	
	Alocação estática de memória refere-se ao processo de alocar memória com o uso de ponteiros.
	
	
	
	 
		
	
		5.
		Em uma aplicação que usa processos de alocação estática e dinâmica de memória é correto afirmar que
	
	
	
	A memória utilizada pela aplicação é totalmente alocada após o inicio de sua execução
	
	
	Todas as afirmações acima são incorretas
	
	
	A memória utilizada pela aplicação é inicialmente estática, mas pode mudar
	
	
	Toda a memória utilizada pela aplicação não muda durante toda a sua execução
	
	
	Apenas a memória associada às variáveis do tipo vetor é alocada após o inicio da execução da aplicação
	
	Gabarito
Coment.
	
	
	
	 
		
	
		6.
		Seja a seguinte seqüência de instruções em um programa C++: int *pti; int i = 10; pti = &i; Qual afirmativa é falsa?
	
	
	
	pti armazena o endereço de i
	
	
	pti é igual a 10
	
	
	ao se executar *pti = 20; i passará a ter o valor 20
	
	
	ao se alterar o valor de i, *pti será modificado
	
	
	*pti é igual a 10
	
Explicação:
Analisando cada opção :
	
	pti é igual a 10
	Explicação :  A afirmativa está incorreta porque *pti é igual 10 e não pti é igual a 10.  Note que pti é o endereço de i. Logo, a afirmativa deve ser marcada.
	
	pti armazena o endereço de i
	Explicação :  pti é um ponteiro que recebeu o endereço (&) de i. Logo, a afirmativa está correta e não deve ser marcada.
	
	*pti é igual a 10
	Explicação :  Afirmativa correta e não deve ser marcada, visto que * é o operador de indireção. Como pti aponta para i, logo *pti é i, que vale 10.
	
	ao se executar *pti = 20; i passará a ter o valor 20
	Explicação :  Afirmativa correta e não deve ser marcada, visto que *pti acessa a área apontada por i. Se *pti recebeu 20 significa que i recebeu 20.
	
	 
 
ao se alterar o valor de i, *pti será modificado
 
Explicação : Afirmativa correta e não deve ser marcada, visto que pti aponta para i e dessa forma, *pti é i.
	
	
	
	 
		
	
		7.
		Em uma aplicação que usa apenas o processo de alocação estática de memória é correto afirmar que:
	
	
	
	Todas as afirmações acima são incorretas
	
	
	Toda a memória utilizada pela aplicação não muda durante toda a sua execução
	
	
	A memória utilizada pela aplicação é inicialmente estática, mas pode mudar
	
	
	A memória utilizada pela aplicação é totalmente alocada após o inicio de sua execução
	
	
	Apenas a memória associada às variáveis do tipo vetor é alocada após o inicio da execução da aplicação
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		 
Seja uma lista encadeada cujo nodo é representado por:
struct nodo{
     int valor;
    nodo prox;
};
 
Esta estrutura possui um ponteiro de referência que aponta sempre para o primeiro nodo da lista, sendo este declarado como:  nodo *lista;
Numa lista encadeada seu último nodo possui o campo prox sempre igual a NULL. Marque a opção que representa o trecho de código onde um ponteiro auxiliar é capaz de percorre a lista até seu último nodo:
	
	
	
	nodo *lista=aux;
while(aux->prox)aux=aux->prox;
	
	
	nodo *aux=lista;
while(aux->prox)aux->prox=aux->prox;
	
	
	nodo *aux=lista;
while(aux)aux->prox=aux;
	
	
	nodo *aux=lista;
while(lista->prox)aux=aux->prox;
	
	
	nodo *aux=lista;
while(aux->prox)aux=aux->prox;
	
Explicação:
nodo *aux=lista;
while(aux->prox)aux=aux->prox;

Outros materiais