Sei sulla pagina 1di 13

Instituto de Formacin Tcnica Superior N 18

Mansilla 3643 (C1425BBW), Ciudad Autnoma de Buenos Aires


Tcnico Superior en Anlisis de Sistemas
Gua N0
Asignatura:
Paradigmas de Programacin
Autor:
Leandro E. Colombo Via
ltima modicacin:
21 de agosto de 2013
Resumen
Este apunte es una gua de auto estudio de algunos conceptos bsicos sobre el
Lenguaje de Programacin C que son interesantes que los alumnos dominen.
La realizacin de la presente gua no es de caracter obligatoria pero s es reco-
mendable. Aborda conceptos bsicos que se vieron en asignaturas anteriores y
tambin otros nuevos que se pueden encontrar rpidamente en Internet y en la
bibliografa sugerida de la materia.
La intencin del presente trabajo es fortalecer los conocimientos que el
alumno necesita para abordar la materia de mejor manera. Y as sentirse ms
conado con los saberes y por ende rendir mejor en la misma.
ndice general
1. Preguntas 2
1.1. Sobre el Lenguaje C y su entorno . . . . . . . . . . . . . . . . . . 2
2. Ejercicios 5
2.1. Entendiendo el cdigo . . . . . . . . . . . . . . . . . . . . . . . . 5
1
Captulo 1
Preguntas
1.1. Sobre el Lenguaje C y su entorno
1. Si quiero darle a alguien un programa que escrib, qu archivos debo
darle?
2. Despus de haber creado un archivo ejecutable, necesito guargar el ar-
chivo fuente (.C) y el archivo objeto (.o .Obj)?
3. Si mi compilador viene con un editor, tengo que usarlo?
4. Puedo ignorar los mensajes de advertencia?
5. Qu hace el compilador?
6. Cules son los pasos en el ciclo de desarrollo de programa?
7. Qu extensin se debe usar para los archivos fuente del C?
8. Si se ejecuta un programa que se ha compilado y no funciona como espe-
raba, qu se debe hacer?
9. Qu es lenguaje de mquina?
10. Qu hace el enlazador?
11. Qu efecto tienen los comentarios en un programa?
12. Cul es la diferencia entre un enunciado y un bloque?
13. Cmo se llama a un grupo de uno o ms enunciados del C encerrados
entre llaves?
14. Cul es el nico componente obligatorio de todo programa en C?
15. Cmo se aaden comentarios al programa y para qu se usan?
16. Qu es una funcin?
17. El lenguaje C proporciona dos tipos de funciones. Qu son y cmo se
diferencian?
2
18. Para qu se usa la directiva #include?
19. Se pueden anidar los comentarios?
20. Los comentarios pueden ser ms grandes que una lnea?
21. Qu es un archivo de inclusin o de cabecera?
22. Qu pasa si asigno un nmero con decimal a una variable entera?
23. Qu pasa si pongo un nmero muy grande como para guardarlo en la
variable asignada?
24. Qu pasa si pongo un nmero negativo en una variable sin signo?
25. Con qu caracteres podemos asignar nombres a las variables?
26. Cul es la diferencia entre una constante simblica y una literal?
27. Qu efecto tienen los espacios y las lneas en blanco en la ejecucin del
programa?
28. Cul es la diferencia entre operadores unarios y binarios?
29. Qu es una expresin?
30. En una expresin que tiene varios operadores, qu determina el orden en
que se ejecutan las operaciones?
31. Si la variable x tiene el valor de 10, cules son los valores de x y de
a despus de cada uno de los siguientes enunciados si se los ejecuta por
separado?
a) a = x++;
b) a = ++x;
32. Cul es el resultado de la expresin 10 %3?
33. Cul es el resultado de la expresin 5 + 3 * 8 / 2?
34. Reescriba la expresin anterior utilizando parntesis de manera tal que d
como resultado 32.
35. Si una expresin evala falso, qu valor numrico tiene esa expresin?
36. Qu operador tiene mayor precedencia?
a) == o <
b) * o +
c) != o ==
d) >= o >
37. Tiene que ser la funcin main() la primer funcin escrita en el cdigo
fuente?
38. Est usando lo que se conoce como programacin estructurada cuando
escribe sus programas en C?
3
39. Cul debe ser la primera lnea de una denicin de funcin qu informa-
cin contiene?
40. Qu tantos valores puede regresar una funcin?
41. Si una funcin no regresa un valor, con qu tipo debe ser declarada?
42. Cul es la diferencia entre una denicin de funcin y un prototipo de
funcin?
43. Qu es una variable local?
44. Cmo s que enunciado de control de programa debo usar, el for, el
while o el do-while?
45. A qu tanta profundidad puedo anidar mis ciclos?
46. Puedo anidar diferentes comandos de ciclos?
47. Cul es el valor del ndice del primer elemento de un arreglo?
48. Cul es la diferencia entre un enunciado for y un enunciado while?
49. Cul es la diferencia entre un enunciado while y un enunciado do-while?
50. Es cierto que un enunciado while puede ser usado y obtener los mismos
resultados que al codicar con un enunciado for?
51. Puede un enunciado while anidarse en un enunciado do-while?
52. Por qu debo usar puts() si printf() puede hacer lo mismo y ms?
53. Qu pasa si no pongo el operador & en una variable de scanf()?
54. Qu archivo de encabezado se debe incluir cuando se usa printf()?
55. Qu hacen las siguiente secuencias de escape?
a) \\
b) \b
c) \n
d) \t
e) \a
56. Qu especicadores de conversin se deben utilizar si se quiere imprimir
lo siguiente?
a) Una cadena.
b) Un entero decimal con signo.
c) Un nmero decimal de punto otante.
57. Cul es la diferencia entre usar cada uno de los siguientes en el texto
literal de puts()?
a) b
b) \b
c) \
d) \\
4
Captulo 2
Ejercicios
2.1. Entendiendo el cdigo
1. Iznogud Bagdad Milyunanoches ha preparado el siguiente programa, y se
lo presenta a usted para que se lo revise. A ver si puede darle una mano.
1 include stdio.h
2 main{} /* Escribe los dias de la semana /*
3 (
4 int d
5 d := 9
6 print(Hay d dias en una semana.);
2. Indicar cul sera la salida de cada una de las siguientes sentencias, supo-
niendo que forman parte de un programa completo:
a) printf(Yo tenia una ovejita Lucera.");
printf ("Que de campanitas yo le he hecho un collar.\n");
b) printf(Parate, oh Sol\n Yo te saludo!");
c) printf (Cuan gritan\esos/nmalditos\n");
d) int num;
num = 2;
printf (" %d + %d = %d", num, num, num + num);
3. Escriba un programa que imprima su nombre.
4. Escriba un programa que escriba su nombre y direccin, utilizando tres o
ms lneas.
5. Escriba un programa que convierta su edad de aos a das. Por el momento,
no se preocupe de fracciones de aos y de aos bisiestos.
6. Realizar un programa para leer dos valores A y B, calcular su suma S e
imprimirla
7. Realizar un programa para leer dos valores A y B y si A es mayor a B
calcular su suma S en caso contrario su diferencia D = B A; Imprimir D
S segn corresponda .
5
8. Realizar un programa que permita ingresar dos nmeros enteros A y B e
imprima un texto que indique si la resta del primero menos el segundo es
positiva, negativa o cero.
9. Realizar un programa que permita ingresar cinco nmeros en cinco regis-
tros diferentes e imprimir aquellos valores mayores al primero.
10. Realizar un programa en el que se ingresen los tres lados A, B y C de un
tringulo y se imprima una leyenda indicando si es ESCALENO, ISOS-
CELES EQUILATERO.
11. Realizar un programa que determine el rea y el permetro de un crculo
a partir del radio.
12. Realizar un programa que permita ingresar 5 nmeros y que al nalizar
imprima el mayor valor.
13. El siguiente programa presenta un error. Tecleelo en el editor y complelo.
Qu lnea genera mensaje de error? Por qu? Cmo se soluciona?
1 #include<stdio.h>
2 main();
3 {
4 printf("Segui buscando! ");
5 printf("Ya lo vas a encontrar...");
6 return 0;
7 }
14. Busque los errores en el siguiente cdigo fuente:
1 #include <stdio.h>
2 main()
3 {
4 printf("Este es un programa que tiene");
5 do_it("problema");
6 return 0;
7 }
15. Busque los errores en el siguiente cdigo fuente:
1 #include <stdio.h>
2 define B farol
3 define X 10
4 main ( )
5 {
6 int edad;
7 char nombre;
8 printf ("Introduzca su nombre.");
9 scanf ("%s", nombre);
10 printf ("Muy bien, %c, que edad tienes?\n",nombre);
11 scanf ("%f", edad);
12 xp = edad + X;
13 printf ("Eso es un %s! Por lo menos tienes %d.\n", B, xp);
14 }
6
16. Busque los errores en el siguiente cdigo fuente:
1 #include <stdio.h>
2 main ( )
3 {
4 int i = 1,
5 float n;
6 printf ("Ojo, que va una lista de fracciones! \n")
7 while (i < 30)
8 n = 1 / i;
9 printf (" %f", n);
10 printf ("Eso es todo, amigos!\n");
11 }
17. Qu hace el siguiente programa?
1 #include<stdio.h>
2 int x,y;main(){ printf(
3 "\nIngrese dos numeros");scanf(
4 "%d%d", &x&y); printf(
5 "\n\n%d es mas grande", (x>y)?x:y); return 0;}
18. Cambie la lnea que contiene el printf() por la siguiente: printf ( %c",
1 ); Qu sucede y por qu?
19. Escriba el programa ms pequeo posible.
20. Qu tipo de variable sera ms adecuado para guardar los siguientes va-
lores?
a) La edad de una persona redondeada a aos.
b) El peso de una persona en gramos.
c) El radio de un crculo.
d) El salario anual.
e) El costo de algo.
f ) La calicacin mxima de un exmen (Suponga siempre 100).
g) La temperatura.
h) El valor neto de una cosa.
i) La distancia a una estrella, en kilmetros.
21. Determine nombres vlidos para las variables del ejercicio anterior.
22. Escriba las declaraciones para las variables nombradas del ejercicio ante-
rior.
23. Cules de los siguientes nombres de variables son nombres vlidos en C?
a) 123variable
b) x
c) anotacin_total
7
d) Peso_en_#s
e) uno
f ) costo-bruto
g) RADIO
h) Radio
i) radio
j) sta_es_una_variable_para_guardar_el_ancho_de_una_caja
24. El siguiente cdigo no est bien escrito. Teclelo y complelo a ver si fun-
ciona:
1 #include<stdio.h>
2 int x,y;main(){ printf(
3 "\nIngrese dos numeros");scanf(
4 "%d%d", &x&y); printf(
5 "\n\n%d es mas grande", (x>y)?x:y); return 0;}
25. Vuelva a escribir el cdigo del ejercicio anterior de forma que sea ms
legible.
26. Modique el siguiente programa para que en vez de listar en forma des-
cendente lo haga en forma ascendente:
1 #include <stdio.h>
2 int a, b;
3 main()
4 {
5 a = b = 5;
6 printf("\nEl valor de \"a\" = %d y el de \"b\" = %d", a, b);
7 printf("\nEl valor de \"a\" = %d y el de \"b\" = %d", a--, --b);
8 printf("\nEl valor de \"a\" = %d y el de \"b\" = %d", a--, --b);
9 printf("\nEl valor de \"a\" = %d y el de \"b\" = %d", a--, --b);
10 printf("\nEl valor de \"a\" = %d y el de \"b\" = %d", a--, --b);
11 printf("\nEl valor de \"a\" = %d y el de \"b\" = %d", a--, --b);
12 printf("\n");
13 return 0;
14 }
27. Si x = 4, y = 6 y z = 2, determine si cada uno de los siguientes enuncia-
dos evala verdadero o falso:
a) if (x == 4)
b) if (x != y z)
c) if (z = 1)
d) if (y)
28. Escriba un programa que determine segn la edad de la persona si es
legalmente mayor de edad (18 aos) pero no un jubilado (65 aos).
8
29. Componga el siguiente programa para que funcione correctamente
1 #include<stdio.h>
2 int x = 1:
3 main()
4 {
5 if(x = 1) ;
6 printf ("x es igual a 1");
7 otherwhise
8 printf ("x no es igual a 1");
9 return
10 }
30. Escriba un encabezado para una funcin llamada hazlo(), que tome tres
variables de tipo char y regrese un tipo float al programa que la llama.
31. Escriba un encabezado para una funcin llamada imprime_un_numero(),
que tome un slo argumento del tipo int y no devuelva nada.
32. Qu tipo de valores regresan las siguientes funciones?
a) int imprime_error(float num_error);
b) long lee_registro(int num_reg , int longitud);
33. Escriba una funcin que reciba dos nmeros como argumentos y devuelva
el valor de su producto.
34. Escriba una funcin que reciba dos nmeros como argumentos. La fun-
cin debe dividir el primer nmero entre el segundo. No divida cuando el
segundo nmero sea cero.
35. Escriba una funcin que llame a las dos funciones anteriormente escritas.
36. Escriba un programa que use una funcin para encontrar el promedio de
cinco nmeros ingresados por el usuario.
37. Escriba una funcin recursiva que calcule las potencias de 2. Es decir, si
se le pasa el valor 4 a la funcin, sta debe devolver el valor 16.
38. Qu error tenemos en el siguiente cdigo fuente?
1 #include<stdio.h>
2 void print_msg ( void );
3 main()
4 {
5 print_msg ("Este es un mensaje a imprimir");
6 }
7 void print_msg ( void )
8 {
9 puts ("Este es un mensaje a imprimir");
10 return 0;
11 }
9
39. Qu error tenemos en la denicin de la siguiente funcin?
1 int twice (int y);
2 {
3 return (2 * y);
4 }
40. Escriba una declaracin para un arreglo que guarde 50 valores de tipo
long.
41. Escriba el enunciado que asigne el valor 123.456 al quincuagsimo elemento
del arreglo del ejercicio anterior.
42. Cul es el valor de x luego de que termina el ciclo for?
for ( x = 0 ; x <100 ; x++ );
43. Cul es el valor de contador luego de que termina el siguiente enunciado?
for ( contador = 2 ; contador <10 ; contador += 3 );
44. Qu tantas X imprime lo siguiente?
for ( x = 0 ; x <10 ; x++ )
for ( y = 5 ; y >0 ; y )
puts (X);
45. Escriba un enunciado for que cuente de 1 a 100 en incrementos de 3.
46. Escriba un enunciado while que cuente de 1 a 100 en incrementos de 3.
47. Escriba un enunciado do-while que cuente de 1 a 100 en incrementos de
3.
48. Qu est equivocado en el siguiente fragmento de cdigo?
1 record = 0;
2 while(record < 100)
3 {
4 printf ("\nRecord %d", record);
5 printf ("\nGetting next number...");
6 }
49. Qu est equivocado en el siguiente fragmento de cdigo? (MAXVALUE no
es el error)
for (counter = 1 ; counter <MAXVALUE ; counter++);
printf ("\nCounter = %d", counter);
50. Escriba un enunciado que imprima una nueva lnea con printf() y otro
con puts().
10
51. Escriba los enunciados para obtener un valor entero e imprimirlo.
52. Modique el programa anterior para que slo acepte valores pares.
53. Escriba un programa que ingrese 6 valores o hasta que se teclee 99. Utilice
un arreglo para guardar los valores. Imprmalos en una lista en pantalla.
54. Modique el programa anterior para que los valores se listen en una nica
lnea con tabulaciones para separar los valores.
55. Encuentre el error:
printf (Jack said, Peter Piper picked a peck of pickled
peppers.);
56. Encuentre el error en el siguiente cdigo:
1 int get_1_or_2 (void)
2 {
3 int answer = 0;
4 while(answer < 1 || answer > 2)
5 {
6 printf (Enter 1 for YES, 2 for NO);
7 scanf("%f", answer);
8 }
9 }
57. Escriba un programa que reciba 10 valores y luego devuelva su suma.
58. Modique el programa anterior para que el ingreso de valores termine
cuando se ingresa un cero y luego imprima los valores mximos y mnimos
del arreglo.
59. Escriba un programa que le permita ingresar la hora y los minutos del
da (en formato de 24hs) y devuelva cuntos minutos pasaron de la hora
00:00.
60. Escriba un programa que permita al usuario ingresar su nombre y su peso
y el programa devuelva el equivalente del peso en libras (Use un arrreglo
para el nombre).
11

Potrebbero piacerti anche