Prueba simulada de programación en C

Esta sección le presenta varios conjuntos de pruebas simuladas relacionadas con C Programming Framework. Puede descargar estas pruebas simuladas de muestra en su máquina local y resolverlas sin conexión a su conveniencia. Cada prueba simulada se suministra con una clave de prueba simulada que le permite verificar la puntuación final y calificar usted mismo.

Prueba simulada de programación C I

P 1 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{ 
   int const a = 5; 
   
   a++; 
   printf(“%d”,a); 
}

A - 5

B - 6

C - Error de tiempo de ejecución

D - Error de compilación

Respuesta: D

Explicación

Error de compilación: la variable constante no se puede modificar.

main() 
{ 
   int const a = 5; 
   
   a++; 
   printf(“%d”,a); 
}

P 2 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{ 
   const int a = 5; 
   
   a++; 
   printf("%d", a); 
}

A - 5

B - 6

C - Error de tiempo de ejecución

D - Error de compilación

Respuesta: D

Explicación

Error de compilación: la variable constante no se puede modificar.

main() 
{ 
   const int a = 5; 
   
   a++; 
   printf("%d", a); 
}

P 3 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{ 
   char s[]="hello", t[]="hello";
   
   if(s==t){
	   printf("eqaul strings");
	}
}

A - Cuerdas iguales

B - Cuerdas desiguales

C - Sin salida

D - Error de compilación

Respuesta: C

Explicación

Sin salida, ya que estamos comparando ambas direcciones base y no son iguales.

P 4 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{ 
   int a = 5, b = 3, c = 4; 
   
   printf("a = %d, b = %d\n", a, b, c);
}

A - a = 5, b = 3

B - a = 5, b = 3, c = 0

C - a = 5, b = 3, 0

D - error de compilación

Respuesta: A

Explicación

a = 5, b = 3, ya que solo hay dos especificadores de formato para imprimir.

P 5 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{ 
   int a = 1; 
   float b = 1.3; 
   double c;
   
   c = a + b; 
   printf("%.2lf", c);
}

A - 2,30

B - 2,3

C - Error de compilación

D - 2.0

Respuesta: A

Explicación

2.30, la suma es válida y después del decimal con se especifica para 2 lugares.

P 6 - ¿Cuál es la salida del siguiente programa?

#include<stdio.h>

main() 
{
      enum { india, is=7, GREAT };

      printf("%d %d", india, GREAT);
}

A - 0 1.

B - 0 2

C - 0 8

D - Error de compilación

Respuesta: C

Explicación

0 8, enums da la secuencia que comienza con 0. Si se le asigna un valor, la secuencia continúa desde el valor asignado.

P 7 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{
    char c = 'A'+255;
   
    printf("%c", c);
}

A - A

B - B

C - Error de desbordamiento en tiempo de ejecución

D - Error de compilación

Respuesta: A

Explicación

A, el rango de valores ASCII para los caracteres ASCII es 0-255. Por lo tanto, la operación de adición circula de regreso a 'A'

P 8 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{
   short unsigned int i = 0; 
   
   printf("%u\n", i--);
}

A - 0

B - Error de compilación

C - 65535

D - 32767

Respuesta: A

Explicación

0, con el operador de decremento posterior, el valor de la variable se considerará como el valor de la expresión y luego se decrementará.

P 9 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{
   unsigned x = 5, y=&x, *p = y+0; 

   printf("%u",*p);
}

A - Dirección de x

B - Dirección de y

C - Dirección de p

D - 5

Respuesta: D

Explicación

5, ya que p contiene la dirección de x que es y + 0

Respuesta: D

Explicación

Opción (d), como el tamaño de int y unsigned es el mismo, no hay problema en la asignación de memoria.

P 11 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{
   int x = 5;
   
   if(x==5)
   {	
       if(x==5) break;
       printf("Hello");
   } 
   printf("Hi");
}

A - Error de compilación

B - hola

C - HolaHola

D - Hola

Respuesta: A

Explicación

error de compilación, la interrupción de palabras clave solo puede aparecer dentro de la instrucción loop / switch.

P 12 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{
   int x = 5;
   
   if(x=5)
   {	
       if(x=5) break;
       printf("Hello");
   } 
   printf("Hi");
}

A - Error de compilación

B - hola

C - HolaHola

D - Advertencia del compilador

Respuesta: A

Explicación

error de compilación, la interrupción de palabras clave solo puede aparecer dentro de la instrucción loop / switch.

P 13 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{
   int x = 5;
   
   if(x=5)
   {	
      if(x=5) printf("Hello");
   } 
   printf("Hi");
}

A - Hola, hola

B - hola

C - hola

D - Error del compilador

Respuesta: A

Explicación

Hola, tanto la expresión de la instrucción if se evalúa como verdadera.

P 14 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{
   for(;;)printf("Hello");
}

A - Bucle infinito

B : imprime "Hola" una vez.

C - Sin salida

D - Error de compilación

Respuesta: A

Explicación

bucle infinito, con la segunda expresión de 'for' ausente, se considera verdadero por defecto.

P 15 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{
   for()printf("Hello");
}

A - Bucle infinito

B : imprime "Hola" una vez.

C - Sin salida

D - Error de compilación

Respuesta: D

Explicación

Error del compilador, es necesario que aparezcan puntos y coma aunque las expresiones son opcionales para el ciclo 'for'.

P 16 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main() 
{
   for(1;2;3)
      printf("Hello");
}

A - Bucle infinito

B : imprime "Hola" una vez.

C - Sin salida

D - Error de compilación

Respuesta: A

Explicación

bucle infinito, ya que la segunda expresión no es 0, por lo que la condición es siempre verdadera.

Q 17 - int x = ~ 1; Cual es el valor de x'?

A - 1

B - -1

C - 2

D - -2

Respuesta: D

Explicación

-2, el complemento de uno de 1 es 1110 (binario) que es equivalente al complemento de dos de 2, es decir, -2.

P 18 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

void f() 
{ 
   static int i;
   
   ++i; 
   printf("%d", i); 
}

main()
{ 
   f(); 
   f(); 
   f(); 
}

A - 1 1 1

B - 0 0 0

C - 3 2 1

D - 1 2 3

Respuesta: D

Explicación

1 2 3, una variable local estática conserva su valor entre las llamadas a la función y el valor predeterminado es 0.

P 19 : ¿Cuál es el resultado del siguiente fragmento de código?

#include<stdio.h>

main()
{ 
   int *p = 15; 
   printf("%d",*p);
}

A - 15

B - Valor de basura

C - Error de tiempo de ejecución

D - Error del compilador

Respuesta: C

Explicación

Error de tiempo de ejecución, ya que la variable de puntero no tiene la dirección adecuada, escribir / leer los datos de la misma genera un error de tiempo de ejecución.

P 20 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{	
    register int x = 5;

    int *p;
    p=&x;
    x++;
    printf("%d",*p);
}

A - Error de compilación

B - 5

C - 6

D - Valor de basura

Respuesta: A

Explicación

Error de compilación, no podemos tomar la dirección de una variable de registro.

P 21 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{
   int x = 65, *p = &x;
   
   void *q=p;
   char *r=q;
   printf("%c",*r);
}

A - Carácter basura.

B - A

C - 65

D - Error de compilación

Respuesta: B

Explicación

Un puntero vacío es un puntero genérico y puede contener la dirección de cualquier variable. El carácter ASCII para el valor 65 es 'A'

P 22 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

void f() 
{
    printf(“Hello\n”);
}
main() 
{
 ;
}

A - Sin salida

B - Error, ya que no se llama a la función.

C - Error, ya que la función está definida sin su declaración

D -Error, ya que la función main () se deja vacía

Respuesta: A

Explicación

Sin salida, aparte de la opción (a) el resto de los comentarios contra las opciones no son válidos.

P 23 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{
   printf("\");
}

A - \

B - \ "

C - "

D - Error de compilación

Respuesta: D

Explicación

Error de compilación, la cadena de formato de printf no finaliza.

P 24 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

{ 
   int x = 1;
   switch(x) 
   {
      default: printf("Hello");
      case 1: printf("hi"); break;
   }
}

A - hola

B - hola

C - HolaHola

D - Error de compilación

Respuesta: B

Explicación

Hola, el control alcanza el caso predeterminado después de comparar el resto de las constantes de casos.

P 25 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{ 
   struct { int x;} var = {5}, *p = &var;
   
   printf("%d %d %d",var.x,p->x,(*p).x); 
}

A - 5 5 5

B - 5 5 valor de basura

C - 5 5 0

D - Error de compilación

Respuesta: A

Explicación

5 5 5, las dos formas posibles de acceder a los elementos de la estructura usando el puntero es usando -> (operador de flecha) O *.

P 26 - ¿Cuál es el resultado del siguiente 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);
}

A - 3 5

B - 5 3

C - 5 5

D - Error de compilación

Respuesta: B

Explicación

5 3, el mecanismo de llamada por valor no puede alterar los argumentos reales.

#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);
}

P 27 - ¿Qué se imprimirá para la declaración siguiente?

#include<stdio.h>

main()
{
   printf("%d",strcmp("strcmp()","strcmp()"));
}

A - 0

B - 1

C - -1

D - Uso no válido de la función strcmp ()

Respuesta: A

Explicación

0, strcmp devuelve 0 si ambas cadenas son iguales

P 28 - ¿Qué está haciendo el siguiente programa?

#include<stdio.h>

main()
{
   FILE *stream=fopen("a.txt",'r');
}

A - Intentando abrir "a.txt" en modo lectura

B - Intentando abrir “a.txt” en modo escritura.

C : "flujo" es un identificador no válido

D - Error de compilación

Respuesta: D

Explicación

Error de compilación, el segundo argumento para fopen no es válido, debería ser una cadena.

P 29 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{   
   int r, x = 2;
   float y = 5;

   r = y%x;
   printf("%d", r); 
}

A - 1

B - 0

C - 2

D - Error de compilación

Respuesta: D

Explicación

Error de compilación. No es válido que cualquiera de los operandos del operador de módulo (%) sea un número real.

P 30 - ¿Qué operador se utiliza para continuar la definición de macro en la siguiente línea?

A - #

B - ##

C - $

D - \

Respuesta: D

Explicación

\, los dos primeros son operadores de pegado de tokens y cadenas, respectivamente. No existe tal operador llamado $.

P 31 - ¿Cuál es el tamaño de la siguiente definición de unión?

#include<stdio.h>

union abc { 
    char a,b,c,d,e,f,g,h; 
    int i;
}abc;

main()
{
   printf( "%d", sizeof( abc ));
}

A - 1

B - 2

C - 4

D - 8

Respuesta: C

Explicación

el tamaño de la unión es el tamaño de elemento más grande de la misma. Todos los elementos del sindicato comparten una memoria común.

Q 32 - ¿Cuál es el tamaño de 'int'?

A - 2

B - 4

C - 8

D - Depende del compilador

Respuesta: D

Explicación

El tamaño de 'int' depende del compilador, es decir, si es de 16 bits o de 32 bits.

P 33 - El nombre del tipo / palabra reservada 'corto' es ___

A - corto largo

B - carácter corto

C - flotador corto

D - int corto

Respuesta: D

Explicación

short se utiliza como alternativa de short int.

P 34 : ¿Cuál es el valor de 'y' para el siguiente fragmento de código?

#include<stdio.h>

main()
{
   int x = 1;
   
   float y = x>>2;
   
   printf( "%f", y );
}

A - 4

B - 0,5

C - 0

D - 1

Respuesta: C

Explicación

0, los bits de datos se pierden para la operación de cambio anterior, por lo que el valor es 0.

P 35 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{  
   float t = 2;

   switch(t)
   {
       case 2: printf("Hi");
       default: printf("Hello");
   }
}

A - hola

B - Hola, hola

C - hola

D - Error

Respuesta: D

Explicación

Error, la expresión del interruptor no puede ser un valor flotante.

P 36 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{
   int i = 1;
   
   while(++i <= 5)
      printf("%d ",i++);
}

A - 1 3 5

B - 2 4

C - 2 4 6

D - 2

Respuesta: B

Explicación

2 4, mientras que primero se incrementa y luego se compara y en printf se imprime primero y se incrementa después

P 37 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{
   int i = 1;
   
   while( i++<=5 )
      printf("%d ",i++);
}

A - 1 3 5

B - 2 4

C - 2 4 6

D - 2

Respuesta: C

Explicación

2 4 6, mientras que primero se comparó y luego se incrementó y en printf se imprimió primero y luego se incrementó.

P 38 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{
   int i = 1;
   
   while(i++<=5);
       printf("%d ",i++);
}

A - 4

B - 6

C - 2 6

D - 2 4

Respuesta: B

Explicación

6, hay una declaración vacía después de 'while'.

P 39 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{
   int x = 1;
   
   do
      printf("%d ", x);
   while(x++<=1);
}

A - 1

B - 1 2

C - Sin salida

D - Error de compilación

Respuesta: B

Explicación

1 2, do.. while es un bucle de control de entrada. Como la expresión x ++ es posterior al formulario, el bucle también continúa por segunda vez.

P 40 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{ 
   int a[] = {1,2}, *p = a;
   
   printf("%d", p[1]); 
}

A - 1

B - 2

C - Error de compilación

D - Error de tiempo de ejecución

Respuesta: B

Explicación

2, como 'p' contiene la dirección base, entonces podemos acceder a la matriz usando 'p' al igual que con 'a'

P 41 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{ 
   int a[3] = {2,1};
   
   printf("%d", a[a[1]]); 
}

A - 0

B - 1

C - 2

D - 3

Respuesta: B

Explicación

1, la indirección interna se evalúa como 1 y el valor en el índice 1 para la indirección externa es 1.

P 42 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{ 
   int a[3] = {2,,1};
   
   printf("%d", a[a[0]]); 
}

A - 0

B - 1

C - 2

D - Error de compilación

Respuesta: D

Explicación

Error de compilación, sintaxis no válida al inicializar la matriz.

P 43 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{ 
   int a[] = {2,1};
   
   printf("%d", *a); 
}

A - 0

B - 1

C - 2

D - Error de compilación.

Respuesta: C

Explicación

2, ya que 'a' se refiere a la dirección base.

P 44 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{
   int i = 1;
   
   Charminar:
   printf("%d ",i++);
   if(i==3) break;
   if(i<=5) goto Charminar;
}

A - 1 2

B - 1 2 3

C - 1 2 4 5

D - Error de compilación

Respuesta: D

Explicación

Error de compilación, lugar incorrecto para que aparezca "descanso".

P 45 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{ 
   int i = 13, j = 60;
   
   i ^= j;
   j ^= i;
   i ^= j;
   
   printf("%d %d", i, j);
}

A - 73 73

B - 60 13

C - 13 60

D - 60 60

Respuesta: B

Explicación

60 13, su intercambio.

P 46 - ¿Cuál es el resultado del siguiente programa?

#include<stdio.h>

main()
{	
   union abc {
      int x;
      char ch;
   }var;

   var.ch = 'A';
   printf("%d", var.x);
}

A - A

B - Valor de basura

C - 65

D - 97

Respuesta: C

Explicación

65, como las variables de unión comparten memoria común para todos sus elementos, x obtiene 'A' cuyo valor ASCII es 65 y se imprime.

Q 47 - Identifique el modo de apertura de archivo incorrecto de los siguientes.

A - r

B - w

C - x

D - a

Respuesta: C

Explicación

x, no existe tal modo llamado "x".

Q 48 - La función fopen () con el modo "r +" intenta abrir el archivo para __

A - leer y escribir

B - leer y agregar contenido nuevo

C - solo para lectura

D - funciona solo para directorios

Respuesta: A

Explicación

Opción (a), el archivo debería existir y abrirse tanto para lectura como para escritura.

Q 49 - Identifique la constante inválida usada en la función fseek () como referencia 'de dónde'.

A - SEEK_SET

B - SEEK_CUR

C - SEEK_BEG

D - SEEK_END

Respuesta: C

Explicación

SEEK_BEG, todo el resto son constantes válidas definidas en 'stdio.h'

Q 50 - Primer sistema operativo diseñado con lenguaje de programación C.

A - DOS

B - Ventanas

C - UNIX

D - Mac

Answer : C

Explanation

UNIX. C actually invented to write an operation system called UNIX. By 1973 the entire UNIX OS is designed using C.

Answer Sheet

Question Number Answer Key
1 D
2 D
3 C
4 A
5 A
6 C
7 A
8 A
9 D
10 D
11 A
12 A
13 A
14 A
15 D
16 A
17 D
18 D
19 C
20 A
21 B
22 A
23 D
24 B
25 A
26 B
27 A
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 A
49 C
50 C