Teste de informatică pentru liceu, articole C#, C/C++, PHP
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
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ă