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);
}
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);
}
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");
}
}
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);
}
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);
}
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);
}
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);
}
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--);
}
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);
}
Respuesta: D
Explicación
5, ya que p contiene la dirección de x que es y + 0
P 10 - ¿Cuál es su comentario sobre la siguiente declaración C?
signed int *p=(int*)malloc(sizeof(unsigned int));
A - Fundición de tipo inadecuado
B : arrojaría un error de tiempo de ejecución
C : la memoria se asignará pero no puede contener un valor int en la memoria
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");
}
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");
}
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");
}
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");
}
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");
}
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");
}
Respuesta: A
Explicación
bucle infinito, ya que la segunda expresión no es 0, por lo que la condición es siempre verdadera.
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();
}
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);
}
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);
}
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);
}
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()
{
;
}
B - Error, ya que no se llama a la función.
C - Error, ya que la función está definida sin su declaración
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("\");
}
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;
}
}
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);
}
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);
}
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()"));
}
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.
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);
}
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?
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 ));
}
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.
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 ___
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 );
}
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");
}
}
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++);
}
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++);
}
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++);
}
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);
}
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]);
}
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]]);
}
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]]);
}
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);
}
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;
}
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);
}
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);
}
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.
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 __
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'.
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.
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 |