Consolidare: While & Subprograme

Evaluare sumativă - Clasa a X-a

Breviar Teoretic

1. Algoritmul lui Euclid (CMMDC)

Varianta prin scăderi:
while(a != b) {
    if(a > b) 
        a = a - b;
    else 
        b = b - a;
}
return a; 
Varianta prin împărțiri:
while(b != 0) {
    r = a % b;
    a = b;
    b = r;
}
return a;

2. Prelucrarea Cifrelor

  • Oglinditul (Invers): nr = nr * 10 + n % 10 (cifrele se adaugă la coadă).
  • Construcție directă (Stânga-Dreapta): nr = nr + (n%10) * p; p*=10;

3. Subprograme

Parametri formali: cei din definiție (int x). Parametri efectivi: valorile date la apel (20).
Atenție: Funcțiile void nu returnează valori!

Set de Probleme

Problema 1

Ce returnează funcția următoare pentru apelul calcul(1234)?

int calcul(int n) {
    int x = 0;
    while(n != 0) {
        x = x * 10 + n % 10;
        n = n / 10;
    }
    return x;
}
Problema 2

Care este condiția corectă a instrucțiunii while pentru algoritmul lui Euclid prin scăderi repetate?

Problema 3

Se dă secvența pentru CMMDC prin împărțiri. Ce variabilă conține rezultatul final?

while (b != 0) {
    r = a % b;
    a = b;
    b = r;
}
Problema 4

Ce se întâmplă în următorul subprogram dacă este apelat cu f(5)?

void f(int n) {
    while (n != 0) {
        cout << n;
    }
}
Problema 5

Următoarea funcție construiește un număr nou. Care este logica?

while(n) {
    if(n % 2 == 0) {
        m = m + (n % 10) * p;
        p = p * 10;
    }
    n /= 10;
}
Problema 6

Care dintre următoarele apeluri este corect sintactic pentru funcția: int suma(int a, int b)?

Problema 7

Ce afișează codul următor?

int n = 751, k = 0;
while (n > 0) {
    if (n % 10 > 5) k++;
    n = n / 10;
}
cout << k;
Problema 8

Ce se întâmplă cu parametrul x în main după executarea funcției?

void test(int n) {
    n = n + 10;
} 
// apel: test(x);
Problema 9

Algoritmul de oglindire nou = nou * 10 + n % 10 funcționează corect pentru numere care se termină cu 0?

Problema 10

Ce returnează funcția pentru f(20, 8)?

while(a != b) {
    if(a > b) a -= b;
    else b -= a;
}
Problema 11

În definiția int cmmdc(int a, int b), variabilele a și b sunt:

Problema 12

Ce afișează codul următor (n=1234)?

while(n > 9) {
    n = n / 10;
}
cout << n;
Problema 13

O funcție de tip void:

Problema 14

Ce se afișează dacă n = 2024?

while(n) {
    if(n % 2 != 0) s += n % 10;
    n /= 10;
}
cout << s;
Problema 15

Care este instrucțiunea corectă pentru a verifica dacă un număr n este palindrom?

Problema 16

Ce valoare are variabila p la finalul execuției pentru n=123?

int p = 1;
while(n) {
    p = p * 10;
    n = n / 10;
}
Problema 17

Ce rezultat dă algoritmul lui Euclid dacă unul dintre numere este 0 (ex: cmmdc(12, 0)) folosind varianta cu resturi?

Problema 18

Ce se afișează pentru x=10?

while(x > 0) {
    x = x - 3;
}
cout << x;
Problema 19

Pentru a calcula CMMDC a 3 numere a, b, c folosind funcția int cmmdc(int, int), scriem:

Problema 20

La apelul funcției, valorile transmise (ex: 10, 20) se atribuie parametrilor formali:

Problema 21

Ce se întâmplă dacă într-un `while` condiția este falsă de la început?

int n = 5;
while (n > 10) {
    cout << n;
    n++;
}
Problema 22

Formula matematică pentru Cel Mai Mic Multiplu Comun (CMMMC) folosind CMMDC este:

Problema 23

Ce calculează următorul algoritm?

int k = 0;
while (n != 0) {
    n = n / 10;
    k++;
}
Problema 24

Într-o funcție de tip `void`, instrucțiunea `return;` (fără valoare):

Problema 25

Ce lipsește din următoarea buclă pentru a nu fi infinită?

int n = 10;
while (n > 0) {
    cout << n;
    // ... ce lipsește?
}
Problema 26

Expresia `n % 10` returnează:

Problema 27

Dacă declarăm o variabilă în interiorul buclei `while`, ea:

while (n > 0) {
    int x = n % 10;
    n = n / 10;
}
// x este vizibil aici?
Problema 28

Care este valoarea maximă pe care o poate avea o cifră într-un număr în baza 10?

Problema 29

Un subprogram care verifică dacă un număr este prim, cel mai probabil va returna un tip:

Problema 30

Ce se afișează?

int n = 6;
while (n > 0) {
    n = n - 2;
}
cout << n;

Rezultat Final

0 / 30

Procentaj: 0%