Sei sulla pagina 1di 10

; )!:L\F(':\\']F.

~~':

,tX~

1'\.'\;'1]""

' r"'~"","';'
:.

nI )1, .'\t' ('jh1.\T 11',\

nI-: I'H()(;nA;\1..\(:c.:
.ILN!O l\Hl2
.

:::.

- ::::.

01) Spo:-,iendo qUB pUh y aux BO'"1rAlntF:)~.? 8St.rUCtl.H,",.,(::'3tipo struct P CQrres::.cwdienles .I


u,'\.=.1
hs1a f'.nhzacJa, si se quiere borrar el e[erneillo situado dos estructuras por de;am8 de 1""
e..$,~uctura ap'jntada pu' 0\ pufl1wo pun, ilidlcar qu segmentos de pr'~'-gmrm'. S'J)"]viFdD:O:,

s\rucl p
{ char dato{20]; struci p 'sig;

};

()1i ptm=<o-2'(pun->sig): !~Be{pun);


02} pur.==pun->~;iq; 3UX=Pur\ pun=pu;'l-.:>sig; 2ux->sjg=pw)-~'si~J: tree(uun):
04) pufl""pun..>si;j; pun=plm->SIQ; au):=plJn->sig; 'pl1n=-pun->s;g; fr>.e(:3lJ>:):
06) pun",,2, (c;U;->:;;9); u>:=pun->sig: 'pun='pun->sig;
;.'ee(aux);

R Sr UE TA
'

,t:~

'---
j
I
! r

C'

'!

'Ol!..'?'
,
;

o, I

Ut1

I
: ,.._J

- ----. -

---

-"

'---'

N"'

'

""--"---"'-'

,--

---,-

arbo! birlado de bsqu?de 1>.51


construido con CSlruc1urasde este tipo:

struct !'IOdo

{ slruct nodo 'iz; int num; struct nodo 'de; }


[1 Hbol ha sido creado a partir de los sJguientes datos: 1'0,5,15,14,8.1,18.9,4'0,21,14
( ue imprimir la funcin fun( ) suponie"dD que es lIaro-adacon 3 rmccKin corresf ondientc ~~
nodo CUY.0
campo num vaJH1S?
void fun(struct nodo 'p)
{ if (p!"'NULL) { iun(p->iz); Tun(p->de); printf{"%ct ":p->num); } }
01) 1<1 12 21 20 18 15
02) 1512 14 182021
i')4) 14 21 12 20 ;6 ~5
08)12141~)16\JQ21
'
P I't::
, C-'- ,1[-".STA
.,

""~

---!"-j
I/

'

IO I
;

1.

'- ._,_!

'
,;
~J

0'3) Ai~~r(;~llareste-;;:-Ogra~';l~.:--

-' '
c- e

-.

yoid fun(void);
rnain( }
{ tun(); }
void fun(void)
{ char e;
c~gelcharO;
it(c!='n') tunO;
c=c-'a'+'A';
putc:hu (e);

..,

'..---I

0'1 V

--.--...

~,,~~i> ~ !-.jt"
e" '.1'-:>'.s' o1: '1")"/

4 <::;'e'. . !

02) Si tnlrO(l,Jc;imospor ieclado

prncipe

se IrTmrlme ESCUELA.
.. S8 ir;-prilT.e EPICNIRP

04 ') Si intrmiur:ir'!\.)$

principe

. Si:'

p:n ;ecladc

08) [J orden adOt s ,wed'ar

-r-- .
.

I I

--

DI~'S, intro,ollCfn10S
por 1ecl;do escuela.

R;

,-~

' 'I
e

'
i
.

blOGUeadC
.

NIRP.

immir;-,e

C. ::: I

P' -1>

I " , tf' . ~'I>'I'.,


I

S~U[S!A: lO 14 !

Lj~

'" 1--", V

/'

<

C. -' r-I --'" '- ',r


J
o.,

"',

c::-; 0., ~
. , .

'-!:> c. -:;, L

I ,>
.\ -::-VI
,
,...I"::>/'
-t> C. l !=

c. -.::'",,' -<>..',.,' ,1=' '? N O

('iJ, ~

;,

'.~

: '\...~

. .
~'.'_"I:~QJ"o:.J

1
c-::: J: -I~'f'-"~~

v
C-=K

;-,:,r,~'
,

'C:'
IC..()L.-

Al" ,~D

,/

)-

"ojv<o~-..

--------

-------------------------------------------

AJ~'""'~
~g
riJ
:

,
'"u
u..
U>~,

[)-'\f:T-,'-.'-,1FS-T;

Di:' _\l.'TU"-.'YTiC-\

EX ';'-'11:" DE I'IHJGHAM.-\CIU:',JtJNIO ~O\I:!

'i;;,1

'".
...
......
......

,---,,

- -------------

------

--

"-----------

04) UI18 lista enlaza-da coriene estrucwr8~ ,je B;,e 'pcstruct pp


{ struct pp' p;
char nom(40}:
float x;
};
donde-se suponen las siguent<?s declaracio'w,,: stn/ct pp val:com; char"cad{40];
Ei puntero com apunta a: comienzo de llista, y cad es una cadena de caracteres Que contiene
un nombre que se va "'-buscar en la !lsta enlazada mediante :20funcin fun()- Si este nombre se
encuentra,
se mprimifi3. el valor de' miembro x corresp~)ndiente mediante 1;3 ins,n.JCCn
printf("%f", fun(com,cad).x);
,y si dicho nombre ne- se encuentra- de debe impnmir -1indiGar cmo debe ser la funcin fun( );
01) struct pp fun(struct pp 'com, char 'cad)
{ struct pp no; no_x'=: -1;
while (com!=NULL)
If (strcmp(cad,com->nom)::::::O)
retprn
else com=com->p;
return no;
}
02) struct pp *fun(struct pp 'como char 'cad)
{ struct pp no; no.X =-1:
while (com!=NULL)
If ($trcmp(cad.com->nom}==O)
return
else com::com:>p;
return no;
}
04) struct pp fun(slrucl pp 'com, char 'c-ad\
{ while (com~:::NULL)
if (strcmp(c;id,com->nom)==O)
rclurn
else cqm=com->p;
return -1;
}
08~ struct pp fun(struct PP 'com, char 'cad)
{ struct pp no; no.x
-1;
while (camJ=NULL)
if (strcmp(cad.com.>nom)==D)
rcturn
else com=com->p;
retum no:
}
",---

'com;

'com;

'com:

F,ESPJE:ST

--------------

o Ai

A-

"

"---

com:

"

J./ ;~ ,,~

:;\:)'\,<.';',\\"\1""'1'0
}!, /\J..'1<:'>..,;\ !]( ',\
F\A'\H~N In I'ROC!L\ \J,\,',\
,:'dO Z{H):

.~,,~}:I

... ~f'"",
...
"' u,u,
05

IndiC8r qu

:e&,jo

sentenc'e""

h"y qlii; S'.),;111:J


': PG' ,o Gom;n1"nc

[,ar;:, que e! or::gr<JY1" ,,>.: p~' el

le eche: 14 6 2002 e rnprima Ix:! pa'-11a;[2,la m:8rJ1aeda de a omci Sgu'jnte:

di. :14:mes:=6:ao=2002

gtmct fecha { int da, mes, anyo; };


void leer(struct fecha "f);
vod imprimir{struct fecha "t);
majn( )
{
l' COMENTARIO A-SUSTITUIR '
}
void leer(struct fecha 'f)
{ printf("Da fecha:");
scanf("%d %d %d",&f~>dia, &f.o.mes, &f.>anyoj; }
void imprimir(struct fecha "t)
{ )printf("da=='f~d:mes:::=%d:ao::::%d\n",f->dia.f.>mes,f.>anyo;}
,

01) struet fechn ti, ~(2;


leer( &11); j2",["~j1:
imprimir (12):
.
02) sIrve! fecha f1,-2;
ieer{ &f1 ); 12="11;
imprimir (f2);
04) struct fecha "1. "f2;
f1,-",(structfecha ') mallac{ sizeo!(strllC( fecha) );
if (f1==NUlL) { ,puts("Errur de asgnadon de memoria"); exjtH):
teer(f1); 12=11;
irnprirrd (12): fr,'p(~1),
08) $1rucl fecha j 1. f:".
If;f)r(tY1 ):
12=-!1: imprimir (&12):

:~"nl

f~SPUESTA: L_~E1- J
'

"-"-'"

,--"

06) ( Dn las ~igllk~{leS der..lww,:iones.


char 'c1="escuet";
char c2[]:::"poHtecniGa";

01) strcmp(c1++,c2:'-);
02) strcmp(c1+1,c2++};
04) puts(c2+c1);
G6) puts(strcpy(c2,c~)};
f--

.- ""'-1

'" O

IO!
"';
I

,
;,;-c.;P

l l::r':"

'L .' . L u,

A'

. I
,

n_'

. "..,"

"'."-"

n:cm 'qu i,,;lruCClones

"

,---

-...

son corn~ctas:

-,.,

i::Lf',.\i':-]",\\fFf\;\}

..

AJ,~ "'GC""~

~:'r",.
. <Jr
;

.'.

DE AL'TOM,:nc,"',

D:..\!\i E~,' DE I'R.OCRA !\'1A('f,,'


..11.:,,102002

..
...
J

'-"'----.---..

'---'-"

"

....
U.'
.u,
..,..
......
",~_.""-'---

,'

"""-"'--'-..'-"

'.-.

07) Sustituir la linea de CDm:11anc. por ESinstrucciones neGf;sarias para que el siguir,iE
programa pida el nombre de l;f': fichero fuen\e y cree alro cOn el rnismc nombre pero eo'!
extensin .voc que conlenga lmicamenle las vocales del fichero fuente,
main( }
{

char nom[20], modoD:;;"r", e;


FILE .p:q;
gets(nom);
r COMENTARIOA SUSTITUIR './

while((c=fgetc(p))!=EOF)

switch(c)

{ case'a': case 'A': case 'e'; case 'E'; case'j'; case


case'o': case'O':
fclose(p); fclose{q);

'1':

case 'u'; case 'U'; fp1l1C(C,q); }

}
01) p=fopen(nom;'r"):
q:;;fopen(nom",voc";"w");
02) p=fopen(nom,"r");
strcat(nom,",voc");
q=fopen(nom,"w";
04) q=fopen(strcat(nom,",voc"),"w");
p=fopen(nom,"r");
~18\ p=fopen(nom,modo);
q"'fopen(strcat(nom,".voc"),"w");

j,(

RESPUESTA'

lo

08) Un iichero llamado "datos"

con1iene estruct.lJras

de! "po treg

y esta abierto y apuntado

rnediame pl puntero FILE "fdatos. SI a1 es un 2rray de 20 elen1entos de! tipo treg, indicar Qu
sentencia lee los datos en a1, desa e',fichero "datos", supi~)nendcu:1ue
treg es:
typedef struct
{ int c1 :
char c2[20]:
} treg;
01) fread(al.

sizeof(treg)'20.

1. fdatos):

02) iread(~a 1, sizeo!(treg) '20. 1, Ida1os}:


04) tread\aL
Siz:)j(treg), 20. batas):
OS} iread{&al.
5izeol(ireg). 20. fd~:O$):

oS

RESPUESTA'
-,,'

'.'."'""",.~"~"""'

'--'

09) El prol.:;,tipo ce ~ma funcin es struct pp 'flln{struct pp ", char '); Indicar qu Hamada.s
pueden ser CG.,reCti'i.5.
5l.JponcnjG I,!s siguientB~.;de:claracio:1E:S: stfuct pp 'p[8), x; char cad[40]:
01)
02j
04}
08)

pI1]=fun(p.cad);
p{1]++=fun(p,cad);
'x=tun(p,cad); --~
'p:fun(p,cad+2);

,rc'"
"""\-t: c.nl
'r'J~~,.r.,

f"

,'

; 1

:1

'

~--

'

'

,...-.

JX,
~'

..
H
,..
u.,.

1)I..:",\C'i\\;U";-[ii
01' /,UTrr,:..2"Tll..'A
E:\,-\:\1E'\
DE i'RO(;RAi\A~~,
.JU:-';JO 1!H!2

'y
,
..
...
.'"
.....,-,

---, - ------

10 Indicar qu imprime

e; s1guienlE prcg r8:TJ",


,

main( )
{
floa1 x0[3]:::{7,B,9,2A,6};
float 'p[2),..pf:i""P;
p[O}:::x[O]; p[1)"'x[1j;
printf("%g "(1'); prntfr
'('(p+1 )+2}=O;
printf{" %g",p(1H2]);
}
01)7720
02) Valor basura?
04)7 7 7 6
08)7B 9 O

F t=SPUESTA:

%g","PI.;

printf('"

%g","++p-p);

2 O

f-~12-1
;I

~--_!

"

,---',.

n,_'

11) ndicar qu imprime BJsiguiente-prO@te:rna:


void fun(e-har"intj;
mainO
{ char nom[20]="pepito";
strcpy(nom+7,"'9rillo");

fun(&l1on;[2],7):'
puts(nom+1j~
}
void full(drnr "npm,nt n)
{ char 'fi1F-nom+n;
while(nom<tin)
if("nom=='\O' 'nom++="';
el~e 'nom++"""nom+1;
-nom='\O'; }
01) epjup'
02) epjup'hs
04} epjup"ht:;
081 epjup"hS,rn:np

m SPUESTA:

ojO!
__~n_- --'

n_..

..-.-.....-

---..--

':)L~I':\';' .c\:-,.jFi<ru

..--...--.-...-...

DE .\\.'TUi.,.,.\T:C\

[\:A:1'1 E'\' DI-: I'ROGRAMACIOi\


.JL;\IO ~IO;:

son las currect.::.s.para crear un::, <;1a iinc,,1;:;nl2zada de nombres. Que

12) Indicar que funo::nes

se introducendesde ei teclado-hasta introducir la mafca de jn de fichero. de forma Que el 11imc


nombre que se introduzca:sera el 111hrno de la j51;"y e5tML~apuntado por el puniero pf, y el
prmerc quedara apu~lt[do por pi. Un;:i VEZ

qU('

se

hay;:icreadc' le' listi se imprimir y a

coninuacin se borra'an todos sus elementos empezan;j:) desde el prime, e!emerto. Cada
eiememto de la lista es del tipO struct nad.
struct nodo { char nombre[40];
struct nodo 'siy-;
};
struct nodo 'nuevo-,nodo();
void imprimir(struct
nodo "P);'
struet nodo' jnsertar(struct
nodo 'p, char' 110m);
vod borrar(struct
nodo 'p);
mainO
{
struct nodo 'pi; pf;
char nombrc[40];
pf = nuevo_nodoO;
p=pf;
printf{"dar nombres ,acabarcol1 "Z\n"};
if(gets{nombre)==NULL} exit(O);
else {strcpy(pf->nombrc,nombre);
pf->sig=NULL;
while( gets(nombre)!=
NULL)
{ pf=i,:!sertar(pf,nombre);
puts("nombre");
}
imprimir(pi);
borrar(pi);
}

puts COa nombre");

011 lIoid bolTa'T(struct nodo 'p)


{ struct nodo 'pt;
while(p!=NULL)
{ p=p->sig; pt=p; free(pt);}
}
02) struct nodo 'nuevo_nodo(void)
{ struct nodo 'p;
if{(p=(struct l1odo ')maHoC(sizeof(stTuct
nodo))}==NULL)
{puts("Error de asignacion de memoria");
exit(O};}
rcturn p;
}

04) struct nodo' insertar(struct nodo' P. cha r '


{ p->sig =nuevo..nodo():
p"'p->sig;
strcpy(p->nombre
.norp) ;
p->sig=NUll;
return

p;

110m)

}
De:,void imprimir(strllet nodo 'p)
{ whle (p!=NULl
{printf("%s\n".p->nombre):

RES"":JEST

Po.:

LI

p=p-:>s~r}

--

--------

~I'I...
1?~,,~
<
',,'

.
u.,,
.
--I

,"

PEFARl

...
...

- ----

;'-\-11-':;-';TO DE :\LTOr'-1.-\TiC-"

:XAJ\IEN

DL I'HOC;HA1\1ACI()t'i'
,JUI"!O

2002

uu

"...

-----

,- --...

1~) Queremos que al cctrnpilar un programa se Dtenga un fjcherc e}ecJtab;e prog.exe con
a, Jumentos en la linecl dH 6:oe1"8S,de <noDeque- a: ejecuar la orden prog 1 1 , 81 progr,rna
irr i[imir iguales, ya! ejeiCJ1ar prog 1 2 imprimir tres- Cmo puede ser ei prOQ'ama pror.c?

01) maln(/ot atgc,char'


argv[J)
{ if (argd=3) {puts("mal"); e}l;it(1);}
- if (argv[1]=";argv[2]) puts("iguales"};
else puts{"trtJS"); }
02) main(int argc,;har *argv[])
{ if ( !strcmp(argvf1],argv[2]
) puts("iguales");
e!se puts("tres");

04) mainOnt argc,char "argvOJ

{ if (argv[1]10]=argv[2](O])
pUh,("iguales");
else puts("tres");
08) main(int argc,{'.har"argv[])
{ if (*argv[1 ]="' argv[2]t puts("guales");
else puts(Utres");
}

~:ESPUESTA:

'1

i'

'___n_J

'

Id lif
, !\

""",-"",,,,~,-,,_,,_-""--"-

..

'.-"

14) Sustituir la lnea de comen!ario pOi as instrucciones


pro !rama, visualice por panialia e! lichero datos-

"-"

necesarias

"-"-

para qUE e! siguie le

main()
{
FllE 'pf;
int x{8], y[S], i;
fer O=O;i<8; i++)
x[ij=10. ;
ifpf=fopen("datos"
,"wb")) =NULL)
{ perror "Error de escritura ");
ext (O);
}
fwrite(x,sizeof(x),1,pf);
fclose(pf);
f( pf = fopen("datos","rb';
))==NULL)
{ perror ("Error de lectura "); exit (O); }
r COMENTARIO A SUSTITUIR"!
fclose (pf);
}
01) fread( y, sizeof(y},1, pf);
for( i=O; i<8;i-t-.q prJntf{""!vd". y[j]);
02) fread( y, si,zeof(y[O]), 8, pf);
for( i=O; i<8; i+-+) printf(" %d ", yfiJ);
pf);
04) fread( &y[O], si:<;eof(y[O]),1,
for( i=O; <8; i++-) printf('" %d ", y[i]);
08) for( i=O;i<8; i++j
{ y[jJ=fgetc(pf);
printf(" %d ", y(;]);
}
---j--:
Rf SPUESTA: I ~ l~

---

~~

~g-~
.--c
. .
..

.
.

::. '

'_n_DH'..\:(L\i\-1;:.KiT: DE i,lJTO\.j':'.TJCA
EXA~1E!\ DE 'HOGkAJ\'1ACION
JV\lO
2002

..,f\~1J...

' .. ::.

v.o.
Uli<

15) Que imprimir

la ejecucin

del siguiente pr':);Jri.,mi:

typedef struct {int a, b, e;} dato;


dato fun(nt x, int y, int z};

majn()

.-

{
dato p1, 'p2=&p1;
int x=1,y=1,z=1;
p1=fun(x,y,z);
.p2=fun(x..1,y+2,z+3);
printf(n"od,%d, %d",p1.a,p1.b,p2->c);
}
dato fun(int x,int y, int z;
{
dato p;
p.a=x;
p.b=y;
p.c=z;
return (p);
}
01)
02)
04)
08)

1,
1,
2,
1,

1,
1,
3.
1.

2
4
4
3

1-1 RESPUEST A~

O "
i

16) Indicar qu imprim;el siguiente programa:


#include<stdio.h>
int fun(nt ni;
mainO
{
ni x=1250;
printf("%d n,fun(x}};
}
nt fun(int n)
{ if ( n < 10) return 1;

else return (1 + fun{n /10)):


O} 2
02:,3
04)

"

08') 12 e.

R,':>,l~~"""-'
E "'D' j :::c- l_.

- -- ----------.

'

I
:
/;
l"t

__.n-__n__-

---..-----.--

'n

r..

-"

!)i:I'\-(i_,\\.;r:,t..;,U

1... ~<O1(lO.
ato' ,

D;' Ao~TCi\<"

[:Co~'

EXAiVIE,\ DI' PRO(;RA,\IAUO:-';


.1I1"i 10

2,1)02

...

""0
'HH'

""

17: Indicar ali !ll~rirne el ,;fguier-:(: yo\J'a_rn~~void suma_1


{
++'11;

( nt '--n)

}
void suma_2(int x, inl -'J', nt "t)
{
x++;
ry)++;
sum3_1(z);
}
main O
{
ni x, Y. z;
x=v=z=1'
.,
,
sumao.o2 (x, &y, &z:);
printf ("%d, %d, 'Y-,d\n",x, y, z);
}

)i)",,2,i
)2} " 2, 2
;4) 2, 2, 2
18) 2, 1, 1

. 0_-.

C j ')

DS?Ut:<::-..

"o'

1.'..1,-i

~~I"

~)

_0_-

___"'0"

--_o '00

_o - - -

-..

"

0"'0--_0 -

{,

18) ! 1rjlC8t qu ~nprjm{-)e' f,1:_;uenle programa:

#inctude<stdio.h>
mainO
{
nt a[6], 'p, i;
for(i::::O;i<6;i++)
aliJ=i;
p=&a{3];
prtntf ("%d, %d, ", 'p, pZ});
++(' p);
printf("%d\n""p};

}
(o )2,3,3
O ') :~. ?, ;j
(j ) :302- d
o ;) :'1, :.J. 4

._0_0t'~,;:: ',P 'l Jr";',


oO.

._~"

l,.-

O :I O

C>

""---.

'.h- -.----..-

DEPART..'\MENT.O DE AUTOMATlCA
EXAMF.!\ De PROGRAMACiN
.II.!N 10 2001

4'~~
! .M.
.~.
I

J~.
u..

...>
.....
...u

.......

~n"

~"--"'-""

-""

'--"'

'

'-'--"_'._n._..__----

19) Se desea almacenar el nmero eje lil)ros ven:;jdospor 8 vendedores, durante cada uno de los
12 meses del ao, as como los datos de stos. Para. ello se han creado as Slgu:emes
estructuras:
struct ventas { char mes[15];
int numlibros~vendidos;

};
struet vendedor { char nombre[50];
int num- vendedor;
struet ventas ventas..mes[12];
};
struct vendedor vendedores[8];
Suponiendoque las ventas del mes estnin\roducidascorrec1amenteen el arraycorrespondiente,
indicarque sentenciapermite almacenarque el quinto vendedorha vendido1200 libros en eJmes
de marzo.
01) vents_mes[3].vendedores(4].nurnlibros
vendidos=1200:
02) vendedoresi5].numlibros- vendidos. ventas,. TIis(2]~1200;
04) vendedores{4]. ventas_mes[2].numlibrosvendidos=1200;
08) vendedores{4}->ventas_mes/2}-:>numibrosvendido$=-12QO;

RESPUE~A

.-~~._-

20) Dado el siguiente programa:

struct <J{char x1 ;
cbar x2;
};
,struct b ( unsigned char v1;
unsigncd char v2:4;
unsigned char 1/3:6;
}:
un ion e {struct a e1:
struct b e2;
} u;
main()
{ u.e1.x1='a';
u.c1.x2='A';

"

COMENTARIO

A SUSTITUIR

'/

Qu sen1enci,3S producen resultados correctos ai sustituiras


01) printf("%c,
02) printf("%c,
04) printf("'%e,
OS printf("%c,

%c, %d ", u.e1.x1, u.e2.v1. u.c2.v2);


"Iod, %d ", u.e1.x2, u.e2.v2, u.c2.v3);
"Iod, %d", u.e2.v1, u.e2.v2, u.e2.v3);
%e ",u.e2.x1, u.e2.x2):
.

RESPUESTA:'

-.-"-'--'---'-'-"

'

por d cornenttuo,?

r---

O .11

....

---._---

Potrebbero piacerti anche