Pagina informaticii

Teste de informatică pentru liceu, articole C#, C/C++, PHP

Test grilă – Funcţii

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;
}

Despre autor
Author

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ă

Scrie un comentariu
Nume:

Comentariu:

15 + 10 =