Baixe o app para aproveitar ainda mais
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
Compartilhar