Vous êtes sur la page 1sur 5

1

!"#$%& (&)*+$#,(-.% /0 1 !2*3% 4%&,+#3% 5#+6%(33%


!7+%.8% 9. : );8+(%+ <=/=

!-.(7% 7;9#>*>(-.% ? l. 8rucker, L. uauce, S. uerrode, A. Celly, C. !azzar eL . rea
@*2.$%&,6 #.,*+(6;6 ? unlquemenL les deux poly de cours de langage C
A%$#+-.% ? l'epreuve esL decomposee en 2 parLles (langage C eL lnLroducLlon a l'lnformaLlque) ? veulllez
rendre une cople separee pour chaque parLle



B0ACD! D E F#&>#>% 4 G/H 7*(&,6I

/1 !"%+2(2%6 2*.+,6 GJ 7*(&,6I

K.%6,(*& / ? 8e-ecrlre le programme sulvanL avec une boucle !" $ %&'().

lnL l=3,
for (l=12, l>0, l=l-3)
prlnLf("\nl = d", l),

K.%6,(*& < ? 8e-ecrlre le programme sulvanL avec des '*+

char q,
prlnLf("\n***Menu***\n a: premlere opLlon,\n b: seconde opLlon\nvoLre cholx: "),
scanf(" c", &q),
swlLch(q) [
case 'a':
prlnLf("\nvous avez cholsl la premlere opLlon"),
break,
case 'b':
prlnLf("\nvous avez cholsl la seconde opLlon"),
break,
defaulL:
prlnLf("\nCholx lnvallde"),
break,
}

K.%6,(*& L ? Lcrlre les lnsLrucLlons necessalres pour
1- allouer !,-./'01)/)-2 un Lableau de 30 caracLeres,
2- copler la chalne 8on[our dans ce Lableau,
3- afflcher le Lableau eL
4- llberer le Lableau.

K.%6,(*& M ? 8e-ecrlre le programme sulvanL (foncLlon eL foncLlon prlnclpale) de manlere a ce que le resulLaL
ne solL plus recupere par reLour de foncLlon mals par adresse .

double mlnl (double p, double q) [
double m = p,
lf (m>q)
m = q,
reLurn m,
}
2

lnL maln() [
double b, c, a,
b=4.3,
c=1.3,
a = mlnl (b, c),
prlnLf("\nLe mlnlmum vauL: lf", a),
}

!"%+2(2% H ? Ce programme s'execuLe en produlsanL une erreur de segmenLaLlon. Cuelle(s) llgne(s) dolL-on
supprlmer pour que ce ne solL plus le cas ? Cu'afflche-L-ll a l'ecran une fols l'erreur corrlgee ?

lnL *p,
lnL n,
double *r,
double 1[3]=[1,2,3,4,3},

p = &n,
n = 2,
*r = 3.6,
r = 1+n,
*r = *r + 1 ,
prlnLf("\nval 1 = lf\n", *r),
r++,
*r = 2,
for (n=0, n<3, n++)
prlnLf("\n1[d] = lf, ", n, 1[n]),


<1 B+*N3O$% GP 7*(&,6I

Cn suppose que l'on dlspose du flchler ,%",% sulvanL :
uuponL 14.3
uuranL 11.2
MllleL 8.3
naLhan 12.7
Charles 17.8
Slmon 16.4
MarLln 13.6
La premlere colonne represenLe le nom des eleves eL la deuxleme leur moyenne. Le nom du flchler esL
!"#$%&%!%'%#($)$.

Cn se propose de charger ce flchler en memolre, afln de manlpuler plus rapldemenL son conLenu, en evlLanL
les acces dlsque. our cela on effecLue le chargemenL du flchler dans un Lableau donL chaque elemenL esL une
sLrucLure. LnsulLe, on peuL reallser dlvers LralLemenLs dlrecLemenL a parLlr du Lableau.

K/ ? ueflnlssez la sLrucLure *&+!%'% permeLLanL de sLocker le nom d'un eleve eL sa moyenne.

K< ? un Lableau de 30 sLrucLures sera cree dans le programme prlnclpal. Lcrlre la foncLlon ",$
-./01%2%,$&2%23"0%4567+ 9:; *&+!%'% $/<=>3 qul llL le flchler llgne par llgne eL qul sLocke les lnformaLlons
consecuLlvemenL dans les cases du Lableau. La foncLlon reLournera le nombre de cases remplles a la fln du
chargemenL du flchler (necessalremenL lnferleur a 30).

3
KL ? Lcrlre la foncLlon '3"? /::"-./1%&#@A&23B%,,%4*&+!%'% $/<=>; ",$ ,; :!3/$ 23B%,,%&2",C qul parcourL le
Lableau eL afflche le nom eL la moyenne de Lous les eleves ayanL une moyenne superleure ou egale D
23B%,,%&2",.

KM ? Lcrlre une foncLlon qul reLourne la moyenne de l'eleve donL le nom esL passe en parameLre. La foncLlon
reLournera -1 sl le nom n'esL pas dans le Lableau.

KH ? Lcrlre enfln la foncLlon prlnclpale qul cree le Lableau de 30 sLrucLures, ouvre le flchler LexLe eL verlfle que
l'ouverLure s'esL blen deroulee. Sl Lel esL le cas, le programme falL ensulLe appel aux dlfferenLes foncLlons
(quesLlons 2., 3. eL 4.).


B0ACD! DD E D&,+*9.2,(*& Q 3R(&)*+$#,(-.% GH 7*(&,6I

A%$#+-.% ? 8appelez-vous, prenez une nouvelle cople !

K/ ? uonner 3 classes de langages de programmaLlon.

K< ? ulfference enLre securlLe & crypLographle.

KL ? 8le de la CnlL.

KM ? LxpllclLez les dlfferenLes couches lSC en separanL celles llees au reseau propremenL dlL eL celles llees a
l'uLlllsaLeur. Cuel esL l'lnLerL d'un Lel decoupage en couches ?

KH ? Cu'esL ce qu'une 8lC ?

4
4*++(>; / ?
lnL [=12,
do [
prlnLf("\nl = d", [),
[ = [-3,
} whlle ([>0),

4*++(>; < ?
char L,
prlnLf("\n***Menu***\n a: premlere opLlon,\n b: seconde opLlon\nvoLre cholx: "),
scanf(" c", &L),
lf (L == 'a')
prlnLf("\nvous avez cholsl la premlere opLlon"),
else
lf (L == 'b')
prlnLf("\nvous avez cholsl la seconde opLlon"),
else
prlnLf("\nCholx lnvallde"),

4*++(>; L ?
char* Lab = (char*) malloc(30*slzeof(char)),
sLrcpy(Lab, "8on[our"),
prlnLf("\nLa chalne esL: s", Lab),
free(Lab),

4*++(>; M ?
vold mlnlb (double p, double q, double* r) [
*r = p,
lf (*r>q)
*r = q,
}

Appel : mlnlb (b,c,&a),

4*++(>; H ?
Seule llgne lnvallde : *r = 3.6,
Afflchage :
- 4
- 1[0] = 1.00, 1[1] = 2.00, 1[2] = 4.00, 1[3] = 2.00, 1[4] = 3.00

4*++(>; 7+*N3O$%
#lnclude <sLdlo.h> #lnclude <sLdllb.h> #lnclude <sLrlng.h>

Lypedef sLrucL [
char nom[20],
floaL moyenne,
} 1_Lleve,

lnL chargemenL_memolre(llLL *f,1_Lleve Lab[]) [
1_Lleve eleve,
lnL nbre=0,
fseek(f,0,SLLk_SL1),
whlle(fscanf(f,"ssf",eleve.nom,&(eleve.moyenne))>0) [
Lab[nbre]=eleve,
3
nbre++,
}
reLurn nbre,
}

vold afflchage_sup_moyenne(1_Lleve Lab[],lnL n,floaL moyenne_mln) [
lnL l,
prlnLf("Moyenne superleure a f\n",moyenne_mln ),
for (l=0,l<n,l++)
lf (Lab[l].moyenne>=moyenne_mln)
prlnLf("s s\L\Lg\n",Lab[l].nom,Lab[l].moyenne),
}

floaL reLourne_moyenne(char *nom_eleve,1_Lleve Lab[], lnL n) [
lnL l, Lrouve,
floaL moyenne,
l=0,
Lrouve =0,
moyenne=-1,

whlle (Lrouve==0 && l<n) [
lf (sLrcmp(Lab[l].nom,nom_eleve)==0) [
Lrouve=1,
moyenne= Lab[l].moyenne,
}
l++,
}
reLurn moyenne,
}

lnL maln(vold) [
llLL *fp,
1_Lleve Lab_eleves[30],
lnL n,
floaL moy_mln,
char nom[20],

fp=fopen("llsLe_eleves.LxL","rL"),
lf (fp!=nuLL) [
n= chargemenL_memolre(fp,Lab_eleves),
fclose (fp),
prlnLf("moyenne mlnlmum:"),
scanf("f",&moy_mln),
afflchage_sup_moyenne(Lab_eleves,n,moy_mln),
prlnLf("nom de l'eleve donL vous voulez la moyenne: "),
scanf("s",nom),
prlnLf("La moyenne de s esL g\n",nom,reLourne_moyenne(nom,Lab_eleves,n)),
}
reLurn 0,
}