Buscar

AV1 2T-LingProgram 12de15-19 09 20aps

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

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 51 minutos 12 de 15
MAIS RECENTE Tentativa 2 51 minutos 12 de 15
Tentativa 1 120 minutos 1,5 de 15
 As respostas corretas estarão disponíveis em 21 set em 0:00.
Pontuação desta tentativa: 12 de 15
Enviado 19 set em 17:44
Esta tentativa levou 51 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
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
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
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:
Fonte: Adaptado de CUNHA, Claudia, 2018.
 [2][3] 
 [3][2] 
 [4][3] 
 [3][4] 
 [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]).
1,5 / 1,5 ptsPergunta 2
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[1][2] = 6. 
 O valor de mat3[1][1] = 8. 
 O valor de mat3[0][1] = 3. 
 O valor de mat3[2][1] = 21. 
 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
1,5 / 1,5 ptsPergunta 3
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” 
 “Aluno ou aluno” 
 “Aluno” 
 “aluno” 
 “ALUNO ou 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”.
1,5 / 1,5 ptsPergunta 4
Avalie o seguinte trecho 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 correta.
 A variável Matriz possui 100 elementos. 
 O valor armazenado em Matriz [2][2] é igual a 4. 
 O valor armazenado em Matriz[3][3] é igual a 6. 
 A variável Matriz possui o mesmo número de linhas e colunas. 
 O valor armazenado em Matriz[0][0] é igual a 0. 
O valor armazenado em Matriz[0][0] é igual a 0.
 
O trecho de código apresentado define uma matriz de contendo 10 linhas e 20
colunas, neste código, a variável Matriz recebe na posição i,j a soma destes,
como em linguagem C , os índices se iniciam em 0, então para Matriz[0][0]=0.
 
Como apresentado na unidade 1, no tópico 1.1.4. Linguagem de
Programação.
1,5 / 1,5 ptsPergunta 5
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á?
 
Compilará, mas nenhum valor será atribuído, pois o & não pode ser usado assim. 
 Compilará normalmente, e a pt receberá o endereço da variável x. 
 
Não compilará, pois o tipo do conteúdo de pt é diferente do tipo do conteúdo de x. 
 Compilará normalmente, e a pt receberá o valor da variável x. 
 
Não compilará, pois a variável pt não é um ponteiro e não pode receber endereços. 
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.
0 / 1,5 ptsPergunta 6IncorretaIncorreta
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.
 
Uso do asterisco na atribuição de um valor inteiro, o que causará um erro em tempo
de projeto.Alteração indevida do conteúdo de endereços de memória, pois os ponteiros não
foram inicializados.
 
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 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.
1,5 / 1,5 ptsPergunta 7
Um ponteiro é um espaço reservado de memória usado para guardar o endereço
de memória de uma outra variável. Além disso, um ponteiro é uma variável como
qualquer outra do programa, sua diferença é que ela não armazena um valor
inteiro, real, caractere ou booleana. Ela serve para armazenar endereços de
memória (são valores inteiros sem sinal.
Disponível em:<http://www.facom.ufu.br/~backes/gsi002/Aula10-Ponteiros.pdf
 (http://www.facom.ufu.br/~backes/gsi002/Aula10-Ponteiros.pdf) >Acesso.06.
Ago.2019.
Nesse contexto, avalie as asserções a seguir e a relação proposta entre elas.
 
I - Se um ponteiro p armazena o endereço de uma variável i, podemos dizer o
ponteiro p aponta para i ou p é o endereço de i.
 
PORQUE
 
II - Se um ponteiro p tem valor diferente de NULL então *p é o valor da variável
apontada por p.
 
A respeito dessas asserções, assinale a opção correta
 As asserções I e II são proposições falsas. 
 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.
http://www.facom.ufu.br/~backes/gsi002/Aula10-Ponteiros.pdf
 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.
A primeira afirmação versa sobre as propriedades de um ponteiro, e a 
segunda explana o conceito sobre como exibir o valor para o qual o ponteiro 
aponta.
1,5 / 1,5 ptsPergunta 8
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 propença 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
 true 
 full
 null
 0 
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.
0 / 1,5 ptsPergunta 9IncorretaIncorreta
Analise o seguinte trecho de código.
 
#include <stdio.h>
 #include <stdlib.h>
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:
 Declara uma estrutura de números reais. 
 Aloca dinamicamente uma estrutura. 
 Imprime a posição de memória da estrutura através do comando printf. 
 Lê a partir do teclado três números inteiros. 
 Imprime uma estrutura através do comando printf. 
1,5 / 1,5 ptsPergunta 10
Analise a codificação a seguir:
#include <stdio.h>
#include <stdlib.h> 
struct x{
int a;
int b;
int c;
};
int main(void){
struct x estrutura;
int *y = malloc ( 2* sizeof(estrutura));
printf("%li", sizeof(estrutura));
}
Considerando que o tipo inteiro (int) aloca 4 bytes na arquiterura utilizada por
esse programa, conclui-se que, usando alocação dinâmica na codificação, a
quantidade de bytes alocados para uma variável do tipo x será de:
 128 bytes. 
 16 bytes. 
 12 bytes. 
 64 bytes. 
 32 bytes. 
Pontuação do teste: 12 de 15

Continue navegando