Sunteți pe pagina 1din 8

Varianta 13

Subiectul I
1. Care dintre expresiile C/C++ de mai jos este echivalent cu expresia alturat? !((a<5)&&(b>7)) a. (a>=5)&&(b<=7) b. !(a<5) || !(b>7) c. !(a<5) && !(b>7) d. !(a>=5) && !(b<=7) 2. Se consider algoritmul alturat, descris n pseudocod. S-a notat cu x%y restul mpririi numrului natural x la numrul natural nenul y i cu [z] partea ntreag a numrului real z. a) Scriei numrul ce se va afia dac pentru a se citete valoarea 404, iar pentru b se citete valoarea 413. (b) ac pentru varia!ila a se citete valoarea 58 scriei toate valorile care, citite pentru varia!ila b, determin afiarea numrului 3. c) Scriei programul C/C++ corespun"tor algoritmului dat. d) Scriei n pseudocod un algoritm echivalent cu algoritmul dat n care s se nlocuiasc structura repetitiv pentru... execut cu o structur repetitiv de un alt tip. citete a,b #numere naturale, ab$ k<-0 pentru i->a,b execut n<-i; c<-0 ct timp n>0 execut dac n%2=1 atunci c<-c+1 n<-[n/10] dac c>0 atunci k<-k+1 scrie k

Subiectul II
1. Care este vectorul %de tai% pentru ar!orele cu rdcin din figura alturat? a. 0 0 5 7 6 5 1 b. 1 0 0 7 6 5 0 c. 7 4 5 0 4 5 4 d. 7 4 5 0 4 5 7

2. C&te grafuri neorientate distincte, cu 5 noduri, numerotate de la 1 la 5, se pot construi, astfel nc&t nodul 1 s ai! gradul 1? ou grafuri sunt distincte dac matricele lor de adiacen sunt diferite. a. 32 b. 256 c. 15 d. 24 3. 'entru a memora denumirea unui medicament i preul acestuia se folosete varia!ila m. Scriei declararea varia!ilei m tiind c denumirea medicamentului este un ir cu maximum 30 de caractere, preul acestuia este un numr real, iar majorarea cu 10% a preului se face folosind urmtoarea atri!uire( m.pret=m.pret*1.1; 4. Scriei ce se afiea" pe ecran n urma executrii secvenei de program alturate, n care varia!ila s memorea" un ir de cel mult 12 caractere, iar varia!ila i este de tip ntreg. char s[13]="abcdefghoid"; i=0; cout<<strlen(s); while (i<strlen(s)) if (s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u') strcpy(s+i,s+i+1); else i++; cout<<" "<<s; 5. Scriei un program C/C++ care citete de la tastatur un numr natural n #2<n<40$ i apoi construiete n memorie o matrice cu n linii i n coloane, numerotare de la 1 la n, ale crei elemente primesc valori dup cum urmea"( - elementele aflate pe diagonala secundar sunt toate nule) - elementele aflate deasupra diagonalei secundare sunt toate 1) - elementele aflate su! diagonala secundar sunt toate 2. 'rogramul afiea" pe ecran matricea construit, c&te o linie a matricei pe c&te o linie a ecranului, elementele fiecrei linii fiind separate prin c&te un spaiu. Exemplu pentru n=4 se va afia matricea alturat. 1 1 1 0 1 1 0 2 1 0 2 2 0 2 2 2

Subiectul III
1. *ie su!programul fct definit alturat. Se tie c a, b i c sunt varia!ile ntregi. +niial a=8, b=31 i c=9, iar dup apelul fct(a,b,c), valorile celor trei varia!ile sunt a=9, b=31 i c=39.

Care poate fi antetul complet al su!programului fct? void fct(....) { x=x+1; y=y-1; z=x+y; } a. void fct(int &x,int &y,int &z) c. void fct(int x,int y,int z) b. void fct(int x,int &y,int &z) d. void fct(int &x,int y,int &z)

2.,rei !iei, Alin, Bogdan i Ciprian, i trei fete, Delia, Elena i Felicia, tre!uie s forme"e o echip de trei copii, care s participe la un concurs. -chipa tre!uie s fie mixt #adic s conin cel puin o fat i cel puin un !iat$. .rdinea copiilor n echip este important deoarece aceasta va fi ordinea de intrare a copiilor n concurs #de exemplu echipa Alin, Bogdan, Delia este diferit de echipa Bogdan, Alin, Delia$. C&te echipe se pot forma, astfel nc&t din ele s fac parte simultan Alin i Bogdan? ai exemplu de o echip corect format din care s nu fac parte nici Alin i nici Bogdan. 3. Scriei un program C/C++, care citete de la tastatur un numr natural n #n1000$ i afiea" pe ecran, separai prin c&te un spaiu, primii n termeni ai irului( 1, 2,1, 3,2,1, 4,3,2,1, ... construit astfel( prima grup este format din numrul 1, a doua grup este format din numerele 2 i 1, etc. /rupa a k-a, este format din numerele k, k-1,..., 1. Exemplu pentru n=8 se vor afia valorile 1 2 1 3 2 1 4 3. 4. Se consider su!programul P care primete ca parametri un numr natural n cu maximum 9 cifre i o cifr c i care va returna numrul o!inut din n dup eliminarea tuturor apariiilor cifrei c. a) Scriei doar antetul su!programului P. b) 'e prima linie a fiierului text BAC.IN se gsesc, separate prin c&te un spaiu, mai multe numere naturale de cel mult 9 cifre fiecare. Scriei un program C/C++ care citete numerele din acest fiier, elimin toate cifrele impare din fiecare dintre aceste numere i apoi scrie n fiierul text BAC.OUT numerele astfel o!inute, separate prin c&te un spaiu. Se vor folosi apeluri utile ale su!programului P. ac un numr din fiierul BAC.IN nu conine nicio cifr par nenul, acesta nu va mai aprea deloc n fiierul de ieire. Exemplu dac fiierul BAC.IN conine numerele 25 7 38 130 45127 0 35 60 15, atunci BAC.OUT va avea coninutul( 2 8 42 60.

Rezolvare Subiectul I
1. b.!(a<5) || !(b>7) 2. a.

a b k 404 413 0 1 2 3 4 5 6 7

i 404 405 406 407 408 409 410 411 412 413 414

n 404 40 4 0 405 40 4 0 406 40 4 407 40 4 0 408 40 4 0 409 40 4 0 410 40 4 0 411 41 4 0 412 41 4 0 413 41 4 0

c 0 1 0 1 0 1 0 1 0 1 2 0 1 0 1 2

Afisare 7

b. 61, 62 c.#inc !"e<i#s$rea%.&> #inc !"e<c#ni#.&> in$ %ain()

' in$ a,b,k(0,i,n,c) cin>>a>>b) f#r(i(a)i<(b)i**) ' n(i) c(0) +&i e(n>0) ' if(n,2((1) c**) n(n-10) . if(c>0) k**) . c#!$<<k) /e$c&e()) . ". citete a,b
#numere naturale, ab$ k<-0 i<-a ct timp i<=b execut n<-i; c<-0 ct timp n>0 execut dac n%2=1 atunci c<-c+1 n<-[n/10] dac c>0 atunci k<-k+1 i<-i+1 scrie k

Subiectul II
1. c.7 4 5 0 4 5 4 2.

3. $01e"ef s$r!c$

' c&ar "en!%ire2303) f #a$ 1re$) .%)


4. 01 2 3 4567891011

abc"ef/&i#i" bc"ef/&i#if bc"f/&i#i" bc"f/&#i" bc"f/&i" bc"f/&"

i 1 2 3 4 5 6 7

Afisare 12 bc"f/&"

5. #inc !"e<i#s$rea%.&> #inc !"e<c#ni#.&> in$ %ain() ' in$ a2100321003,n,i,4) cin>>n) f#r(i(1)i<(n)i**) a2i32n5i*13(0) f#r(i(1)i<n)i**) f#r(4(1)4<(n5i)4**) a2i3243(1) f#r(i(2)i<(n)i**) f#r(4(n5i*2)4<(n)4**) a2i3243(2) f#r(i(1)i<(n)i**) ' f#r(4(1)4<(n)4**) c#!$<<a2i3243<<6 7) c#!$<<en" ) . /e$c&e()) .

Subiectul III
1. ". 8#i" fc$(in$ 9:, in$ 0, in$ 9;) 2. A in, <#/"an, =e ia A in, <#/"an, > ena A in, <#/"an, ?e icia A in, =e ia, <#/"an A in, > ena, <#/"an 18 1erec&i @i1rian, =e ia, > ena

A in, ?e icia, <#/"an <#/"an, A in, =e ia <#/"an, A in, > ena <#/"an, A in, ?e icia <#/"an, =e ia, A in <#/"an, > ena, A in <#/"an, ?e icia, A in =e ia, A in, <#/"an =e ia, <#/"an, A in > ena, A in, <#/"an > ena, <#/"an, A in ?e icia, A in, <#/"an ?e icia, <#/"an, A in 3. #inc !"e<i#s$rea%.&> #inc !"e<c#ni#.&> in$ %ain() ' in$ n,i,4,k(1) cin>>n) i(1) +&i e(i<(n) ' f#r(4(k)4>(1)4**) ' c#!$<<k<<6 7) i**) . k**) i**) . /e$c&e()) . 4. #inc !"e<i#s$rea%.&> #inc !"e<c#ni#.&> #inc !"e<fs$rea%.&> ifs$rea% f(7<A@.AB6)) #fs$rea% /(7<A@.CDE)) in$ F(in$ n, in$ c) ' in$ :(0) +&i e(n!(0) ' if(n,10!(c) :(n,10G10*:)

n(n-10) . re$!rn :) . in$ %ain() ' in$ i,:) +&i e(f>>:) ' f#r(i(1)i<(9)i*2) :(F(:,i)) if(:>0) /<<:<<6 7) . f.c #se()) /.c #se()) /e$c&e()) .

S-ar putea să vă placă și