Documente Academic
Documente Profesional
Documente Cultură
5. Cea mai mare dintre valorile strict negative memorate ntr-un vector NU
exist dac:
a. n vector sunt memorate numai valori strict negative
b. n vector exist cel puin o valoare negativ
c. n vector sunt memorate valori nenule pozitive i negative
d. n vector sunt memorate numai valori strict pozitive
74
8. Pentru a verifica dac toate elementele unui vector A sunt strict mai mici dect
toate elementele unui alt vector B ordonat cresctor, se compar pe rnd
fiecare element din A cu toate elementele din B. Aceast metod de verificare
este:
a. incorect b. corect dar neeficient
c. corect numai pentru componente ntregi d. corect i eficient
10. Care din secvenele de program pseudocod de mai jos elimin corect
elementul x1 din vectorul avnd componentele x1, x2,..., xn ?
a. i1 b. i2
ct timp i<=n-2 execut ct timp i<=n execut
xixi+1; ii+1 xixi-1; ii+1
nn-1 nn-1
c. i2 d. i2
ct timp i<=n execut ct timp i<=n execut
xi-1xi; ii+1 xixi+1; ii+1
nn-1 nn-1
75
12. Pentru a sorta vectorul v, care are pentru i=1,99 execut
100 de componente numerotate de xi
la 1 la 100, se folosete algoritmul pentru j=i+1,100 execut
pseudocod alturat. Care este dac vj<vx atunci
numrul maxim de interschimbri xj
care pot fi executate?
dac xi atunci
tvx; vxvi; vit
a. 50 de interschimbri b. 200 de interschimbri
c. 99 de interschimbri d. 100 de interschimbri
76
16. n secvena alturat s-a notat cu pentru i 1, n execut
x%y restul mpririi numrului dac (i%2=0) i (a[i]%2>0)
ntreg x la numrul ntreg y. atunci scrie a[i]
Aceast secven are ca efect:
a. Tiprirea elementelor de valoare impar aflate pe poziii pare n tabloul a
b. Tiprirea elementelor de valoare impar aflate pe poziii impare n tabloul a
c. Tiprirea elementelor de valoare par aflate pe poziii impare n tabloul a
d. Tiprirea elementelor de valoare par aflate pe poziii pare n tabloul a
77
22. Se consider o stiv implementat prin intermediul vectorului a cu
elementele : a[0]=0, a[1]=10, a[2]=20, a[3]=30, a[4]=40,
a[5]=50. Dac cel de-al doilea element, ncepnd de la baza stivei, este
10, atunci primul element care iese din stiv este:
a. a[6] b. a[1] c. a[5] d. a[0]
23. Un program care urmeaz s sorteze cresctor 15 numere reale aflate ntr-
un fiier, citete aceste numere ntr-o variabil x. Cum trebuie declarat
aceast variabil?
a. var x:integer; a. int x;
b. var x:array[1..15]of real; b. float x[15];
c. var x:array[1..15]of word; c. unsigned x[15];
d. var x:real; d. float x;
25. Care este declararea corect a unei variabile x pentru a memora 3 numere
ntregi mpreun cu media lor aritmetic?
a. var x:array[1..4] of real; a. float x[4];
b. var x: real[1..4]; b. int x[3];
c. var x::array[4] of integer; c. float x[3];
d. var x:array[1..4] of integer; d. int x[4];
78
Var i:integer; int a[100], i;
a:array[1..100] of integer;
Care dintre urmtoarele instruciuni este corect din punct de vedere
sintactic?
a. a[1] := i a. a[1] = i;
b. a := i b. a = i;
c. i := a c. i = a;
d. i[1] := a d. i[1] = a;
a. 0; i x[i]<min a. 0; i x[i]<min
b. x[1]; i x[i]<min b. x[1]; i x[i]<min
c. x[1]; i x[i] >=min c. x[1]; i x[i]>=min
d. x[n]; i x[i]<=min d. x[n]; i x[i]<=min
31. Fie v un vector cu n elemente de tip ntreg, iar n un numr natural nenul
(n<=100). De cte ori se repet instruciunea i:=i+1; / i++; n timpul
executrii secvenei de instruciuni urmtoare?
i:=0; i=0;
while i<n do while (i<n)
begin { i++;
i:=i+1; v[i]:=i*i v[i]=i*i;
end }
a. n ori b. n+1 ori c. 0 ori d. n-1 ori
79
32. Fie v un tablou unidimensional format din n componente ntregi, numerotate
de la 1 la n, iar p i k dou variabile de tip ntreg. n care dintre urmtoarele
secvene variabilei p i se atribuie prima valoare strict pozitiv din tabloul v,
dac exist o astfel de valoare, sau 0 in caz contrar?
a. p:=0;k:=1; a. p=0;k=1;
while v[k]>=0 do k:=k+1; while(v[k]>=0) k++;
p:=v[k] p=v[k];
b. p:=0;k:=n; b. p=0;k=n;
while v[k]<=0 do k:=k-1; while(v[k]<=0) k--;
p:=v[k] p=v[k];
c. p:=0; c. p=0;
for k:=1 to n do for(k=1;k<=n;k++)
if (v[k]>0)and(p=0) if((v[k]>0)&&(p==0))
then p:=v[k] p=v[k];
d. p:=0; d. p=0;
for k:=1 to n do for(k=1;k<=n;k++)
if v[k]>0 then p:=v[k] if(v[k]>0) p=v[k];
33. Fie v un tablou unidimensional format din n numere ntregi (n>=2). tiind c
primul element din tablou se afl pe poziia 1, indicai care dintre urmtoarele
secvene atribuie variabilei ntregi max cea mai mare valoare din tabloul v:
a. for i:=2 to n do a. for(i=2;i<=n;i++)
if v[i-1]<=v[i] then if(v[i-1]<=v[i])
v[i-1]:=v[i]; v[i-1]=v[i];
write(v[1]) max=v[1];
b. for i:=1 to n-1 do b. for(i=1;i<=n-1;i++)
if v[i+1]>v[i] then if(v[i+1]>v[i])
v[i]:=v[i+1]; v[i]=v[i+1];
write(v[1]) max=v[1];
c. for i:=2 to n do c. for(i=2;i<=n;i++)
if v[i-1]>v[i] then if(v[i-1]>v[i])
v[i]:=v[i-1]; v[i]=v[i-1];
write(v[n]) max=v[n];
d. for i:=n downto 2 do d. for(i=n;i>=2;i--)
if v[i]>v[i-1] then if(v[i]>v[i-1])
v[i]:=v[i-1]; v[i]=v[i-1];
write(v[n]) max=v[n];
80
35. Care dintre secvenele de mai jos conduce la memorarea n variabila max a
celei mai mari dintre cele n valori ntregi reinute n tabloul unidimensional a
(n care a[1] este primul element) ?
a. 0 b. 5 c. 13 d. nedeterminat
81
for i:=1 to 4 do for (i=0;i<4;i++)
if a[i]>a[i+1] then begin if (a[i]>a[i+1]){
aux:=a[i]; aux=a[i];
a[i]:=a[i+1];a[i+1]:=aux a[i]=a[i+1];a[i+1]=aux;
end; }
a. a[1]=2, a[2]=4, a[3]=1, a. a[0]=2, a[1]=4, a[2]=1,
a[4]=3, a[5]=5 a[3]=3, a[4]=5
b. a[1]=4, a[2]=2, a[3]=5, b. a[0]=4, a[1]=2, a[2]=5,
a[4]=1, a[5]=3 a[3]=1, a[4]=3
c. a[1]=1, a[2]=2, a[3]=3, c. a[0]=1, a[1]=2, a[2]=3,
a[4]=4, a[5]=5 a[3]=4, a[4]=5
d. a[1]=4, a[2]=2, a[3]=1, d. a[0]=4, a[1]=2, a[2]=1,
a[4]=3, a[5]=5 a[3]=3, a[4]=5
82
2.1.2. Probleme ( programe pseudocod, Pascal | C/C++ )
1. Se consider programul
pseudocod alturat n care s-a folosit pentru i=1,10 execut
notaia [x] pentru partea ntreag a ai = 2*i
lui x .
citete c (numr ntreg)
1) Ce se va afia pentru c=8? s1 ; d10 ; g0 ; k0
repet
2) Scriei o valoare strict pozitiv de o m [(s+d)/2]
cifr pentru variabila c astfel nct k k+1
dac se citete aceast valoare, dac c=am atunci g1
programul afieaz valorile 0 i 4. altfel
3) Scriei programul pseudocod care s dac c<am atunci
fie echivalent cu algoritmul dat i care dm-1
s foloseasc o structur repetitiv cu altfel sm+1
test iniial n locul structurii repetitive
repet...pan cnd.
pn cnd g=1 sau s>d
4) Scriei programul Pascal/C/C++ scrie g,k
corespunztor cu algoritmul dat.
83
3. Se consider programul pseudocod
citete n {numr natural }
alturat:
pentru i0,9 execut
S-a notat cu x%y restul mpririi numrului ai0
natural x la numrul natural y i cu [z] partea
ntreag a numrului real z. repet
i n%10; ai ai +1;
1) Ce se va afia pentru n=10220685? n[n/10]
pn cnd n=0
2) Cte valori pot fi introduse pentru variabila
pentru i9,0,-1 execut
n astfel nct rezultatul afiat n urma
pentru j1,ai
executrii algoritmului s fie 720.
scrie i
3) Scriei programul pseudocod care s fie
echivalent cu algoritmul dat i care s
conin o structur repetitiv cu test iniial
n locul structurii repetitive cu test final.
4) Scriei programul Pascal/C/C++ corespunztor cu algoritmul dat.
84
5. Se consider programul pseudocod urmtor, unde v reprezint un tablou
unidimensional cu elemente numere ntregi n care v1 este primul element al
tabloului, v2 este al doilea, ... , iar vn este ultimul.
1) Care este valoarea afiat dac de la
citete n (n N impar)
1. tastatur se citesc, n ordine, valorile pentru i=1,n execut
5,1,7,3,2,3? citete vi
2) Dac n=7, iar urmtoarele 7 valori citite sunt
2. egale ntre ele, care trebuie s fie valoarea lor i0; j0
ct timp j<n execut
astefel nct s se afieze 8 ?
ii+1; jj+2
3) Scriei programul PASCAL/C/C++
3. corespunztor algoritmului dat. scrie vi
4) Scriei un algoritm pseudocod echivalent cu cel dat care s nu utilizeze alte
4. structuri repetitive n afara celei folosite pentru citirea tabloului.
85
3) Ce proprietate trebuie s ndeplineasc elementele vectorului v pentru a fi
afiate?
4) Scriei programul Pascal/C/C++ corespunztor algoritmului dat.
86
10. Se consider programul
pseudocod alturat: citete n
{n numr natural, 1<n100}
1) Care sunt valorile afiate n urma pentru i1,n execut
executrii, dac se citete citete ai
succesiunea de valori: 5, 7, 8, 1, 0,
6? pentru i2,n execut
x ai; ji-1
2) Precizai o succesiune de 7 valori
ct timp j>0 i x<aj execut
care pot fi citite astfel nct aj+1aj; ajx; jj-1
instruciunile din structura repetitiv
ct timp s nu se execute
niciodat. pentru i1,n execut
3) Scriei programul Pascal/C/C++ scrie ai
corespunztor algoritmului dat.
4) Scriei un program pseudocod echivalent cu algoritmul dat, care utilizeaz o
structur repetitiv cu test final n locul structurii repetitive ct timp.
87
14. Se citesc de la tastatur dou valori naturale m i n (m,n<=100), iar apoi
m+n numere ntregi de cel mult 9 cifre fiecare. Dintre cele m+n numere citite
primele m sunt ordonate strict cresctor, iar urmtoarele n sunt deasemenea
ordonate strict cresctor. Se cere s se afieze pe ecran care din cele m+n
numere au fost citite de dou ori.
a) Descriei un algoritm eficient de rezolvare a acestei probleme, explicnd
n ce const eficiena acestuia.
b) Scriei programul Pascal corespunztor algoritmului descris.
De exemplu pentru m=7 i n=10 i valorile 1,2,3,4,5,6,20,3,5,7,8,
9,10,12,20, 24,35 se vor afia valorile 3 5 20.
17. Se citesc de la tastatur n (n<100) numere naturale mai mici dect 10000.
Scriei programul Pascal/C/C++ ce afieaz pe ecran n ordine
cresctoare toate numerele ce ncep i se termin cu aceeai cifr.
Numerele se afieaz separate prin cte un spaiu.
Exemplu: Dac n=6, iar numerele citite sunt: 21 3123 7 454 45 10
atunci programul va afia: 7 454 3123.
88
18. Scriei un program Pascal/C/C++ care citete un numr natural nenul par, n,
n<100 i apoi n numere naturale de cel mult 4 cifre fiecare i determin cea mai
mare sum care poate fi obinut adunnd numai o jumtate din toate numerele
citite. Rezultatul se va afia pe ecran. De exemplu, pentru n=6 i numerele
728,10,103,44,1000,94 se va afia: 1831 (reprezentnd suma:
728+103+1000)
19. Scriei un program C/C++ care citete de la tastatur un numr natural nenul n
(n1000), construiete n memorie i apoi afieaz pe ecran un tablou
unidimensional a, avnd n elemente. Tabloul a se completeaz cu numerele
naturale de la 1 la n, astfel: se memoreaz valoarea 1 pe poziia 1, valoarea 2
pe poziia n, 3 pe poziia 2, 4 pe poziia n-1, 5 pe poziia 3, etc. Elementele
tabloului se afieaz pe ecran cu cte un spaiu ntre ele.
Exemplu: pentru n=9 tabloul afiat este: 1 3 5 7 9 8 6 4 2
89