You are on page 1of 8

UNIVERSIDAD TECNOLGICA METROPOLITANA

FACULTAD DE INGENIERA Profesores: Mauro Castillo Valds


ESCUELA DE INFORMTICA Ayudantes: Macarena Cerda Mora
Cristina Andreani Vera

PRUEBA N 1 * INF 627 * PROGRAMACIN* 2010-2


Nombre:

Preguntas 1-8 : 4*BUENAS MALAS ; Pregunta 9 : 8 ; Preguntas 10 -11 : 10 c/u


1. Indique que hace el siguiente cdigo:
int main(){
int var1, var2, var3;
var1 = 3;
var2 = 4;
var3 = 10;
while(var1 < var3)
var1 = var1 + 2;
var2 = var2 + 2;
var3 = var1 + var2;
printf("Valor es %d\n",var3);
}
a. Ciclo infinito
b. Error de compilacin
c. imprime : Valor es 17
d. imprime : Valor es 23
e. Ninguna de los anteriores.

2. El siguiente cdigo en C, imprime:


int main(){
int A,B,C,D;
B = 5;
C = 14;
D = 8;
for(A=B; A<C || B>D; A++)
printf("VEZ \n");
}

a. nunca
b. VEZ (10 veces)
c. VEZ (9 veces)
d. VEZ (8 veces)
e. Ninguna de los anteriores:

3. El siguiente cdigo en C, imprime:


int main(){
int x = 2;
int y = 3;
int z = 6;
do{
printf("%d ",x);
x++;
}while(x>z && z>y);
}
a. 2
b. 2 3
c. 2 3 4
d. 2 3 4 5
e. Ninguna de las anteriores

1
UNIVERSIDAD TECNOLGICA METROPOLITANA
FACULTAD DE INGENIERA Profesores: Mauro Castillo Valds
ESCUELA DE INFORMTICA Ayudantes: Macarena Cerda Mora
Cristina Andreani Vera

4. Qu imprime el siguiente programa:


int main(){
int x = 2, y = 3, z = 6;
if(x > 0)
printf("UNO");
else
x++;
if(y < x || x != z)
printf("DOS");
else
if(y != z || x > 0)
printf("TRES");
else
printf("CUATRO");
}
a. UNO
b. DOS
c. TRES
d. CUATRO
e. Ninguna de las anteriores

5. Al ejecutar el siguiente cdigo en C, imprime:


int main(){
int t = 234;
int r = 204;
float x = 2.0;
x = x + t % r;
printf("%f\n",x);
}
a. 32.0
b. 4.0
c. 4.1
d. 32.2
e. Ninguna de las anteriores

6. Indique que imprime el siguiente cdigo de programa en C:


int main(){
int c = 0;
int r, num;
scanf("%d",&num); // siempre se ingresa nmero que no termine en cero
while(num != 0)
{
r = num / 10;
c++;
num = num % 10;
}
printf("%d\n",c);
}
a. cantidad de dgitos de num
b. suma de dgitos de num
c. siempre muestra 1
d. ciclo infinito para cualquier num
e. Ninguna de las anteriores.

2
UNIVERSIDAD TECNOLGICA METROPOLITANA
FACULTAD DE INGENIERA Profesores: Mauro Castillo Valds
ESCUELA DE INFORMTICA Ayudantes: Macarena Cerda Mora
Cristina Andreani Vera

7. Indique la forma y los datos que se imprimen:


int main()
{
int i,j;
for(i=0; i<10; i++)
{
for(j=i; j>0; j--)
printf("%d",i);
printf("\n");
}
}

8. Indique la forma y los datos que se imprimen:


int main()
{
int i,j;
int x = 5;
int k = x;
for(i=1; i<=x; i++)
{
for(j=1; j<k; j++)
printf("-");

for(j=i; j>=1; j--)


printf("%d",j);

for(j=2; j<=i; j++)


printf("%d",j);

for(j=1; j<k; j++)


printf("-");

printf("\n");
k--;
}
}

3
UNIVERSIDAD TECNOLGICA METROPOLITANA
FACULTAD DE INGENIERA Profesores: Mauro Castillo Valds
ESCUELA DE INFORMTICA Ayudantes: Macarena Cerda Mora
Cristina Andreani Vera

9. A partir del siguiente cdigo en C, indique que hace para un nmero A entero positivo
cualquiera:
int main()
{
int A, B, i, d, s, es;
printf("Ingrese A : ");
scanf("%d",&A);
s = 0;
i = 1;
B = 2;
while(i <= A)
{
d = 2;
es = 1;
while(d <= B/2 && es==1) Respuesta:
{
if(B % d == 0)
es = 0;
else
d++;
}
if(es==1)
{
printf("%d\n",B);
s = s + B;
i++;
}
B++;
}
printf("Total %d\n",s);
}

4
UNIVERSIDAD TECNOLGICA METROPOLITANA
FACULTAD DE INGENIERA Profesores: Mauro Castillo Valds
ESCUELA DE INFORMTICA Ayudantes: Macarena Cerda Mora
Cristina Andreani Vera

10. Escriba un programa en lenguaje C que permita leer un nmero entero positivo y permita
indicar si es o no Poderoso. Un nmero es poderoso si cumple que si un primo p es divisor
suyo entonces p2 tambin lo es.
Por ejemplo, N=36 es un nmero poderoso, ya que los nicos primos que son divisores:
son 2 y se cumple que 2*2 tambin es divisor
y el 3 y se cumple que 3*3 tambin es de 36.
Ejemplo N=45 no es poderoso, pues 3 es divisor primo y 3*3=9 tambin es divisor,
pero 5 es divisor primo y no cumple 5*5 sea un divisor

5
UNIVERSIDAD TECNOLGICA METROPOLITANA
FACULTAD DE INGENIERA Profesores: Mauro Castillo Valds
ESCUELA DE INFORMTICA Ayudantes: Macarena Cerda Mora
Cristina Andreani Vera

11. En una fabrica se tiene el registro de M productos, por cada producto se ingresa un
nmero con una cantidad indeterminada de dgitos (mayor que 3 dgitos). Los dgitos
representan la siguiente informacin:

- el primer dgito de la izquierda representa el tipo de producto


- los ltimos 2 dgitos de la derecha representan el material del producto
- los dgitos centrales representan la cantidad de unidades del producto
ejemplo: 2145 ==> tipo = 2; unidades = 1 y material = 45
ejemplo: 235412 ==> tipo = 2; unidades = 354 y material = 12

Se pide confeccionar un programa en C ansi, que permita:


a) Determinar cuntos productos de tipo 5 existen
b) Calcular el promedio de unidades de aquellos productos con material distintos a 25
c) Indicar el tipo mayor de aquellos productos que tengan ms de 99 unidades y sean
de material 28

6
UNIVERSIDAD TECNOLGICA METROPOLITANA
FACULTAD DE INGENIERA Profesores: Mauro Castillo Valds
ESCUELA DE INFORMTICA Ayudantes: Macarena Cerda Mora
Cristina Andreani Vera

PAUTA
1. c
2. c
3. a
4. e
5. a
6. d
7. se imprime:
1
22
333
4444
55555
666666
7777777
88888888
999999999

8. se imprime
----1----
---212---
--32123--
-4321234-
543212345

9. Imprime los A nmeros primos y entrega la suma total

10. poderoso
int main()
{
int N, d, es,cua,i;
printf("Ingrese N : ");
scanf("%d",&N);
d=2;
while(d <= N)
{
if(N % d == 0)
{
es=1;
i=2;
while(i<=d/2 && es)
{
if(d % i == 0)
es=0;
else
i++;
}
if(es)
{
cua = d*d;
if(N % cua == 0)
{
printf("Divisor primo : %d y cumple %d^2=% divisor\n",d,d,cua);

}
else
printf("divisor primo %d : NO CUMPLE\n",d);
}
}
d++;
}
}

7
UNIVERSIDAD TECNOLGICA METROPOLITANA
FACULTAD DE INGENIERA Profesores: Mauro Castillo Valds
ESCUELA DE INFORMTICA Ayudantes: Macarena Cerda Mora
Cristina Andreani Vera

11. fbrica
int main(){
int M, i, codigo, material, unidades, tipo, aux, con;
int suma, c, mayor;
float prom = 0.0;
printf("Ingrese cantidad de productos : ");
scanf("%d",&M);
con = 0;
suma = 0;
c = 0;
mayor = -1;
for(i=1; i<=M; i++)
{
printf("Cdigo : ");
scanf("%d",&codigo);
material = codigo % 100;
codigo = codigo / 100;
aux = 0;
while(codigo != 0)
{
aux = aux*10 + (codigo%10);
codigo = codigo / 10;
}
tipo = aux % 10;
aux = aux / 10;
unidades = 0;
while(aux != 0)
{
unidades = unidades*10 + (aux%10);
aux = aux / 10;
}

printf("material : %d\n",material);
printf("tipo : %d\n",tipo);
printf("unidades : %d\n",unidades);
if(tipo == 5)
con++;

if(material != 25)
{
suma = suma + unidades;
c++;
}

if(unidades > 99 && material == 28)


if(tipo > mayor)
mayor = tipo;
}
if(c != 0)
prom = (float) suma / c;
printf("Productos de tipo 5 : %d\n", con);
printf("Promedio de unidades : %f\n", prom);
if(mayor == -1)
printf("Tipo mayor NO existe\n");
else
printf("Tipo mayor : %d\n", mayor);
}

You might also like