UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA Examen Final. 14 de febrero del 2003. Grupo 104-A. Nombre: Conteste cuidadosamente el siguiente cuestionario, recuerde que sus respuestas deben ser exactas debido a que no existen medios puntos. No esta permitido hablar con sus compañeros por ningún motivo, si necesita algo consúltelo con el profesor. Dispone de 1 hora y 45 minutos para resolver el examen. Las preguntas 1 a 20 valen 0.25 puntos cada una. 1.- Si tenemos el siguiente prototipo de función int suma(int, int); significa que: a) No recibe datos, y va a sumar dos enteros c) Devuelve un entero y recibe dos enteros b) No lo se c) Es mejor sumar con el símbolo ‘+’ 2.- Si tenemos la siguiente declaración, char *archivo = “a:\\mistel.inf”; significa que: a) Queremos abrir un archivo b) Es una cadena constante apuntada por la variable archivo d) Quiero abrir un archivo en modo binario c) Quiero abrir un archivo en modo texto 3.- Si tengo la siguientes línea de código en C, puedo concluir que: fwrite(tienda, sizeof(PRODUCTO), N, fptr); a) Quiero guardar datos en un archivo binario c) Es mejor usar arreglos b) Tiene errores porque no deben usarse apuntadores d) Faltan datos 4.- PRODUCTO almacen[15]; significa: a) Tengo un arreglo que se llama almacen b) Es una cadena que contiene al carácter nulo con 15 productos c) El arreglo se llama parte y contiene cadenas d) Es un directorio 5.- break sirve para: a) Hacer menos entendible un programa b) Declarar un nuevo tipo de dato b) Nunca se usa d) Salir de un ciclo de repetición. 6.- Para abrir un archivo en modo de lectura y binario se necesita: a) fp = fopen(“a:\\miarch.txt”, “ab”); c) fp = fopen(“a:\\miarch.txt”, “w”); b) fp = fopen(“a:\\miarch.txt”, “rb”); d) No se puede 7.- Si queremos ingresar datos a una agenda telefónica, ¿cual de los dos siguientes métodos es el mejor? a) for(i = 0; i < TAM; i++){ b) for(i = 0; i < TAM; i++){ printf(“Nombre\n”); gets(directorio[i].nombre); printf(“Telefono\n”); gets(directorio[i].telefono); printf(“Nombre\n”); scanf(“%s”, directorio[i].nombre); printf(“Telefono\n”); scanf(“%s”, directorio[i].telefono); } } 8.- Si tengo las siguientes líneas de código, que puedo decir: int vocal(char L){ L = toupper(L); if (L == ‘A’ || L == ‘E’ || L == ‘I’ || L == ‘O’ || L == ‘U’ ) return 1; else return 0; } a) Es una función que busca una vocal c)Nos dice si una letra es vocal b) Convierte las vocales a mayúsculas d) Ninguna de las anteriores 9.- Una función es: a) Un subprograma o módulo c) Una cadena b) Un arreglo d) Una estructura 10.- Los tres conceptos relacionados con una función son: a) Secuenciales, Selectivas y de Repetición c) Los datos, el carácter nulo y los índices b) El prototipo, la llamada y la definición d) Ninguna de las anteriores 11.- El siguiente fragmento de código sirve para: while(!feof(fpo)){ leidos = fread(buffer, 1, BUF_TAM, fpo); fwrite (buffer, 1, leidos, fpd); } a) Copiar un arreglo c) Copia un archivo en otro en modo binario b) Reservar memoria dinámica d) Copia un archivo en otro en modo texto 12.- fflush se usa para: a) Una cadena c) Borrar la pantalla. b) Limpiar la memoria del teclado. d) El numero de cadenas en la línea de comandos 13.- Los parámetros por valor se distinguen de los parámetros por referencia en: a) Los primeros no alteran el valor de las variables c) En los segundos importa el orden b) No existe diferencia d) Ninguno de los anteriores 14.- Las partes del encabezado de una función son: a) El tamaño y las variables locales c) Las cadenas y las variables globales b) Valor que regresa, nombre y parámetros d) Las librerías y los parámetros 15.- Las tres estructuras de control en la programación estructurada son: a) Librerías, funciones y menús c) No existen dichas estructuras b) Las variables locales, los parámetros y los arreglos d) Secuenciales, Selectivas y de Repetición 16.- Los tipos simples de datos en C son: a) struct, sizeof, typedef c) int, char y float b) Los apuntadores, los arreglos y las cadenas d) Ninguno de los anteriores 17.- Para declarar una variable se necesita: a) Poner el tipo de dato y el nombre de la variable c) Poner el tipo, nombre y un numero entre [ ] b) Se usa la palabra struct y unas cadenas d) Poner el tipo, el nombre y unos ( ) vacios 18.- Para declarar un arreglo se necesita: a) Se usa la palabra struct y unas cadenas c) Valor que regresa, nombre y parámetros b) Poner el tipo, nombre y un numero entre [ ] d) La palabra void , nombre y parámetros 19.- Los formatos de las variables en printf y scanf son: a) int, char y float c) %d, %f, %s b) \n, \t, \b d) Ninguno de los anteriores 20.- La diferencia entre gets y scanf al leer cadenas es: a) No existe diferencia c) gets sirve para leer estructuras b) scanf se detiene al encontrar el primer espacio d) scanf también sirve para leer números Use las siguientes declaraciones en C para responder las preguntas de la 21 a la 25. typedef struct{ char descripcion[50]; int existencias; float precio; char clave[15]; }PRODUCTO; PRODUCTO almacen[100]; typedef struct{ char descripcion[50]; int cantidad; float precio_unitario; }VENTA; VENTA ticket[100]; 21.- Realice una función que dándole como dato la clave de un producto, busque los datos que correspondan a dicha clave(descripción, existencias y precio) y los imprima en la pantalla. (1 punto). 22.- Realice una función que guarde los datos del arreglo almacén en el archivo a:\datos.bin, los datos deben guardarse en modo binario. (1 punto). 23.- Realice una función que lea los datos del archivo a:\datos.bin y los guarde en el arreglo almacen. Los datos fueron guardados en modo binario. (1 punto). 24.- Realice una función que pidiendo como datos la clave de un producto y la cantidad a vender, verifique que se tienen suficientes existencias de dicho producto. (1 punto). 25.- Realice una función que habiendo guardado los datos de 15 ventas en el arreglo ticket, imprima en la pantalla lo siguiente: (1 punto). Cantidad Descripción P/U P/T 2 Manzanas 15.0 30.0 4 Arroz 8.0 32.0 SUBTOTAL 62.0 IVA 15% 9.30 TOTAL 71.30 NOTA: Lo anterior solo es un ejemplo de lo que tiene que imprimir en pantalla, los datos deberán tomarse del arreglo ticket. Rescate: ¿Cómo se llama el hijo del jefe Gorgory? La Ilusión despierta el empeño y solamente la paciencia lo termina. Anónimo