Pagina informaticii

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

Test grilă cu vectori şi matrice

1. Care din următoarele afişează cea mai din stânga poziţie unde se află valoarea x, sau afişează –1 dacă x nu apare în vectorul a:

a)
for (i = 0; i < n && a[i] == x; i++)
            ;
if (i < n) cout << i << "\n";
else cout << "-1 \n";

b)
for (i = 0; i < n && a[i] != x; i++)
            ;
if (i == n) cout << i << "\n";
else cout << "-1 \n";

c)
for (i = 0; i < n && a[i] == x; i++)
            ;
if (i == n) cout << i << "\n";
else cout << "-1 \n";

d)
for (i = 0; i < n && a[i] != x; i++)
            ;
if (i < n) cout << i << "\n";
else cout << "-1 \n";

2. Care din următoare secvenţe realizează ordonarea crescătoare a elementelor tabloului a:

a.
for (i = 0; i < n - 1; i++)
  for (j = i + 1; j < n; j++)
      if (a[i] < a[j])
      {
        x = a[i];
        a[i] = a[j];
        a[j] = x;
      }

b.
for (i = 0; i < n - 1; i++)
  for (j = i + 1; j < n; j++)
      if (a[i] > a[j])
      {
        x = a[i];
        a[i] = a[j];
        a[j] = x;
      }

c.
for (i = 0; i < n - 1; i++)
  for (j = i + 1; j < n; i++)
      if (a[i] > a[j])
      {
        x = a[i];
        a[i] = a[j];
        a[j] = x;
      }

d.
for (i = 0; i < n - 1; i++)
  for (j = i + 1; j < n; i++)
      if (a[i] < a[j])
      {
        x = a[i];
        a[i] = a[j];
        a[j] = x;
      }

3. Care dintre secvenţele de program de mai jos afişează corect elementele v[0], v[1] , v[2] , … , v[n-1] ale unui vector de întregi ?

a)
i = 0;
while (i < n)
{
    cout<<v[i];
    i++;
}

b)
i = 0;     
while (i < n)              
{
    i++;    
    cout<<v[i];
}

c)
i = 0;
do
{
    i++;     
    cout<< v[i];
}          
while ( i < n ) ;      

d) i = 0;
do
{
    cout<< v[i];
    i++;
}
while ( i < n ) ;

4. Care dintre secvenţele de program de mai jos afişează corect produsul elementelor pare ale unui vector v = { v[0], v[1], …,v[n-1] } cu n elemente de tip întreg ?

a) p = 1;       
for(i = 1; i <= n; i++)
  if (v[i] % 2 == 0)
     p=p * v[i]; 
cout << p;

b) p=1; 
for(i = 0; i < n; i++)          
  if (v[i] / 2 == 0)      
     p = p * v[i];
cout << p; 

c) p = 0;  
for(i = 0; i < n; i++)         
 if (v[i] % 2 != 0)        
   p = p * v[i];
cout << p;

d) p = 1;                
for(i = 0; i < n; i++)
if (v[i] % 2 == 0)
   p = p * v[i];
cout << p;

5.Ce valoare va fi afişată în urma execuţiei programului următor ?
int main ()
{
  int v[] = {1, 1, 2, 0, 4, 5, 6};
  int i = 0, nr = 0;
  do
   {
      if (i == v[i]) nr++;
    }
  while (i < 6 && v[i++]);
  cout << nr;
  return 0;
}
a) 0
b) 1
c) 3
d) 2
e) programul va intra in ciclu infinit

6. Fie secvenţa:
for (i = 0; i < 20; i++)
      a[i] = i * i – i ;

Câte componente memorează valori care au cifra unităţilor 0:

a. 6
b. 7
c. 8
d. 9
e. 2

7. Fie secvenţa:
int s = 0;
for (i = 0; i < n - 1; i++)
      for (j = i + 1; j < n; j++)
            s += a[i][j];

Aceasta calculează:
a. Suma elementelor de deasupra diagonalei principale a matricei pătratice a
b. Suma elementelor de sub diagonala principală a matricei pătratice a
c. Suma elementelor de deasupra diagonalei secundare a matricei pătratice a
d. Suma elementelor de sub diagonala secundară a matricei pătratice a

8. Ce afişează secvenţa:
for (i = 1; i <= 10; i++) a[i] = 0;
for (i = 1; i <= 4; i++) a[2 * i + 1] = i + 2;
for (i = 1; i <= 10; i++) cout << a[i] << " " ;

a. 0 0 0 0 0 0 0 0 0 0
b. 4 5 6 0 0 0 0 0 0 0
c. 0 5 0 7 0 9 0 11 0 0
d. 0 0 3 0 4 0 5 0 6 0
e. 0 3 0 4 0 5 0 6 0 0

9. Ce afişează secvenţa:
int a[] = {14, 3, 7, 0, -4, 3, 10, 15, 7};
s = 0;
for (i = 0; i < 9; i++)
       if ( !(i % 2) ) s += a[i];
cout << s;

a. 0       b. 34     c. 21     d. 50

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ă

Comentarii (2)
  • Avatar

    Dragu Mircea 13-10-2011 23:44:25

    Raspunsuri : 1). c; 2). b; 3). a, d; 4). b, d; 5). b; 6). c; 7). a; 8). e; 9). a;

    Te rog frumos sa-mi transmiti cate raspunsuri au fost corecte.
    Adresa mea de mail : mircead2011@gmail.com
    Multumesc.

  • Avatar

    Dan Pracsiu 16-10-2011 12:22:37

    Poti verifica singur la calculator daca ai obtinut corect. Succes!

Scrie un comentariu
Nume:

Comentariu:

15 + 10 =