Buscar

Linguagens de Programação

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 24 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 24 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 24 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

20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 1/24
AV1
Entrega 20 mar em 23:59 Pontos 40 Perguntas 20
Disponível 15 mar em 0:00 - 20 mar em 23:59 6 dias
Limite de tempo 120 Minutos Tentativas permitidas 2
Instruções
Histórico de tentativas
Tentativa Tempo Pontuação
MANTIDO Tentativa 2 36 minutos 40 de 40
MAIS RECENTE Tentativa 2 36 minutos 40 de 40
Tentativa 1 63 minutos 34 de 40
 As respostas corretas estarão disponíveis em 25 mar em 0:00.
Pontuação desta tentativa: 40 de 40
Enviado 20 mar em 22:10
Esta tentativa levou 36 minutos.
IMPORTANTE:
• A tentativa será finalizada após clicar no botão "ENVIAR" 
• Programe se para realizar suas avaliações com tranquilidade, pois você terá 120 minutos
cronometrados (por tentativa) para conclusão e envio das respostas 
* Após este prazo, a avaliação será automaticamente finalizada 
• Serão permitidas duas tentativas para realizar esta avaliação, prevalecendo a maior nota obtida 
• Ao iniciar a avaliação o cronômetro não para, independentemente da plataforma estar aberta ou
não 
• Durante a realização da prova, será exibido uma questão por vez, podendo “AVANÇAR" ou
“VOLTAR" quando necessário, dentro do período da tentativa 
• Após abrir a avaliação mesmo não marcando nenhuma opção de resposta, será contabilizada
uma tentativa 
• Somente finalize a avaliação após conferir as alternativas marcadas por você
Boa prova!
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453/history?version=2
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453/history?version=2
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453/history?version=1
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 2/24
2 / 2 ptsPergunta 1
Quando se observa um código de programação, com a chance de
simular seu funcionamento, é possível descobrir muita coisa, desde
como ele manipula os valores até de que tipo são esses valores,
mesmo que isso não esteja explícito no código. No caso de vetores e
matrizes de caracteres, strings e vetores de strings, o que os diferencia
é a forma como são manipulados no código, e não propriamente a
forma como são declarados.
No código abaixo, é possível ver a declaração e uso de uma estrutura.
Considerando que a estrutura só é utilizada dessa forma, observe o
código:
char nomes[10][21];
 for(i=0;i<=9;i++)
 {
 for(j=0;j<=20;j++)
 {
 printf("Digite o próximo valor:");
 scanf("%c",&nomes[i][j]);
 }
 }
Nesta situação, pode-se afirmar que foi declarado no começo do
código um(a):
 Vetor de caracteres. 
 Vetor de strings. 
 String. 
 Matriz de caracteres. 
 Matriz de strings. 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 3/24
Strings referem-se a uma forma de manipulação dos vetores de
caracteres que, quando são lidos utilizando a string de controle
(%s) no scanf( ) ou um comando de entrada próprio – o gets( )
–, são reconhecidos como uma palavra ou texto, e não somente
como um conjunto de caracteres. A estrutura não é um string,
mas, sim, uma matriz de caracteres por não ser manipulada
como string ao receber os dados.
2 / 2 ptsPergunta 2
Observe o código a seguir:
int resposta = strcmp( nome1, nome2 )
Considerando o código apresentado, se o conteúdo de nome1 for a
palavra “Vez” enquanto o conteúdo de nome2 for a palavra “Carro”,
qual é o valor armazenado na variável resposta ao final da execução
do trecho de código?
 
 Menor que 0. 
 Maior que 0. 
 Igual a -1. 
 Igual a 1. 
 Igual a 0. 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 4/24
A alternativa correta é que a variável resposta será maior que 0,
pois a função strcmp retorna um valor maior que zero caso a
primeira string seja maior que 0. Nesse caso de estudo, a
situação é essa, pois foi dito que o conteúdo de nome1 é maior
que o conteúdo de nome2.
2 / 2 ptsPergunta 3
Avalie o seguinte trech de código:
 #define NLIN 10 
 #define NCOL 20
 int Matriz[NLIN][NCOL];
 for(i=0; i < NLIN; i++) 
 for(j=0; j < NCOL; j++) 
 Matriz[i][j] = i+j; 
 
Sobre o trecho de código apresentado, assinale a alternativa
INCORRETA:
 O valor armazenado em Matriz[0][0] é igual a 0. 
 O valor armazenado em Matriz[3][3] é igual a 6. 
 O valor armazenado em Matriz[2][2] é igual a 4. 
 A variável Matriz possui 200 elementos. 
 A variável Matriz possui o mesmo número de linhas e colunas. 
2 / 2 ptsPergunta 4
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 5/24
Analise o código a seguir.
int main() 
{ 
int linha; 
int coluna; 
int i; 
int somaprod; 
int mat1[3][3]={{5,4,3},{1,3,4},{5,7,9}}; 
int mat2[3][3]={{1,0,0},{0,1,0},{0,0,1}}; 
int mat3[3][3]; 
int M1L=3, M1C=3, M2L=3, M2C=3; 
for(linha=0; linha<M1L; linha++) 
for(coluna=0; coluna<M2C; coluna++){ 
somaprod=0; 
for(i=0;i<M1L; i++) 
somaprod+=mat1[linha][i]*mat2[i][coluna]; 
mat3[linha][coluna]=somaprod; 
} 
 
for(linha=0; linha<M1L; linha++){ 
for(coluna=0; coluna<M2C; coluna++) 
printf("%d ", mat3[linha][coluna]); 
printf("\n"); 
} 
system("PAUSE"); 
return 0; 
} 
Após a execução do código anterior é correto o que se afirma em:
 O valor de mat3[2][2] = 9 
 O valor de mat3[2][1] = 21. 
 O valor de mat3[1][2] = 6. 
 O valor de mat3[1][1] = 8. 
 O valor de mat3[0][1] = 3. 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 6/24
O algoritmo descrito no texto, inicialmente declara três matrizes
mat1, mat2 e, mat 3 , sendo cada uma delas de dimensão
3x3.Posteriormente inicializa das duas primeiras, e, em
seguida, realiza a multiplicação destas , armazenando seu
resultado em mat3, por fim o algoritmo imprime a matriz
resultante. Importante observar que mat2 consiste na matriz
identidade, logo o produto de mat1 por mat2 consiste em mat1
, o qual é armazenada em mat3.
 
Como apresentado na unidade 1, no tópico 1.1.4. Linguagem
de Programação
2 / 2 ptsPergunta 5
Matrizes são recursos muito utilizados tanto na matemática quanto na
computação. Uma matriz pode organizar os dados de mesmo tipo em
um programa entre linhas e colunas, permitindo o uso posterior das
informações de forma mais prática. Quando é necessário percorrer
uma matriz, é importante que se observem os 2 índices necessários
para acesso a cada campo, assim como acontece com os pontos de
um plano cartesiano.
Seu amigo programador precisa criar uma matriz na qual todas as
linhas devem ser preenchidas com valores de 0 a 2. Ele enviou-lhe um
trecho do código que havia criado para que você fizesse um teste;
porém, no trecho que enviou, não havia a declaração da matriz. Como
você necessita do código completo para realizar o teste, como ficará a
declaração dessa matriz para que o programa funcione corretamente?
A seguir, está o código enviado pelo seu amigo:
 for(i=0;i<=3;i++)
 for(j=0;j<=2;j++)
 matriz[i][j]=j;
Após analisar o código, pode-se afirmar que a forma correta para a
declaração da matriz para que esse código funcione corretamente é int
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 7/24
matriz:
Fonte: Adaptado de CUNHA, Claudia, 2018.
 [4][3] 
 [3][4] 
 [4][2] 
 [2][3] 
 [3][2] 
Como a repetição mais externa (i) é responsável por mudar a
linha, e a mais interna (j) é responsável por preencher as
colunas de cada linha, o “i” vai de 0 a 3 (4 posições) e o “j” vai
de 0 a 2 (3 posições), além de recebero valor e o “j” nas
posições, podemos afirmar que a matriz é (Int matriz[4][3]).
2 / 2 ptsPergunta 6
Analise o código abaixo:
 char nome[41], sobrenome [21];
 setlocale(LC_ALL, "Portuguese");
 strcpy(nome," Ana ");
 strcpy(sobrenome,"Maria");
 strcat(nome,sobrenome);
 printf("\n %s\n",nome);
A partir do conhecimento construído, ao executar o código acima, qual
será o valor impresso? Marque a alternativa correta que demonstre o
valor a ser escrito:
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 8/24
 Maria Ana. 
 Ana Ana. 
 Maria. 
 Ana. 
 Ana Maria. 
Será impresso o texto Ana Maria, pois nome recebeu “Ana”
através do strcpy, e sobrenome recebeu “Maria”; além disso, na
sequência, os valores foram concatenados na variável nome1.
2 / 2 ptsPergunta 7
Analise o seguinte trecho de código.
#include 
void funcao_descolhecida(int Vet[10]) 
{ 
 int i; 
 for(i = 0; i < 10; i++) { 
 printf("%d ", Vet[i]);
 } 
} 
int main() 
{ 
 int Matriz[5][10]; 
 int i; 
 for(i = 0; i < 10; i++){ 
 Matriz[0][i] = i; 
 } 
 i = 0; 
 funcao_descolhecida (Matriz[i]); 
 printf("\n"); 
 return 0; 
} 
 
 
Sobre o código apresentado, é correto o que se afirmar em:
 A variável Matriz armazena valores reais. 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 9/24
 A função_desconhecida imprime os maiores valores de uma linha 
 A variável Matriz armazena 40 elementos. 
 O programa imprime a primeira linha da variável Matriz. 
 O programa preenche todas as linhas e colunas da matriz. 
O programa apresentado, declara uma variável Matriz cujas
dimensões são 5 linhas e 10 colunas , em seguida inicializa a
linha de índice 0 com os valores de 0 a 9 , em seguida imprime
esta linha através da função_desconhecida.
 
Como apresentado na unidade 1, no tópico 1.1.4. Linguagem
de Programação.
2 / 2 ptsPergunta 8
Analise o seguinte trecho de código.
#define TAM_MAX 10000 
double vetor[TAM_MAX]; 
double variavel1; 
for(i=0; i<TAM_MAX; i++) 
 scanf("%f",&vetor[i]); 
variavel1 = vetor[0]; 
for(i=0; i<TAM_MAX; i++) 
 if (vetor[i] > variavel1) 
 variavel1 = vetor[i]; 
Sobre o código apresentado é correto o que se afirma em:
 O código imprime todos os valores do variável vetor. 
 A variável1 recebe todos os valores de variável vetor. 
 O código seleciona o menor elemento da variável vetor. 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 10/24
 A variável1 é impressa na tela. 
 O código seleciona o maior elemento da variável vetor. 
O código apresentado declara um vetor com 10000 posições e
realiza a leitura de seus elementos a partir do teclado em
seguida, seleciona o maior elemento deste vetor e o armazena
na variável (variavel1).
 
Como apresentado na unidade 1, no tópico 1.1.4. Linguagem
de Programação
2 / 2 ptsPergunta 9
O programador, que estava desenvolvendo um programa para a
escola onde você trabalha, criou uma lógica que compara a palavra
Aluno com o conteúdo da variável str. Para que a comparação seja
feita de forma simplificada, foi utilizada a função strlwr, da biblioteca
string.h; porém, o desenvolvedor começou o código e não pôde
terminá-lo. Como você tem um conhecimento avançado em
programação, foi chamado para continuar o desenvolvimento do
programa e viu que o programador havia começado a configurar a
comparação da string (str) com a palavra (Aluno) utilizando o strlwr, e a
única coisa que faltou para terminar foi a constante literal da
comparação.
 
Com base nas informações apresentadas, de que modo deve ser
escrita a constante no código para que a comparação com a função
strlwr(str) seja executada quando o usuário escrever Aluno?
 “ALUNO ou aluno” 
 “ALUNO” 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 11/24
 “Aluno ou aluno” 
 “Aluno” 
 “aluno” 
A função strlwr retorna o conteúdo da string minúsculo. No caso
proposto na questão, independentemente da forma como o
usuário digitar a palavra aluno (Aluno, ALUNO, aluno, AlUnO,
ALuNo), ele retornará que são iguais se a constante a ser
comparada for “aluno”.
2 / 2 ptsPergunta 10
A linguagem C não possui um tipo string explícito. Não existe palavra
reservada que declare uma variável para armazenar uma string. Em
vez disto, você aloca espaço na memória para uma string definindo
uma matriz de caracteres. Uma matriz de caracteres algumas vezes se
parece com qualquer outra variável. Por exemplo, você pode mostrar
uma string inteira na tela numa única operação printf e usar uma
variedade de funções para ler uma string do teclado e armazenar
numa variável de entrada. 
Fonte: Disponível em:< https://www.unicamp.br/fea/ortega/info/aula09.htm>
Acesso.08. Ago.2019.
Nesse contexto, avalie as asserções a seguir e a relação proposta
entre elas:
I - A leitura de valores string pode ser feita da mesma forma que a
leitura de outros tipos.
PORQUE
II - utilizando-se scanf com a string de controle %s a entrada é
formatada para o tipo texto.
A respeito dessas asserções, assinale a opção correta:
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 12/24
 
A asserção I é uma proposição verdadeira, e a II é uma proposição
falsa.
 
A asserção I é uma proposição falsa e a II é uma proposição
verdadeira.
 
As asserções I e II são proposições verdadeiras, mas a II não é uma
justificativa correta da I.
 
As asserções I e II são proposições verdadeiras, e a II é uma
justificativa correta da I.
 As asserções I e II são proposições falsas. 
A leitura de valores string pode ser feita da mesma forma que a
leitura de outros tipos, utilizando scanf com a string de controle
%s, que formata a entrada para o tipo texto. Para ler o nome
declarado, o comando de entrada dado por
scanf(“%s”,&nome);.
Como apresentado na unidade 1, no tópico 1.1.3. Linguagem
de Programação
2 / 2 ptsPergunta 11
Analise o código a seguir.
#include<stdlib.h> 
#include<stdio.h> 
#include<locale.h> 
int main(){ 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 13/24
int *pt1, **pt2, valor; 
setlocale(LC_ALL, “Portuguese”); 
pt1=&valor; 
valor=100; 
pt2=&pt1; 
printf(“%p\n”,pt2); 
printf(“%p\n”,*pt2); 
printf(“%i”,**pt2); 
}
Nesse contexto, julgue as afirmações que se seguem. 
I – A expressão printf(“%i”,**pt2); mostra o número 100.
II – A atribuição pt1=&valor; faz com que pt assuma o valor
armazenado em valor.
III – A declaração **pt2 no início do código é um ponteiro para um
número real.
Está(ão) correta(s) a(s) afirmativa(s):
 II e III, somente. 
 I, somente. 
 I e II, somente. 
 III, somente. 
 II, somente. 
 Apenas a afirmação I está correta, a afirmação II está incorreta,
pois a expressão pt1=&valor; atribui o endereço da variável
valor a pt1, a terceira afirmação está incorreta , pois a
declaração **pt2, consiste em um ponteiro para ponteiro.
 
2 / 2 ptsPergunta 12
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 14/24
Analise o seguinte código em linguagem C. 
#include <stdio.h> 
#include <stdlib.h> 
int main(){ 
int *pt1=NULL, *pt2=NULL; 
int valor1, valor2, resultado;
valor1=47; 
valor2=50; 
pt1=&valor1; 
pt2=&valor2; 
resultado=*pt1+*pt2; 
printf(“%i \n”,resultado); 
system(“PAUSE”); 
return 0; 
} 
Sobre o código apresentado é correto o que se afirmar em:
 A variável resultado apresentará erro ao tentar somar os ponteiros. 
 A expressão pt1=&valor1 atribui o valor contido em valor1 a pt1.
 A variável resultado irá armazenar o valor inteiro 97. 
 A variável resultado será um ponteiro nulo.A expressão valor1=47;faz referência ao endereço de memória da
variável valor.
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 15/24
O programa apresentado declara as variáveis valor1, valor2 e
resultado, como sendo do tipo inteiro, bem como os ponteiros
*pt1, *pt2 também sendo do tipo inteiro. Posteriormente, a
variável resultado recebe a soma dos valore que pt1 e pt2
apontam, portanto 97.
 
Como apresentado na unidade 2 no tópico 2.1.5 Linguagem de
Programação.
2 / 2 ptsPergunta 13
Observe o trecho do código a seguir:
int main()
{
 float *pt1,*pt2,*pt3, numero1,numero2;
 pt3=&numero2;
 pt1=&numero1;
 pt2=pt1;
 numero1=25;
 *pt2=150;
 *pt3=numero1;
 (*pt3)++;
 printf("%f - %f - %f",*pt1,*pt2,*pt3);
}
Quais números serão impressos ao final da execução do código?
 25.00 – 150.00 – 25.00. 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 16/24
 151.00 – 150.00 – 150.00. 
 26.00 – 151.00 – 150.00. 
 150.00 – 150.00 – 151.00. 
 25.00 – 26.00 –150.00. 
No início do código, pt3 e pt1 recebem o endereço de numero2
e numero1 respectivamente. pt2 recebe o endereço de pt1 (até
aqui, pt1 e pt2 apontam para a mesma área de memória). Por
meio do acesso indireto, o pt2 recebe o valor 150 (pt1 = 150,
pt2 = 150), e pt3 recebe o valor do numero1 (que é o endereço
apontado por pt1 e pt2) e tem o valor 150. Quando é feito (*
pt3++), o valor é atualizado com mais 1; portanto, no final, os
valores impressos são 150 – 150 – 151.
2 / 2 ptsPergunta 14
Em C, uma variável que contém um endereço de memória é uma
variável do tipo ponteiro. Um valor, que é um endereço (como &a) é
um valor de ponteiro. Quando um ponteiro (a variável) contém um
determinado endereço, dizemos que ele aponta para o endereço de
memória. Além disso, se o valor deste ponteiro é o endereço de uma
outra variável qualquer, dizemos que tal ponteiro aponta para esta
outra variável.
Diponível em;<
http://www.inf.ufpr.br/cursos/ci067/Docs/NotasAula/notas-
28_Ponteiros.html> Acesso.06. Ago.2019.
Nesse contexto, considere pt1 um ponteiro, em seguida julgue as
afirmações que se seguem.
I – A expressão pt1 ++; acessa o próximo endereço de memória.
II – A expressão (*pt1)-=2; acesso dois endereços de memória para
traz.
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 17/24
III – A expressão pt1=pt1+9; acessa dez endereços de memória frente.
 
Está(ão) correta(s) a(s) afirmativa(s):
 I e II, somente. 
 II, somente. 
 II e III, somente. 
 I, somente. 
 III, somente. 
 Apenas a afirmação I está correta, as a segunda afirmação II
está incorreta, pois a expressão
(*pt1)-=2; acessa o conteúdo apontado subtraído de 2 e a
terceira expressão pt1=pt1+9;// acessa 9 endereços à frente.
 
Como apresentado na unidade 2 no tópico 2.1.5 Linguagem de
Programação.
2 / 2 ptsPergunta 15
Analise o seguinte código escrito em linguagem C.
#include<stdlib.h>
#include<stdio.h>
#define MAX 1000
int main(){
 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 18/24
 int *ptvetor, i,vet[MAX];
 
 for(i=0;i<MAX;i++){
 vet[i]=i+1;
 }
 ptvetor=vet;
 for(i=0;i<MAX;i++){
 
 printf(“%p - %i\n”,ptvetor, *ptvetor);
 ptvetor++;
}
 
Sobre o código apresentado é correto o que se afirmar em:
 A variável *ptvetor é um vetor de inteiros. 
 A variável *ptvetor é um ponteiro para números inteiros. 
 A expressão vet[i]=i+1; consiste em uma aritmética de ponteiros. 
 A expressão ptvetor++; soma uma unidade na variável vetor. 
 
As expressões printf(“%p - %i\n”,ptvetor, *ptvetor); mostram um mesmo
resultado.
A variável *ptvetor é um ponteiro para números inteiros, tendo
sido declarada no início do programa.
 
Como apresentado na unidade 2 no tópico 2.1.6 Linguagem de
Programação
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 19/24
2 / 2 ptsPergunta 16
As funções de alocação dinâmica possibilitam que o programa aloque
mais memória em tempo de execução, bem como permitem a
desalocação e a realocação de memória dinamicamente. A partir
dessas informações, a função de alocação dinâmica é capaz de liberar
toda a memória reservada dinamicamente a:
 return( ) 
 malloc( ) 
 void( ) 
 realloc( ) 
 free( ) 
A função free( ) libera regiões da memória alocadas
dinamicamente.
2 / 2 ptsPergunta 17
Analise o seguinte trecho de código.
 
#include <stdio.h>
 #include <stdlib.h>
struct x{
 int a;
 int b;
 int c; };
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 20/24
int main(void){
 
 struct x estrutura;
 int *y = malloc ( sizeof(estrutura));
 printf(“%li”, sizeof(estrutura));
}
 
Sobre o trecho de código apresentado é correto apenas o que se
afirma em:
 Imprime uma estrutura através do comando printf. 
 Declara uma estrutura de números reais. 
 Lê a partir do teclado três números inteiros. 
 Aloca dinamicamente uma estrutura. 
 
Imprime a posição de memória da estrutura através do comando printf. 
 O código apresentado aloca dinamicamente uma estrutura
contendo três números inteiros.
 
Como apresentado na unidade 3, no tópico 3.1.2.1 Linguagem
de Programação.
2 / 2 ptsPergunta 18
Analise o seguinte código computacional.
 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 21/24
# include <stdio.h>
# include <stdlib.h>
 
int main(){
 
 int *v, n =500;
 v = (int *) malloc( sizeof (int)*n);
 int i;
 
 for (i=0;i<n;i++)
 v[i] = i*i +2;
 
 for (i=0;i<n;i++)
 printf (“v[%d] = %d\n”,i, v[i]);
 
free (v);
return 0;
 
}
 
Sobre o código apresentado é correto apenas o que se afirmar em:
 Ao final de sua execução v[10]=100. 
 Ao final de sua execução v[20]=404 
 Ao final de sua execução v[9]=83 
 Ao final de sua execução v[13]=170. 
 Ao final de sua execução v[12]=144. 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 22/24
O código apresentado, aloca dinamicamente um vetor com 500
posições, e inicializa este através da seguinte expressão v[i] =
i*i +2, portanto , v[9] = 9*9 +2 =83.
 
Como apresentado na unidade 3 no tópico 3.1.2.1 Linguagem
de Programação.
2 / 2 ptsPergunta 19
O desenvolvimento de uma aplicação envolve a utilização de recursos
de memória, e gerenciar esses recursos com um código mais bem
planejado torna a aplicação menos propensa a falhas. Usando as
funções de alocação de memória da linguagem C, é possível
manipular áreas de memória livre e, nelas, poderemos alocar as
variáveis. Se a região, porém, não tiver espaço para essa alocação,
qual retorno receberíamos se usássemos as funções malloc( ) e
realloc( )?
 false
 0 
 full
 true
 null
Todas as funções de alocação de memória retornam uma
informação para o código, mas somente quando retornam null
saberemos que houve erro.
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 23/24
2 / 2 ptsPergunta 20
Analise o seguinte trecho de código.
#include <stdlib.h> 
#include<stdio.h> 
int main (){ 
int * vetor; 
vetor = malloc (10 * sizeof (int)); 
for (int n = 0; n< 10; n++) 
vetor[n]=n*n; 
 
vetor = realloc (vetor, 15 * sizeof (int)); 
for (int n = 10; n < 15; n++) 
vetor[n]=n; 
printf (“\n”);
for (int n = 0; n < 15; n++) 
printf (“\n vetor[%i]=%i”,n,vetor[n]); 
}
Neste contexto, julgue as afirmações que se seguem.
I - Afunção realloc sobrescreve todos os dados do vetor. 
II – Ao final da execução do código vetor [14] =14. 
II – Ao final da execução do código vetor [5] =25.
Está(ão) correta(s) a(s) afirmativa(s):
 I, somente. 
 I e II, somente. 
 I e III, somente. 
 II e III, somente. 
 II, somente. 
20/03/2022 22:12 AV1: F.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/14253/quizzes/33453 24/24
Apenas as afirmações II e III estão corretas, a afirmação I não
está correta, pois a função realloc apenas expande o tamanho
da memória previamente alocada, não sobrescrevendo esta.
Pontuação do teste: 40 de 40

Outros materiais