Buscar

Avaliação Online 1_ AGO TADS 2 - 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 12 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 12 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 12 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

18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 1/12
Avaliação Online 1
Entrega 18 set em 23:59 Pontos 15 Perguntas 10
Disponível 18 set em 21:00 - 22 set em 23:59 4 dias
Limite de tempo 120 Minutos Tentativas permitidas 2
Instruções
Histórico de tenta�vas
Tentativa Tempo Pontuação
MANTIDO Tentativa 2 120 minutos 15 de 15
MAIS RECENTE Tentativa 2 120 minutos 15 de 15
Tentativa 1 119 minutos 6 de 15
 As respostas corretas estarão disponíveis em 21 set em 0:00.
Pontuação desta tentativa: 15 de 15
Enviado 18 set em 23:01
Esta tentativa levou 120 minutos.
Leia com atenção as orientações abaixo antes de iniciar esta prova:
Serão permitidas duas tentativas para realizar esta avaliação, prevalecendo a maior nota.
Programe-se para realizar suas avaliações com tranquilidade, pois você terá 120 minutos
cronometrados (por tentativa) para conclusão e envio das respostas.
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;
A tentativa somente será contabilizada após clicar no botão “Enviar”.
1,5 / 1,5 ptsPergunta 1
Analise o código a seguir.
int main()
{ 
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712/history?version=2
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712/history?version=2
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712/history?version=1
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 2/12
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 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
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 3/12
 O valor de mat3[1][2] = 6. 
 O valor de mat3[0][1] = 3. 
 O valor de mat3[2][1] = 21. 
 O valor de mat3[1][1] = 8. 
1,5 / 1,5 ptsPergunta 2
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:
 O programa imprime a primeira linha da variável Matriz. 
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 4/12
O programa apresentado, declara uma variável Matriz cujas
imensõ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.
 No answer text provided. 
 A variável Matriz armazena 40 elementos. 
 A variável Matriz armazena valores reais. 
 A função_desconhecida imprime os maiores valores de uma linha 
 O programa preenche todas as linhas e colunas da matriz. 
1,5 / 1,5 ptsPergunta 3
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. 
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 5/12
 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.
1,5 / 1,5 ptsPergunta 4
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
matriz:
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 6/12
Fonte: Adaptado de CUNHA, Claudia, 2018.
 [4][2] 
 [4][3] 
 [3][4] 
 [3][2] 
 [2][3] 
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]).
1,5 / 1,5 ptsPergunta 5
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:
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:
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 7/12
 I, II e III. 
 II e III, apenas. 
 I, apenas. 
 II, apenas. 
 I e III, 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.
1,5 / 1,5 ptsPergunta 6
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 expressão pt1=&valor1 atribui o valor contido em valor1 a pt1. 
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 8/12
 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.
 A variável resultado apresentará erro ao tentar somar os ponteiros. 
 A variável resultado irá armazenar o valor inteiro 97. 
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
1,5 / 1,5 ptsPergunta 7
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):
 
Fato de um ponteiro estar recebendo um valor inteiro, o que trará um
problema em tempo de execução.
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 9/12
 
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.
 
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.
 
Alteração indevida do conteúdo de endereços de memória, pois os
ponteiros não foram inicializados.
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.
1,5 / 1,5 ptsPergunta 8
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
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 10/12
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
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 verdadeiras, e a II é 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 utilizar a 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
 
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.
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 11/12
 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.
1,5 / 1,5 ptsPergunta 9
A alocação dinâmica de memória é um mecanismo utilizado para
possibilitar que uma quantidade de memória seja reservada durante o
tempo de execução de uma aplicação. A região de memória utilizada
para alocação dinâmica é conhecida como heap.
Disponível em:< https://www.embarcados.com.br/ponteiro-em-c-
alocacao-dinamica/>Acesso.07.Ago.2019.
Neste contexto, julgue as afirmações que se seguem.
I – O retorno do valor NULL permite fazer um tratamento de erro ou
desenvolver novas linhas de programação para nos desviar do
problema de falta de memória.
II – A função malloc() (abreviatura de memory allocation) recebe como
argumento um número inteiro positivo que representa a quantidade de
bytes de memória a ser alocada.
III - Uma vez alocada a memória dinamicamente, ela continuará
ocupada até que seja desalocada explicitamente pela função free().
Está(ão) correta(s) a(s) afirmativa(s):
 I, somente. 
 I, II e III. 
18/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação
https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 12/12
As três afirmações estão corretas e versam sobre os conceitos de
alocação dinâmica de memória, liberação de memória
previamente alocada e tratamento de retorno NULL.
 
Como apresentado na unidade 3 no tópico 3.1.2.1 Linguagem de
Programação.
 I e II, somente. 
 II, somente. 
 II e III, somente. 
1,5 / 1,5 ptsPergunta 10
A linguagem C utiliza bibliotecas para serem incluídas em aplicações
com o objetivo de oferecer recursos adicionais à linguagem. Estas são
incluídas na elaboração de programas através do comando include.
Para manipularmos a alocação dinâmica, precisaremos de uma
biblioteca específica. Selecione a alternativa correta.
 math.h 
 string.h 
 stdio.h 
 stdlib.h 
 limits.h 
Pontuação do teste: 15 de 15

Continue navegando

Outros materiais