Pagina informaticii

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

Test grilă – Funcţii

1. Fie funcţia:
void P(int x, int &y)
{
 y = y*x ; x = x + y ; cout<<x<< “ ”<<y<<“ ” ;
}
Ce se va afişa după secvenţa:
int a = 11 ; P(a,a) ; cout<<a ;

a. 11  121  11
b. 132  121  121
c. 242  242  242
d. 11  121  121

2. Care este antetul corect al funcţiei Max (funcţia determină cifra maximă a unui număr natural) astfel încât secvenţa de mai jos să afişeze cifra maximă a unui număr natural:
Max(n,x) ; cout<<x ;

a. int Max(int n)
b. void Max(int &x, int &y)
c. void Max(int n, int x)
d. void Max(int x, int &n)

3. Fie funcţia:
void sch(int a, int &b)
{int aux;
 aux=a; a=b; b=aux;
}

Ce se va afişa în urma secvenţei :
x=1; y=2;
sch(x,y);
cout << x << " " << y;

a) 1  2              b) 2  1            c) 2  2            d) 1  1

4. Fie funcţia:
int F(int n, int &x)
{ while(n)
            {if (n%10 == x) return 1;
  n = n / 10 ;
}
return 0;
}

Ce se va afişa în urma apelului F(12343, 3):
a. 1       b. 0      c. 2       d. Nimic, apelul furnizează o eroare

5. Fie funcţia:
int P(int &x)
{ int s = 0;
   while (x != 0)
            {s = s + x%2 ; x = x / 2 ;}
return s ;
}

Dacă n este variabilă globală cu valoarea 32, ce se va afişa în urma instrucţiunii cout<<P(n)+P(n)+1 :
a. 1       b. 2      c. 3       d. 4      e. 5

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

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

8. Ce se va afişa în urma execuţiei programului:
int n, t[100] ;
void  F(int x )
{ int n, i ;
   n = x;
   for (i=1; i<=n; i++)
            t[i] = i;
}
void main( )
{ F(10) ;
  for (int i=1;i<=n;i++) cout<<t[i]<< " ";
}

a. nimic            
b. 1  2  3  4  5  6  7  8  9  10
c. 0  0  0  0  0  0  0  0  0  0
d. 10  10  10  10  10  10  10  10  10  10

9. Funcţia de mai jos trebuie să calculeze suma componentelor de la 0 la n ale unui vector
int Suma(int  t[100], int n+1)
{ int i, s = 0;
   for (i=0 ; i < n+1 ; i++) s = s + t[i] ;
   return s ;
}

a. Funcţia este corectă, calculează suma a n+1 componente ale tabloului
b. Funcţia are erori în antet
c. Corpul funcţiei are erori
d. Funcţia nu are erori, dar calculează suma a numai n componente ale tabloului

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 =