Está en la página 1de 3

DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

EXAMEN DE: PROGRAMACION


FORMA A

PERÍODO: Oct 2022 – Mar 2023 PARCIAL: Tercero

NOMBRE: Maria Jose Almendariz CURSO (NRC): 8450

CARRERA: Comercio Exterior FECHA: 01/03/2023

INDICACIONES GENERALES:
 La prueba es personal y no se permite intercambiar información con sus compañeros,
Dispone de 120 min

PARTE TEÓRICA: SELECCIONE LA RESPUESTA CORRECTA (En el programa


que desarrollará en la parte práctica en lenguaje C ubique como comentario al
inicio del programa y escriba únicamente la respuesta de cada literal)

Pregunta 1
La función:
int fun(int *x, int nmax)
{ int i=0,j=0;
for (i=1; i<nmax; i++)
if ( *(x+i)>*(x+j) ) j=i;
return (j);
}
01) Retorna el valor de x[i].
02) Retorna el valor de x[j].
03) Retorna la posición del mayor elemento del array x.
04) Retorna el valor del mayor elemento del array x.

Pregunta 2
¿Qué imprime el siguiente programa?
Struct producto_t
{
char nombre[40];
int cantidad;
float precio;
};
void funcion1(producto_t x)
{
strcpy(x.nombre,"LAPIZ");
x.cantidad++;
x.precio/=2;
}
void funcion2(producto_t *x)
{
x->nombre[0]='T';

Página 1
x->cantidad++;
x->precio/=2;
}
void main()
{
producto_t dato={"Borrador", 19, 2.0};
funcion1(dato);
funcion2(&dato);
printf("%s %d %.2f\n", dato.nombre, dato.cantidad, dato.precio);
}
01) Borrador 19 2.00
02) LAPIZ 20 1.00
03) TAPIZ 21 0.50
04) Torrador 20 1.00

Pregunta 3
Suponiendo que se ha declarado: FILE *pf;
Indique qué instrucciones son correctas para abrir el fichero datos.dat para añadirle nuevos
valores al final.
01) if (pf=fopen("datos.dat","a")) { puts("error"); exit(0); }
02) char nom[ ]="datos.dat";
if (!(pf=fopen(nom,"w")) { puts("error"); exit(0); }
03) char nom[ ]="datos.dat", x[ ]="a";
if (!(pf=fopen(nom,x)) { puts("error"); exit(0); }
04) char *nom="datos.dat";
if (!(pf=fopen(&nom[0],"a")) { puts("error"); exit(0); }

Pregunta 4

Con la siguiente declaración: int x[ ]={3,2,8,7,5}, *p=x;


01) La instrucción printf("%d", *x+3); imprime 6
02) La instrucción printf("%d", (*x)++); imprime 4
04) La instrucción printf("%d", *(x+3)); imprime 10
08) La instrucción printf("%d", *p++); imprime 4

Pregunta 5

Escoja la instrucción correcta para leer el valor que tiene la matriz en la segunda fila, tercer columna y
se asigna a la variable dato
[0] [1] [2] [3 ][4]
[0] 6 8 10 2 9
[1] 1 2 3 4 5
[2] 6 7 8 9 10
A. int dato=M[2][1];
B. int dato=M[3][2];
C. int dato=M[2][3];
D. int dato=M[1][2];

Página 2
PARTE PRÁCTICA
En el programa que desarrollará en lenguaje C, coloque como comentario al
inicio la respuesta de la parte TEÓRICA

Una empresa bancaria trabaja con mensajes, los cuáles se encuentran cifrados
(mensajes que no se pueden leerlos), la empresa le contrata a usted, para que le
realice una aplicación en lenguaje C que permita descifrar dichos mensajes, el
método para descifrar es el siguiente:

 Cada palabra del mensaje esta invertida. Ejemplo: HOLA ALOH


 Cada palabra en el mensaje está separada por un espacio en blanco
 Las vocales están reemplazadas por números:
o La vocal a por 5
o La vocal e por 4
o La vocal i por 3
o La vocal o por 2
o La vocal u por 1

Ejemplo: HoLA equivale a 5L2H

 No existen diferencias entre mayúsculas y minúsculas.


 Realizar una función para el ingreso del mensaje cifrado.
 Realizar una o varias funciones para mostrar el mensaje enviado (descifrar el
mensaje).
 Una vez descifrado el mensaje, mostrar cual es la palabra con mayor número
de caracteres y cuantos caracteres tiene la misma.
 No se acepta la aplicación sin crear funciones.

Una posible salida es la siguiente:

Ingrese el mensaje a descifrar: Y2h s2mec5h l4 23bm5cr4tn3 l4d 2r4n3d

El mensaje es: Hoy hacemos el intercambio del dinero

La palabra con mayor número de caracteres es: intercambio y tiene 11 caracteres.

Página 3

También podría gustarte