getchar
, estructuras condicionalesLos ejercicios se deben hacer dentro de JSLinux, y con el editor de texto vi
.
printf
, variablesputchar
y código ASCII1 o 2 participantes.
Escribir un programa que use solamente la función putchar
(varias veces) y solo con constantes numéricas, usando el código ASCII, con salida:
Hola
[salto de línea]
Con la misma consigna, escribir otro programa cuya salida es:
:)
[salto de línea]
Con la misma consigna, escribir otro programa cuya salida es:
"Hola! \o/"
[salto de línea]
1 o 2 participantes.
Usando las funciones printf
y putchar
, escribir un programa padre.c
que imprime exactamente el programa siguiente:
main(){
printf("Hola!\n");
}
Hay varias formas de conseguir el mismo resultado.
Comprobar que la salida generada es correcta de la manera siguiente:
tcc -run padre.c > hijo.c
tcc -run hijo.c
El primer comando toma la salida de la ejecución de padre.c
y la guarda en un archivo nuevo hijo.c
. El segundo comando ejecuta el programa hijo.c
.
printf
1 o 2 participantes.
En cada caso, ¿cuál es la cadena de carácteres impresa?
printf("bo%ca", 't');
printf("pa%sta", "l");
printf("%src%c", "cha", 'o');
printf("c%cc%sr%cl%c", 'o', "od", 'i', 'o');
Escribir un programa que tenga la salida siguiente, con un solo uso de la función printf
y usando sustitución de carácteres para mostrar las comillas (con el carácter de conversión %c
):
"Hola"[salto de línea]
char *
1 o 2 participantes.
Consideramos el programa siguiente:
main(){
printf("Hey!\n");
}
Modificarlo (pero manteniendo su salida) para que la línea del printf
sea como sigue:
printf(mensaje);
Para eso, declarar una variable nueva de tipo char *
y de nombre mensaje
.
Consideramos el programa queen.c
siguiente:
main(){
printf("%s all,%s all, %s all,and %s now\n",
"I want it", "I want it", "I want it", "I want it");
}
"I want it"
aparezca una sola vez en el código. Para eso definir una variable nueva.printf
no tenga ninguna constante cadena de caracteres.getchar
, condiciones, variables enterasgetchar
, comparaciones y estructuras condicionales1 o 2 participantes.
Escribir un progama que pida al usuario un carácter, luego si el carácter es 'a'
imprime “Hola!”, sino imprime “Buen dia.”, y luego imprime (en todos casos) “Adios!”.
Escribir un programa que imprima primero “Ingrese una letra, mayuscula o minuscula”. Pedir un carácter con getchar
. Luego, usando un solo operador relacional, si el carácter es una mayúscula imprimir “Es una mayuscula!”, sino es imprimir “Es una minúscula!”. (Estamos suponiendo que el usuario ingresa o una mayúscula o una minúscula, ninguna otra cosa).
1 o 2 participantes.
Escribir un programa que pida al usuario un carácter. Si el carácter es 'a'
, 'e'
, 'i'
, 'o'
o 'u'
, imprime “Es una vocal minuscula.”, sino, imprime “No es una vocal minuscula”.
Escribir un programa que imprime primero “Ingrese un numero, o una letra mayuscula o minuscula.”. Luego, pida al usuario un carácter. Si es un número, imprimir “Es un número!”. Si no, si es una letra mayuscula imprimir “Es una letra mayuscula!”. Sino, si es una letra minuscula imprimir “Es una letra minuscula!”. Sino, imprimir “No se lo que es!”. (Ahora estamos suponiendo que el usuario puede ingresar cualquier carácter.) Para cada condición usar el operador lógico &&
y operadores relacionales para comprobar que el carácter dado es parte de un rango de carácteres.
scanf
, estructuras condicionales anidadas1 o 2 participantes.
Crear un programa llamado scanf.c
con el contenido siguiente:
main(){
int entero;
printf("Ingrese un entero y tipee ENTER.\n");
scanf("%d", &entero);
printf("El entero es %d.\n");
}
En la llamada a la función scanf
, observar el uso del operador &
.
Agregar una estructura condicional tal que si el número ingresado es estrictamente mayor a 100, se imprime “Este numero es mayor a 100.”, sino se imprime “Este numero es menor que 100”.
Solo en el caso que el número es mayor que 100, agregar una estructura condicional tal que si el número es par, se imprime “Este numero es par.” , sino se imprime “Este número es impar.”
De 1 a 3 participantes.
main
: argc
1 o 2 participantes.
Hacer lo siguiente en un programa llamado argc.c
.
Escribir así el esqueleto de su programa:
Mostrar el valor del entero argc
usando printf
. argc
representa la cantidad de parametros que recibe el ejecutable. Probar de las siguientes maneras:
O si compilan el programa con tcc argc.c
:
Estamos variando la cantidad de argumentos que le pasamos a nuestro programa. Podemos ver que el valor de la variable argc
cambia en función de eso.
Agregar al programa lo necesario para que imprima “No diste ningun argumento.” si no se dio ningun argumento al programa, sino, “Diste 1 argumento” si se dio un argumento, sino “Diste x argumentos” (con “x” reemplazado por el número, y la palabra “argumentos” en plural) si se dio 2 o más argumentos.
Este programa ya es un poco más largo que el resto, ¿no?
Para descargarlo desde JSLinux, hacer lo siguiente desde la línea de comandos:
&
, mostrar las direcciones en memoria de las variables1 o 2 participantes.
Crear un programa llamado direccion.c
. Declarar una variable de tipo char
con nombre c
, y otra de tipo int
con nombre x
, sin asignarles valores iniciales. Mostrar su dirección en memoria, usando printf
, el especificador de conversión %p
y el operador &
.
Ejecutar el programa varias veces y observar la salida.