Buscar

AV1_ A ADS 3 - Linguagens de Programação13

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

14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 1/35
AV1
Entrega 18 set em 23:59 Pontos 40 Perguntas 20 Disponível 10 set em 0:00 - 18 set em 23:59
Limite de tempo 120 Minutos Tentativas permitidas 2
Instruções
Histórico de tentativas
Tentativa Tempo Pontuação
MAIS RECENTE Tentativa 1 95 minutos 34 de 40
 As respostas corretas estarão disponíveis em 19 set em 0:00.
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!
Fazer o teste novamente
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288/history?version=1
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288/take?user_id=8210
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 2/35
Pontuação desta tentativa: 34 de 40
Enviado 13 set em 19:39
Esta tentativa levou 95 minutos.
2 / 2 ptsPergunta 1
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:
 Maria. 
 Ana Ana. 
 Ana. 
 Ana Maria. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 3/35
 Maria Ana. 
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 2
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” 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 4/35
 “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 3
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++)
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 5/35
 {
 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):
 Matriz de strings. 
 String. 
 Vetor de strings. 
 Matriz de caracteres. 
 Vetor de caracteres. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 6/35
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 4
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?
 
 Igual a 1. 
 Menor que 0. 
 Igual a 0. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 7/35
 Igual a -1. 
 Maior que 0. 
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 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++)
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 8/35
 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 matriz:
Fonte: Adaptado de CUNHA, Claudia, 2018.
 [3][4] 
 [2][3] 
 [3][2] 
 [4][3] 
 [4][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 receber o valor e o “j” nas posições, podemos afirmar que a matriz é (Int matriz[4]
[3]).
2 / 2 ptsPergunta 6
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/352889/35
Observe o seguinte esquema de memória, onde a última linha (escrita de branco no fundo preto) representa
o endereço em que está alocada a variável, junto ao código mostrado abaixo.
int main()
{
 int *pt1,**pt2, d;
 setlocale(LC_ALL, "Portuguese");
 pt1=&d;
 d=35;
 pt2=&pt1;
 printf("%p - %p - %i", pt2,*pt2,**pt2);
}
A partir das informações apresentadas, assinale a opção que apresenta o valor impresso ao final da
execução do programa:
 30F5 – 30FD – 30FD. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 10/35
 30FD – 30F5 – 35. 
 30F5 – 30FD – 35. 
 30ED – 30FD – 35. 
 30ED – 30F5 – 30FD. 
Quando se utiliza ponteiro para ponteiro, ao se utilizar o ponteiro sem o asterisco, o conteúdo do
ponteiro pt2 é acessado (30F5). Com um asterisco, o valor do ponteiro apontado é mostrado (30FD)
e, com dois asteriscos, é apresentado o valor da variável apontada pelo ponteiro pt1 (35).
2 / 2 ptsPergunta 7
Observe o trecho do código a seguir:
int main()
{
 float *pt1,*pt2,*pt3, numero1,numero2;
 pt3=&numero2;
 pt1=&numero1;
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 11/35
 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?
 151.00 – 150.00 – 150.00. 
 25.00 – 150.00 – 25.00. 
 25.00 – 26.00 –150.00. 
 26.00 – 151.00 – 150.00. 
 150.00 – 150.00 – 151.00. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 12/35
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 8
Observe o trecho do código a seguir:
char *p1,*ptnome;
int *temp, *ptinício, *ptnota;
*temp=125;
É correto afirmar que o risco de execução na declaração de ponteiros diz respeito à(ao):
 Alteração indevida do conteúdo de endereços de memória, pois os ponteiros não foram inicializados. 
 Fato de um ponteiro estar recebendo um valor inteiro, o que trará um problema em tempo de execução. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 13/35
 
Uso de mais de uma posição de memória, pois, na alocação dinâmica,o ponteiro só pode se referenciar a um
valor que ocupe uma posição.
 Uso do asterisco na atribuição de um valor inteiro, o que causará um erro em tempo de projeto. 
 
Alteração do endereço no ponteiro tempo por um endereço que não existe na memória, uma vez que 125 não é
um endereço de memória.
A atribuição de valores indiretamente a um ponteiro sem que este tenha sido inicializado (recebendo
NULL ou a posição de uma variável) antes pode trazer problemas de instabilidade ao programa e até
a outros programas que utilizam a memória, pois o ponteiro, quando criado, tem um endereço
aleatório que pode já estar em uso e, ao alterar o valor contido na memória usando o operador
indireto (*), gerar o problema.
2 / 2 ptsPergunta 9
As variáveis em C podem ser consideradas (i) comuns, quando armazenam conteúdo (números, letras,
palavras) na memória, ou (ii) ponteiros, quando armazenam endereços. Enquanto uma variável comum não
armazena endereços, uma variável ponteiro só trata de endereços. Nesse contexto, avalie as afirmações a
seguir:
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 14/35
I. Uma variável ponteiro pode receber diretamente o resultado de uma operação aritmética entre valores
reais.
II. Variável ponteiro é um tipo especial de variável, que recebe endereços para posições de memória.
III. Uma variável ponteiro pode manipular valores de variáveis comuns na memória de forma indireta.
É correto o que se afirma em:
 I e III, apenas. 
 I, II e III. 
 I, apenas. 
 II e III, apenas. 
 II, apenas. 
A afirmativa I está errada, pois variáveis ponteiros só recebem diretamente os endereços de
memória. As outras afirmativas estão corretas.
2 / 2 ptsPergunta 10
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 15/35
O uso de ponteiros e a manipulação da memória na linguagem C são feitos por meio de operadores
próprios, sendo o operador de endereço o responsável por passar o endereço de uma variável para um
ponteiro ao invés de passar/copiar seu conteúdo para outra variável comum. Nesse contexto, é apresentado
o seguinte trecho de código:
int pt, x;
pt=&x;
Considerando que todo o resto do código de onde foi retirado esse trecho está correto, ao se tentar
compilar e executar o código, o que acontecerá?
 Não compilará, pois o tipo do conteúdo de pt é diferente do tipo do conteúdo de x. 
 Não compilará, pois a variável pt não é um ponteiro e não pode receber endereços. 
 Compilará normalmente, e a pt receberá o endereço da variável x. 
 Compilará, mas nenhum valor será atribuído, pois o & não pode ser usado assim.
 Compilará normalmente, e a pt receberá o valor da variável x. 
O código não compilará, pois a variável pt não é um ponteiro e não pode receber endereços. Embora
o nome pareça de um ponteiro, na declaração não foi utilizado o asterisco e, por isso, ele não é um
ponteiro.
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 16/35
2 / 2 ptsPergunta 11
Reservar dinamicamente é o caso em que não sabemos, no momento da programação, a quantidade de
dados que deverão ser inseridos quando o programa já está sendo executado. Em vez de tentarmos prever
um limite superior para abarcar todas as situações de uso da memória, temos a possibilidade de reservar
memória de modo dinâmico. Os exemplos típicos disto são os processadores de texto, nos quais não
sabemos a quantidade de caracteres que o utilizador vai escrever quando o programa estiver sendo
executado. Nestes casos podemos, por exemplo, receber a quantidade de caracteres que o usuário digita e
depois alocamos a quantidade de memória que precisamos para guardá-lo e depois o armazenamos para
uso posterior. 
Disponível em:<
https://pt.wikibooks.org/wiki/Programar_em_C%2B%2B/Aloca%C3%A7%C3%A3o_din%C3%A2mica_de_me
 
Neste contexto, avalie as asserções a seguir e a relação proposta entre elas. I
I – Durante a execução do programa pode-se necessitar alterar o tamanho do blocos de bytes alocados por
malloc().
PORQUE
II – Isso poderá ocorrer principalmente por mudanças na arquitetura computacional
A respeito dessas asserções, assinale a opção correta:
 As asserções I e II são proposições falsas. 
 As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 17/35
 A asserção I é uma proposição falsa e a II é uma proposição verdadeira. 
 A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 
 As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. 
Durante a execução do programa pode-se necessitar alterar o tamanho do blocos de bytes alocados
por malloc(), isso poderá ocorrer principalmente por mudanças na arquitetura computacional. Para
estes casos precisaremos utilizara função realloc() para modificar o tamanho da memória reservada
anteriormente
 
Como apresentado na unidade 3 no tópico 3.1.2.1 Linguagem de Programação
2 / 2 ptsPergunta 12
Analise o seguinte trecho de código.
 
#include <stdio.h>
 #include <stdlib.h>
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 18/35
struct x{
 int a;
 int b;
 int c; };
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. 
 Imprime a posição de memória da estrutura através do comando printf. 
 Aloca dinamicamente uma estrutura. 
 Declara uma estrutura de números reais. 
 Lê a partir do teclado três números inteiros. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 19/35
 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 13
Analise o seguinte código computacional.
 
# include <stdio.h>
# include <stdlib.h>
 
int main(){
 
 int *v, n =500;
 v = (int *) malloc( sizeof (int)*n);
 int i;
 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 20/35
 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[12]=144. 
 Ao final de sua execução v[9]=83 
 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[13]=170. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 21/35
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.
0 / 2 ptsPergunta 14IncorretaIncorreta
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”);
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 22/35
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 - A funçã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 e II, somente. 
 II, somente. 
 II e III, somente. 
 I, somente. 
 I e III, somente. 
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.
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 23/35
2 / 2 ptsPergunta 15
Analise o seguinte código computacional.
# include <stdio.h> 
# include <stdlib.h>
 
int main (){
int *pi; 
pi = (int *) malloc(sizeof(int)); 
printf(“\n Digite um numero : “); 
scanf(“%d”, pi); 
printf(“\n primeira impressao: %d\n”, *pi); 
free(pi); 
printf(“\n segunda impressao: %d\n\n”, *pi); 
system (“pause”); 
return 0; 
}
Considerando o código apresentado, julgue as afirmações que se seguem.
I - A variável *pi é um número inteiro.
II - O primeiro printf irá mostrar o endereço de memória relativo a *pi.
III – O programa aloca dinamicamente o número de bytes para um número inteiro.
Está(ão) correta(s) a(s) afirmativa(s):
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 24/35
 II e III, somente. 
 II, somente. 
 III, somente. 
 I, somente. 
 I e II, somente. 
Apenas a terceira afirmação está correta, a primeira afirmação está incorreta, pois a variável *pi é um
ponteiro para um número inteiro, já a segunda afirmação está incorreta, pois o primeiro printf irá
mostrar o valor armazenado em *pi , lido a partir do teclado.
 
Como apresentado na unidade 3 no tópico 3.1.2.1 Linguagem de Programação.
0 / 2 ptsPergunta 16IncorretaIncorreta
Analise o código a seguir escrito em linguagem C.
 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 25/35
#include<stdlib.h>
#include<stdio.h>
#include<locale.h>
 
struct CADASTRO {
 int numero;
 char letra;
 float real;
};
int main(){
 
 CADASTRO variavel;
 
 setlocale(LC_ALL, “Portuguese”);
 
 variavel.numero=15;
 variavel.letra=’X’;
 variavel.real=10.0;
}
 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 26/35
Sobre o código apresentado, julgue as afirmações que se seguem.
 
I – A impressão em tela do campo número da variável do tipo cadastro pode
ser feita da seguinte forma printf(“\nnumero = %i”,variavel.numero);
 
II- A impressão em tela do campo letra da variável do tipo cadastro pode ser
feita da seguinte forma printf(“\nletra= %c”, letra);
 
III- A leitura a partir do teclado do campo real, pode ser feita do seguinte modo
scanf(“%f”,&real);.
 
Está(ão) correta(s) a(s) afirmativa(s):
 II, somente. 
 II e III, somente. 
 I, somente. 
 I e II, somente. 
 III, somente. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 27/35
Gabarito: I, somente.
 
 Feedback: Apenas a afirmação I está correta, as afirmações II e III estão incorretas, pois a
impressão em tela e leitura a partir do teclado são realizados, respectivamente como:
 
printf(“\nletra= %c”,variavel.letra);
 
scanf(“%f”,&variavel.real)
 
Como apresentado na unidade 4 no tópico 4.1.1.3 Linguagem de Programação
2 / 2 ptsPergunta 17
Analise o seguinte código escrito em linguagem C.
typedef struct {
char nome[50]; 
char endereço[100]; 
int idade; 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 28/35
int CEP; 
int telefone; 
real renda;
} cadastro;
int main(){
int vetor[5]; 
int matriz[5][3]
cadastro formulários;
Sobre o código apresentado é correto, apenas o que se afirmar em:
 A estrutura cadastro é uma variável. 
 O código declara uma matriz de cadastros. 
 A variável formulário é um vetor. 
 O código declara um vetor de cadastros. 
 A variável formulário contém seis campos. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 29/35
Gabarito: A variável cadastro contém seis campos
 
Feedback: O código apresentado declara inicialmente uma struct , denominada de cadastro que é 
definida como um tipo de variável , em seguida o código declara um vetor e uma matriz de inteiros,
por final é declarado uma variável de nome formulário do tipo cadastro.
 
Como apresentado na unidade 4 no tópico 4.1.1.3 Linguagem de Programação.
2 / 2 ptsPergunta 18
Structs, também conhecidas como Registros, definem tipos de dados que
agrupam variáveis sob um mesmo tipo de dado. A ideia de usar uma struct é
permitir que, ao armazenar os dados de uma mesma entidade, isto possa ser
feito com uma única variável.
PINHO, Márcio Sarroglia.Uso de Estruturas de Dados Heterogêneas. 2019.
Disponível em: <https://www.inf.pucrs.br/~pinho/LaproI/Structs/Structs.htm>.
Acesso em: 14 ago. 2019.
 
Neste contexto, avalie as asserções a seguir e a relação proposta entre elas.
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 30/35
 
I - Para acessar os campos de uma estrutura é necessário que ela tenha sido
utilizada para declarar uma variável, o acesso é feito por meio do identificador
da variável seguido de um ponto e do nome do campo a ser acessado.
 
PORQUE
 
II - Para o acesso aos dados podem ser utilizados dois operadores, o operador
de membro da estrutura (.), também chamado de operador de ponto, assim
como o operador de ponteiro de estrutura(->), também chamado de operador
de seta.
 
A respeito dessas asserções, assinale a opção correta:
 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, e a II é uma justificativa correta da I. 
 As asserções I e II são proposições falsas. 
 A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 
 As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 31/35
Gabarito: As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.
Feedback: Para acessar os campos de uma estrutura é necessário que ela tenha sido utilizada para
declarar uma variável, o acesso é feito por meio do identificador da variável seguido de um ponto e
do nome do campo a ser acessado.
Deitel (2011, p.322) afirma que para o acesso aos dados podem ser utilizados dois operadores, o
operador de membro da estrutura (.), também chamado de operador de ponto, assim como o
operador de ponteiro de estrutura( ->), também chamado de operador de seta
Como apresentado na unidade 4 no tópico 4.1.1.4 Linguagem de Programação.
2 / 2 ptsPergunta 19
Imagine o desenvolvimento de um programa destinado à eleição de síndico de prédio em que (i) o número
de registro do candidato é um número inteiro gerado de forma aleatória, (ii) o número de votos é recebido
pelo programa após a contagem e que (iii) a idade é critério de desempate entre os candidatos. O nome do
candidato deve ser cadastrado também.
Com essas informações do problema, marque a alternativa que tenha a struct CANDIDATO declarada de
forma mais completa de acordo com o problema:
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 32/35
 
struct CANDIDATO
{ char nome[21];
 int idade, votacao, numeroDeRegistro;
 float gastosDeCampanha;
} ;
 
struct CANDIDATO
{ char nome[21];
 int idade, votacao, numeroDeRegistro;
 } ;
 
struct CANDIDATO
{ char nome[21];
 int idade, votacao;
 float salario;
} ;
 
struct CANDIDATO
{ char nome[21];
 int idade, votacao;
} ;
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 33/35
 
struct CANDIDATO
{ char nome[21];
 float salario;
} ;
0 / 2 ptsPergunta 20IncorretaIncorreta
Analise o seguinte código computacional escrito em linguagem C.
 
#include<stdlib.h>
#include<stdio.h>
#include<locale.h>
 
struct PEDIDOS{
 int formaDePagamento;
 char telefone[15];
 char nome[21],
 char endereco[41]; 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 34/35
 float valor;
 float taxaEntrega;
};
int main(){
 
 PEDIDOS entrega;
}
 
Neste contexto, julgue as afirmações que se seguem.
I – A leitura a partir do teclado do campo valor é feita através do comando scanf(“%f”,&entrega.valor);.
II – A leitura a partir do teclado do campo endereço é feita através do comando gets(entrega.endereco)
III - A impressão em tela do campo telefone é feita através do comando printf(“\nTelefone: %s\n”,
entrega.telefone).
 
Está(ão) correta(s) a(s) afirmativa(s):
 I e II, somente. 
 I, somente. 
 I e III, somente. 
14/09/2022 07:42 AV1: A.ADS.3 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/15751/quizzes/35288 35/35
 II e III, somente. 
 I, II e III. 
Gabarito: I, II e III.
Feedback: As três afirmações estão corretas e representam os corretos comandos em linguagem C
de leitura a partir do teclado e de impressão em tela. Como apresentado na unidade 4 no tópico
4.1.2 Linguagem de Programação.
Pontuação do teste: 34 de 40

Outros materiais