Baixe o app para aproveitar ainda mais
Prévia do material em texto
LISTA DE EXERCÍCIOS 04 TEÓRICOS 1) Ano: 2010 / Banca: FCC / Órgão: TRE-AM / Prova: Técnico Judiciário - Programação de Sistemas Na linguagem C++, considere: I. O endereço armazenado em um ponteiro deve ser do mesmo tipo que o ponteiro (ex. um ponteiro para um int não pode armazenar o endereço de um float). II. Exceção à regra apontada em (I) é o ponteiro void. III. Não é possível chamar uma função segundo seu endereço, ainda que por meio de um ponteiro que armazena o endereço de início dessa função. Está correto o que se afirma em a) I, apenas. b) II, apenas. c) I e II, apenas. d) II e III, apenas. e) I, II e III. 2) Ano: 2004Banca: CESPEÓrgão: TRE-ALProva: Analista Judiciário - Tecnologia da Informação A atividade de programação requer conhecimento técnico de diversas formas de algoritmos e estruturas de controle e de dados. Acerca dos elementos técnicos da atividade de programação, julgue os itens a seguir. Um ponteiro definido como um dos elementos de um tipo estruturado de dados pode apontar para uma instância de dados desse mesmo tipo. ( ) Certo ( ) Errado 3) Ano: 2009 / Banca: CESPE / Órgão: TRE-GO / Prova: Técnico Judiciário - Programação de Sistemas Considerando as definições em linguagem C mostradas acima, assinale a opção correta. a) A utilização de (char*) é um cast, que converte um tipo de dados em outro. b) As variáveis px e pc apontam para posições de memória diferentes. c) É correto afirmar que px + 1 e (*pc) + 1 apontam para as mesmas posições de memória. d) Se px é um ponteiro para a variável x de tipo float, a expressão px + 1 se refere ao byte seguinte na memória, a partir do endereço de x. 4) Ano: 2010 / Banca: CESGRANRIO / Órgão: IBGE / Prova: Analista de Sistemas Para os recursos presentes na linguagem de programação C, são feitas as afirmativas abaixo. I - Permite acesso de baixo nível através da introdução de código Assembly no programa C. II - A passagem de parâmetros por referência para funções pode ser simulada através da utilização de ponteiros. III - O tipo de dados typedef são estruturas variáveis que permitem que dados relacionados sejam combinados e manipulados como um todo. Está(ão) correta(s) a(s) afirmativa(s) a) I, apenas. b) II, apenas. c) III, apenas. d) I e II, apenas. e) I, II e III. 5) Ano: 2014 / Banca: UNIRIO / Órgão: UNIRIO / Prova: Analista Tecnologia da Informação - Desenvolvimento de Sistemas Sobre as funções, é CORRETO afirmar que a) na passagem por valor, o parâmetro que vai ser passado na chamada da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a variável correspondente. b) na passagem por referência, o parâmetro que vai ser passado na chamada da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a variável correspondente. c) uma variável é dita global quando a sua passagem no momento da chamada de uma função se dá tanto por valor quanto por referência, enquanto que uma variável é dita local quando esta passagem se dá, apenas, por valor. d) na passagem por valor, o parâmetro passado na chamada da função é o ponteiro para a variável que contém o valor desejado. 6) Ano: 2008 / Banca: ESAF / Órgão: Prefeitura de Natal - RN / Prova: Auditor do Tesouro Municipal - Tecnologia da Informação Analise as seguintes afirmações relacionadas a conceitos básicos sobre Programação: I. Um procedimento é um conjunto de comandos para uma tarefa específica referenciada por um nome no algoritmo principal, retornando um determinado valor no seu próprio nome. II. Podem-se inserir módulos em um algoritmo. Para isso, pode-se utilizar "Procedimentos" ou "Funções". As ações das "Funções" e dos "Procedimentos" são hierarquicamente subordinadas a um módulo principal. III. Cada "Função" ou "Procedimento" pode utilizar constantes ou variáveis do módulo principal ou definir suas próprias constantes ou variáveis. IV. Uma variável global indica o endereço onde um valor é armazenado na memória do computador enquanto um ponteiro representa um valor numérico real. Indique a opção que contenha todas as afirmações verdadeiras. a) I e II. b) II e III. c) III e IV. d) I e III. e) II e IV. 7) Ano: 2006 / Banca: ESAF / Órgão: CGU / Prova: Analista de Finanças e Controle - Tecnologia da Informação Analise as seguintes afirmações relacionadas a conceitos básicos de Programação de Computadores. I. O escopo de uma variável de programa é a faixa de instruções na qual a variável é visível. Uma variável é visível em uma instrução se puder ser referenciada nessa instrução. II. Um registro é um agregado, possivelmente heterogêneo de elementos, cujos elementos individuais são identificados por nomes. III. Um array é um agregado heterogêneo de elementos de dados, cujo elemento individual é identificado por sua posição em relação ao primeiro. IV. Um tipo Ponteiro é aquele em que as variáveis têm uma faixa de valores que consiste em uma string ou coleção de caracteres e um valor especial denominado Null. Indique a opção que contenha todas as afirmações verdadeiras. a) I e II b) II e III c) III e IV d) I e III e) II e IV PRÁTICOS 1) Execute o programa abaixo passo a passo no compilador e registre em papel os endereços alocados para cada variável (inclusive os ponteiros). Observe o que acontece no decorrer do programa e no final. Tente entender o que o programa faz e explique porque acontece o erro de execução ao final. # include <stdio.h> int main () { int x, *p, *q, i, k=0; q = p = &x; for (i=1; i <= 3; i++) { scanf ("%d", p); p++; } p--; while (p >= q) { k = k + *p; p--; } printf ("%d", k); } Inverta a ordem de declaração das variáveis e observe o que acontece. 2) Uma das utilidades de um ponteiro é de permitir a uma subrotina retornar mais de um valor para suas computações (se comunicando com variáveis externas a subrotina). Codifique uma subrotina que receba um número inteiro representando um total de segundos e o endereço para duas variáveis (também inteiras) para guardar a quantida de minutos e de horas. A subrotina deve decompor o número de segundos recebidos em um total de horas e um total de minutos, retornando estes valores através dos endereços de variáveis recebidos como parâmetro. Codifique também uma função main que use a subrotina de conversão. 3) Codifique uma subrotina que receba um vetor de inteiros e o endereço de duas variáveis (também inteiras). O objetivo da subrotina é procurar neste vetor o menor e maior valor e armazená-los nas variáveis apontadas pelos endereços de memória recebidos.
Compartilhar