You are on page 1of 3

1.

Indicați expresia C/C++ care are valoarea 1 dacă şi numai dacă numărul natural memorat în
variabila întreagă n este divizibil cu 2, dar NU şi cu 5.
a. !((n%2==1) || (n%5==0))
b. (n%2==0) && (n%5==0)
c. (n%10==0) || (n%5!=0)
d. (n%10==0) && (n%2==0)
2. În secvența alăturată toate variabilele sunt întregi și memorează valori naturale. Indicați o
expresie care poate înlocui punctele de suspensie, astfel încât, în urma executării secvenţei
obţinute, variabila z să memoreze câtul împărțirii numărului memorat inițial în x la numărul
nenul memorat în y.
z=0;
while(x>=y)
{ x=........;
z=z+1;
}
a. x+y
b. x-y
c. x/10
d. x%10

3. O expresie C/C++ care are valoarea 1 dacă şi numai dacă numărul memorat în variabila
întreagă x NU aparţine reuniunii de intervale [-3,-1]∪[1,3] este:
a. abs(x)>3 && x==0
b. abs(x)<1 || abs(x)>3
c. abs(x-3)<1
d. abs(x-1)>3
4. În secvenţa de instrucţiuni alăturată, toate variabilele sunt întregi şi memorează numere
naturale. Pentru orice valori nenule ale variabilelor x şi y, valoarea obţinută pentru variabila z
în urma executării secvenţei este egală cu cea atribuită prin instrucţiunea:
while(x>=y)
x=x-y;
z=x;

a. z=x/y;
b. z=y/x;
c. z=x%y;
d. z=y%x;
5. Variabila întreagă x memorează un număr natural cu cel puțin patru cifre nenule distincte.
Expresia C/C++ a cărei valoare este egală cu cifra sutelor acestui număr este:
a. x/100
b. x%100
c. (x/10)%10
d. (x/100)%10

6. In secvenţele de mai jos, notate cu S1 şi S2, toate variabilele sunt de tip întreg.
//secventa S1
while(x!=y)
if(x>y) x=x-y;
else y=y-x;

//secventa S2
while(y!=0)
{ x=x%y; z=y; y=x; }

Variabila x memorează cel mai mare divizor comun al celor două numere naturale nenule,
memorate iniţial în variabilele x şi y, în urma executării:
a. numai a secvenţei S1
b. numai a secvenţei S2
c. atât a secvenţei S1 cât şi a lui S2
d. niciuneia dintre cele două secvenţe

7. Se consideră algoritmul alăturat, reprezentat în pseudocod. S-a notat cu a%b restul


împărţirii numărului natural a la
numărul natural nenul b şi cu [c] partea întreagă a numărului real c.
citeşte n,k (numere naturale, k>1)
pm←0
i←1
┌cât timp i≤n execută
│ x←i
│ p←0
│┌cât timp x%k=0 execută
││ x←[x/k]
││ p←p+1
│└■
│┌dacă p>pm atunci
││ pm←p
│└■
│ i←i+1
└■
scrie pm
a) Scrieţi valoarea afişată dacă se citesc, în această ordine, numerele 7 și 2.
b) Dacă pentru variabila k se citeşte numărul 5, scrieţi cea mai mică şi cea mai mare valoare
care pot fi citite pentru variabila n astfel încât, în urma executării algoritmului, pentru fiecare
dintre acestea, valoarea afişată să fie 3
c)Scrieţi în pseudocod un algoritm, echivalent cu cel dat, înlocuind prima structură cât
timp...execută cu o structură repetitivă de tip pentru...execută.
8. Se citeşte un număr natural cu toate cifrele nenule, n, şi se cere să se scrie numărul
obţinut prin eliminarea tuturor cifrelor impare din n, respectiv -1 dacă nu există astfel de
cifre sau dacă toate cifrele lui n sunt impare.
Exemplu: dacă n= 23541 se scrie 24, iar dacă n=28 se scrie -1.

9. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural, n (n∈[2,102]), și


construieşte în memorie un tablou unidimensional cu n elemente, numerotate de la 1 la n,
astfel:
• primul element este nul;
• elementele de pe poziții pare sunt egale cu valoarea poziției pe care se află;
• oricare alt element este obţinut prin însumarea celor două elemente aflate imediat
înaintea sa, ca în exemplu. Elementele tabloului obținut sunt afișate pe ecran, separate prin
câte un spaţiu.
Exemplu: pentru n=11 se obține tabloul (0,2,2,4,6,6,12,8,20,10,30)

You might also like