Baixe o app para aproveitar ainda mais
Prévia do material em texto
05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 1/12 Avaliação Online 1 Entrega 5 abr em 23:59 Pontos 15 Perguntas 10 Disponível 30 mar em 0:00 - 5 abr em 23:59 7 dias Limite de tempo 120 Minutos Tentativas permitidas 2 Instruções Histórico de tentativas Tentativa Tempo Pontuação MANTIDO Tentativa 2 11 minutos 15 de 15 MAIS RECENTE Tentativa 2 11 minutos 15 de 15 Tentativa 1 49 minutos 13,5 de 15 Pontuação desta tentativa: 15 de 15 Enviado 5 abr em 17:10 Esta tentativa levou 11 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 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 https://newtonpaiva.instructure.com/courses/6465/quizzes/10768/history?version=2 https://newtonpaiva.instructure.com/courses/6465/quizzes/10768/history?version=2 https://newtonpaiva.instructure.com/courses/6465/quizzes/10768/history?version=1 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 2/12 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. 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, e a II é uma justificativa correta da I. Correto!Correto! 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 As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 3/12 As asserções I e II são proposições falsas. 1,5 / 1,5 ptsPergunta 2 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): Matriz de caracteres. Correto!Correto! Vetor de caracteres. Vetor de strings. String. Matriz de strings. 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 4/12 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. 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” Correto!Correto! “Aluno” “Aluno ou aluno” “ALUNO ou aluno” “ALUNO” 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 5/12 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 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 seleciona o maior elemento da variável vetor. Correto!Correto! 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 O código seleciona o menor elemento da variável vetor A variável1 é impressa na tela. O código imprime todos os valores do variável vetor. 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 6/12 variável1 recebe todos os valores de variável vetor. 1,5 / 1,5 ptsPergunta 5 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. http://www.facom.ufu.br/~backes/gsi002/Aula10-Ponteiros.pdf 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 7/12 As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 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. Correto!Correto! 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 6 Analise o seguinte código escrito em linguagem C. #include<stdlib.h> #include<stdio.h> #define MAX 1000 int main(){ int *ptvetor, i,vet[MAX]; for(i=0;i<MAX;i++){ vet[i]=i+1; } ptvetor=vet; for(i=0;i<MAX;i++){ 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 8/12 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 expressão ptvetor++; soma uma unidade na variável vetor. A variável *ptvetor é um ponteiro para números inteiros. Correto!Correto! 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 A expressão vet[i]=i+1; consiste em uma aritmética de ponteiros. As expressões printf(“%p - %i\n”,ptvetor, *ptvetor); mostram um mesmo resultado. 1,5 / 1,5 ptsPergunta 7 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. 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 9/12 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. III – A expressão pt1=pt1+9; acessa dez endereços de memória frente. Está(ão) correta(s) a(s) afirmativa(s): III, somente. I, somente. Correto!Correto! 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. I e II, somente. II, somente. II e III, somente. 1,5 / 1,5 ptsPergunta 8 Analise o seguinte trecho de código. 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 10/12 #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: Imprime a posição de memória da estrutura através do comando printf. Aloca dinamicamente uma estrutura. Correto!Correto! 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. Declara uma estrutura de números reais. Imprime uma estrutura através do comando printf. Lê a partir do teclado três números inteiros. 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 11/12 1,5 / 1,5 ptsPergunta 9 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. 12 bytes. Correto!Correto! 64 bytes. 16 bytes. 32 bytes. 1,5 / 1,5 ptsPergunta 10 A implementação abaixo, em linguagem C, faz uso do recurso de alocação dinâmica e retorna valores armazenados e um vetor V. Selecione abaixo qual resultado corresponde ao resultado da codificação. 05/04/2020 Avaliação Online 1: FEV.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/6465/quizzes/10768 12/12 # include <stdio.h> # include <stdlib.h> int main () { int *v,n =5; v = (int *) malloc ( sizeof (int)*n); int i; for (i=0;i<n;i++) v[i] = i*i; for (i=0;i<n;i++) printf ("%d,", v[i]); free (v); return 0; } 1, 1, 1, 1, 1, 0, 1, 4, 9, 16, Correto!Correto! 0, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, Pontuação do teste: 15 de 15
Compartilhar