Teste Simulado de Programação C
Esta seção apresenta vários conjuntos de testes de simulação relacionados a C Programming Framework. Você pode baixar esses testes de simulação de amostra em sua máquina local e resolvê-los offline de acordo com sua conveniência. Cada teste simulado é fornecido com uma chave de teste simulado para permitir que você verifique a pontuação final e classifique você mesmo.
Teste Simulado de Programação C I
Q 1 - Qual é a saída do seguinte trecho de código?
#include<stdio.h>
main()
{
int const a = 5;
a++;
printf(“%d”,a);
}
Resposta: D
Explicação
Erro de compilação - a variável constante não pode ser modificada.
main()
{
int const a = 5;
a++;
printf(“%d”,a);
}
Q 2 - Qual é a saída do seguinte trecho de código?
#include<stdio.h>
main()
{
const int a = 5;
a++;
printf("%d", a);
}
Resposta: D
Explicação
Erro de compilação - a variável constante não pode ser modificada.
main()
{
const int a = 5;
a++;
printf("%d", a);
}
Q 3 - Qual é a saída do snippet de código abaixo?
#include<stdio.h>
main()
{
char s[]="hello", t[]="hello";
if(s==t){
printf("eqaul strings");
}
}
Resposta: C
Explicação
Sem saída, pois estamos comparando os dois endereços de base e eles não são iguais.
Q 4 - Qual é a saída do snippet de código abaixo?
#include<stdio.h>
main()
{
int a = 5, b = 3, c = 4;
printf("a = %d, b = %d\n", a, b, c);
}
Resposta: A
Explicação
a = 5, b = 3, pois existem apenas dois especificadores de formato para impressão.
Q 5 - Qual é a saída do trecho de código abaixo?
#include<stdio.h>
main()
{
int a = 1;
float b = 1.3;
double c;
c = a + b;
printf("%.2lf", c);
}
Resposta: A
Explicação
2,30, a adição é válida e após decimal com é especificado para 2 casas.
Q 6 - Qual é a saída do programa a seguir?
#include<stdio.h>
main()
{
enum { india, is=7, GREAT };
printf("%d %d", india, GREAT);
}
Resposta: C
Explicação
0 8, enums fornece a sequência começando com 0. Se atribuída com um valor, a sequência continua a partir do valor atribuído.
Q 7 - Qual é a saída do seguinte trecho de código?
#include<stdio.h>
main()
{
char c = 'A'+255;
printf("%c", c);
}
Resposta: A
Explicação
A, o intervalo de valores ASCII para os caracteres ASCII é 0-255. Portanto, a operação de adição circula de volta para 'A'
Q 8 - Qual é a saída do seguinte trecho de código?
#include<stdio.h>
main()
{
short unsigned int i = 0;
printf("%u\n", i--);
}
Resposta: A
Explicação
0, com o valor do operador pós-decremento da variável será considerado como o valor da expressão e posteriormente será diminuído.
Q 9 - Qual é a saída do trecho de código abaixo?
#include<stdio.h>
main()
{
unsigned x = 5, y=&x, *p = y+0;
printf("%u",*p);
}
Resposta: D
Explicação
5, já que p contém o endereço de x que é y + 0
Q 10 - Qual é o seu comentário sobre a declaração C abaixo?
signed int *p=(int*)malloc(sizeof(unsigned int));
A - Tipo de fundição impróprio
B - Geraria erro de tempo de execução
C - A memória será alocada, mas não pode conter um valor interno na memória
Resposta: D
Explicação
Opção (d), como o tamanho de int e unsigned é o mesmo, não há problema em alocar memória.
Q 11 - Qual é a saída do seguinte trecho de código?
#include<stdio.h>
main()
{
int x = 5;
if(x==5)
{
if(x==5) break;
printf("Hello");
}
printf("Hi");
}
Resposta: A
Explicação
erro de compilação, a quebra de palavra-chave pode aparecer apenas dentro da instrução loop / switch.
Q 12 - Qual é a saída do seguinte trecho de código?
#include<stdio.h>
main()
{
int x = 5;
if(x=5)
{
if(x=5) break;
printf("Hello");
}
printf("Hi");
}
Resposta: A
Explicação
erro de compilação, a quebra de palavra-chave pode aparecer apenas dentro da instrução loop / switch.
Q 13 - Qual é a saída do seguinte trecho de código?
#include<stdio.h>
main()
{
int x = 5;
if(x=5)
{
if(x=5) printf("Hello");
}
printf("Hi");
}
Resposta: A
Explicação
HelloHi, ambas as expressões da instrução if avaliadas como verdadeiras.
Q 14 - Qual é a saída do trecho de código abaixo?
#include<stdio.h>
main()
{
for(;;)printf("Hello");
}
Resposta: A
Explicação
loop infinito, com a segunda expressão de 'para' ausente, é considerado verdadeiro por padrão.
Q 15 - Qual é a saída do snippet de código abaixo?
#include<stdio.h>
main()
{
for()printf("Hello");
}
Resposta: D
Explicação
Erro do compilador, ponto e vírgula precisa aparecer, embora as expressões sejam opcionais para o loop 'for'.
Q 16 - Qual é a saída do trecho de código abaixo?
#include<stdio.h>
main()
{
for(1;2;3)
printf("Hello");
}
Resposta: A
Explicação
loop infinito, como a segunda expressão é diferente de 0, portanto, a condição é sempre verdadeira.
Resposta: D
Explicação
-2, o elogio de um de 1 é 1110 (binário) que é equivalente ao elogio de 2 de dois, ou seja, -2.
Q 18 - Qual é o resultado do seguinte programa?
#include<stdio.h>
void f()
{
static int i;
++i;
printf("%d", i);
}
main()
{
f();
f();
f();
}
Resposta: D
Explicação
1 2 3, Uma variável local estática retém seu valor entre as chamadas de função e o valor padrão é 0.
Q 19 - Qual é a saída do seguinte trecho de código?
#include<stdio.h>
main()
{
int *p = 15;
printf("%d",*p);
}
Resposta: C
Explicação
Erro de tempo de execução, como a variável de ponteiro não está mantendo o endereço adequado, escrever / ler os dados da mesma gera erro de tempo de execução.
Q 20 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
register int x = 5;
int *p;
p=&x;
x++;
printf("%d",*p);
}
Resposta: A
Explicação
Erro de compilação, não podemos obter o endereço de uma variável de registro.
Q 21 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int x = 65, *p = &x;
void *q=p;
char *r=q;
printf("%c",*r);
}
Resposta: B
Explicação
Um ponteiro void é um ponteiro genérico e pode conter o endereço de qualquer variável. O caractere ASCII para o valor 65 é 'A'
Q 22 - Qual é o resultado do seguinte programa?
#include<stdio.h>
void f()
{
printf(“Hello\n”);
}
main()
{
;
}
B - Erro, pois a função não é chamada.
Resposta: A
Explicação
Nenhuma saída, além da opção (a), o resto dos comentários contra as opções são inválidos.
Q 23 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
printf("\");
}
Resposta: D
Explicação
Erro de compilação. A string de formato de printf não foi encerrada.
Q 24 - Qual é o resultado do seguinte programa?
#include<stdio.h>
{
int x = 1;
switch(x)
{
default: printf("Hello");
case 1: printf("hi"); break;
}
}
Resposta: B
Explicação
Olá, o controle atinge o caso padrão após comparar o resto das constantes de caso.
Q 25 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
struct { int x;} var = {5}, *p = &var;
printf("%d %d %d",var.x,p->x,(*p).x);
}
Resposta: A
Explicação
5 5 5, as duas maneiras possíveis de acessar os elementos da estrutura usando um ponteiro é usando -> (operador de seta) OR *.
Q 26 - Qual é o resultado do seguinte programa?
#include<stdio.h>
void swap(int m, int n)
{
int x = m;
m = n;
n = x;
}
main()
{
int x=5, y=3;
swap(x,y);
printf("%d %d", x, y);
}
Resposta: B
Explicação
5 3, o mecanismo de chamada por valor não pode alterar os argumentos reais.
#include <stdio.h>
void swap(int m, int n)
{
int x = m;
m = n;
n = x;
}
main()
{
int x=5, y=3;
swap(x,y);
printf("%d %d", x, y);
}
Q 27 - O que será impresso para a declaração abaixo?
#include<stdio.h>
main()
{
printf("%d",strcmp("strcmp()","strcmp()"));
}
Resposta: A
Explicação
0, strcmp retorna 0 se ambas as strings forem iguais
P 28 - O que o programa a seguir está fazendo?
#include<stdio.h>
main()
{
FILE *stream=fopen("a.txt",'r');
}
A - Tentando abrir “a.txt” no modo de leitura
B - Tentando abrir “a.txt” no modo de escrita.
Resposta: D
Explicação
Erro de compilação, o segundo argumento para fopen é inválido, deve ser uma string.
Q 29 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int r, x = 2;
float y = 5;
r = y%x;
printf("%d", r);
}
Resposta: D
Explicação
Erro de compilação, é inválido que qualquer um dos operandos para o operador de módulo (%) seja um número real.
Q 30 - Qual operador é utilizado para continuar a definição da macro na próxima linha?
Resposta: D
Explicação
\, os dois primeiros são operadores stringize e token pasteing, respectivamente. Não existe tal operador chamado $.
Q 31 - Qual é o tamanho da seguinte definição de sindicato?
#include<stdio.h>
union abc {
char a,b,c,d,e,f,g,h;
int i;
}abc;
main()
{
printf( "%d", sizeof( abc ));
}
Resposta: C
Explicação
o tamanho da união é o maior tamanho de elemento dele. Todos os elementos do sindicato compartilham uma memória comum.
Resposta: D
Explicação
O tamanho de 'int' depende do compilador, ou seja, se é de 16 ou 32 bits.
Q 33 - O nome do tipo / palavra reservada 'curta' é ___
Resposta: D
Explicação
short é usado como uma alternativa de short int.
Q 34 - Qual é o valor de 'y' para o seguinte trecho de código?
#include<stdio.h>
main()
{
int x = 1;
float y = x>>2;
printf( "%f", y );
}
Resposta: C
Explicação
0, os bits de dados são perdidos para a operação de deslocamento acima, portanto, o valor é 0.
Q 35 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
float t = 2;
switch(t)
{
case 2: printf("Hi");
default: printf("Hello");
}
}
Resposta: D
Explicação
Erro, a expressão do switch não pode ser um valor flutuante.
Q 36 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int i = 1;
while(++i <= 5)
printf("%d ",i++);
}
Resposta: B
Explicação
2 4, em while primeiro incrementado e depois comparado e em printf impresso primeiro e incrementado depois
Q 37 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int i = 1;
while( i++<=5 )
printf("%d ",i++);
}
Resposta: C
Explicação
2 4 6, em while primeiro comparado e depois incrementado e em printf impresso primeiro e incrementado depois.
Q 38 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int i = 1;
while(i++<=5);
printf("%d ",i++);
}
Resposta: B
Explicação
6, há uma declaração vazia após 'enquanto'.
Q 39 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int x = 1;
do
printf("%d ", x);
while(x++<=1);
}
Resposta: B
Explicação
1 2, do..while é um loop de controle de entrada. Como a expressão x ++ é pós-forma, o loop também continua pela segunda vez.
Q 40 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int a[] = {1,2}, *p = a;
printf("%d", p[1]);
}
Resposta: B
Explicação
2, como 'p' contém o endereço de base, então podemos acessar o array usando 'p' assim como com 'a'
Q 41 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int a[3] = {2,1};
printf("%d", a[a[1]]);
}
Resposta: B
Explicação
1, A indireção interna é avaliada como 1 e o valor no índice 1 para a indireção externa é 1.
Q 42 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int a[3] = {2,,1};
printf("%d", a[a[0]]);
}
Resposta: D
Explicação
Erro de compilação, sintaxe inválida ao inicializar a matriz.
Q 43 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int a[] = {2,1};
printf("%d", *a);
}
Resposta: C
Explicação
2, como 'a' se refere ao endereço de base.
Q 44 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int i = 1;
Charminar:
printf("%d ",i++);
if(i==3) break;
if(i<=5) goto Charminar;
}
Resposta: D
Explicação
Erro de compilação, lugar errado para o 'intervalo' aparecer.
Q 45 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
int i = 13, j = 60;
i ^= j;
j ^= i;
i ^= j;
printf("%d %d", i, j);
}
Resposta: B
Explicação
60 13, sua troca.
Q 46 - Qual é o resultado do seguinte programa?
#include<stdio.h>
main()
{
union abc {
int x;
char ch;
}var;
var.ch = 'A';
printf("%d", var.x);
}
Resposta: C
Explicação
65, como as variáveis de união compartilham memória comum para todos os seus elementos, x obtém 'A' cujo valor ASCII é 65 e é impresso.
Q 47 - Identifique o modo incorreto de abertura de arquivo a partir do seguinte.
Resposta: C
Explicação
x, não existe um modo denominado “x”.
Q 48 - A função fopen () com o modo "r +" tenta abrir o arquivo para __
Resposta: A
Explicação
Opção (a), o arquivo deve existir e ser aberto para leitura e gravação.
Q 49 - Identifique a constante inválida usada na função fseek () como referência 'de onde'.
Resposta: C
Explicação
SEEK_BEG, todo o resto são constantes válidas definidas em 'stdio.h'
Q 50 - Primeiro sistema operacional desenvolvido em linguagem de programação C.
Resposta: C
Explicação
UNIX. C realmente inventou para escrever um sistema operacional chamado UNIX. Em 1973, todo o sistema operacional UNIX é projetado usando C.
Folha de respostas
Número da Pergunta | Palavra chave |
---|---|
1 | D |
2 | D |
3 | C |
4 | UMA |
5 | UMA |
6 | C |
7 | UMA |
8 | UMA |
9 | D |
10 | D |
11 | UMA |
12 | UMA |
13 | UMA |
14 | UMA |
15 | D |
16 | UMA |
17 | D |
18 | D |
19 | C |
20 | UMA |
21 | B |
22 | UMA |
23 | D |
24 | B |
25 | UMA |
26 | B |
27 | UMA |
28 | D |
29 | D |
30 | D |
31 | C |
32 | D |
33 | D |
34 | C |
35 | D |
36 | B |
37 | C |
38 | B |
39 | B |
40 | B |
41 | B |
42 | D |
43 | C |
44 | D |
45 | B |
46 | C |
47 | C |
48 | UMA |
49 | C |
50 | C |