Teste de informatică pentru liceu, articole C#, C/C++, PHP
1. Care din următoarele funcţii determină maximul dintr-un şir de n numere întregi:
a)
int maxim(int *a, int n)
{
int max=a[0];
for (int i=1; i<n; i++)
if (max>a[i]) max=a[i];
return max;
}
b)
int maxim(int *a, int n)
{
int max=a[0];
for (int i=1; i<n; i++)
if (max<a[i]) max=a[i];
return max;
}
c)
int maxim(int *a, int n)
{
int max=a[0];
for (int i=1; i<=n; i++)
if (max<a[i]) max=a[i];
return max;
}
d)
int maxim(int *a, int n)
{
int max=a[0];
for (int i=1; i<n; i++)
if (max<a[i]) a[i]=max;
return max;
}
2. Fie următoarea funcţie recursivă:
float F(float x, int n)
{
if (n<=2) return 2.0;
else return 2*x + F(x-1,n-1);
}
Dacă se execută următoarea secvenţă de instrucţiuni:
cout<<F(3.0,2)<< " ";
cout<<F(3.0,2)<< " " ;
cout<<F(3.0,2)<< " " ;
ce se va afişa :
a) 6 2 2
b) 2 8 8
c) 2 5 5
d) 1 7 7
3. Se consideră funcţia recursivă :
int F(int x)
{
if (x==0) return 0;
else if (x%3 == 0) return F(x/10)+1;
else return F(x/10);
}
Pentru ce valoare a lui x funcţia F va returna valoarea 4 :
a) 13369 b) 21369 c) 4 d) 1233
4) Fie funcţia:
void S(int i, int j)
{
if (i<=4)
if (j<=i) {cout<<”8”; S(i, j+1);}
else {cout<<”\n”; S(i+1,1);}
}
Câte caractere vor fi afişate la apelul S(1,1) ?
a) 4 b) 16 c) 10 d) 8
5) Fie funcţia:
void S(int x, int b)
{
if (x<b) cout<<x;
else { S(x/b,b) ; cout<<x%b; }
}
Ce se afişează în urma apelului S(305,4) ?
a) 10301 b) 103001 c) 131 d) 1220
6) În urma apelului P(n,x) se doreşte determinarea cifrei maxime a unui număr natural n prin intermediul parametrului x. Identificaţi antetul corect al funcţiei P :
a) int P(int n)
b) void P(int &x, int &n)
c) void P(int n, int &x)
d) void P(int &n, int x)
7) Fie funcţia:
void sch(int a, int &b)
{int aux;
aux=a; a=b; b=aux;
}
În urma instrucţiunilor :
x=1; y=2;
sch(x,y);
cout << x << " " << y;
ce se va afişa:
a) 1 2 b) 2 1 c) 2 2 d) 1 1
8) Care din următoarele funcţii returnează 1 dacă un şir de n numere întregi are toate valorile egale cu 1 şi 0 altfel:
a)
int Toate1(int *a, int n)
{
for (int i=0; i<n; i++)
if (a[i] = = 0) return 0;
else return 1;
}
b)
int Toate1(int *a, int n)
{
for (int i=0; i<n; i++)
if (a[i] = = 1) return 1;
return 0;
}
c)
int Toate1(int *a, int n)
{
for (int i=0; i<n; i++)
if (a[i] = = 0) return 0;
return 1;
}
d)
int Toate1(int *a, int n)
{
for (int i=0; i<n; i++)
if (a[i] = = 1) return 0;
else return 1;
}
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ă