

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Um dos mais poderosos recursos de reutilização de software do C++ são os templates. Uma de suas funções é a de
oferecer um modelo de quais atributos cada classe deve possuir.
oferecer um modelo de quais funções cada classe deve possuir.
permitir o polimorfismo.
permitir que funções idênticas sobre tipos de dados diferentes sejam expressas de maneira mais compacta.
mostrar os parâmetros de uma função que devem ser sobrescritos.
Considere o seguinte programa escrito em linguagem C e assinale o valor que será impresso após a execução.
1 #include <stdio.h>
2
3 int calcula(int n)
4{
5 -if(n == 1} {
6 --return -n;
7 -} else {
8 --return n * calcula(n - 1);
9 }
10}
11 lnt maln()
12 {
13 -int resultado = calcula(6);
14 -resultado++;
15 prlntf(n%d", resultado};
16 -returno;
17}
120.
-1.
721.
121.
-719.
Admita o trecho de código a seguir, escrito na linguagem de programação C.
#include <stdio.h>
int main() {
int *p;
int array[] = {4, 12, 0, 9, 8, 3};
p = array;
p += 4;
printf("%p-", p);
printf("%d-", *p);
printf("%p", &p);
return 0;
}
Assumindo que o tipo int ocupa 32 bits, que o endereço da variável p é 0x22f1 e que o endereço de array[0] é 0x79f2, qual será a saída apresentada na tela após a execução desse código?
9‐0x79f6‐0x22f1
0x79f6-8-0x22f1
0x7a02-8-0x22f1
0x2301-8-0x79f2
8-0x79f2-0x2301
Avalie o código-fonte escrito em linguagem C.
1 #include <stdio.h>
2 void foo(int *V, int N);
3 ____ int 1, continua, aux, fim = N;
4 ____ do {
5 ______ continua = 0;
6 ______ for (i=0; i < fim-1; i++){
7 __________ if (V[1] > V[1+1]);
8 ______________ aux = V[1];
9 ______________ v[1] = V[1+1];
10 ______________ V[i+1] = aux;
11 ______________ continua = i;
12 __________ }
13 ______ }
14 ______ fim--;
15 ____ } while (continua != 0);
16 }
17
18 int main()
19 {
20 ____ int bar[5] = {10, 20, 30, 40, 50};
21 ____ int N = 5;
22 ____ foo(bar, N);
23 ____ for (int i = 0, i <N; i++) {
24 ______ printf("%d”,bar[i]);
25 ____ }
26 ____ return 0;
27 }
Após a sua compilação e execução, qual é o resultado apresentado em tela?
10,20,30,40,50
1020304050
50,40,30,20,10
150
0
Na linguagem C++, estruturas (definidas pela palavra-chave struct) podem ser passadas como parâmetros em chamadas de funções. Nesse contexto, assinale a alternativa correta.
Por padrão, estruturas são passadas por referência.
Passar estruturas por referência é mais eficiente que passá-las por valor, uma vez que a passagem por valor requer que a estrutura inteira seja copiada.
Estruturas só podem ser passadas como parâmetro por meio do uso de ponteiros.
É necessário o uso da palavra-chave inline na declaração da função que recebe uma estrutura como parâmetro.
Apenas funções do tipo void podem receber estruturas como parâmetros.
Considere as seguintes afirmações acerca das linguagens de programação JAVA, Python e C++.
I. C++ é uma linguagem de programação compilada que inclui suporte tanto para o paradigma imperativo quanto de programação genérica;
II. Python é uma linguagem de programação que suporta o paradigma de orientação a objetos, e que possui como característica tipagem de dados forte e dinâmica;
III. A linguagem de programação JAVA não foi projetada para o ambiente de computação distribuída, como a Internet, por não possuir recursos de manipulação do protocolo TCP/IP;
Assinale a opção que contém as afirmações corretas:
I, apenas
I e II, apenas
II e III, apenas
I e III, apenas
I, II e III
Considere o programa a seguir escrito em linguagem C.
#include <stdio.h>
int TAM(int n) {
int x;
if (n == 1) {
return(1 + n);
}
x = TAM(n/2) + TAM(n/2);
return(x);
}
int main() {
int n = 16;
printf("%d ", TAM(n));
}
Após a execução do programa, o resultado é
16
32
256
272
1.024
O Código Padrão Americano para o Intercâmbio de Informação, ou tabela ASCII (de American Standard Code for Information Interchange), é o código utilizado para representar texto em computadores, equipamentos de comunicação e outros dispositivos que trabalham com texto.
Sabendo-se que a linguagem de programação C utiliza esta tabela e que o alfabeto maiúsculo aparece numericamente antes do minúsculo, para se transformar um caracter do alfabeto minúsculo, armazenado em uma variável char a, deve-se executar o seguinte comando:
a = a - 'a' + 'A';
a = a + 'a' - 'A';
a = - 'a' + 'A';
a = 'a' - 'A';
a = a.toUpperCase();
A ferramenta make nos sistemas operacionais baseados em Linux é muito útil na construção de projetos de software em linguagem C, que dispõe de uma quantidade considerável de arquivos fonte, com interdependência entre eles. Considere um projeto hipotético chamado helloworld, que tem o arquivo Makefile a seguir.

Considere que, com o projeto já atualizado e compilado, o desenvolvedor faça um ajuste no arquivo de header util.h. A posterior chamada ao comando make resultará:
em uma chamada do comando gcc.
em duas chamadas do comando gcc.
em três chamadas do comando gcc.
em 4 chamadas do comando gcc.
A seguir, apresenta-se um procedimento escrito na linguagem C que corresponde a um método de ordenação.
void Sort (int arr [ ], int size {
int i, j, key;
for ( i = 1; i < size; i ++) {
key = arr [ i ] ;
j = i - 1
while ( j >= 0 && arr [ j ] > key) {
arr [ j + 1 ] = arr [ j ] ;
j = j - 1
}
arr [ j + 1 ] = key
}
}
Qual é o método de ordenação implementado?
Shell Sort.
Quick Sort.
Bubble Sort.
Insertion Sort.
Considere o seguinte programa na linguagem C++:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v;
for(int i=0;i<=5;i++) {
v.push_back(i*2);
}
v.erase(v.begin());
v.erase(v.begin());
for(auto i=v.begin();i!=v.end();i++) {
cout << *i << " ";
}
}
A saída produzida por sua execução é:
4 6 8
6 4 2
2 4 6 8
4 6 8 10
8 6 4 2
Considere o código em Linguagem C a seguir.
#include <stdio.h>
/
int main() {
int a = 3, b = 4, c;
operacao(a, b, &c);
printf("%d", c);
}
Com base nas informações dadas, o código que vai substituir o bloco de comentário e permitirá executar o programa sem erros e com a saída no console com o valor 7 é
int operacao(int a, int b, int* c) { *c = a + b; c = c - 1; }
int operacao(int a, int b, int& c) { &c = a + b; c = c + 1; }
int operacao(int a, int b, int* c) { c = a + b; *c = c - 1; }
int operacao(int a, int b, int* c) { &c = a + b; c = c + 1; }
int operacao(int a, int b, int* c) { *c = a + b; *c = *c + 1; }
Considere o código em C abaixo, de um programa que não apresenta erros.
#include <stdio.h>
int main(){
int x; /
char ch; /
float f; /
x=300;
ch = x;
1 printf("O valor de x= %d e o valor de ch= %d\n", ch);
ch = 'a';
f = ch;
2 printf("O valor de ch= %d, correspondendo ao caracter: %c\n", ch,ch);
3 printf("O valor de f= %f\n", f);
f = 98.123123;
ch = f;
4 printf("O valor de f= %f\n", f);
5 printf("O valor de ch= %d, correspondendo ao caracter: %c\n", ch,ch);
return 0;
}
Considere que o programa foi executado em condições ideais e apresentou na tela as 5 impressões relativas aos comandos printf. Considere, ainda, que os números de 1 a 5, à esquerda, não fazem parte do código e indicam a ordem dos comandos de impressão. A alternativa que traz uma impressão correta, correspondente ao comando de impressão indicado, é:
2 O valor de ch= 97, correspondendo ao caracter: A
1 O valor de x= 300 e o valor de ch= 300
3 O valor de f= 0.000097
4 O valor de f= 98.000000
5 O valor de ch= 98, correspondendo ao caracter: b
Na linguagem C++, a linha de código
double * x,y;
declara
duas variáveis do tipo double.
dois ponteiros para valores do tipo double
um ponteiro para um valor do tipo double e uma variável do tipo double.
uma variável do tipo double e um ponteiro que aponta para ela.
um ponteiro para uma função do tipo double que recebe dois parâmetros também do tipo double.
seguinte notícia foi publicada na coluna “Fala, leitor!” no site do jornal A Gazeta:
Fala, leitor!
Castigo “à moda antiga” divide opiniões de leitores
Homem obrigou filho que mentiu sobre tarefas de casa a escrever 200 vezes a frase “não devo mentir para meu pai” em um caderno. Assunto viralizou nas redes sociais (Fonte: https://www. agazeta.com.br/fala-leitor/castigo-a-moda-antiga-divide-opinioes-de-leitores-0218)
...
Admitindo uma situação hipotética na qual o filho fosse um aficionado por informática e soubesse programar em linguagem C. Ao receber essa punição, ele se empenhou em escrever um algoritmo que fazia a leitura de um número N, e, logo a seguir, imprimia a mensagem “não devo mentir para meu pai” várias vezes na tela do computador. Ao término da programação do algoritmo, foi desenvolvido o seguinte código:
#include <stdio.h>
#include <stdlib.h>
int numeroN = 0 ;
int main ( )
{
Printf ( ''Tarefa de casa'') ;
printf ( ''\nEntre com o numero N'') ;
scanf ( ''%lld'',&numeroN) ;
printf ( ''numeroN: %d\n'', numeroN);
printf ( ''\n '') ;
for (int i = 0; i < numeroN; i ++)
{
printf ('' não devo mentir para meu pai
i ++;
}
}
Se ao executar o algoritmo o filho digitar como N o valor 200, quantas mensagens serão exibidas na tela do computador?
50
100
200
300
Considere o seguinte código em linguagem de programação C:
01 - int main(){
02 - ___ int *A = (int *) malloc (128);
03 - ___ int variavel = 1000;
04 - ___ free (A);
05 - ___ A[0] = variavel;
06 - ___ printf("%d\n",A[0]);
07 - }
É correto afirmar que
o código não compila no Windows.
a execução do código gera uma vulnerabilidade de segurança.
para que a linha 05 fosse executada corretamente seria necessário separar 1000 bytes na memória ao invés de 128.
a linha 06 imprime 128 na tela.
a função free() só pode ser utilizada no LINUX.
Na linguagem de programação C++, com a finalidade de evitar loops, a diretiva #include é substituída pelo conteúdo de um arquivo que é indicado sempre após o programa ser compilado.
Certo
Errado
Considere o seguinte programa escrito na linguagem C:
void f(int num[], int tam) {
int i, j, min, aux;
for (i = 0; i < (tam-1); i++)
{
min = i;
for (j = (i+1); j < tam; j++) {
if(num{j} < num[min])
min = j;
}
if (i !=min) {
aux = num{i};
num[i] = num[min];
num[min] = aux;
}
}
}
int main () {
int v [10]={55, 7, 8, 1, 77, 99, 5, 2, 100, 3};
f(v,3);
for(int i=0;i<10;i++)
printf('%d ",v[i]);
return 0;
}
Ao executar esse programa, a saída impressa na tela é:
1 2 3 5 7 8 55 77 99 100
0
7 8 55 1 77 99 5 2 100 3
1 7 8 55 77 99 5 2 100 3
55 7 8 1 77 99 5 2 100 3
Na linguagem de programação C++, uma função, ao ser nomeada, não poderá receber o nome main, tendo em vista que main é reservado para nomear a função que inicia a execução do programa.
Certo
Errado
Considere o seguinte programa escrito em linguagem C:
1 #include <stdio.h>
2
3 lnt maln()
4{
5 char a[4] = "UFMS";
6 char *p;
7
8 p = a;
9 p++;
10 printf("%c", *(p + 2));
11
12 return 0;
13}
Assinale a alternativa correta.
O programa não compila.
O programa imprime o endereço de a.
O programa imprime o endereço de p.
O programa imprime o valor "M".
O programa imprime o valor "S".