Sistema Administrativo
Ministerio del Poder Popular Para la Educación Universitaria
“Colegio Universitario de Caracas”
Barinas Estado Barinas.
Integrante:
Rojas Rosa C.I: 15.462.914
BARINAS, MARZO DEL 2012
EJERCICIO 1
//Ejemplo 10.1
//Obtener el valor y la dirección de una variable.#include <stdio.h>
void main()
{
int n =75;
printf ( "n = %d\n" ,n); // visualiza el valor de n
printf ("&n = %p\n",&n); // visualiza dirección de n
}
EJERCICIO 2
//El tipo de variable que almacena una dirección se denomina puntero.
//Ejemplo 10.2
#include <stdio.h>
void main()
{
int n=75;
int* p=&n; // p variable puntero, tiene dirección de n
printf("n =%d, &n =%p, p=%p\n",n,&n,p);
printf("&p= %p\n",&p);
}
EJERCICIO 3
//El listado del siguiente programa muestra el concepto de creación, inicialización e indirección de
//una variable puntero.
#include <stdio.h>
char c; // * variable global de tipo carácter*/
int main()
{
char *pc; // * un puntero a una variable carácter*/
pc = &c;
//int A=1;
//int Z=3;int e;
for (c='A'; c<='Z'; c++);
return 0;
printf ("%e",*pc) ;
}
EJERCICIO 4
/*El programa utiliza un puntero para la función que cuenta los caracteres de la cadena.
Además, utiliza la aritmética de punteros para indexar los caracteres. El bucle termina cuando llega al
último carácter, que es el delimitador de una cadena: \ O.*/
#include <stdio.h>
int longitud(const char*);void main()
{
static char cad[] = "Universidad Pontificia";
printf ("La longitud de %s es %d cdracteres\n",
cad, longitud (cad) ) ;
}
int longitud(const char *cad)
{
int cuenta = 0;
while (*cad++) cuenta++;
return cuenta;
}
EJERCICIO 5
/*El programa siguiente muestra la función funcsuma, que utiliza la función f en un caso para
inversos y en otro para cuadrados.*/
#include<stdio.h>
/* prototipos de funciones */
double inversos (int k) ;
double cuadrados(int k);
double funcsuma(int n, double (*f)(int k) ) ;
int main()
{
printf("Suma de cinco inversos: %.31f\n",funcsuma(5,inversos));
printf("Suma de tres cuadrados: %.31f\n",funcsuma(3,cuadrados));
return 0;
}
double funcsuma(int n, double (*f) (int k))
{
double s =0;
int i;
for (i= 1; i<=n; i++)return s;
s+=f(i);
}
double inversos (int k)
{
return 1.0/k;
}
double cuadrados (int k)
{
return (double)k *k;
}
EJERCICIO 6
//Ejemplo 11.1
/*En el siguiente ejemplo se lee una línea de caracteres, se reserva memoria para un buffer de tantos caracteres como los leídos y se copia en el buffer la cadena.*/
#include <stdio.h>
#include <string.h> /* por el uso de strcpyo*/
#include <stdlib.h>
void main()
{
char cad[80],*ptr;
int lon;
puts ("\nIntroduce una linea de texto:");
gets (cad) ;
lon = strlen(cad);
ptr = ((char*)malloc((lon+1) *sizeof (char)));
strcpy (ptr, cad) ; /* copia cad a nueva área de memoria*/
printf ("ptr = %s",ptr) ; /* cad está ahora en ptr */
free (ptr) ; /* libera memoria de ptr
apuntada por ptr */
}
EJERCICIO 7/*Ejemplo 11.2
El programa TESTMEM comprueba la cantidad de memoria que se puede asignar dinúmicamente (estú
disponible). Para ello se llama a malloc ( ) , solicitando en cada llamada 1.000 bytes de memoria.
*/
#include <stdio.h>
#include <stdlib.h>
int main()
//TESTMEM: programa para determinar memoria libre.
{
void *p;
int i;
long m=0;
for (i=1; i<=100; i++)
{
p =malloc(1000);
if (p == NULL) break;
m+=1000;
}
printf ("\nTotal de memoria asignada %d\n",m);
return 0;
}
EJERCICIO 8
//Ejemplo 11.3
/* matriz de n filas y cada fila de un número variable de elementos */
#include <stdio.h>
#include <stdlib.h>
int main()
{
int **p;
int n,m,i;
do {
printf ("\n Numero de filas: ");
scanf ("%d",&n);
} while (n<=0);
p = (int**)...
Regístrate para leer el documento completo.