IT-7-ACM-02-R02 ! ! ! ! ! ! ! ! ! ! UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA Tipo de examen: ordinario Nombre de la materia: Lenguaje ANSI-C Semestre: 2o Academia: Programación Instrucciones: Conteste correctamente los siguientes cuestionamientos. Se permite el uso de un diccionario y de una tarjeta de referencia ANSI-C (ambos impresos, de una pieza, sin anotaciones agregadas) — no se permite compartir materiales. Se contesta por escrito a mano. Favor de indicar su número de matrı́cula en la esquina derecha superior de cada hoja; indicar el número total de hojas y el número de la hoja particular debajo del número de matrı́cula. No incluir su nombre ni ningún otro dato aparte de lo solicitado. Se otorga por máximo un punto por pregunta. Las preguntas (m) corresponden a la unidad temática 3. Modularidad y las (a) corresponden a la 4. Almacenaje. El resto del examen es en inglés ya que el grupo se imparte en inglés. Explain the functionality of the indicated lines of code (the number in the comment being the number of the question) within the following ANSI-C program. Each ... indicates that a whole block of code is omitted. #define X 4 ... typedef struct exa { double v; } ex; int cmp(const void*, const void*); int fx(int*, int); int fy(int*, int); ... int main(int c, char** v) { unsigned int t = 0; int n, *d, *q; char *f, *s; ex z, y, *x; FILE* i; int(*u)(int*, int); ... *q *= n; // 1 (a) ... while (s[n] != ’\0’) { // 2 (a) n++; } x = (y.v > z.v) ? &y : &z; // 3 (m) d = (int*)malloc(sizeof(int) * n); // 4 (a) ... qsort(d, n, sizeof(int), cmp); // 5 (m) ... free(d); // 6 (a) switch (getchar()) { // 7 (m) case ’r’: // 8 (m) t |= X; // 9 (m) break; ... } n = atoi(v[1]); // 10 (a) f = v[n]; // 11 (a) i = fopen(f, "r"); // 12 (a) if (i != NULL) { // 13 (a) while (!feof(i)) { // 14 (a) ... } fclose(i); // 15 (a) } u = (n % 2) ? fx : fy; // 16 (m) u(d, n); // 17 (m) ... } Fin del examen. REVISIÓN No.: 6 VIGENTE A PARTIR DE: 16 de Octubre del 2014