Baixe o app para aproveitar ainda mais
Prévia do material em texto
GABARITO Página 1 - 06/05/2023 às 16:39 Prova Data de aplicação: 21/04/2023 Curso: Engenharia de Software Disciplina: Linguagem de Programação II Ano: 20231 / Semestre: 3 PROVA 01 Questão 1 O desenvolvimento de software sofreu uma grande crise em 1960, podemos dizer que esta crise ocorreu pela grande demanda na criação de software, já que a tecnologia estava em grande ascenção na epoca. Descreva quais medidas foram tomadas para resolver essa crise. Resposta do aluno: A análise econômica de sistemas de informação (SI), o uso de melhores técnicas, métodos e ferramentas; o investimento do governo e empresas privadas em treinamentos e educação e a mudança de paradigma de desenvolvimento de software. Questão 2 Na programação de computadores existem algumas maneiras de armazenar dados, dentre estas maneiras existe o armazenamendo em arquivos. Descreva quais as vantagens a utilização deste modelo traz em relação a variavéis. Resposta do aluno: Questão 3 Ao utilizarmos um ponteiro como parametro de uma função é correto afirmar que estamos passando: a) parâmetro por referencia (correta) b) variável por referencia c) parâmetro por valor d) variável por valor Questão 4 A imagem abaixo apresenta a declaração de uma variavél e dois ponteiros. Observe que a variavél serve como base para a inicialização dos ponteiros. Após analisarmos este codigo marque a alternativa correta. a) Ao adicionarmos o comando cout<<pontponteiro; irá imprimir o valor 512 (correta) b) Ao adicionarmos o comando cout<<pontponteiro; irá imprimir a posição de memoria da variável inteiro c) Ao adicionarmos o comando cout<<*pontponteiro; irá imprimir a posição de memoria do pontinteiro d) Ao adicionarmos o comando cout<<*pontponteiro; irá retornar um erro Questão 5 É correto afirmar que a modularização de codigo foi um dos grandes fatores para a resolver os problemas da crise de software em 1960 porque: GABARITO Página 2 - 06/05/2023 às 16:39 a) Facilita o desenvolvimento de requisitos e aumenta a qualidade do software (correta) b) Dificulta o desenvolvimento de requisitos e aumenta a qualidade do software c) Facilita o desenvolvimento de requisitos diminuindo a qualidade do software d) Facilita o desenvolvimento de requisitos e aumenta a velocidade do software Questão 6 Ao criarmos modulos de codigos na programação estrutura em C++ é possivel passar variavéis para dentro desses modulos. Como é chamada essa tecnica de passagem de variavéis para esses modulos. a) valores b) dados c) globais d) parâmetros (correta) Questão 7 Após analisarmos o codigo contido na imagem é correto afirmar que: a) Na função main existem uma chamada de função que retornará o valor 3628800 (correta) b) Na função main existem uma chamada de função que retornará o valor 3428800 c) Na função main existem uma chamada de procedimento que retornará o valor 3628800 d) Na função main existem uma chamada de procedimento que retornará o valor 3428800 Questão 8 Quanto a biblioteca fstream é correto afirmar que: a) Possui objetos de manipulação de stream. (correta) b) Possui bibliotecas de manipulação de string c) Possui bibliotecas de manipulação de fstream. d) Essa biblioteca não existe Questão 9 Considere que o codigo na imagem tenha como entrada pelo usuario os seguintes valores a=5 e b=4. Qual será o valor respectivo da variavel (a) e (b) ao final da execução do codigo. GABARITO Página 3 - 06/05/2023 às 16:39 a) 5 e 4 b) 4 e 5 (correta) c) 4 e 4 d) 5 e 5 Questão 10 Considere o seguinte codigo #include<iostream> using namespace std; int main(){ int lista[3]; int *copia; lista[0]=1; lista[1]=2; lista[2]=3; copia= new int[3]; copia=lista; cout<<lista[1]<<","; cout<<copia[1]<<","; lista[1]=8; cout<<lista[1]<<","; cout<<copia[1]; return 0; } Quais valores o programa imprimirá a) 2,2,8,2 b) 2,2,8,8 (correta) c) 2,2,2,8 d) 1,1,2,8 PROVA 02 Questão 1 GABARITO Página 4 - 06/05/2023 às 16:39 O método misterio(&i,&j) tem um problema. Qual é? Antes da chamada do método, temos a seguinte linha de comando: int i=6, j=10; void misterio(int *p, int *q){ int *temp; *temp = *p; *p = *q; *q = *temp; } Resposta do aluno: Questão 2 Descreva qual a diferença entre alocação dinamica e alocação estatica. Resposta do aluno: Alocação Estática: Decisão tomada quando o programa é compilado. Quando o programa é executado o Sistema operacional o lê e cria um processo, sendo o programa uma noção estática e o processo o programa em execução, que é criado em armazenamento primário e após isso recebe um espaço na memória. Já na Alocação Dinâmica: Decisão é adiada até a execução. Os objetos alocados dinamicamente podem ser criados e liberados a qualquer momento, em qualquer ordem, o que difere dos objetos locais das funções, que são criados e destruídos em uma ordem específica. Questão 3 A imagem apresenta um codigo que contem uma definição de estrutura e a criação de uma uma instancia dela na função main. Ao executar este codigo é correto afirmar que a) retornará um erro b) não imprimirá nada (correta) c) imprimirá o valor 10 d) imprimirá dados Questão 4 A linguagem C++ reescreveu varias bibliotecas de sua antecessora e também criou novas bibliotecas para linguagem que mudaram a maneira de executar determinadas tarefas. Portanto quais as bibliocas citadas abaixo não foi reescrita pela linguagem C++ a) math.h (correta) b) ctime GABARITO Página 5 - 06/05/2023 às 16:39 c) iostream d) cstring Questão 5 Ao utilizarmos o operador new em um ponteiro é possivel afirmar que a) Estamos recebendo uma posição de memoria estática b) Estamos alocando uma nova posição de memoria ao ponteiro (correta) c) Estamos recebendo uma posição de memoria já definida d) Estamos alocando uma nova posição de memoria já existente ao ponteiro Questão 6 Assinale a alternativa incorreta a) a palavra typedef é uma palavra reservada para criação de struct (correta) b) a palavra typedef é uma palavra reservada para criação de atalhos a tipos existentes c) a palavra typedef é uma palavra reservada que substitui uma struct d) É possível utilizar a palavra reservada typedef para nomear novos tipos de dados inteiros Questão 7 Na programação orientada a objetos, há um mecanismo que permite definir modificadores de acesso. Quando se define um atributo de uma classe com o modificador de acesso privado, significa que a) o atributo é acessível somente aos métodos da classe (correta) b) o acesso à classe é privado. c) o atributo é acessível a um programa que tenha uma referência a um objeto da classe. d) o atributo é acessível a todos aos métodos do programa Questão 8 A alocação de memória está dividida em partes. Em qual parte a decisão a alocação de uma variável é tomada quando o programa é compilado? a) Alocação Estática (correta) b) Alocação Dinâmica c) Alocação Local; d) Alocação Híbrida Questão 9 Sobre programação estruturada e programação orientada a objetos, é INCORRETO afi rmar que: a) Existem vários paradigmas de programação, dentre eles o estruturado e o orientado a objetos. b) No paradigma de programação estruturado, qualquer problema pode ser dividido em problemas menores, chamados de funções. c) paradigma orientado a objetos entende o problema como um conjunto de objetos interagindo por meio de troca de mensagens. d) A linguagem de programação C++ é um exemplo de linguagem orientada a objetos, que não permite a utilização do paradigma estruturado na solução de um problema. (correta) GABARITO Página 6 - 06/05/2023 às 16:39 Questão 10 Na linguagem C++ existe um operador unário responsavel por resolver escopo, ou seja quando utilizamos comando em outro espaço de nomes ou varivareis globais com mesmo nome de variaveis locais precisamos utilizar o operador. Portanto assinale a opção que representa corretamente este operador a) operador :: (correta) b) operador : c) operador << d) operador >>
Compartilhar