Probleme+siruri

I. Variante Bac 1.Ce se afişează în urma executării secvenţei de program alăturate, dacă variabila s memorează şirul de caractere **//abcdef//** iar variabila n este de tip întreg?
 * n=strlen(s);**
 * s[n-1]=s[0];**
 * cout<<s;**

2.Ce se va afişa în urma executării secvenţei de instrucţiuni alăturate dacă variabila s memorează şirul de caractere abbacdde, iar variabila i este de tip întreg?
 * i=0;**
 * while (i<strlen(s)-1)**
 * if (s[i]==s[i+1])**
 * strcpy(s+i,s+i+1);**
 * else**
 * i=i+1;**
 * }**
 * cout<<s;**
 * cout<<s;**

3.Scrieţi ce se afişează pe ecran în urma executării secvenţei de program alăturate, în care variabila s memorează un şir de cel mult 12 caractere, iar variabila i este de tip întreg.
 * char s[13]="abcdefghoid";**
 * cout<<strlen(s);**
 * for (int i=0;i<strlen(s);i++)**
 * if (strchr("aeiou",s[i])!=NULL)**
 * s[i]= s[i]-'a'+'A';**
 * cout<<" "<<s;**

4.Scrieţi ce se afişează pe ecran în urma executării secvenţei de program alăturate, în care variabila s memorează un şir cu cel mult 12 caractere, iar i este de tip întreg.
 * char s[13]="abcdefghoid";**
 * cout<<strlen(s);**
 * for (int i=0;i<strlen(s);i++)**
 * if (s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u')**
 * s[i]= s[i]-'a'+'A';**
 * cout<<" "<<s;**

5.Scrieţi ce se afişează pe ecran în urma executării secvenţei de program alăturate, în care variabila s memorează un şir de cel mult 12 caractere, iar variabila I este de tip întreg.
 * char s[13]="abcdefghoid";**
 * i=0;**
 * cout<<strlen(s);**
 * while (i<strlen(s))**
 * if (strchr("aeiou",s[i])!=NULL)**
 * strcpy(s+i,s+i+1);**
 * else i++;**
 * cout<<" "<<s;**


 * 6.**Ce se afişează pe ecran în urma executării secvenţei de program alăturate, în care variabila s memorează un şir cu cel mult 10 caractere, iar variabilele i, j şi k sunt de tip întreg?
 * char s[11]="abcduecda";**
 * cout<<strlen(s);**
 * i=0; j=strlen(s)-1;**
 * k=0;**
 * while (i<j){**
 * if (s[i]==s[j])**
 * k=k+1;**
 * i=i+1;**
 * j=j-1;**
 * }**
 * cout<<" "<<k;**


 * 7.**În secvenţa de instrucţiuni de mai jos, variabila s memorează un şir de caractere format doar din litere ale alfabetului englez, iar variabilele i şi n sunt de tip int. Ştiind că în urma executării secvenţei s-a afişat succesiunea de caractere eeleeeneee scrieţi care este şirul de caractere memorat de variabila s.
 * n=strlen(s);**
 * for(i=0;i<n;i++)**
 * cout<<s[i]<<'e';**


 * 8.**Fie s o variabilă ce memorează un şir de caractere, format doar din litere ale alfabetului englez, şi i o variabilă de tip int. Scrieţi instrucţiunile ce pot înlocui punctele de suspensie din secvenţa de program alăturată astfel încât executarea ei să determine eliminarea tuturor literelor mici din şirul s şi apoi afişarea şirului obţinut.
 * i=0;**
 * while (i<strlen(s))**
 * cout<<s;**
 * cout<<s;**


 * 9.**Fie s o variabilă ce memorează un şir de caractere, format doar din litere ale alfabetului englez, şi i o variabilă de tip int. Scrieţi instrucţiunile ce pot înlocui punctele de suspensie din secvenţa de rogram alăturată astfel încât executarea ei să determine înlocuirea tuturor literelor mici din şirul s cu litera W şi apoi afişarea şirului obţinut.
 * i=0;**
 * while (i0) i=i-1; } else i=i+1;**

II. Exercitii diverse

1. Precizati rezultatul furnizat de urmatoarele functii: strcmp(“abc”,”abc”), strcmp(“ab”,”a”),strcmp(“ab”,”abc”), strcmp(“ab”,”Ab”), strcmp(“ab”,”A”), strncmp(“abc”,”abcd”,3),stricmp(“Abcd”,”Abcd”), stricmp(“abcd”,”Abcd”), stricmp(“ab”,”Abc”), strnicmp(“abcd”,”Abcd”,2),strnicmp(“abc”,”Abc”,4), stricmp(“a”,”A”), strcmp(“ab”,”Ab”), stricmp(“ab”,”Ab”). 2. Analizati si explicati secventa urmatoare, unde s,t,u sunt variabile de tip sir de caractere: strcpy(s,”INFORMATICA”); strcpy(t,s); strncpy(u,s,2);

3. Fie sirurile declarate astfel: char sir1[]=”aranjare”, sir2[]=”aranjament”; Ce va afisa urmatoarea secventa de program? if(strcmp(sir1,sir2)>0) cout<<sir1; else cout<<sir2; 4. Spuneti care este efectul programului de mai jos? main { char sir1[]=”calculator”, sir2[]=”performant”; strcat(sir1,”"); strcat(sir1,sir2); cout<<sir1; } 5. Spuneti care este efectul programului de mai jos? main { char sir1[]=”calculator”, sir2[]=”performant”; strcpy(sir1+3,sir2+6); cout<<sir1; } 6. Spuneti care este efectul programului de mai jos? main { char sir1[20]=”calculator”, sir2[20]=”performant”; strncat(sir1,sir2,6); cout<<sir1; } 7. Fie sirurile de caractere x,s si t. Care dintre instructiunile de mai jos determina interschimbarea continuturilor sirurilor s si t? a) x=s; s=t; t=x; b) strcpy(t,s); strcpy(s,t); c) strcpy(t,x); strcpy(x,s); strcpy(s,t); d) strcpy(x,s); strcpy(s,t); strcpy(t,x);

8. Ce se va afisa in urma executarii programului? main { char a[3]="1", b[3]="2", c[3]="3"; strcat(a,c); strcat(c,b); strcat(b,a); cout<
 * 2) include

10. Care dintre instructiunile urmatoare determina stergerea tuturor caracterelor care ocupa in sirul s pozitiile incepand de la pozitia p1, pana la pozitia p2, inclusiv? a) strcpy(s+p1, s+p2+1); b) strcpy(s[p1], s[p2]); c) strcpy(s+p1, s+p2); d) strcpy(&s[p1], &s[p2+1]); 11. Alegeti raspunsul corect: i) s= strcat (strstr (“bacalaureat”,”aca”) + strlen(“2008”),”08”) a) BAC2008 b) aureat08 c) Bac200808 d) aur2008 ii) strcpy(s,”bac2008”); for(i=0;i=’0’ && s[i]<=’9’) cout<<s[i]; a) bac2008 b) 2008 c) bac d) 2008bac 12. Ce se va afisa? a) Daca sirul citit este “cacao” b) strcpy(b,”calculator”); for (i=0;i=’0’ && s[i]<=’9’) cout<<s[i]; a) bac2008 b) 2008 c) bac d) 2008bac

15. Ce se va afisa? a) Daca sirul citit este “cacao” b) strcpy(b,”calculator”); for (i=0;i<strlen(s);i++) strcpy(b+3,b+6); if ( s[i]==’c’) s[i]=’p’; cout<<s; cout<<s;

16. Se da sirul s ce memoreaza “abcdefghij”.Ce se va afisa in urma executarii secventelor urmatoare: strcpy(s+2,s+4); cout<<s<<” “<<strlen(s);

III. Probleme practice


 * Scrieţi cate un program C/C++ pentru fiecare dintre cerintele de mai jos:**

=
3. Se citeşte din fişierul text elevi.in prenumele elevilor unei clase, câte un prenume (şir de maxim 20 de caractere) pe o linie a fişierului. Scrieţi un program care afişează pe ecran lungimea celui mai lung prenume şi numărul prenumelor având această lungime. ======

=
4. Se citeşte din fişierul text elevi.in prenumele elevilor unei clase, câte un prenume (şir de maxim 20 de caractere) pe o linie a fişierului. Scrieţi un program care afişează pe ecran lista prenumelor scrisă în ordine alfabetică. ======

=
5. Se citeşte un text cu cel mult 255 de caractere de la tastatură. Transformaţi toate cuvintele din text astfel încât să fie scrise cu prima litera majusculă. Exemplu: pentru textul „marele frig rosu” se va afişa „Marele Frig Rosu”. ======

6. Se citeşte un text cu cel mult 255 de caractere de la tastatură format din cuvinte separate prin caractere semne de punctuaţie “: ;, . ! ? -”. Determinaţi numărul de cuvinte din text.
IV. PROBLEME BAC

Probleme Bacalaureat
 Să se scrie un program C/C++ care citeşte de la tastatură un cuvânt format din cel mult 20 de caractere, doar litere mici ale alfabetului englez. Programul determină transformarea cuvântului citit prin înlocuirea fiecărei vocale a cuvântului, cu un şir format din două caractere şi anume vocala respectivă urmată de litera mare corespunzătoare, restul literelor nemodificându-se, ca în exemplu. Programul afişează pe ecran cuvântul obţinut, pe o singură linie. Se consideră vocale literele din mulţimea {a,e,i,o,u}.
 * ====1. Subiect tip II - Varianta 002 problema 5-Bacalaureat 2009 ====

====2. Subiect tip II - Varianta 006 problema 5-Bacalaureat 2009 ==== Se consideră un text cu maximum **255** de caractere în care cuvintele sunt separate prin unul sau mai multe spaţii. Primul caracter din textul citit este o literă, iar cuvintele sunt formate numai din litere mici ale alfabetului englez. Scrieţi un program C/C++ care citeşte de la tastatură textul şi îl transformă, **înlocuind prima literă a fiecărui cuvânt cu litera mare** **corespunzătoare**, restul caracterelor rămânând nemodificate. Textul astfel transformat va fi afişat pe ecran.
 * Exemplu:** pentru cuvântul **bacalaureat** se va afişa pe ecran: **baAcaAlaAuUreEaAt**

====3. Subiect tip II - Varianta 007 problema 5-Bacalaureat 2009 ==== Se consideră un text cu maximum **255** de caractere, format din litere mici ale alfabetului englez şi spaţii. Textul conţine cel puţin o consoană. Scrieţi un program C/C++ care citeşte de la tastatură textul şi apoi **determină transformarea acestuia, eliminând numai ultima** **consoană care apare în text,** ca în exemplu. Programul va afişa pe ecran textul obţinut.
 * Exemplu**: dacă de la tastatură se introduce textul: **mare frig rosu** se va afişa pe ecran:
 * Mare Frig Rosu **

====4. Subiect tip II - Varianta 021 problema 5-Bacalaureat 2009 ==== Se consideră un text alcătuit din cel mult **250** de caractere, în care cuvintele sunt formate doar din litere mici ale alfabetului englez şi sunt separate prin unul sau mai multe caractere *****. Scrieţi un program C/C++ care citeşte de la tastatură textul şi afişează pe ecran, pe câte o linie, toate secvenţele formate din câte două litere identice, ca în exemplu.
 * Exemplu**: dacă de la tastatură se introduce textul: **mare frig saci** pe ecran se va afişa: ** mare frig sai **

>>>>>>> **ii** >>>>>>> **ii** ====5. Subiect tip II - Varianta 024 problema 5-Bacalaureat 2009 ==== Scrieţi un program C/C++ care citeşte de la tastatură două şiruri de caractere formate din maximum 100 litere mici ale alfabetului englez şi afişează pe ecran cel mai lung sufix comun al celor două şiruri de caractere. Dacă cele două şiruri nu au niciun sufix comun, atunci programul va afişa pe ecran mesajul NU EXISTA.
 * Exemplu:** dacă textul citit este: se afişează perechile alăturate.
 * oo**

====6. Subiect tip II - Varianta 028 problema 5-Bacalaureat 2009 ==== Şirul de caractere **s2** este “**clona**” şirului de caractere **s1** dacă se poate obţine din **s1** prin eliminarea tuturor apariţiilor unei singure vocale. Se consideră vocală orice literă din mulţimea {a,e,i,o,u}. Scrieţi programul C/C++ care citeşte de la tastatură un cuvânt format din cel mult 20 litere mici ale alfabetului englez şi **afişează pe ecran** (dacă există), **toate “clonele” acestui cuvânt**, fiecare pe câte o linie a ecranului.
 * Exemplu:** pentru şirurile **marina** şi **elena** se va afişa **na**

====7. Subiect tip II - Varianta 032 problema 5-Bacalaureat 2009 ==== Scrieţi un program C/C++ care citeşte de la tastatură două caractere **c1** şi **c2** (litere distincte ale alfabetului englez), şi un text având cel mult **250 caractere** (doar spaţii şi litere ale alfabetului englez), pe care îl modifică **înlocuind toate apariţiile caracterului memorat în c1 cu cel memorat în c2 şi toate apariţiile caracterului memorat în c2 cu cel memorat în c1**. Programul afişează pe linii separate ale ecranului atât textul iniţial cât şi textul obţinut după efectuarea înlocuirilor.
 * Exemplu**: pentru cuvântul **informatica** se afişează, nu neapărat în această ordine, “**clonele**” scrise alăturat.
 * nformatca**
 * infrmatica**
 * informtic**

se va afişa :
 * Exemplu**: dacă pentru **c1** se citeşte **a**, pentru **c2** se citeşte **o** iar textul citit este: **hocus pocus preparatus**
 * hocus pocus preparatus**
 * hacus pacus preporotus**

====8. Subiect tip II - Varianta 037 problema 5-Bacalaureat 2009 ==== Un şir cu maximum **255 de caractere** conţine cuvinte separate prin unul sau mai multe spaţii. Cuvintele sunt formate numai din litere mici ale alfabetului englez. Scrieţi un program C/C++ care citeşte un astfel de şir şi îl afişează modificat, **prima şi ultima literă a fiecărui cuvânt fiind afişată ca literă mare.** ====9. Subiect tip II - Varianta 039 problema 5-Bacalaureat 2009 ==== Un şir cu maximum **255 de caractere** conţine cuvinte separate prin câte un spaţiu. Cuvintele sunt formate numai din litere mici ale alfabetului englez. Scrieţi un program C/C++ care citeşte de la tastatură un astfel de şir şi îl afişează pe ecran modificat, **inversând prin**
 * Exemplu**: pentru şirul: **maine este proba la informatica** se va afişa: **MainE EstE ProbA LA InformaticA**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">10. Subiect tip II - Varianta 040 problema 5-Bacalaureat 2009 ==== Un şir cu maximum **255 de caractere** conţine cuvinte cuvinte formate numai din litere mici ale alfabetului englez. Fiecare cuvânt este urmat de un caracter *. Scrieţi un program C/C++ care citeşte un astfel de şir şi afişează pe ecran **şirul obţinut prin eliminarea tuturor apariţiilor primului cuvânt**, ca în exemplu. ====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">11. Subiect tip II - Varianta 042 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură un şir de cel mult **40 de caractere**, format doar din litere mici ale alfabetului englez, şi care**afişează pe ecran, pe o singură linie, toate vocalele ce apar în şirul citit**. Vocalele vor fi afişate în ordinea apariţiei lor în şir, separate prin câte un spaţiu, ca în exemplu. Se consideră ca fiind vocale următoarele litere: a, e, i, o, u. Dacă şirul citit nu conţine nicio vocală, se va afişa pe ecran mesajul fara vocale.
 * oglindire doar cuvintele care încep cu vocală**, ca în exemplu. Se consideră ca fiind vocale următoarele litere: a, e, i, o, u.
 * Exemplu**: pentru şirul: **maine este proba la informatica** se va afişa: **maine etse proba la acitamrofni**
 * Exemplu**: pentru şirul: **bine*albine*foarte*bine*** se va afişa: ***albine*foarte****
 * Exemplu**: dacă se citeşte şirul **calculator** atunci pe ecran se va afişa: **a u a o**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">12. Subiect tip II - Varianta 045 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură un şir de cel mult **40 de caractere**, format doar din litere ale alfabetului englez, şi care **afişează pe ecran toate şirurile obţinute prin eliminarea succesivă a câte unei singure litere din şirul citit**, ca în exemplu. Şirurile se vor afişa câte unul pe câte o linie a ecranului.
 * Exemplu:** dacă se citeşte şirul **abbc** atunci pe ecran se va afişa:


 * bbc**


 * abc**


 * abc**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">13. Subiect tip II - Varianta 046 problema 5-Bacalaureat 2009 ==== Se consideră un text format doar din spaţii şi litere mici ale alfabetului englez, care începe cu o literă şi care conţine cel puţin o vocală din multimea {a,e,i,o,u}. Scrieţi programul C/C++ care citeşte de la tastatură un şir cu cel mult **100 de caractere**, ca cel descris mai sus şi care determină**transformarea acestuia prin înlocuirea fiecărei vocale din text cu litera imediat următoare din alfabet** (a se înlocuieşte cu b, e se înlocuieşte cu f ş.a.m.d.). Programul va afişa pe ecran şirul obţinut. ====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">14. Subiect tip II - Varianta 049 problema 5-Bacalaureat 2009 ==== Un cuvânt **s**, de cel mult **20 caractere**, format doar din litere mici ale alfabetului englez, conţine cel puţin o consoană şi cel puţin o vocală. Scrieţi programul C/C++ care citeşte de la tastatură cuvântul **s**, construieşte în memorie şi afişează pe ecran cuvântul obţinut prin
 * abb**
 * Exemplu:** dacă şirul citit este examen de **bacalaureat**, după modificare se afişează: **fxbmfn df bbcblbvrfbt**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">15. Subiect tip II - Varianta 050 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură un cuvânt **s** de cel mult **20 litere mici** ale alfabetului englez, construieşte în memorie şi afişează pe ecran cuvântul **s după eliminarea primei şi a ultimei vocale**. Cuvântul **s** conţine cel puţin două vocale şi cel puţin o consoană. Se consideră vocale literele: a, e, i, o, u.
 * eliminarea tuturor consoanelor din cuvântul s**. Se consideră consoană oricare literă care nu se află în mulţimea {a, e, i, o, u}.
 * Exemplu**: dacă se citeşte cuvântul **bacalaureat**, pe ecran se afişează: **aaauea**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">16. Subiect tip II - Varianta 051 problema 5-Bacalaureat 2009 ==== Se consideră un şir s având maximum **52 de caractere**, şir ce conţine numai litere mici ale alfabetului englez şi cifre. Primul caracter al şirului este o literă mică, ultimul caracter al şirului este o cifră şi fiecare literă mică din şir este urmată de o cifră nenulă. Scrieţi un
 * Exemplu**: dacă se citeşte cuvântul **bacalaureat**, pe ecran se afişează: **bcalauret**

program C/C++ care citeşte de la tastatură şirul **s**, apoi construieşte şi afişează pe ecran un nou şir de caractere, format numai din litere mici ale alfabetului englez, şir construit după următoarea regulă: **fiecare literă mică se va repeta de atâtea ori de câte ori o indică cifra** situată pe poziţia imediat următoare în şirul iniţial, ca în exemplu. ====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">17. Subiect tip II - Varianta 052 problema 5-Bacalaureat 2009 ==== Scrieţi un program C/C++ care citeşte de la tastatură un număr natural nenul **n** (n≤100), apoi **n şiruri de caractere**, fiecare şir având maximum **30 de caractere**, doar litere mici ale alfabetului englez, şi afişează pe ecran **câte dintre cele n şiruri de caractere sunt formate numai din vocale**. Se consideră vocale literele a, e, i, o, u.
 * Exemplu:** dacă se citeşte de la tastatură şirul **a2b1f2** atunci şirul cerut este **aabff**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">18. Subiect tip II - Varianta 055 problema 5-Bacalaureat 2009 ==== Scrieţi un program C/C++ care citeşte de la tastatură un şir de caractere format din maximum **10 caractere**, reprezentând un număr real în care partea întreagă este separată de partea zecimală prin caracterul punct. Programul afişează pe ecran **valoarea obţinută prin adunarea numărului corespunzător părţii întregi şi a numărului corespunzător părţii zecimale ale datei citite**. Exemplu: dacă se citeşte de la tastatură şirul de caractere **120.456** atunci se va afişa **576**, iar dacă se citeşte de la tastatură şirul de caractere**121.090** atunci se va afişa **130**.
 * Exemplu**: dacă **n=3**, iar şirurile citite sunt **arc, ae, creion** date alăturat, atunci programul va afişa pe ecran **1** deoarece şirul **ae** este format numai din vocale.

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">19. Subiect tip II - Varianta 058 problema 5-Bacalaureat 2009 ==== Scrieţi un program C/C++ care citeşte de la tastatură un şir de cel mult **50 de caractere** (cifre, litere ale alfabetului englez şi spaţii; şirul conţine cel puţin o literă), apoi construieşte în memorie şi afişează pe ecran şirul de caractere obţinut din şirul citit prin **eliminarea tuturor caracterelor care nu sunt litere**. ====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">20. Subiect tip II - Varianta 059 problema 5-Bacalaureat 2009 ==== Scrieţi un program C/C++ care citeşte de la tastatură un şir de cel mult **50 de caractere** (litere mici şi mari ale alfabetului englez, cifre, puncte, virgule şi spaţii) şi afişează pe ecran **cifra care apare de cele mai multe ori** în şirul citit. Dacă şirul conţine mai multe cifre cu
 * Exemplu**: dacă se citeşte şirul: **Voi lua 10 la informatica** atunci se va afişa: **Voilualainformatica**

număr maxim de apariţii, atunci se va afişa cea mai mică dintre acestea. Dacă şirul nu conţine cifre, se va afişa pe ecran mesajul **NU**.

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">21. Subiect tip II - Varianta 060 problema 5-Bacalaureat 2009 ==== Scrieţi un program C/C++ care citeşte de la tastatură un şir de cel mult **50 de caractere** (litere mici şi mari ale alfabetului englez, cifre şi spaţii) şi**afişează pe ecran litera mică cel mai des întâlnită** în şirul citit. Dacă există mai multe litere mici cu număr maxim de apariţii, programul o va afişa pe prima dintre ele în ordine alfabetică. **Dacă şirul nu conţine litere mici**, atunci pe ecran se va afişa mesajul **nu**.
 * Exemplu**: dacă se citeşte şirul: **Voi lua 9,5 la matematica 10 la informatica si 10 la romana** atunci se va afişa cifra **0** (pentru că cifrele 0 şi 1 apar de cele mai multe ori în şir, iar 0 este cea mai mică dintre ele)


 * Exemplu**: dacă se citeşte şirul: **mergem la munte** atunci se va afişa: **e** (pentru că literele e şi m apar de cele mai multe ori în şir, iar e este

prima dintre ele în ordine alfabetică). ====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">22. Subiect tip II - Varianta 062 problema 5-Bacalaureat 2009 ==== Scrieţi un program C/C++ care citeşte de la tastatură un text de cel mult **255 de caractere**, dintre care cel puţin unul este o literă mică a alfabetului englez, şi **afişează pe ecran**, pe o singură linie, despărţite prin câte un spaţiu, **toate literele mici ale alfabetului englez care apar în text**. **Fiecare literă va fi afişată o singură dată, în ordinea primei ei apariţii în text**. ====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">23. Subiect tip II - Varianta 064 problema 5-Bacalaureat 2009 ==== Scrieţi un program C/C++ care citeşte de la tastatură un text format din cel mult **200 de litere ale alfabetului englez, în care cuvintele sunt separate printr-un singur spaţiu** şi **afişează** pe ecran **numărul de cuvinte** din textul citit, **care au prima respectiv ultima literă vocală**. În cazul în care în text nu există un astfel de cuvânt, se va afişa pe ecran mesajul **NU EXISTA**. Se consideră vocală orice literă din mulţimea {a,A,e,E,i,I,o,O,u,U}.
 * Exemplu**: pentru textul: **Calculati valoarea expresiei** pe ecran se va afişa: **a l c u t i v o r e x p s**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">24. Subiect tip II - Varianta 066 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură un cuvânt format din cel mult **50 de caractere**, doar litere mari ale alfabetului englez, şi afişează pe ecran, fiecare pe câte o linie, toate **prefixele** acestuia, în ordine crescătoare a lungimilor. **Un prefix de lungime k al unui**
 * Exemplu:** dacă textul introdus este: **Eratostene a sugerat ca anii bisecti se repeta la fiecare patru ani** pe ecran se va afişa: **4**


 * cuvânt este un subşir format din primele k caractere ale acestuia.**


 * Exemplu**: dacă se citeşte cuvântul **BACALAUREAT** se vor afişa prefixele:


 * B**


 * BA**


 * BAC**


 * BACA**


 * BACAL**


 * BACALA**


 * BACALAU**


 * BACALAUR**


 * BACALAURE**


 * BACALAUREA**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">25. Subiect tip II - Varianta 067 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură un cuvânt format din cel mult **50 caractere**, doar litere mari ale alfabetului englez, şi afişează pe ecran, fiecare pe câte o linie, **toate sufixele** acestuia, în ordine crescătoare a lungimilor. **Un sufix de lungime k al unui**
 * BACALAUREAT**


 * cuvânt este un subşir format din ultimele k caractere ale acestuia.**


 * Exemplu**: dacă se citeşte cuvântul **EXAMEN** se vor afişa sufixele :


 * N**


 * EN**


 * MEN**


 * AMEN**


 * XAMEN**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">26. Subiect tip II - Varianta 071 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură, separate prin Enter, **două şiruri de caractere**: un şir **s** de maximum **255 de caractere**, care pot fi litere ale alfabetului englez şi spaţii, apoi un şir **c** de maximum **20 de caractere**. **Programul va înlocui în şirul s toate apariţiile şirului c cu un şir de exact aceeaşi lungime efectivă cu c, format doar din caractere ***, ca în exemplu. Şirul s obţinut în urma acestei prelucrări va fi afişat pe ecran. În cazul în care c nu apare în s, programul va afişa mesajul **NU APARE**. ====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">27. Subiect tip II - Varianta 073 problema 5-Bacalaureat 2009 ==== Scrieţi un program C/C++ care citeşte de la tastatură un număr natural **n** (0<n<101) şi apoi **n propoziţii**. Fiecare propoziţie este formată din maximum **255 de caractere** care sunt numai litere mici ale alfabetului englez şi spaţii. Ştiind că fiecare propoziţie se termină cu caracterul **Enter**, **să se afişeze pe ecran propoziţia care are cele mai puţine vocale** (sunt considerate vocale caracterele **a, e, i, o, u**). Dacă două sau mai multe propoziţii au acelaşi număr de vocale, se va afişa ultima propoziţie, în ordinea citirii, care îndeplineşte condiţia.
 * EXAMEN**
 * Exemplu**: dacă şirul **s** citit este **Din departare se vede tare** iar **c** este **tare** atunci pe ecran se va afişa: **Din depar**** se vede ******
 * Exemplu**: pentru n = 4 şi următoarele propoziţii:


 * azi a plouat tare**


 * a fost innorat peste tot**


 * maine va fi soare**


 * acum nu mai vreau sa ploua**

se va afişa: **maine va fi soare** ====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">28. Subiect tip II - Varianta 076 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură un **cuvânt de maximum 20 de litere** şi minimum o literă şi afişează pe ecran cuvântul citit precum şi **toate cuvintele obţinute din cuvântul citit prin eliminarea primei şi a ultimei litere.** Prima prelucrare se referă la cuvântul citit, iar următoarele la cuvântul rezultat din prelucrarea anterioară. Procedeul de eliminare şi afişare se va repeta până când se obţine cuvântul vid, ca în exemplu. Cuvântul iniţial şi fiecare cuvânt obţinut se va afişa pe câte o linie a ecranului.
 * Exemplu**: dacă se citeşte cuvântul **bacalaureat**, se va afişa:


 * bacalaureat**


 * acalaurea**


 * calaure**


 * alaur**


 * lau**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">29. Subiect tip II - Varianta 077 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură un text de cel mult **50 de caractere**, (litere mici ale alfabetului englez şi spaţii), text format din mai multe cuvinte, separate prin câte un spaţiu, şi afişează pe ecran textul obţinut din cel iniţial prin **transformarea primei**
 * a**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">30. Subiect tip II - Varianta 077 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură un text cu cel mult **100 de caractere** (doar litere mici ale alfabetului englez şi spaţii) şi un cuvânt cu cel mult 15 caractere, doar litere mici ale alfabetului englez, şi care afişează pe ecran **şirul obţinut prin inserarea în**
 * litere şi a ultimei litere ale fiecărui cuvânt în majusculă, restul caracterelor rămânând nemodificate**.
 * Exemplu**: dacă se citeşte textul **azi este examen de bacalaureat**, se va afişa **AzI EstE ExameN DE BacalaureaT**.


 * textul iniţial a caracterului ? după fiecare apariţie a cuvântului citit**. Dacă în text nu apare cuvântul citit, se va afişa mesajul **NU APARE.**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">31. Subiect tip II - Varianta 079 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură un text cu cel mult **100 de caractere** (doar litere ale alfabetului englez şi spaţii), construieşte în memorie şi apoi **afişează pe ecran şirul de caractere obţinut din şirul iniţial, în care se inserează după fiecare vocală caracterul ***. Se consideră vocale literele a, e, i, o, u, A, E, I, O, U. Dacă textul citit nu conţine vocale, se va afişa mesajul **FARA VOCALE.**
 * Exemplu**: dacă se citeşte de la tastatură textul **examenului** **examenul de bacalaureat si examenul de atestat** şi cuvântul **examenul** se va afişa:**examenului examenul? de bacalaureat si examenul? de atestat**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">32. Subiect tip II - Varianta 080 problema 5-Bacalaureat 2009 ==== Scrieţi programul C/C++ care citeşte de la tastatură **un cuvânt cu cel puţin una şi cel mult 20 de litere** ale alfabetului englez, construieşte şi**afişează pe ecran cuvântul obţinut prin interschimbarea primei consoane cu ultima vocală din cuvânt**. În cazul în care cuvântul este format numai din vocale sau numai din consoane, programul afişează pe ecran mesajul **IMPOSIBIL**. Se consideră vocale literele a, e, i, o, u, A, E, I, O, U. ====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">33. Subiect tip II - Varianta 093 problema 5-Bacalaureat 2009 ==== Un şir de caractere **s** se numeşte “**şablon**” pentru un alt şir de caractere **x**, dacă este format din caractere din mulţimea **{*, ?,#}**, are aceeaşi lungime cu **x** şi pe fiecare poziţie din **s** în care apare ***** în **x** se găseşte o vocală, pe fiecare poziţie din **s** în care apare **#** în **x** se găseşte o consoană şi pe fiecare poziţie din **s** în care apare **?** putem avea orice caracter în **x**. Se consideră vocală orice literă din mulţimea {a,e,i,o,u}.
 * Exemplu:** dacă se citeşte de la tastatură textul **Examenul de bacalaureat** se va obţine şi afişa: **E*xa*me*nu*l de* ba*ca*la*u*re*a*t.**
 * Exemplu**: dacă se citeşte cuvântul **Marmorat** se va obţine şi afişa cuvântul **aarmorMt**

Scrieţi programul C/C++ care citeşte de la tastatură două şiruri de caractere, de aceeaşi lungime, formate din cel mult **200 de litere mici** ale alfabetului englez, şi afişează pe ecran, un **şablon comun celor două şiruri citite, care conţine un număr minim de caractere ?.** ====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">34. Subiect tip II - Varianta 095 problema 5-Bacalaureat 2009 ==== Scrieţi un program în limbajul C/C++ care citeşte de la tastatură **un singur şir**, format din cel mult **20 de caractere**, care reprezintă **numele şi prenumele unei persoane**. Între nume şi prenume se află un număr oarecare de caractere spaţiu (cel puţin unul). Atât numele, cât şi prenumele, sunt formate numai din litere mici ale alfabetului englez. Programul construieşte în memorie şi afişează pe ecran un alt şir de caractere, care să conţină**iniţiala prenumelui** (prima literă a prenumelui), **urmată de un caracter punct**, **de exact un spaţiu** şi de **numele** din şirul citit iniţial. Toate literele din şirul afişat vor fi, de asemenea, litere mici.
 * Exemplu**: pentru şirurile **diamant** şi **pierdut** se afişează **#**#??#**

====<span style="color: #1a4292; font-family: 'Trebuchet MS',arial,sans-serif; font-size: 1.2em;">35. Subiect tip II - Varianta 096 problema 5-Bacalaureat 2009 ==== Scrieţi un program în limbajul C/C++ care citeşte de la tastatură **două şiruri**, formate fiecare din cel mult **20 de caractere**. Primul şir reprezintă**numele** unei persoane, iar al doilea şir reprezintă **prenumele** aceleiaşi persoane. Atât numele cât şi prenumele sunt formate numai din litere ale alfabetului englez şi fiecare conţine cel puţin o consoană. Programul construieşte în memorie şi afişează pe ecran un al **treilea şir de caractere**, care conţine **consoanele din prenumele citit dispuse în ordinea în care apar în prenume urmate de exact un spaţiu şi de numele citit**.
 * Exemplu**: dacă se citeşte şirul: **popescu vasile** se va construi şi apoi se va afişa pe ecran şirul **v. popescu**


 * Exemplu**: dacă primul şir citit este **Popescu**, iar al doilea este **Vasile** se va construi şi apoi se va afişa pe ecran şirul **Vsl Popescu** ||