Prévia do material em texto
Linguagem de Programação Na linguagem C, as funções podem ser invocadas passando parâmetros por valor diretamente ou por meio da referência de forma indireta utilizando ponteiros. Baseado nessa informação, escolha a alternativa que apresenta o resultado da execução bem-sucedida do código em C apresentado a seguir: A 6 Você assinalou essa alternativa (A) B 5 C Erro de execução. D Adiciona 1 ao endereço da variável “num”. E Adiciona 1 ao endereço do ponteiro. Linguagem de Programação Qual das seguintes alternativas apresenta uma situação em que a diretiva #define pode ser preferível à diretiva #include no pré-processador da linguagem C? A Quando se deseja incluir o conteúdo de outro arquivo em um programa. B Quando se deseja declarar uma função que será usada em um programa. C Quando se deseja definir uma constante que será usada em várias partes do programa. Você assinalou essa alternativa (C) D Quando se deseja incluir o código fonte de outro arquivo em um programa. E Quando se deseja incluir uma biblioteca padrão em um programa. Linguagem de Programação As funções são um recurso importante na linguagem C, onde blocos de código executam tarefas específicas e podem ser invocados a partir de outras partes do programa, inclusive com passagem de parâmetros. Ao utilizarmos a passagem por valor, uma cópia do valor original da variável é repassada para o argumento da função. Nesse contexto, qual o resultado da execução bem-sucedida do código apresentado a seguir? A QuestãoExemplo B ExemploQuestão C Questão D Exemplo Você assinalou essa alternativa (D) E Erro de compilação. Linguagem de Programação O processo de compilação em C envolve diversas fases, sendo o pré-processador a primeira etapa nesse processo. Nesse cenário, qual das alternativas a seguir é verdadeira em relação ao pré-processador em linguagem C? A Responsável por transformar o código-fonte em um arquivo executável. B Responsável por detectar e reportar erros de sintaxe no código-fonte. C Responsável por resolver todas as referências a funções e variáveis utilizadas no programa. D Responsável por incluir arquivos de cabeçalho, realizar substituições de macro e eliminar comentários do código-fonte. Você assinalou essa alternativa (D) E Responsável por gerar código de máquina a partir do código-fonte. Linguagem de Programação Uma das características mais poderosas da linguagem de programação C é sua capacidade de gerenciar diretamente a memória do sistema. Ponteiros são uma ferramenta importante que permite aos programadores manipular diretamente a memória, e é essencial entender como trabalhar com ponteiros para escrever código eficiente e robusto em C. Nesse contexto, qual das alternativas a seguir representa uma característica sobre ponteiros? A Tipagem de ponteiros refere-se à capacidade dos ponteiros de apontar para qualquer tipo de dado. B Ponteiros não têm tipagem, eles são simplesmente endereços de memória. C Tipagem de ponteiros se refere ao tipo de dado que o ponteiro pode apontar. Você assinalou essa alternativa (C) D Todos os ponteiros em C têm a mesma tipagem, independentemente do tipo de dado que eles apontam. E Tipagem de ponteiros se refere à habilidade do ponteiro de ser automaticamente liberado da memória quando não é mais necessário. Linguagem de Programação Na linguagem de programação C, existem dois métodos principais para passar parâmetros para uma função: por valor e por referência (indireto). A escolha de qual tipo é mais adequado depende do comportamento esperado da função. Avalie o código C a seguir, assinalando a alternativa que apresenta o resultado correto após a execução bem-sucedida do programa: A 13, 80, 1 B 16, 5, 0 C 13, 5, 2 D 10, 80, 1 E 16, 5, 2 Você assinalou essa alternativa (E) Linguagem de Programação Considerando o processo de pré-processamento de um código desenvolvido em linguagem C, identifique a diretiva de pré-processamento que tem como função incluir o conteúdo de um arquivo no programa em tempo de compilação: A #ifndef B #define C #undef D #include Você assinalou essa alternativa (D) E #ifdef Linguagem de Programação Na linguagem C, as funções podem ser invocadas passando parâmetros por valor diretamente ou por meio da referência de forma indireta utilizando ponteiros. Ao utilizarmos a passagem por valor estamos fazendo uma cópia do valor original da variável para o argumento da função. Enquanto na passagem por referência estamos informando o endereço da variável original. Baseado nessa informação, escolha a alternativa que apresenta o resultado da execução bem-sucedida do código em C apresentado a seguir: A 5, 5, 5, 5. B 5, 5, 3, 2. C 2, 3, 5, 5 Você assinalou essa alternativa (C) D 5, 3, 5, 2. E 2, 3. 2, 3. Linguagem de Programação Considere o seguinte trecho de código em C: Ao final da execução desse trecho de código, qual é o valor armazenado na variável “nro1” e o valor apontado pelo ponteiro “p”, respectivamente? A 30 e 50 B 10 e 20 C 20 e 50 D 50 e 30 Você assinalou essa alternativa (D) E Um valor indefinido. Linguagem de Programação Considere o código desenvolvido em linguagem C apresentado a seguir: Ao final da execução bem-sucedida do código, avalie entre as alternativas disponíveis qual a opção que apresenta os resultados de “b”, “*ptr” e “x”, respectivamente. A b = 5, *ptr = 20 e x = 45 B b = 11, *ptr = 10 e x = 31 C b = 10, *ptr = 19 e x = 48 D b = 11, *ptr = 20 e x = 51 Você assinalou essa alternativa (D) E b = 11, *ptr = 20 e x = 48 Linguagem de Programação O processo de compilação na linguagem C pode ser realizado por meio de linha de comando diretamente no console/terminal. Considerando a linha de comando a seguir, selecione a alternativa que melhor descreve seu objetivo? A O comando compila o programa.c, executa o pré-processamento e gera um arquivo de destino chamado resultado.txt com o código fonte resultante. B O comando executa o pré-processamento do código fonte contido em programa.c e gera o arquivo resultado.txt, contendo as alterações realizadas no pré-processamento. Você assinalou essa alternativa (B) C O comando executa apenas a análise léxica do código fonte contido em programa.c e gera um arquivo de destino chamado resultado.txt com o resultado da análise. D O comando executa apenas a análise sintática do código fonte contido em programa.c e gera um arquivo de destino chamado resultado.txt com o resultado da análise. E O comando executa apenas a análise semântica do código fonte contido em programa.c e gera um arquivo de destino chamado resultado.txt com o resultado da análise. Linguagem de Programação Os ponteiros além de apontarem para áreas de memória, também permitem que possamos realizar operações matemáticas, utilizadas tanto para apontar para outro segmento de memória, como também realizar cálculos sobre o conteúdo apontado pelo ponteiro. Baseado nessa informação avalie as declarações abaixo desenvolvidas em linguagem C: Assinale a alternativa que acessa corretamente o valor 35 presente no vetor “numeros”, por meio do ponteiro. A int elemento = &numeros[6]; B int elemento = *(p + 6); Você assinalou essa alternativa (B) C int elemento = p + 6; D int elemento = &(numeros + 6); E int elemento = &p[6]; Linguagem de Programação A manipulação de múltiplos arquivos é uma abordagem bastante comum em projetos de software maiores e mais complexos, em que é necessário dividir o código em módulos menores e independentes para facilitar a manutenção e a extensão do programa. Além disso, a compilação separada permite que diferentes partes do código sejam trabalhadas em paralelopor diferentes membros da equipe de desenvolvimento, o que pode aumentar a eficiência e a produtividade do projeto. Considerando esse contexto, analise os seguintes códigos em C: Qual é o objetivo do arquivo sum.h nesse exemplo? A Definir a implementação da função sum(). B Incluir o arquivo sum.c no código fonte. C Definir o cabeçalho da função sum(). Você assinalou essa alternativa (C) D Incluir a biblioteca padrão de entrada e saída de dados. E Incluir o arquivo main.c no código fonte. Linguagem de Programação Em programas escritos em linguagem C, é comum o uso de ponteiros e alocação dinâmica de memória para permitir a manipulação de grandes quantidades de dados e a criação de estruturas dinâmicas de dados. No entanto, o uso desses recursos requer atenção especial do programador para evitar problemas de segurança e estabilidade do programa. Nesse sentido, analise as alternativas e assinale qual o resultado apresentado após a execução do código a seguir: A 10 B 20 C 0 D Número indefinido. Você assinalou essa alternativa (D) E O programa não compila. Linguagem de Programação Como em outras linguagens, existem situações que precisamos converter um valor de um tipo de dado para outro. Nesse caso, a linguagem C fornece suporte com funções específicas que realizam tal atividade. Nesse contexto, considere o código C a seguir: Avaliando as alternativas, assinale quais serão os valores apresentados após a sua execução bem-sucedida: A O programa não irá compilar, devido a um erro na declaração de variáveis. B 42 e 42 C 42.000000 e 42.000000 D 0.000000 e 0 E 42.000000 e 42 Você assinalou essa alternativa (E) Linguagem de Programação Ponteiros são uma das características mais poderosas e complexas da linguagem de programação C. Eles permitem que o programador trabalhe com endereços de memória e dados dinâmicos de maneira eficiente e flexível. No entanto, o uso inadequado de ponteiros pode levar a erros críticos, como falhas de segmentação e vazamentos de memória. Nesse sentido, é fundamental compreender bem como os ponteiros funcionam e como utilizá-los corretamente para aproveitar ao máximo seus benefícios e evitar problemas em nossos programas. Nesse contexto, qual das seguintes opções descreve com precisão o que é um ponteiro nulo em linguagem C? A Um ponteiro que aponta para o endereço de memória zero, após ser inicializado com um valor aleatório. B Um ponteiro que foi inicializado, mas não está apontando para nenhum endereço de memória. Você assinalou essa alternativa (B) C Um ponteiro que aponta para um endereço de memória que contém apenas zeros. D Um ponteiro que não pode ser usado para acessar a memória do computador. E Um ponteiro que aponta para o endereço de memória mais alto do espaço de endereçamento do programa.