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
 

Considere o código abaixo escrito em linguagem C:


#include <stdio.h>


int main() {

int A = 1, B = 0, C = 1;

int resultado = (A && B) || C;

printf("%d\n", resultado);

return 0;

}


Que valor será impresso na tela após a execução do programa?


A

Nulo.


B

0.


C

1.


D

2.


E

3.

Observe o seguinte código:


1

#include <iostream>

2

using namespace std;

3

int main()

4

{

5

int estM[]={20,15,10,4,15};

6

int estA[]={12,20,0,6,10};

7

int preco[]={1,3,15,5,4};

8

int k, d;

9

int cont;

10


11

for (k=0;k<5; k++){

12

cont=0;

13

for(d=estA[k];d<estM[k];d++){

14

cont++;

15

}

16

cout<<cont<< " ";

17

}

18


19

return 0;

20

}


A execução deste código C++ imprimirá na tela


A

0 0 0 0 0


B

8 0 10 0 5


C

8 -5 10 -2 5


D

-8 5 -10 2 -5


E

32 35 10 10 25

Examine os programas em PHP, C# e C a seguir:

PHP


<?php

$num = "SoH";

$result - $num + 5,

echo "Result: " . $result;

?>





C#


using System;

namespace Teste {

class Testando {

static void Main(string{} args) {

int num = "SoH";

int result = num + 5;

Console.WriteLine($"Resultado: {r}");

}

}

}

C


#include <stdio.h>

int main() {

int num, result;

num= "SoH";

result = num + 5;

printf("\n Resultado: %d",

result);

return 0;

}


Considerando que os programas serão executados em condições ideais,


A

todos os programas executarão sem erros de compilação.


B

os resultados apresentados pelos programas em C# e em C serão iguais, pois C# é compilada por um compilador escrito em C.


C

todos os programas apresentarão erros, pois não é possível atribuir strings a variáveis numéricas.


D

todos os programas deixarão de apresentar erros, caso seja colocado (int) antes de "SoH".


E

os programas em PHP e em C não apresentarão erros, mesmo sem o uso explícito de cast.

Considere a seguinte função f, programada recursivamente em linguagem C:


int f(int m, int n) {

if (m < n)

return 0;

else

return 1 + f(m - n, n);

}


Qual função matemática de inteiros positivos m e n é implementada por f ?


A

Quociente da divisão de m por n.


B

Resto da divisão de m por n.


C

Multiplicação de m por n.


D

Adição de m com n.


E

Potenciação com base m e expoente n.

Analise o trecho de código abaixo em linguagem de programação C e assinale a alternativa que apresenta corretamente quantas vezes a palavra “FORK” seria impressa durante a execução deste trecho.

#include <stdio.h>

#include <unistd.h>

int main (int argc, char *argv[]) {

fork();

fork();

printf(“FORK”);

return 0;

}


A

2


B

3


C

4


D

5


E

8

Assinale o modo correto para a atribuição de uma string na linguagem C.


A

char xxx[] = "Exemplo de string";


B

set xxx = "Exemplo de string";


C

str xxx[] = "Exemplo de string";


D

string xxx = "Exemplo de string";


E

var xxx = "Exemplo de string";

#include <iostream>

#include <cctype>

int main() {

std::string texto;


std:: cout << “Digite um texto: ”;

std::getline(std::cin, texto);


for (char& c : texto) {

c = std::toupper(c);

}


std::cout << “Resultado: ” << texto << std::endl;


return 0;


}

O programa em C++ acima tem a função de


A

converter caracteres em maiúsculo.


B

converter caracteres em minúsculo.


C

concatenar caracteres.


D

contar a quantidade de caracteres em um texto.


E

remover do texto somente os caracteres maiúsculos.

João pretendia escrever um trecho de código na linguagem C contendo o seguinte loop:

int i;

for (i = 5; i >= 0; i = i - 1) {

printf("Valor: %d\n", i);

}

Entretanto, sem querer, João inverteu a ordem das expressões no comando for, e digitou o código como segue:

int i;

for (i = 5; i = i - 1; i >= 0) {

printf("Valor: %d\n", i);

}

Assinale a lista completa dos valores exibidos nesse trecho pela execução da versão equivocada produzida por João.


A

4, 3, 2, 1


B

4, 3, 2, 1, 0


C

5


D

5, 4, 3, 2, 1


E

5, 4, 3, 2, 1, 0

Analise o código C a seguir.


#include <stdio.h>

int main() {

int myAge = 43;

int* ptr = &myAge;

printf("%d\n", *ptr);

return 0;

}


O valor mais provável a ser exibido pela execução do código acima é:


A

0


B

0x7ffe5367e044


C

43


D

null


E

undefined

Na linguagem de programação C, é possível realizar uma operação com diversas alternativas. Considerando isso, interprete o código abaixo e assinale a alternativa que corresponda à impressão na tela após a execução do código:


int main(void) {

int x, y, z;

x = y = 10;

z= ++x;

x= -x;

y++;

x = x + y - (z- -);

printf("x:%d,y:%d,z:%d", x, y, z);

}



A

x:9, y:10, z:11


B

x:11, y:10, z:11


C

x:-11, y:11, z:10


D

x:-10, y: 10, z: 10


E

x:=-9, y:11, z: 9

Em um loop de repetição , é possível que sua execução seja interrompida sem que as condições de parada sejam atendidas. Considerando a linguagem de programação C, assinale a alternativa correspondente à instrução que tem o objetivo de interromper um laço de repetição, desviando a execução do programa para o comando após o laço.


A


B

continue


C

int


D

char


E

break

Considere o seguinte trecho de código em C, que implementa o algoritmo de busca em um vetor de inteiros:


#include <stdio.h>

int busca(int arr[], int n, int x) {

int i;

for (i = 0; i < n; i++) {

if (arr[i] a == x) {

return i;

}

}

retum-1;

}

int main(){

int arr[] = {5, 10, 15, 20, 25};

intn = sizeof(arr)/sizeof(arr(0]);

intx = 15;

int indice = busca(arr, n, x);

if (indice == -1) {

printf(*%d nao encontrado no array\n", x);

}else {

printf(*%d encontrado no indice %d\n", x, indice);

}

return 0;

}


Qual é a saída esperada para esse programa, e qual é o algoritmo de busca implementado?


A

15 nao encontrado no array, busca binária.


B

15 encontrado no indice 2, busca sequencial.


C

15 encontrado no indice 3, busca sequencial.


D

15 encontrado no indice 2, busca binária.


E

15 encontrado no indice 3, busca binária.

Assinale a alternativa que apresenta corretamente o que será impresso após a execução do trecho abaixo, na linguagem de programação C++.


#include <iostream>

int main (int argc, char *argv[]) {

int myVec[5] = {1, 5, 0, 2, 3};

int* ptr = myVec;

(ptr + 1);

std::cout << *ptr++ << "-" << (*ptr++) << "-" << *ptr << "-" << *(--ptr) << "-" <<

*++ptr;

return 0;

}


A

5 – 6 – 7 – 6 – 7


B

1 – 2 – 3 – 2 – 3


C

5 – 0 – 2 – 0 – 2


D

0 – 2 – 2 – 0 – 2


E

1 – 5 – 0 – 5 – 0

Qual das seguintes afirmações sobre a classe std::unique_ptr, introduzida na versão 11 da linguagem de programação C++, é verdadeira?


A

O usuário é responsável por liberar a memória ocupada por objetos do tipo std::unique_ptr usando o comando delete para evitar um vazamento de memória.


B

Múltiplas cópias do mesmo objeto do tipo std::unique_ptr podem coexistir, o que é chamado de ponteiro compartilhado.


C

Um objeto do tipo std::unique_ptr pode ser nulo, assim como um ponteiro padrão da linguagem.


D

Um objeto do tipo std::unique_ptr não pode apontar para vetores ou listas.


E

Um objeto do tipo std::unique_ptr usa mais memória do que um ponteiro padrão da linguagem, já que precisa armazenar o número de referências ao objeto.

A linguagem C possui um recurso denominado “ponteiro”. Este tipo de recurso funciona como uma variável que aponta para uma posição específica da memória.


Assinale a alternativa que apresenta, corretamente, a declaração de um ponteiro para um inteiro.


A

p = &pointer


B

int #p


C

int *p


D

pointer(int(p))


E

pointer.int = p

Considere o seguinte código na linguagem C:



01 ____ #include <studio.h>

02 ____ #include <stdlib.h>

03

04 ____ void soma _ mais _ um(int *n){

05 ______ *n = *n + 1;

06 ______ printf("Dentro da funcao: x = %d\n",*n);

07 ____ }

08

09 ____ int main(){

10 ______ int x = 5;

11 ______ printf("Antes da funcao: x = %d\n",x);

12 ______ soma _ mais _ um(&x);

13 ______ printf("Depois da funcao: x = %d\n",x);

14 ______ system("pause");

15 ______ return 0;

16 ___ }


Ele imprimirá na tela


A

Antes da funcao: x = 5

Dentro da funcao: x = 5

Depois da funcao: x = null


B

Antes da funcao: x = 5

Depois da funcao: x = 5


C

Antes da funcao: x = 5

Dentro da funcao: x = 6

Depois da funcao: x = 5


D

Antes da funcao: x = 5

Dentro da funcao: x = 5

Depois da funcao: x = 6


E

Antes da funcao: x = 5

Dentro da funcao: x = 6

Depois da funcao: x = 6

“Desenvolver um programa que solicite ao usuário a digitação de um termo qualquer, a fim de que a aplicação realize o cálculo do termo com a lógica da série de Fibonacci.” Para criar um algoritmo escrito na linguagem C++ de forma recursiva, considerando tal condição, observe a imagem a seguir:

Imagem associada para resolução da questão

Sobre o código produzido, analise as afirmativas a seguir.

I. O código não executará, pois serão gerados erros de compilação em decorrência dos erros de sintaxe produzidos no método de recursividade que foi aplicado.

II. Caso os termos informados sejam, respectivamente, 1 e 2, os resultados evidenciados pelo programa serão 0 e 1; o “;” do final da instrução da linha 16 poderá ser removido sem gerar nenhum erro de sintaxe na compilação.

III. Caso os termos informados sejam, respectivamente, 13 e 19, os resultados apresentados pelo programa serão 144 e 2584.

Está correto o que se afirma apenas em


A

I.


B

II.


C

III.


D

I e II.


E

II e III.

Considere que, para melhorar o desempenho de sistemas computacionais, projetistas de hardware decidam aumentar o número de processadores em vez de aumentar a frequência de clock. Dessa forma, surge a necessidade de utilizar softwares que explorem o paralelismo. Um problema típico encontrado no desenvolvimento desse tipo de software é a dependência de dados. Nesse contexto, considere que dois processadores precisem realizar, simultaneamente, o acesso a uma mesma matriz A.


Com base nas informações apresentadas, com relação aos trechos de código em linguagem C apresentados a seguir, assinale a opção que apresenta uma situação de conflito de dados.


A

Processador 1:

int a = &A[0][0];

Processador 2:

int b = &A[0][0];


B

Processador 1:

*A[0][0] = 10;

Processador 2:

*A[0][1] = 20;


C

Processador 1:

*A[0][0] = 10;

Processador 2:

int b = &A[0][0];


D

Processador 1:

int a = &A[0][0];

Processador 2:

*A[0][0] = 20;


E

Processador 1:

*A[0][0] = 10;

Processador 2:

*A[0][0] = 20;

Na linguagem de programação C, o comando _______ permite a criação de estruturas de dados heterogêneas.


Assinale a alternativa que completa, CORRETAMENTE, a lacuna do texto:


A

array


B

object


C

register


D

set


E

struct

Considere o seguinte código em C++, que usa a biblioteca Boost para criar um grafo direcionado com 4 vértices e 4 arestas:


#include <iostream>

#include <boost/graph/adjacency_list.hpp>

int main(){

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS> Graph;

Graph g(4);

boost::add _edge(0, 1, g);

boost::add_edge(1,2,g);

boost::add_edge(2,3,9);

boost::add_edge(3,0,g);

std:cout << "Vértices: "<< boost.:num_vertices(g) << std::endl;

std cout << "Arestas: " << boost::num_edges(g) << std::endl;

return 0;

}


Qual é a saída esperada para esse programa?


A

Vértices: 3, Arestas: 3.


B

Vértices: 3, Arestas: 4.


C

Vértices: 4, Arestas: 3.


D

Vértices: 4, Arestas: 4.


E

Vértices: 5, Arestas: 5.

   
Gerar simulado