Teste de informatică pentru liceu, articole C#, C/C++, PHP
Rândul 1
1) Fie funcţia:
int test()
{
int i,j,p;
i=0;
j=strlen(s)–1 ;
p=1;
while ( … )
{
if (s[i]!=s[j]) p=0;
i++; j ––;
}
return p;
}
Stabiliţi cu care din expresiile de mai jos trebuie înlocuite spaţiile punctate astfel încât funcţia să returneze 1 dacă şirul s este palindrom, sau 0 în caz contrar.
a) (i!=j) && (p==1)
b) (i<=j) && (p==1)
c) i<strlen(s)/2 – 1
d) i<=(strlen(s) – 1)/2
2) Scrieti o funcţie Afisare care primind ca parametru un vector cu 1000 de numere intregi, afişează elementele de pe poziţii impare din vector.
3) Scrieţi o funcţie Cauta care primind ca parametru un vector cu 10000 de numere întregi şi un întreg x, returnează cel mai mare index la care se găseşte x în vector, sau –1 dacă x nu apare în vector.
4) Scrieţi o funcţie Numara care primind la intrare un număr natural n<2.000.000.000, returnează numărul biţilor de 1 din reprezentarea sa în baza 2.
Rândul 2
1) Care din următoarele funcţii calculează corect rezultatul expresiei (2ab – c2)/ 0.25, unde a,b,c sunt reale:
a) float f(float a, float b, float c)
{ return 2*a*b – (c*c)/0.25; }
b) float f(float a, float b, float c)
{ return 2*a*b – c*c/0.25; }
c) float f(float a, float b, float c)
{ return (2*a*b) – (c*c)*4; }
d) float f(float a, float b, float c)
{ return (2*a*b – c*c)*4; }
2) Scrieţi o funcţie Afisare care primind ca parametru un vector cu exact 100 de numere reale, afişează valorile distincte din vector.
3) Scrieţi o funcţie care primind ca parametri două numere naturale m şi n returnează cmmdc al celor două numere.
4) Scrieţi o funcţie care primind ca parametri p şi q, două numere naturale, returnează cel mai mic număr n natural cu proprietatea că n>p şi n divizibil cu q.
Dan Pracsiu deţinător www.dponline.ro
Profesor, Liceul Teoretic "Emil Racoviță" Vaslui
Membru în Comisia Naţională a Olimpiadelor de Informatică
Pasiuni: istoria, călătoriile, fotografia, muzica clasică