Enlace de descarga de papel : Papel | Sem 1 | 2015-16
Tecnología B.
(SEM-I) EXAMEN DE TEORIA 2015-16
SISTEMA INFORMÁTICO Y PROGRAMACIÓN EN C
Tiempo: 3 horas
Marcas totales : 100
Nota :-
- Hay tres secciones. La Sección A lleva 20 puntos, la Sección B lleva 50 puntos y la Sección C lleva 30 puntos.
- Intenta todas las preguntas. Las marcas se indica frente a cada pregunta.
- Asumir datos adecuados siempre que sea necesario.
Sección – C
Intente dos preguntas cualesquiera de esta sección: (15*2 = 30)
10. ¿Cuáles son los distintos tipos de archivos que se pueden crear en lenguaje C? También proporcione diferentes modos en los que estos archivos se pueden usar con la sintaxis adecuada. Escriba un programa en lenguaje C para agregar más texto al final de un archivo de texto existente.
Modos de apertura de archivos en C:
- “r” – Archivo de búsquedas. Si el archivo se abre con éxito, fopen() lo carga en la memoria y establece un puntero que apunta al primer carácter que contiene. Si el archivo no se puede abrir, fopen( ) devuelve NULL.
- “w” – Archivo de búsquedas. Si el archivo existe, su contenido se sobrescribe. Si el archivo no existe, se crea un nuevo archivo. Devuelve NULL, si no puede abrir el archivo.
- “a” – Archivo de búsquedas. Si el archivo se abre con éxito, fopen() lo carga en la memoria y configura un puntero que apunta al último carácter que contiene. Si el archivo no existe, se crea un nuevo archivo. Devuelve NULL, si no puede abrir el archivo.
- “r+” – Busca archivo. Si se abre con éxito, fopen() lo carga en la memoria y configura un puntero que apunta al primer carácter que contiene. Devuelve NULL, si no puede abrir el archivo.
- “w+” – Busca archivos. Si el archivo existe, su contenido se sobrescribe. Si el archivo no existe, se crea un nuevo archivo. Devuelve NULL, si no puede abrir el archivo.
- “a+” – Busca archivos. Si el archivo se abre con éxito, fopen() lo carga en la memoria y configura un puntero que apunta al último carácter que contiene. Si el archivo no existe, se crea un nuevo archivo. Devuelve NULL, si no puede abrir el archivo.
11. a) Escriba un programa en C para comprobar si una array cuadrada dada es simétrica o no
// Simple C code for check a matrix is // symmetric or not. #include <stdio.h> const int MAX = 3; // Fills transpose of mat[N][N] in tr[N][N] void transpose(int mat[][MAX], int tr[][MAX], int N) { for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) tr[i][j] = mat[j][i]; } // Returns true if mat[N][N] is symmetric, else false int isSymmetric(int mat[][MAX], int N) { int tr[N][MAX]; transpose(mat, tr, N); for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) if (mat[i][j] != tr[i][j]) return 0; return 1; } // Driver code int main() { int mat[3][3] = { { 1, 3, 5 }, { 3, 2, 4 }, { 5, 4, 1 } }; if (isSymmetric(mat, 3) == 1) printf("Yes"); else printf("No"); return 0; }
11. (b) Defina los tipos de datos en C. Discuta los tipos de datos primitivos en términos de tamaño de memoria, especificador de formato y rango.
Cada variable en C tiene un tipo de dato asociado. Cada tipo de datos requiere diferentes cantidades de memoria y tiene algunas operaciones específicas que se pueden realizar sobre él. Vamos a describirlos brevemente uno por uno:
Los siguientes son ejemplos de algunos tipos de datos muy comunes utilizados en C:
- char: El tipo de datos más básico en C. Almacena un solo carácter y requiere un solo byte de memoria en casi todos los compiladores.
- int: como sugiere el nombre, una variable int se usa para almacenar un número entero.
- float: Se utiliza para almacenar números decimales (números con valor de punto flotante) con precisión simple.
- double: Se utiliza para almacenar números decimales (números con valor de coma flotante) con doble precisión.
Los diferentes tipos de datos también tienen diferentes rangos hasta los cuales pueden almacenar números. Estos rangos pueden variar de un compilador a otro. A continuación se muestra una lista de rangos junto con los requisitos de memoria y los especificadores de formato en el compilador gcc de 32 bits.
Tipo de datos | Memoria (bytes) | Rango | Especificador de formato |
---|---|---|---|
corto | 2 | -32, 768 a 32, 767 | %hd |
int corto sin firmar | 2 | 0 a 65, 535 | %hu |
int sin firmar | 4 | 0 a 4, 294, 967, 295 | %u |
En t | 4 | -2, 147, 483, 648 a 2, 147, 483, 647 | %d |
largo tiempo | 4 | -2, 147, 483, 648 a 2, 147, 483, 647 | %ld |
int largo sin firmar | 4 | 0 a 4, 294, 967, 295 | % lu |
mucho tiempo | 8 | -(2^63) a (2^63)-1 | %lld |
int largo largo sin firmar | 8 | 0 a 18, 446, 744, 073, 709, 551, 615 | %llu |
carácter firmado | 1 | -128 a 127 | %C |
carácter sin firmar | 1 | 0 a 255 | %C |
flotar | 4 | %F | |
doble | 8 | %lf | |
largo doble | 12 | %Lf |
Podemos usar el operador sizeof() para verificar el tamaño de una variable.
11. (c) Enumere varias operaciones de archivos en ‘C’ . Escriba un programa en C para contar el número de caracteres en un archivo.
Hasta ahora, las operaciones que utilizan el programa C se realizan en un indicador/terminal que no se almacenan en ningún lugar. Pero en la industria del software, la mayoría de los programas están escritos para almacenar la información obtenida del programa. Una de esas formas es almacenar la información obtenida en un archivo. Las diferentes operaciones que se pueden realizar sobre un archivo son:
- Creación de un nuevo archivo ( fopen con atributos como “a” o “a+” o “w” o “w++”)
- Abriendo un archivo existente ( fopen )
- Lectura desde archivo ( fscanf o fgetc )
- Escribir en un archivo ( filePointerrintf o filePointeruts )
- Mover a una ubicación específica en un archivo ( fseek, rebobinar )
- Cerrar un archivo ( fclose )
El texto entre paréntesis indica las funciones utilizadas para realizar esas operaciones.
Funciones en operaciones de archivo:
12. (a) Escriba la diferencia entre conversión de tipo y conversión de tipo. ¿Cuáles son los personajes de las secuencias de escape ?
En el lenguaje de programación C, hay 256 números de caracteres en el juego de caracteres. El conjunto de caracteres completo se divide en 2 partes, es decir, el conjunto de caracteres ASCII y el conjunto de caracteres ASCII ampliado. Pero aparte de eso, también hay otros caracteres que no forman parte de ningún conjunto de caracteres, conocidos como caracteres ESCAPE.
Lista de secuencias de escape
\a Alarm or Beep \b Backspace \f Form Feed \n New Line \r Carriage Return \t Tab (Horizontal) \v Vertical Tab \\ Backslash \' Single Quote \" Double Quote \? Question Mark \ooo octal number \xhh hexadecimal number \0 Null
Ejemplo:
// C program to illustrate // \b escape sequence #include <stdio.h> int main(void) { // \b - backspace character transfers // the cursor one character back with // or without deleting on different // compilers. printf("Hello Geeks\b\b\b\bF"); return (0); }
Producción:
The output is dependent upon compiler.
12. (b) Cuáles son los diferentes tipos de operadores en lenguaje C y también escribe la diferencia entre la asociatividad y la precedencia de los operadores.
Los operadores son la base de cualquier lenguaje de programación. Por lo tanto, la funcionalidad del lenguaje de programación C/C++ está incompleta sin el uso de operadores. Podemos definir operadores como símbolos que nos ayudan a realizar cálculos matemáticos y lógicos específicos sobre operandos. En otras palabras podemos decir que un operador opera los operandos.
Por ejemplo, considere la siguiente declaración:
c = a + b;
Aquí, ‘+’ es el operador conocido como operador de suma y ‘a’ y ‘b’ son operandos. El operador de suma le dice al compilador que agregue los dos operandos ‘a’ y ‘b’. C/C++ tiene muchos tipos de operadores incorporados y se pueden clasificar como:
- Operadores aritméticos : estos son los operadores utilizados para realizar operaciones aritméticas/matemáticas en los operandos. Ejemplos: (+, -, *, /, %, ++, –).
- Operadores relacionales : los operadores relacionales se utilizan para comparar los valores de dos operandos. Por ejemplo: verificar si un operando es igual a otro operando o no, un operando es mayor que el otro operando o no, etc. Algunos de los operadores relacionales son (==, >=, <= ). Para conocer en detalle cada uno de estos operadores ingresa a este enlace.
- Operadores Lógicos : Los Operadores Lógicos se utilizan para combinar dos o más condiciones/restricciones o para complementar la evaluación de la condición original en consideración. El resultado de la operación de un operador lógico es un valor booleano, ya sea verdadero o falso. Para obtener más información sobre los diferentes operadores lógicos, visite este enlace.
- Operadores bit a bit: los operadores bit a bit se utilizan para realizar operaciones a nivel de bit en los operandos. Los operadores se convierten primero a nivel de bits y luego se realiza el cálculo en los operandos. Las operaciones matemáticas como la suma, la resta, la multiplicación, etc. se pueden realizar a nivel de bit para un procesamiento más rápido. Para conocer los operadores bit a bit en detalle, visite este enlace.
- Operadores de asignación : los operadores de asignación se utilizan para asignar valor a una variable. El operando del lado izquierdo del operador de asignación es una variable y el operando del lado derecho del operador de asignación es un valor. El valor del lado derecho debe ser del mismo tipo de datos que la variable del lado izquierdo; de lo contrario, el compilador generará un error.
- Otros operadores : además de los operadores anteriores, existen otros operadores disponibles en C o C++ que se utilizan para realizar alguna tarea específica. Algunos de ellos se discuten aquí:
- Operador sizeof : sizeof es muy utilizado en el lenguaje de programación C/C++. Es un operador unario de tiempo de compilación que se puede usar para calcular el tamaño de su operando. El resultado de sizeof es de tipo integral sin signo, que generalmente se denota por size_t. Básicamente, el operador sizeof se utiliza para calcular el tamaño de la variable. Para obtener información detallada sobre el tamaño del operador, puede visitar este enlace.
- Operador de coma : el operador de coma (representado por el token, ) es un operador binario que evalúa su primer operando y descarta el resultado, luego evalúa el segundo operando y devuelve este valor (y tipo). El operador coma tiene la precedencia más baja de cualquier operador C. La coma actúa como operador y separador. Para obtener más información sobre la coma en detalles, visite este enlace.
- Operador condicional : El operador condicional tiene la forma Expresión1? Expresión2 : Expresión3 . Aquí, Expression1 es la condición a evaluar. Si la condición (Expresión1) es verdadera , ejecutaremos y devolveremos el resultado de Expresión2; de lo contrario, si la condición (Expresión1) es falsa , ejecutaremos y devolveremos el resultado de Expresión3. Podemos reemplazar el uso de declaraciones if..else por operadores condicionales. Para obtener más información sobre los operadores condicionales, visite este enlace.
Publicación traducida automáticamente
Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA