Baixe o app para aproveitar ainda mais
Prévia do material em texto
19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 1/13 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 MAIS RECENTE Tentativa 1 12 minutos 13,5 de 15 As respostas corretas estarão disponíveis em 21 set em 0:00. Pontuação desta tentativa: 13,5 de 15 Enviado 19 set em 22:37 Esta tentativa levou 12 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”. Fazer o teste novamente 1,5 / 1,5 ptsPergunta 1 https://newtonpaiva.instructure.com/courses/8900/quizzes/17712/history?version=1 https://newtonpaiva.instructure.com/courses/8900/quizzes/17712/take?user_id=14501 Rectangle Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 2/13 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: Fonte: Adaptado de CUNHA, Claudia, 2018. [2][3] [4][2] [3][4] [4][3] [3][2] Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 3/13 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 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. 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. A variável Matriz possui 100 elementos. O valor armazenado em Matriz[0][0] é igual a 0. Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 4/13 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 3 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? Maior que 0. Igual a -1. Menor que 0. Igual a 1. Igual a 0. Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 5/13 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. 1,5 / 1,5 ptsPergunta 4 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. Ana. Maria. Maria Ana. Ana Ana. Ana Maria. Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 6/13 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 5 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 irá armazenar o valor inteiro 97. Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 7/13 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 A expressão valor1=47;faz referência ao endereço de memória da variável valor. A expressão pt1=&valor1 atribui o valor contido em valor1 a pt1. A variável resultado será um ponteiro nulo. A variável resultado apresentará erro ao tentar somar os ponteiros. 1,5 / 1,5 ptsPergunta 6 Analise o código a seguir. #include<stdlib.h> #include<stdio.h> #include<locale.h> int main(){ int *pt1, **pt2, valor; setlocale(LC_ALL, “Portuguese”); pt1=&valor; valor=100; pt2=&pt1; printf(“%p\n”,pt2); printf(“%p\n”,*pt2); Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 8/13 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): I, somente. Apenas a afirmação I está correta, a afirmaçãoII 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. II, somente. II eIII, somente. I e II, somente. III, somente. 1,5 / 1,5 ptsPergunta 7 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 Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 9/13 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: II e III, apenas. II, apenas. I, II e III. I e III, apenas. I, 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 8 Analise o seguinte código computacional. # include <stdio.h> # include <stdlib.h> Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 10/13 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[13]=170. Ao final de sua execução v[20]=404 Ao final de sua execução v[12]=144. Ao final de sua execução v[9]=83 Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 11/13 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. 1,5 / 1,5 ptsPergunta 9 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 - 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): Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 12/13 II, somente. I e III, somente. I e II, somente. II e III, somente. Apenas as afirmações IIe III estão corretas, a afirmação I não está correta, pois a função realloc apenas expande o tamanho da memoria previamente alocada , não sobrescrevendo esta. I, somente. 0 / 1,5 ptsPergunta 10IncorretaIncorreta 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; } Rectangle 19/09/2020 Avaliação Online 1: AGO.TADS.2 - Linguagens de Programação https://newtonpaiva.instructure.com/courses/8900/quizzes/17712 13/13 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): III, somente. II, somente. II e III, somente. I, somente. I e II, somente. Pontuação do teste: 13,5 de 15 Rectangle
Compartilhar