1.Diferencia entre C y C ++?
a) C sigue el paradigma de programación de procedimientos, mientras que C ++ es un lenguaje de paradigmas múltiples (tanto de procedimiento como orientado a objetos)
En el caso de C, se da importancia a los pasos o procedimientos del programa, mientras que C ++ se enfoca en los datos más que en el proceso.
Además, es más fácil implementar / editar el código en el caso de C ++ por la misma razón.
b) En el caso de C, los datos no están protegidos mientras los datos están protegidos (ocultos) en C ++
Esta diferencia se debe a las características específicas de OOP como el ocultamiento de datos que no están presentes en C.
c) C es un lenguaje de bajo nivel, mientras que C ++ es un lenguaje de nivel medio
C es considerado como un lenguaje de bajo nivel (interpretación difícil y menos amigable para el usuario), mientras que C ++ tiene características de bajo nivel (concentración en lo que está sucediendo en el hardware de la máquina) e idiomas de alto nivel (concentración en el programa mismo) por lo tanto, se considera un lenguaje de nivel medio.
d) C usa el enfoque de arriba hacia abajo, mientras que C ++ usa el enfoque de abajo hacia arriba
En el caso de C, el programa se formula paso a paso, cada paso se procesa en detalle, mientras que en C ++, los elementos base se formulan primero y luego se unen para dar lugar a sistemas más grandes.
e) C es impulsado por funciones mientras que C ++ es conducido por objetos
Las funciones son los bloques de construcción de un programa en C, mientras que los objetos son los bloques de construcción de un programa en C ++.
f) C ++ admite la sobrecarga de funciones, mientras que C no
Sobrecarga significa dos funciones que tienen el mismo nombre en el mismo programa. Esto solo se puede hacer en C ++ con la ayuda del polimorfismo (una función OOP)
g) Podemos usar funciones dentro de estructuras en C ++ pero no en C.
En el caso de C ++, las funciones se pueden usar dentro de una estructura, mientras que las estructuras no pueden contener funciones en C.
h) La función NAMESPACE en C ++ está ausente en el caso de C
C ++ usa NAMESPACE que evita las colisiones de nombres. Por ejemplo, dos estudiantes matriculados en la misma universidad no pueden tener el mismo número de registro, mientras que dos estudiantes en universidades diferentes pueden tener el mismo número de registro. Las universidades son dos espacios de nombres diferentes y, por lo tanto, contienen el mismo número de registro (identificador) pero la misma universidad (un espacio de nombres) no puede tener dos estudiantes con el mismo número de registro (identificador)
i) Las funciones estándar de entrada y salida difieren en los dos idiomas
C usa scanf e printf mientras que C ++ usa cin >> & cout << como sus respectivas funciones de entrada y salida
j) C ++ permite el uso de variables de referencia mientras que C no
Las variables de referencia permiten que dos nombres de variables apunten a la misma ubicación de memoria. No podemos usar estas variables en la programación en C.
k) C ++ admite el manejo de excepciones, mientras que C no.
C no lo admite “formalmente”, pero siempre se puede implementar por otros métodos. Aunque no tiene el marco para lanzar y capturar excepciones como en C ++.
2. ¿Qué es un puntero nulo?
Cuando se refiere a la memoria de la computadora, un puntero nulo es un comando utilizado para dirigir un programa de software o sistema operativo a una ubicación vacía en la memoria de la computadora. Comúnmente, el puntero nulo se usa para denotar el final de una búsqueda de memoria o evento de procesamiento. En la programación de computadoras, un puntero nulo es un puntero que no apunta a ningún objeto o función.
Un puntero nulo es un valor falso. Por ejemplo, 1> 2 es una declaración nula.
En el lenguaje de programación C, NULL es un comando disponible que se puede usar, donde nil es un comando disponible que se usa en el lenguaje de programación Pascal.
3. ¿Cuáles son los 4 conceptos básicos de OOP?
Abstracción, herencia, encapsulación y polimorfismo.
4. ¿Qué quiere decir con DBMS relacional de objetos?
Una base de datos relacional de objetos (ORD), o sistema de gestión de bases de datos relacionales de objetos (ORDBMS), es un sistema de gestión de bases de datos (DBMS) similar a una base de datos relacional, pero con un modelo de base de datos orientado a objetos: los objetos, las clases y la herencia son directamente compatible con esquemas de bases de datos y en el lenguaje de consulta. Además, al igual que con los sistemas relacionales adecuados, admite la extensión del modelo de datos con tipos y métodos de datos personalizados.
5.Diferencia estructural entre el mapa de bits y el índice b-tree?
Btree
Está hecho de nodos de rama y nodos de hoja. Los nodos de ramificación tienen un valor de clave de prefijo junto con el enlace al nodo de hoja. El nodo hoja a su vez contiene el valor indexado y remado.
Mapa de bits
Simplemente consiste en bits para cada valor distinto. Utiliza una cadena de bits para localizar rápidamente filas en una tabla. Se usa para indexar columnas de baja cardinalidad.
6) ¿Qué es el esquema de base de datos?
La definición formal del esquema de la base de datos es un conjunto de fórmulas (oraciones) llamadas restricciones de integridad impuestas en una base de datos.
7. ¿Cuáles son los diferentes niveles del esquema de la base de datos?
Esquema conceptual: un mapa de conceptos y sus relaciones.
Esquema lógico: un mapa de entidades y sus atributos y relaciones.
Esquema físico: una implementación particular de un esquema lógico
Objeto de esquema: objeto de base de datos Oracle
8. ¿Cuál es la diferencia entre la clave externa y la clave de referencia?
La clave de referencia es la clave principal a la que se hace referencia en la otra tabla (vinculada a través de la clave externa de otras tablas). Clave externa es cómo se vincula la segunda tabla a la clave primaria de la tabla primaria (o clave de referencia).
9. ¿Cuéntame sobre DSN?
Un nombre de origen de datos (DSN) es el nombre lógico que utiliza Open Database Connectivity (ODBC) para referirse a la unidad y otra información que se requiere para acceder a los datos. Internet Information Services (IIS) usa el nombre para una conexión a una fuente de datos ODBC, como una base de datos de Microsoft SQL Server.
10. Diferencia entre el índice agrupado y el índice no agrupado?
Índice agrupado
Solo uno por mesa
Más rápido de leer que no agrupado ya que los datos se almacenan físicamente en orden de índice
Índice no agrupado
Se puede usar muchas veces por mesa
Más rápido para las operaciones de inserción y actualización que un índice agrupado
11. ¿Qué es WPF y WCF?
Aplicación WPF / WCF, necesita en .NET 3.0 Framework. Esta aplicación cubrirá los siguientes conceptos:
WCF (Windows Communication Foundation)
Los nuevos atributos orientados al servicio
El uso de interfaces
El uso de devoluciones de llamada
Delegados asincrónicos
Crear el proxy
WPF (Windows Presentation Foundation)
Estilos
Plantillas
Animaciones
El enlace de datos
Multithreading de una aplicación WPF
12. ¿Cuál es la diferencia entre un EXE y un DLL?
El término EXE es una versión abreviada de la palabra ejecutable, ya que identifica el archivo como un programa. Por otro lado, DLL significa Dynamic Link Library, que comúnmente contiene funciones y procedimientos que pueden ser utilizados por otros programas.
10. ¿Escenarios en los que se debe usar la aplicación web y la aplicación de escritorio?
13. Indique cómo verificar si una lista vinculada es circular.
Cree dos punteros, cada uno establecido al comienzo de la lista. Actualice cada uno de la siguiente manera:
while (puntero1) {
puntero1 = puntero1-> siguiente;
puntero2 = puntero2-> siguiente; if (puntero2) puntero2 = puntero2-> siguiente;
if (puntero1 == puntero2) {
print (“circular \ n”);
}
}
14. ¿Cómo se puede aumentar el tamaño del almacenamiento dinámico en la memoria?
Si el tamaño de almacenamiento dinámico es demasiado bajo, obtendrá errores de “falta de memoria”. Si lo configura demasiado alto, su sistema se bloqueará o sufrirá un rendimiento deficiente debido a que partes de la jvm se intercambiarán dentro y fuera de la memoria. Una regla general es que no debe establecer este parámetro en más del 80% de su memoria física libre. En las máquinas con Windows XP, puede determinar su memoria física libre desde la pestaña Rendimiento de la aplicación Administrador de tareas.
Aumentar el parámetro de tamaño de almacenamiento dinámico le permitirá leer en proyectos más grandes basados en archivos. También mejorará el rendimiento del back-end de la base de datos, ya que hay más memoria disponible para el almacenamiento en caché. En Java Establezca el tamaño de almacenamiento dinámico máximo, utilizando la opción de línea de comandos -Xmx, en un valor que permita que la aplicación se ejecute con un 70% de ocupación del montón de Java. La ocupación del montón de Java a menudo varía con el tiempo a medida que varía la carga aplicada a la aplicación. Para aplicaciones donde la ocupación varía, establezca el tamaño máximo de almacenamiento dinámico de Java para que haya un 70% de ocupación en el punto más alto, y establezca el tamaño mínimo de almacenamiento dinámico, utilizando la opción de línea de comando -Xms, para que el almacenamiento dinámico de Java esté ocupado en un 40% en su punto más alto. menor uso de memoria. Si se establecen estos valores, los algoritmos de administración de memoria Java pueden modificar el tamaño del almacenamiento dinámico a lo largo del tiempo de acuerdo con la carga de la aplicación, mientras se mantiene el uso en el área óptima de entre el 40% y el 70% de ocupación.
15. ¿Por qué es difícil almacenar la lista vinculada en una matriz?
Tanto las matrices como la lista vinculada se pueden usar para almacenar datos lineales de tipos similares.
La lista vinculada proporciona un tamaño dinámico mientras que el tamaño de la matriz es fijo, por lo que debemos conocer el límite superior en la cantidad de elementos de antemano.
Las listas vinculadas tienen los siguientes inconvenientes:
1) El acceso aleatorio no está permitido. Tenemos que acceder a elementos secuencialmente comenzando desde el primer nodo. Por lo tanto, no podemos hacer búsquedas binarias con listas vinculadas.
2) Se requiere espacio de memoria adicional para un puntero con cada elemento de la lista.
3) Las matrices tienen una mejor ubicación de caché que puede marcar una gran diferencia en el rendimiento.
16.Diferentes tipos de claves en SQL?
Los diferentes tipos de claves en el servidor sql son,
Una clave candidata actúa como una clave única. Una clave única puede ser una clave principal. Una clave candidata puede ser una sola columna o una combinación de columnas. Se permiten múltiples claves candidatas en una tabla.
Clave primaria
Para identificar de forma exclusiva una fila, se utiliza la clave primaria.
Una tabla solo permite una clave primaria
Una clave principal puede ser una sola columna o una combinación de columnas.
Clave externa
Una clave foránea en una tabla es una clave que hace referencia a la clave primaria de otra tabla. Una clave primaria puede ser referida por múltiples claves externas de otras tablas. No es necesario que una clave primaria sea la referencia de ninguna clave externa. La parte interesante es que una clave externa puede referirse a la misma tabla pero a una columna diferente. Este tipo de clave externa se conoce como “clave externa autorreferenciada”.
17.Explique sobre uniones, vistas, normalización, disparadores.
La palabra clave JOIN se usa en una instrucción SQL para consultar datos de dos o más tablas, en función de una relación entre ciertas columnas en estas tablas.
Las tablas en una base de datos a menudo están relacionadas entre sí con claves.
Una vista es una tabla virtual. Una vista contiene filas y columnas, al igual que una tabla real. Los campos en una vista son campos de una o más tablas reales en la base de datos.
Puede agregar funciones SQL, WHERE y JOIN a una vista y presentar los datos como si vinieran de una sola tabla.
La normalización es el proceso de organizar eficientemente los datos en una base de datos. Hay dos objetivos del proceso de normalización: eliminar datos redundantes (por ejemplo, almacenar los mismos datos en más de una tabla) y garantizar que las dependencias de datos tengan sentido (solo almacenar datos relacionados en una tabla). Ambas son metas valiosas, ya que reducen la cantidad de espacio que consume una base de datos y aseguran que los datos se almacenen lógicamente.
Primera forma normal (1NF)
establece las reglas muy básicas para una base de datos organizada:
Eliminar columnas duplicadas de la misma tabla.
Cree tablas separadas para cada grupo de datos relacionados e identifique cada fila con una columna única o un conjunto de columnas (la clave principal).
Segunda forma normal (2NF)
aborda además el concepto de eliminar datos duplicados:
Cumplir con todos los requisitos de la primera forma normal.
Elimine subconjuntos de datos que se aplican a varias filas de una tabla y colóquelos en tablas separadas.
Cree relaciones entre estas nuevas tablas y sus predecesoras mediante el uso de claves foráneas.
Tercera forma normal (3NF)
Cumplir con todos los requisitos de la segunda forma normal.
Eliminar columnas que no dependen de la clave primaria.
Forma normal de Boyce-Codd (BCNF o 3.5NF)
También se conoce como la “tercera y media (3.5) forma normal”, agrega un requisito más:
Cumplir con todos los requisitos de la tercera forma normal.
Todo determinante debe ser una clave candidata.
Cuarta forma normal (4NF)
Cumplir con todos los requisitos de la tercera forma normal.
Una relación está en 4NF si no tiene dependencias de valores múltiples.
Recuerde, estas pautas de normalización son acumulativas. Para que una base de datos esté en 2NF, primero debe cumplir con todos los criterios de una base de datos 1NF.
En un DBMS, un disparador es un procedimiento SQL que inicia una acción (es decir, dispara una acción) cuando ocurre un evento (INSERT, DELETE o UPDATE). Dado que los desencadenantes son procedimientos especializados controlados por eventos, el DBMS los almacena y administra. Un disparador no puede ser llamado o ejecutado; el DBMS dispara automáticamente el desencadenante como resultado de una modificación de datos en la tabla asociada. Los disparadores se utilizan para mantener la integridad referencial de los datos cambiando los datos de manera sistemática. Cada desencadenante se adjunta a una única tabla especificada en la base de datos.
1 8.¿Cuál es la diferencia entre socket y sesión?
El socket es una combinación de dirección IP y número de puerto (en pares)
La sesión es una conectividad lógica entre el origen y el destino.
19. ¿Qué es una puerta de enlace predeterminada?
En los sistemas organizacionales, una puerta de enlace es un nodo que enruta el tráfico desde una estación de trabajo a otro segmento de red. La puerta de enlace predeterminada comúnmente conecta las redes internas y la red externa (Internet). En tal situación, el nodo de puerta de enlace también podría actuar como un servidor proxy y un firewall. La puerta de enlace también está asociada con un enrutador, que utiliza encabezados y tablas de reenvío para determinar dónde se envían los paquetes, y un conmutador, que proporciona la ruta real para el paquete que entra y sale de la puerta de enlace.
20. Dada una matriz de 1s y 0s, organice los 1s y 0s juntos en un solo escaneo de la matriz. Optimizar las condiciones de contorno.
vacío principal()
{
int A [10] = {‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘0’, ‘0’, ‘1’, ‘0’, ‘1’, ‘0’ , ‘0’};
int x = 0, y = A. longitud-1;
mientras que (x
si (! A [x])
x ++;
si no (A [y])
y–;
if (A [x] &&! A [y]) // aquí estamos comprobando que el índice de indicación tiene 1 y el último índice tiene 0 que los valores de intercambio
A [x] = 0, A [y] = 1;
}
getch ()
}
21. Definir abstracción de datos. ¿Cuál es su importancia?
La abstracción es el proceso de reconocer y enfocarse en características importantes de una situación u objeto y dejar / filtrar las características no deseadas de esa situación u objeto.
La abstracción es la base para el desarrollo de software. Es a través de la abstracción que definimos los aspectos esenciales de un sistema. El proceso de identificación de las abstracciones para un sistema dado se llama Modelado (o modelado de objetos).
Tres niveles de abstracción de datos son:
1. Nivel físico: cómo se almacenan los datos físicamente y dónde se almacenan en la base de datos.
2. Nivel lógico: qué información o datos se almacenan en la base de datos. por ejemplo: administrador de la base de datos
3.Nivel de vista: los usuarios finales trabajan en el nivel de vista. Si se realiza alguna modificación, se puede guardar con otro nombre.
22.Escribe un programa para intercambiar dos números sin usar una variable temporal.
intercambio nulo (int & i, int & j)
{
i = i + j;
j = ij;
i = ij;
}
23. Asignación de memoria en C / C ++
calloc () asigna un área de memoria, la longitud será el producto de sus parámetros (tiene dos parámetros). calloc llena la memoria con CERO y devuelve un puntero al primer byte. Si no puede encontrar suficiente espacio, devuelve un puntero NULL.
malloc () asigna un área de memoria, la longitud será un valor ingresado como parámetro (tiene un parámetro). No inicializa el área de memoria
free () se usa para liberar la memoria asignada (asignada a través de calloc y malloc), en otras palabras, esto libera la memoria asignada
new también se usa para asignar memoria en el montón e inicializar la memoria usando el constructor
eliminar también utiliza la memoria de liberación asignada por el nuevo operador
24. ¿Escribir salida del programa?
int i = 10;
printf (“% d% d% d”, i, ++ i, i ++);
Respuesta = 10 12 12
25.¿Qué es la función virtual y la función virtual pura?
Función virtual: -Para lograr el polimorfismo, la función en la clase base se declara como virtual. Al declarar virtual, hacemos que el puntero de la clase base para ejecutar la función de cualquier clase derivada dependa del contenido del puntero (cualquier dirección de clase derivada).
Función virtual pura: -Esta es una función utilizada en la clase base, y su definición debe proporcionarse en la clase derivada. En otra función virtual pura no tiene una definición en la base, se define como:
diversión virtual vacía () = 0;
Esto significa que esta función no va a hacer nada, en caso de que la función derivada de la función virtual pura tenga que
implementar una función virtual pura o redeclararla como función virtual pura