Subiect rezolvat · Informatică

Subiect admitere Informatică varianta 2 rezolvat — 10 grile C++

Variantă de antrenament cu 10 grile de nivel admitere (UPB, UBB, UTCN, ASE): incrementări în C++, aranjamente, metoda bulelor, operatorii / și %, grafuri orientate, cozi, baza 16, recursivitate și matrice de adiacență.

Întrebarea 1

Ce afișează secvența?

cppcod
int a = 5, b; b = a++; b = b + ++a; cout << a << " " << b;
  1. A)

    7 12

  2. B)

    6 11

  3. C)

    7 11

  4. D)

    6 12

Răspuns corect: A

Rezolvare pas cu pas

  1. b = a++; atribuie lui b valoarea veche, 5, apoi a devine 6.
  2. ++a crește întâi a la 7 și folosește 7, deci b = 5 + 7 = 12.
  3. Se afișează 7 12.

De ce este corect A și de ce celelalte variante sunt greșite

A este corect. B ignoră a doua incrementare. C consideră că ++a folosește valoarea veche, 6 — asta face a++ (postincrementare), nu ++a. D amestecă cele două efecte.

Întrebarea 2

Câte numere naturale de 3 cifre distincte se pot forma cu cifrele {1, 2, 3, 4, 5}?

  1. A)

    125

  2. B)

    60

  3. C)

    10

  4. D)

    20

Răspuns corect: B

Rezolvare pas cu pas

  1. Contează ordinea (123 ≠ 321) și cifrele sunt distincte, deci folosim aranjamente.
  2. A53=5⋅4⋅3=60A_5^3 = 5 \cdot 4 \cdot 3 = 60.

De ce este corect B și de ce celelalte variante sunt greșite

B este corect. A (535^3) permite repetarea cifrelor. C (C53C_5^3) ignoră ordinea. D nu corespunde unei formule potrivite.

Întrebarea 3

Câte comparații face, în cel mai rău caz, sortarea prin metoda bulelor (varianta clasică, fără oprire anticipată) pentru un vector cu 10 elemente?

  1. A)

    10

  2. B)

    45

  3. C)

    100

  4. D)

    90

Răspuns corect: B

Rezolvare pas cu pas

  1. La pasul ii se compară n−in-i perechi vecine: 9+8+⋯+19 + 8 + \dots + 1.
  2. Suma este 9⋅102=45\dfrac{9 \cdot 10}{2} = 45, adică n(n−1)2\dfrac{n(n-1)}{2}.

De ce este corect B și de ce celelalte variante sunt greșite

B este corect. C (n2n^2) este doar o margine superioară grosieră. D (n(n−1)n(n-1)) numără de două ori fiecare pereche. A ar fi o singură trecere.

Întrebarea 4

Care este valoarea expresiei C++ 17 / 5 * 5 + 17 % 5?

  1. A)

    17

  2. B)

    15

  3. C)

    2

  4. D)

    20

Răspuns corect: A

Rezolvare pas cu pas

  1. 17 / 5 = 3 (împărțire întreagă), apoi 3 * 5 = 15.
  2. 17 % 5 = 2.
  3. 15 + 2 = 17. Este identitatea împărțirii cu rest: a=(a/b)⋅b+a%ba = (a / b) \cdot b + a \% b.

De ce este corect A și de ce celelalte variante sunt greșite

A este corect. B uită restul. C e doar restul. D ar rezulta din (17/5+1)*5.

Întrebarea 5

Un graf orientat cu 5 noduri are cel mult câte arce (fără bucle și fără arce multiple)?

  1. A)

    10

  2. B)

    20

  3. C)

    25

  4. D)

    5

Răspuns corect: B

Rezolvare pas cu pas

  1. Fiecare pereche ordonată (x,y)(x, y) cu x≠yx \neq y poate fi un arc.
  2. Numărul de perechi ordonate distincte: n(n−1)=5⋅4=20n(n-1) = 5 \cdot 4 = 20.

De ce este corect B și de ce celelalte variante sunt greșite

B este corect. A (C52C_5^2) este maximul pentru un graf neorientat. C (n2n^2) ar include buclele. D nu are justificare.

Întrebarea 6

Ce afișează programul?

cppcod
int v[] = {4, 8, 15, 16, 23, 42}; int s = 0; for (int i = 0; i < 6; i += 2) s += v[i]; cout << s;
  1. A)

    42

  2. B)

    66

  3. C)

    108

  4. D)

    27

Răspuns corect: A

Rezolvare pas cu pas

  1. i ia valorile 0, 2, 4.
  2. s=v[0]+v[2]+v[4]=4+15+23=42s = v[0] + v[2] + v[4] = 4 + 15 + 23 = 42.

De ce este corect A și de ce celelalte variante sunt greșite

A este corect. B (8+16+428 + 16 + 42) adună pozițiile impare. C este suma tuturor elementelor. D se oprește prea devreme.

Întrebarea 7

Într-o coadă (queue) se introduc, în ordine, 1, 2, 3, apoi se extrage un element și se introduce 4. Ce element este în față?

  1. A)

    1

  2. B)

    2

  3. C)

    3

  4. D)

    4

Răspuns corect: B

Rezolvare pas cu pas

  1. Coada este FIFO (primul intrat, primul ieșit). După inserări: [1, 2, 3].
  2. Extragerea scoate 1: [2, 3]. Inserarea lui 4 îl pune la final: [2, 3, 4].
  3. În față se află 2.

De ce este corect B și de ce celelalte variante sunt greșite

B este corect. A a fost deja extras. C ar fi în față doar după încă o extragere. D ar fi în vârf la o stivă (LIFO), nu la coadă.

Întrebarea 8

Numărul 255(10)255_{(10)} scris în baza 16 este:

  1. A)

    FF

  2. B)

    EF

  3. C)

    F0

  4. D)

    100

Răspuns corect: A

Rezolvare pas cu pas

  1. 255=15⋅16+15255 = 15 \cdot 16 + 15.
  2. Cifra 15 în baza 16 este F, deci 255(10)=FF(16)255_{(10)} = FF_{(16)}.

De ce este corect A și de ce celelalte variante sunt greșite

A este corect. B (14⋅16+15=23914 \cdot 16 + 15 = 239). C (15⋅16=24015 \cdot 16 = 240). D (100(16)=256100_{(16)} = 256).

Întrebarea 9

Ce returnează g(5)?

cppcod
int g(int n) { if (n <= 1) return 1; return g(n - 1) + g(n - 2); }
  1. A)

    5

  2. B)

    8

  3. C)

    13

  4. D)

    3

Răspuns corect: B

Rezolvare pas cu pas

  1. g(0)=1g(0) = 1, g(1)=1g(1) = 1.
  2. g(2)=2g(2) = 2, g(3)=3g(3) = 3, g(4)=5g(4) = 5, g(5)=g(4)+g(3)=5+3=8g(5) = g(4) + g(3) = 5 + 3 = 8.

De ce este corect B și de ce celelalte variante sunt greșite

B este corect (șir Fibonacci decalat, pentru că g(0)=1g(0)=1). A ar fi Fibonacci clasic F5F_5 cu F0=0F_0 = 0. C este g(6)g(6). D este g(3)g(3).

Întrebarea 10

Câte elemente nenule are, cel mult, matricea de adiacență a unui arbore cu 8 noduri?

  1. A)

    7

  2. B)

    8

  3. C)

    14

  4. D)

    16

Răspuns corect: C

Rezolvare pas cu pas

  1. Un arbore cu 8 noduri are 8−1=78 - 1 = 7 muchii.
  2. Matricea de adiacență a unui graf neorientat este simetrică: fiecare muchie [x,y][x, y] pune 1 în a[x][y]a[x][y] și în a[y][x]a[y][x].
  3. Total: 2⋅7=142 \cdot 7 = 14 elemente egale cu 1.

De ce este corect C și de ce celelalte variante sunt greșite

C este corect. A numără muchiile, nu elementele matricei. B confundă cu numărul de noduri. D ar corespunde unui graf cu 8 muchii.

Exersează Informatică