Questões de Concurso sobre C e C++

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
415 questões encontradas
Questões por página
20
Mais recentes
 

Um dos mais poderosos recursos de reutilização de software do C++ são os templates. Uma de suas funções é a de


A

oferecer um modelo de quais atributos cada classe deve possuir.


B

oferecer um modelo de quais funções cada classe deve possuir.


C

permitir o polimorfismo.


D

permitir que funções idênticas sobre tipos de dados diferentes sejam expressas de maneira mais compacta.


E

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}


A

120.


B

-1.


C

721.


D

121.


E

-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?


A

9‐0x79f6‐0x22f1


B

0x79f6-8-0x22f1


C

0x7a02-8-0x22f1


D

0x2301-8-0x79f2


E

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?


A

10,20,30,40,50


B

1020304050


C

50,40,30,20,10


D

150


E

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.


A

Por padrão, estruturas são passadas por referência.


B

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.


C

Estruturas só podem ser passadas como parâmetro por meio do uso de ponteiros.


D

É necessário o uso da palavra-chave inline na declaração da função que recebe uma estrutura como parâmetro.


E

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:


A

I, apenas


B

I e II, apenas


C

II e III, apenas


D

I e III, apenas


E

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 é


A

16


B

32


C

256


D

272


E

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';


B

a = a + 'a' - 'A';


C

a = - 'a' + 'A';


D

a = 'a' - 'A';


E

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.


Imagem associada para resolução da questão

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á:


A

em uma chamada do comando gcc.


B

em duas chamadas do comando gcc.


C

em três chamadas do comando gcc.


D

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?


A

Shell Sort.


B

Quick Sort.


C

Bubble Sort.


D

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 é:


A

4 6 8


B

6 4 2


C

2 4 6 8


D

4 6 8 10


E

8 6 4 2

Considere o código em Linguagem C a seguir.


#include <stdio.h>

/** A alternativa correta deve substituir este bloco de comentários **/

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 é


A

int operacao(int a, int b, int* c) { *c = a + b; c = c - 1; }


B

int operacao(int a, int b, int& c) { &c = a + b; c = c + 1; }


C

int operacao(int a, int b, int* c) { c = a + b; *c = c - 1; }


D

int operacao(int a, int b, int* c) { &c = a + b; c = c + 1; }


E

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; // O tipo int tem 4 bytes

char ch; // O código ascii do caracter a é 97 e o tipo char tem 1 byte

float f; // O tipo float tem precisão de 6 dígitos decimais

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, é:


A

2 O valor de ch= 97, correspondendo ao caracter: A


B

1 O valor de x= 300 e o valor de ch= 300


C

3 O valor de f= 0.000097


D

4 O valor de f= 98.000000


E

5 O valor de ch= 98, correspondendo ao caracter: b

Na linguagem C++, a linha de código


double * x,y;


declara


A

duas variáveis do tipo double.


B

dois ponteiros para valores do tipo double


C

um ponteiro para um valor do tipo double e uma variável do tipo double.


D

uma variável do tipo double e um ponteiro que aponta para ela.


E

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?


A

50


B

100


C

200


D

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


A

o código não compila no Windows.


B

a execução do código gera uma vulnerabilidade de segurança.


C

para que a linha 05 fosse executada corretamente seria necessário separar 1000 bytes na memória ao invés de 128.


D

a linha 06 imprime 128 na tela.


E

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.


C

Certo


E

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 é:


A

1 2 3 5 7 8 55 77 99 100


B

0


C

7 8 55 1 77 99 5 2 100 3


D

1 7 8 55 77 99 5 2 100 3


E

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.


C

Certo


E

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.


A

O programa não compila.


B

O programa imprime o endereço de a.


C

O programa imprime o endereço de p.


D

O programa imprime o valor "M".


E

O programa imprime o valor "S".

   
Gerar simulado