Sunteți pe pagina 1din 18

Bacalaureat 2009- iruri de caractere

2. Scriei un program C/C++ care citete de la tastatur un cuvnt format din cel mult 20 de caractere,
doar litere ale alfabetului englez. Programul determin transformarea cuvntului citit prin eliminarea
fiecrei litere mici a cuvntului, restul literelor nemodificndu-se, ca n exemplu. Programul afieaz
pe ecran cuvntul obinut. n cazul n care cuvntul citit conine numai litere mici, programul va afia
mesajul CUVANT VID.
Exemple:
- dac se citete cuvntul: baCALaUreaT se va afia pe ecran: CALUT
- dac se citete cuvntul: vara se va afia pe ecran: CUVANT VID
3. n secvena de instruciuni 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 executrii secvenei sa afiat succesiunea de caractere eeleeeneee scriei care este irul de caractere memorat de variabila s.
n=strlen(s);
for(i=0;i<n;i++)
cout<<s[i]<<'e';
4. Fie s o variabil ce memoreaz un ir de caractere, format doar din litere ale alfabetului englez, i i o
variabil de tip int. Scriei instruciunile ce pot nlocui punctele de suspensie din secvena de program
alturat astfel nct executarea ei s determine nlocuirea tuturor literelor mici din irul s cu litera W
i apoi afiarea irului obinut.
i=0;
while (i<strlen(s))
{ ...............}
cout<<s;
v5. Fie s o variabil ce memoreaz un ir de caractere, c i d dou variabile ce memoreaz
cte un caracter, iar n i i variabile ntregi. Scriei instruciunile ce pot nlocui punctele de
suspensie din secvena de program de mai jos astfel nct executarea ei s determine nlocuirea tuturor
apariiilor caracterului memorat de variabila c n irul s cu caracterul memorat de variabila d i apoi
afiarea irului obinut.
n=strlen(s);
for(i=0;i<n;i++)
...............
cout<<s;
v6 Se consider un text cu maximum 255 de caractere n care cuvintele sunt separate prin
unul sau mai multe spaii. Primul caracter din textul citit este o liter, iar cuvintele sunt
formate numai din litere mici ale alfabetului englez. Scriei un program C/C++ care citete de la
tastatur textul i l transform nlocuind prima liter a fiecrui cuvnt cu litera mare corespunztoare,
restul caracterelor rmnnd nemodificate. Textul astfel transformat va fi afiat pe ecran.
Exemplu: dac de la tastatur se introduce textul: mare frig rosu se va afia pe ecran: Mare Frig
Rosu
v7 Se consider un text cu maximum 255 de caractere, format din litere mici ale alfabetului englez i
spaii. Textul conine cel puin o consoan. Scriei un program C/C++ care citete de la tastatur textul

Bacalaureat 2009- iruri de caractere


i afieaz pe ecran numai ultima consoan care apare n text. Exemplu: dac de la tastatur se
introduce textul mare frig saci
pe ecran se va afia: c
v8 Ce se afieaz n urma executrii secvenei de program urmtoare, dac variabila s
memoreaz irul de caractere abcdefgh?
strcpy(s+2,s+4);
cout<<s<< <<strlen(s);
v9 Ce se execut n secvena de program alturate, 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;
v10. Se consider declarrile de mai jos:
char s[]=abbacdde; int i;
Ce ir reine variabila s dup executarea secvenei de instruciuni alturate? (4p.)
i=0;
while (i<strlen(s)-1)
if (s[i]==s[i+1])
{ strcpy(s+i,s+i+2);
if (i>0) i=i-1;
}
else i=i+1;
a) aace b) ace c) ce d) acde
v11 Ce se afieaz pe ecran n urma executrii secvenei de program alturate, n care variabila s
memoreaz un ir cu cel mult 12 caractere, iar variabila i este de tip ntreg?
strcpy(s,abracadabra);
i=0;
cout<<strlen(s); while (i<strlen(s))
if (s[i]=='a') strcpy(s+i,s+i+1);
else i=i+1;
cout<<" "<<s;
v12 Scriei ce se afieaz pe ecran n urma executrii secvenei de program alturate, n care variabila s
memoreaz un ir cu cel mult 12 caractere, iar variabila i este de tip ntreg.
char s[13]="informatica";
cout<<strlen(s);
for (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]+1;
cout<<" "<<s;
v13 Scriei ce se afieaz pe ecran n urma executrii secvenei de program alturate, n care variabila s
memoreaz un ir de cel mult 12 caractere, iar variabila i este de tip ntreg.
2

Bacalaureat 2009- iruri de caractere


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;
v14 Ce se afieaz pe ecran n urma executrii secvenei de program alturate, 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;
v15 Ce se afieaz pe ecran n urma executrii secvenei de program alturate, n care variabila s
memoreaz un ir cu cel mult 10 caractere, iar variabila i este de tip ntreg? (4p.)
i=0; char s[11]="abaemeiut";
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); i=i+1; }
else
i=i+2;
cout<<" "<<s;
v16 Ce se va afia n urma executrii secvenei de program alturate tiind c variabila a
memoreaz un ir cu cel mult 100de caractere, iar variabilele ii ksunt de tip ntreg? (6p.)
k=aA;
strcpy(a,clasaaXIIaA);
cout<<a<<endl;|printf(%s\n,a);
for(i=0;i<strlen(a);i++)
if(a[i]>=a&&a[i]<=z)a[i]=a[i]k;
cout<<a;|printf(%s,a);
v17 Ce se va afia n urma executrii secvenei de program alturate tiind c variabila amemoreaz
un ir cu cel mult 100de caractere, iar variabila ieste de tip ntreg ? (6p.)
strcpy(a,bacalaureat);
cout<<strlen(a)<<endl;|printf(%d\n,strlen(a));
for(i=0;i<strlen(a);i++)
if(strchr(aeiou,a[i])!=0)
cout<<*;|printf(*);

Bacalaureat 2009- iruri de caractere

v18 n secvena de program alturat, variabila amemoreaz un ir cu cel mult 100de caractere,
iar variabila ieste de tip ntreg. Completai punctele de suspensie din secven astfel nct, n urma
executrii secvenei, aceasta s afieze irul de caractere *nf*rm*t*c*. (6p.)
strcpy(a,informatica);
for(i=0;i<strlen(a);i++)
if(...)
cout<<...;|printf(...);
else
cout<<...;|printf(...);
v19Ce se va afia n urma executrii secvenei de program alturate, tiind c variabila x
memoreaz un ir cu cel mult 100de caractere, iar variabila ieste de tip ntreg ? (6p.)
strcpy(x,bac2009);
cout<<x<<endl;|printf(%s\n,x);
for(i=0;i<strlen(x);i++)
if(strchr(0123456789,x[i])==0)
cout<<x[i];|printf(%c,x[i]);
v20 In secvena de program alturat, variabila amemoreaz un ir cu cel mult 100de caractere,
iar variabila ieste de tip ntreg. Completai punctele de suspensie, astfel nct, n urma executrii
secvenei, s se afieze doar literele mici i literele mari din irul de caractere memorat n variabila a.
(6p.)
strcpy(a,Bac2009iulie);
for(i=0;i<strlen(a);i++)
if(...)
cout<<a[i];
v21 Se consider un text alctuit din cel mult 250de caractere, n care cuvintele sunt formate doar
din litere mici ale alfabetului englez i sunt separate prin unul sau mai multe caractere *.
Scriei un program C/C++care citete de la tastatur textul i afieaz pe ecran, pe cte o
linie, toate secvenele formate din cte dou litere identice, ca n exemplu.
Exemplu: dac textul citit este :
(10p.)
ii
ii
oo

se afieaz perechile alturate.

V22.Ce valoare are expresia de mai jos dac variabila smemoreaz irul de caractere
alfabet?
strlen(strcpy(s,s+2))(4p.)
V23. Care din urmtoarele expresii are valoarea 1dac i numai dac irul de caractere s,
format din exact 10caractere, este obinut prin concatenarea a dou iruri identice? (6p.)
a. strcmp(s,s+5)==0b. s==strstr(s,s+5)
c. s==s+5d. strcmp(s,strcat(s,s+5))==0
v24.Scriei un program C/C++ care citete de la tastatur dou iruri de caractere formate din

Bacalaureat 2009- iruri de caractere


maximum 100 litere mici ale alfabetului englez i afieaz 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 afia pe ecran mesajul NU EXIST.
Exemplu: pentru irurile marina i elena se va afia na
V25. Scriei o secven de instruciuni C/C++ care determin, n urma executrii ei, afiarea pe
ecran a mesajului Corect dac un ir de maximum 100 caractere, memorat de variabila s,
este palindrom sau mesajul Incorect n caz contrar. Un ir de caractere este palindrom dac
citit de la nceput la sfrit este identic cu irul citit de la sfrit la nceput.
Exemplu: irul de caractere cojoc este palindrom (4p.)
V26. Care va fi irul de caractere afiat dup executarea secvenei de program alturate, n care
variabila smemoreaz un ir cu cel mult 5caractere ? (6p.)
chars[]=raton;
s[1]=s[3];
cout<<s;|printf(%s,s);

V28. irul de caractere s2este clona irului de caractere s1dac se poate obine din s1prin
eliminarea tuturor apariiilor unei singure vocale. Se consider vocal orice liter din mulimea
{a,e,i,o,u}. Scriei programul C/C++care citete de la tastatur un cuvnt format din cel mult 20
litere mici ale alfabetului englez i afieaz pe ecran, toate clonele acestui cuvnt, fiecare pe cte o
linie a ecranului.
Exemplu: pentru cuvntul informaticase afieaz, nu neaprat n aceast
ordine, clonele scrise alturat. (10p.)
nformatca
infrmatica
informtic
V29Care va fi irul de caractere afiat pe ecran dup
executarea secvenei de program alturate n
care variabila smemoreaz un ir cu cel mult 4
caractere iar variabila tun caracter? (4p.)
chars[]=arac;
t=s[1];s[1]=s[3];
s[3]=t;
cout<<s;|printf(%s,s);
V30. Care este valoarea expresiei strlen(s) pentru variabila s de tip ir de caractere,
declarat i iniializat astfel: char s[15]=Proba_E; (4p.)
a. 7 b. 15 c. 6 d. 5
V31. Scriei un program C/C++ care citete de la tastatur un numr natural n (n.100) i apoi n cuvinte
distincte, fiecare cuvant fiind format din cel mult 20 de caractere, doar litere mari ale
alfabetului englez, i afieaz acele cuvinte citite, care incep i se termin cu aceeai liter. Exemplu:
pentru n=9 i cuvintele citite:
URSUZU IRI E SUPARAT POP DORIS SI ANA CITESC
se va afia : URSUZU IRI POP ANA CITESC (10p.)
V32. Scriei un program C/C++care citete de la tastatur dou caractere c1i c2i un text
avnd cel mult 250caractere (spaii i litere ale alfabetului englez), pe care l modific

Bacalaureat 2009- iruri de caractere


nlocuind toate apariiile caracterului memorat n c1cu cel memorat n c2i toate apariiile
caracterului memorat n c2cu cel memorat n c1. Programul afieaz pe linii separate ale
ecranului att textul iniial ct i textul obinut dup efectuarea nlocuirilor. (10p.)
Exemplu: dac pentru c1se citete a, pentru c2se citete oiar textul citit este:
hocuspocuspreparatus
se va afia :
hocuspocuspreparatus
hacuspacuspreporotus
V34Ce se va afia n urma executrii secvenei
alturate, n care variabila cmemoreaz un ir cu
cel mult 20de caractere, iar ieste o variabil de
tip ntreg? (6p.)
charc[21]="tamara",*p;
for(i=0;i<strlen(c);i=i+1)
{p=strchr(c,'a');
cout<<pc;|printf(%d,pc);}
V35. Ce se va afia n urma executrii secvenei
alturate, n care variabila cmemoreaz un ir cu
cel mult 20de caractere, iar variabila ieste de tip
ntreg? (6p.)
charc[]="tamara";
for(i=0;i<3;i++)
c[i]=c[i+1];
cout<<c;|printf("%s",c)
V36.tiind c n urma executrii secvenei
alturate s-a afiat succesiunea de
caractere EXAMEN, care este irul de
caractere memorat de variabila s? (6p.)
x=strlen(s);
for(i=0;i<x/2;i++)
cout<<s[i]<<s[xi1];
|printf(%c%c,s[i],s[xi1]);
a. ENXAMEb. EAENMXc. NEEXMAd. NEMAXE
V37. Un ir cu maximum 255de caractere conine cuvinte separate prin unul sau mai multe spaii.
Cuvintele sunt formate numai din litere mici ale alfabetului englez. Scriei un program Pascal
care citete un astfel de ir i l afieaz modificat, prima i ultima liter a fiecrui cuvnt fiind
afiat ca liter mare.
Exemplu: pentru irul: maineesteprobalainformaticase va afia:
MainEEstEProbALAInformaticA
V38. Considerm c variabila smemoreaz irul de caractere
examen. Care va fi valoarea lui sdup executarea
instruciunilor scrise alturat? (4p.)
s[0]=E;
s[strlen(s)1]=A;

Bacalaureat 2009- iruri de caractere


s[strlen(s)/21]=N;
s[strlen(s)/2]=M;
a. ExameNb. exAMenc. ExNMeAd. ExAMeN
V39.Un ir cu maximum 255de caractere conine cuvinte separate prin cte un spaiu. Cuvintele
sunt formate numai din litere mici ale alfabetului englez. Scriei un program C/C++care
citete de la tastatur un astfel de ir i l afieaz pe ecran modificat, inversnd prin
oglindire doar cuvintele care ncep cu vocal, ca n exemplu. Se consider ca fiind vocale
urmtoarele litere: a, e, i, o, u.
Exemplu: pentru irul: maineesteprobalainformaticase va afia:
maineetseprobalaacitamrofni
V 40. Un ir cu maximum 255de caractere conine cuvinte cuvinte formate numai din litere mici
ale alfabetului englez. Fiecare cuvnt este urmat de un caracter *. Scriei un program
C/C++care citete un astfel de ir i afieaz pe ecran irul obinut prin eliminarea tuturor
apariiilor primului cuvnt, ca n exemplu.
Exemplu: pentru irul: bine*albine*foarte*bine*se va afia:
*albine*foarte**
V41.Ce se afieaz pe ecran n urma executrii
secvenei de program scris alturat, n
care ieste o variabil de tip char? (6p.)
for(i='a';i<='z';i++)
if(strchr("info",i))
cout<<i;|printf("%c",i);
V42.Scriei programul C/C++care citete de la tastatur un ir de cel mult 40de caractere,
format doar din litere mici ale alfabetului englez, i care afieaz pe ecran, pe o singur
linie, toate vocalele ce apar n irul citit. Vocalele vor fi afiate n ordinea apariiei lor n ir,
separate prin cte un spaiu, ca n exemplu. Se consider ca fiind vocale urmtoarele litere:
a, e, i, o, u. Dac irul citit nu conine nicio vocal, se va afia pe ecran mesajul fara
vocale.
Exemplu: dac se citete irul calculatoratunci pe ecran se va afia: auao(10p.)
V43. Ce se afieaz pe ecran n urma executrii
secvenei de program alturate, unde aeste o
variabil de tip ir de caractere? (6p.)
strcpy(a,"informatica");
strcpy(a+2,a+5);
cout<<a;|printf("%s",a);
V44.Ce valoare se va afia pe ecran n urma executrii
secvenei de program alturate, tiind c variabila
aeste de tip ir de caractere, iar ieste o variabil
de tip ntreg? (6p.)
strcpy(a,"info");
for(i=0;i<strlen(a);i++)
a[i]=a[i]+1;

Bacalaureat 2009- iruri de caractere


cout<<a;|printf("%s",a);
V45.Scriei programul C/C++care citete de la tastatur un ir de cel mult 40de caractere,
format doar din litere ale alfabetului englez, i care afieaz pe ecran toate irurile obinute
prin eliminarea succesiv a cte unei singure litere din irul citit, ca n exemplu. irurile se
vor afia cte unul pe cte o linie a ecranului.
Exemplu: dac se citete irul abbcatunci pe ecran se va afia:
bbc
abc
abc
abb(10p.)
V46. Se consider un text format doar din spaii i litere mici ale alfabetului englez, care ncepe
cu o liter i care conine cel puin o vocal din multimea {a,e,i,o,u}. Scriei programul
C/C++care citete de la tastatur un ir cu cel mult 100de caractere, ca cel descris mai
sus i care determin transformarea acestuia prin nlocuirea fiecrei vocale din text cu litera
imediat urmtoare din alfabet (ase nlocuiete cu b, ese nlocuiete cu f.a.m.d.).
Programul va afia pe ecran irul obinut.
Exemplu: dac irul citit este examendebacalaureat, dup modificare se afieaz:
fxbmfndfbbcblbvrfbt
V47.Variabila sreine irul de caractere bacalaureat. Ce se afieaz la executarea
instruciunii de mai jos?
cout<<strchr(s,a);|printf(%s,strchr(s,a));(4p.)
a. 2b. acalaureatc. 4d. Bcluret
V48.In secvena alturat, variabilele s1,
s2i s3rein iruri de caractere.
Dup executarea acesteia, variabila
ntreag valprimete valoarea 1
dac: (4p.)
if(!(strcmp(s1,s2)||strcmp(s1,s3)))
val=1;
elseval=2;
a. s1, s2, s3rein iruri identice de
caractere
b. s1, s2, s3rein iruri de caractere
ordonate lexicografic
c. s1, s2, s3rein iruri de caractere de
lungimi diferite
d. s1este obinut prin concatenarea irurilor
reinute n s2i s3
V49.Un cuvnt s, de cel mult 20caractere, format doar din litere mici ale alfabetului englez,
conine cel puin o consoan i cel puin o vocal. Scriei programul C/C++care citete de la
tastatur cuvntul s, construiete n memorie i afieaz pe ecran cuvntul obinut prin

Bacalaureat 2009- iruri de caractere


eliminarea tuturor consoanelor din cuvntul s. Se consider consoan oricare liter care nu
se afl n mulimea {a,e,i,o,u}.
Exemplu: dac se citete cuvntul bacalaureat, pe ecran se afieaz: aaauea(10p.)
V50. Scriei programul C/C++care citete de la tastatur un cuvnt sde cel mult 20litere mici ale
alfabetului englez, construiete n memorie i afieaz pe ecran cuvntul sdup eliminarea
primei i a ultimei vocale. Cuvntul sconine cel puin dou vocale i cel puin o consoan. Se
consider vocale literele: a, e, i, o, u.
Exemplu: dac se citete cuvntul bacalaureat, pe ecran se afieaz: bcalauret(10p.)
V51. Se consider un ir savnd maximum 52de caractere, ir ce conine 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. Scriei un
program C/C++care citete de la tastatur irul s, apoi construiete i afieaz pe ecran un
nou ir de caractere, format numai din litere mici ale alfabetului englez, ir construit dup
urmtoarea regul: fiecare liter mic se va repeta de attea ori de cte ori o indic cifra
situat pe poziia imediat urmtoare n irul iniial, ca n exemplu.
Exemplu: dac se citete de la tastatur irul a2b1f2atunci irul cerut este aabff
(10p.)
V52. Scriei un program C/C++care citete de la tastatur un numr natural nenul n(n100),
apoi niruri de caractere, fiecare ir avnd maximum 30de caractere, doar litere mici ale
alfabetului englez, i afieaz pe ecran cte dintre cele niruri de caractere sunt formate
numai din vocale. Se consider vocale literele a, e, i, o, u.
Exemplu: dac n=3, iar irurile citite sunt date alturat, atunci
programul va afia pe ecran 1deoarece irul aeeste format
numai din vocale. (10p.)
arc
ae
creion
V53. n secvena de program urmtoare, variabila smemoreaz un ir de caractere, iar variabila
ieste de tip ntreg. Ce valoare se va afia n urma executrii secvenei?
strcpy(s,bacalaureat);
i=strchr(s,a)s;
cout<<i+1;|printf(%d,i+1);(6p.)
V54. n secvena alturat, variabila x
memoreaz un ir de caractere, iar toate
celelalte variabile sunt de tip ntreg.
Ce valori au variabilele k1i k2dup
executarea secvenei de instruciuni
alturate? (6p.)
strcpy(x,bac2009);
k1=strlen(x);
k2=0;
for(i=0;i<strlen(x);i++)
if(x[i]>=0&&x[i]<=9)

Bacalaureat 2009- iruri de caractere


k2=k2+1;
55.Scriei un program C/C++care citete de la tastatur un ir de caractere format din
maximum 10caractere, reprezentnd un numr real n care partea ntreag este separat
de partea zecimal prin caracterul punct. Programul afieaz pe ecran valoarea obinut
prin adunarea numrului corespunztor prii ntregi i a numrului corespunztor prii
zecimale ale datei citite.
Exemplu: dac se citete de la tastatur irul de caractere 120.456atunci se va afia
576,iar dac se citete de la tastatur irul de caractere 121.090atunci se va afia 130.
(10p.)
56. Scriei o expresie C/C++care s fie nenul dac i numai dac variabila cde tip chareste
o liter mic a alfabetului englez. (6p.)
57. Se consider mulimea vocalelor {a,e,i,o,u}. Scriei o expresie C/C++care s fie
nenul dac i numai dac variabila cde tip chareste o vocal. (6p.)
58. Scriei un program C/C++care citete de la tastatur un ir de cel mult 50de caractere
(cifre, litere ale alfabetului englez i spaii; irul conine cel puin o liter), apoi construiete
n memorie i afieaz pe ecran irul de caractere obinut din irul citit prin eliminarea tuturor
caracterelor care nu sunt litere.
Exemplu: dac se citete irul: Voilua10lainformaticaatunci se va afia:
Voilualainformatica(10p.)
59-1. Variabila smemoreaz un ir de caractere. Care dintre urmtoarele expresii C/C++este
nenul dac i numai dac lungimea efectiv a irului este strict mai mic dect 10? (4p.)
a. strlen(s)<10b. strlen(s,10)<0
c. leng(s)<10d. s0<10
592.Scriei un program C/C++care citete de la tastatur un ir de cel mult 50de caractere
(litere mici i mari ale alfabetului englez, cifre, puncte, virgule i spaii) i afieaz pe ecran
cifra care apare de cele mai multe ori n irul citit. Dac irul conine mai multe cifre cu
numr maxim de apariii, atunci se va afia cea mai mic dintre acestea. Dac irul nu
conine cifre, se va afia pe ecran mesajul NU.
Exemplu: dac se citete irul:
Voilua9,5lamatematica10lainformaticasi10laromana
atunci se va afia cifra 0(pentru c cifrele 0i 1apar de cele mai multe ori n ir, iar 0este
cea mai mic dintre ele) (10p.)
60. Variabila smemoreaz un ir de caractere. Care dintre urmtoarele expresii C/C++este
nenul dac i numai dac lungimea efectiv a irului este un numr par? (4p.)
a. s2==0b. strlen(s,2)=0
c. leng(s)%2d. strlen(s)%2==0;
602.Scriei un program C/C++care citete de la tastatur un ir de cel mult 50de caractere
(litere mici i mari ale alfabetului englez, cifre i spaii) i afieaz pe ecran litera mic cel
mai des ntlnit n irul citit. Dac exist mai multe litere mici cu numr maxim de apariii,
programul o va afia pe prima dintre ele n ordine alfabetic. Dac irul nu conine litere

10

Bacalaureat 2009- iruri de caractere


mici, atunci pe ecran se va afia mesajul nu.
Exemplu: dac se citete irul:
mergemlamunte
atunci se va afia: e(pentru c literele ei mapar de cele mai multe ori n ir, iar eeste
prima dintre ele n ordine alfabetic). (10p.)
61. Care vor fi valorile afiate dup
executarea secvenei de program
alturate? (4p.)
chars1[20]=algoritm,
s2[20]=bioritm,s3[20]=ritm;
if(strlen(s1)<strlen(s2))
strcat(s3,s1);
else
strcat(s3,s2);
printf(%s%s%s,s1,s2,s3);|
cout<<s1<<<<s2<<<<s3;
a. algoritmritmbioritmritmb. algoritmbioritmritmalgoritm
c. algoritmbioritmritmbioritmd. algoritmbioritmritmritm
61III5n fiierul text.inse afl un text scris pe mai multe linii, pe fiecare linie fiind caractere
diverse: litere mici ale alfabetului englez, cifre, spaii i semne de punctuaie. Gsii o metod
eficient din punctul de vedere al timpului de executare i al gestionrii memoriei ce permite
afiarea celor mai frecvente perechi de vocale alturate din text. Menionm c vocalele
sunt: a, e, i, oi u.
De exemplu, dac text.in conine textul:
Aleeacestrabatevalea
eounduiredepietrisscanteietor,
Deaceeanustiidacazboarasaudoarinoatainundeaurii
cele mai frecvente perechi de vocale ntlnite n acest text sunt: eai oa(ele apar de 3 ori,
spre deosebire de alte perechi de vocale alturate care apar de mai puine ori).
a) Descriei succint, n limbaj natural, metoda de rezolvare aleas, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)
b) Scriei programul C/C++corespunztor metodei descrise la cerina a. (6p.)
62. Scriei un program C/C++care citete de la tastatur un text de cel mult 255de caractere,
dintre care cel puin unul este o liter mic a alfabetului englez, i afieaz pe ecran, pe o
singur linie, desprite prin cte un spaiu, toate literele mici ale alfabetului englez care
apar n text. Fiecare liter va fi afiat o singur dat, n ordinea primei ei apariii n text.
Exemplu: pentru textul:
Calculativaloareaexpresiei
(10p.)
Pe ecran se va afia:
alcutivorexps
63.Se consider variabilele s1i s2de tip ir de caractere. Scriei o secven de instruciuni
care, n urma executrii, afieaz pe ecran cele 2iruri n ordine lexicografic cresctoare,
separate printr-un spaiu.

11

Bacalaureat 2009- iruri de caractere


Exemplu: dac s1reine irul mamai s2reine irul macara, pe ecran se va afia
macaramama
65. Scriei un program C/C++care citete de la tastatur un text format din cel mult 200de
litere ale alfabetului englez, n care cuvintele sunt separate printr-un singur spaiu i
afieaz pe ecran numrul de cuvinte din textul citit, care au prima respectiv ultima liter
vocal. n cazul n care n text nu exist un astfel de cuvnt, se va afia pe ecran mesajul
NUEXISTA. Se consider vocal orice liter din mulimea {a,A,e,E,i,I,o,O,u,U}.
5.
Exemplu: dac textul introdus este:
Eratosteneasugeratcaaniibisectiserepetalafiecarepatruani
pe ecran se va afia:
4
66.Scriei programul C/C++care citete de la tastatur un cuvnt format din cel mult 50de
caractere, doar litere mari ale alfabetului englez, i afieaz pe ecran, fiecare pe cte o linie,
toate prefixele acestuia, n ordine cresctoare a lungimilor. Un prefix de lungime kal unui
cuvnt este un subir format din primele kcaractere ale acestuia. (10p.)
Exemplu: dac se citete cuvntul BACALAUREATse vor afia prefixele:
B
BA
BAC
BACA
BACAL
BACALA
BACALAU
BACALAUR
BACALAURE
BACALAUREA
BACALAUREAT
67.Scriei programul C/C++care citete de la tastatur un cuvnt format din cel mult 50
caractere, doar litere mari ale alfabetului englez, i afieaz pe ecran, fiecare pe cte o linie,
toate sufixele acestuia, n ordine cresctoare a lungimilor. Un sufix de lungime kal unui
cuvnt este un subir format din ultimele kcaractere ale acestuia. (10p.)
Exemplu: dac se citete cuvntul EXAMENse vor afia sufixele :
N
EN
MEN
AMEN
XAMEN
EXAMEN
71.Scriei programul C/C++care citete de la tastatur, separate prin Enter, dou iruri de
caractere: un ir sde maximum 255de caractere, care pot fi litere ale alfabetului englez i
spaii, apoi un ir cde maximum 20de caractere. Programul va nlocui n irul stoate
apariiile irului ccu un ir de exact aceeai lungime efectiv cu c, format doar din caractere
*, ca n exemplu. irul sobinut n urma acestei prelucrri va fi afiat pe ecran. n cazul n
care cnu apare n s, programul va afia mesajul NUAPARE.

12

Bacalaureat 2009- iruri de caractere


Exemplu: dac irul Scitit este Dindepartaresevedetareiar ceste tare
atunci pe ecran se va afia: Dindepar****sevede****(10p.)
72. n secvena alturat, fiecare dintre variabilele xi s
sunt de tipul ir de caracter, iar ieste de tip ntreg.
Dac variabilele xi smemoreaz iniial irul
absolvent, ce se va memora n variabila xn urma
executrii secvenei alturate? (4p.)
for(i=0;i<strlen(s);i++)
if(strcmp(x,s+i)<0)
strcpy(x,s+i);
a. ntb. absolventc. solventd. Vent
73.Scriei un program C/C++care citete de la tastatur un numr natural n(0<n<101) i apoi n

propoziii. Fiecare propoziie este format din maximum 255de caractere care sunt numai litere mici
ale alfabetului englez i spaii. tiind c fiecare propoziie se termin cu caracterul
Enter, s se afieze pe ecran propoziia care are cele mai puine vocale (sunt considerate
vocale caracterele a, e, i, o, u). Dac dou sau mai multe propoziii au acelai numr de
vocale, se va afia ultima propoziie, n ordinea citirii, care ndeplinete condiia.
Exemplu: pentru n=4i urmtoarele propoziii:
aziaplouattare
afostinnoratpestetot
mainevafisoare
acumnumaivreausaploua
se va afia: mainevafisoare
74.Ce se va afia n urma executrii secvenei de program de mai jos dac variabila x
memoreaz cuvntul bacalaureat, iar variabila ymemoreaz cuvntul banal?
if(strcmp(x,y)>0)cout<<x;|printf(%s,x);
else
if(strcmp(x,y)<0)cout<<y;|printf(%s,y);
elsecout<<imposibil;|printf(imposibil);(4p.)
a. imposibilb. bacalaureat
c. banald. Bacalaureatimposibil
75.Ce se va afia n urma executrii secvenei
de program alturate tiind c ieste o
variabil de tip ntreg, iar variabila xeste de
tip ir de caractere? (4p.)
strcpy(x,ExAMeNeNaTiOnALe);
for(i=0;i<strlen(x);i++)
if(x[i]>=A &&x[i]<=N)
x[i]=x[i]+aA;
cout<<x;|printf(%c,x);
a. examenenationaleb. examenenaTiOnale
c. EXAMENENATIONALEd. exAmeNenAtIoNalE
76. Scriei programul C/C++care citete de la tastatur un cuvnt de maximum 20de litere i

13

Bacalaureat 2009- iruri de caractere


minimum o liter i afieaz pe ecran toate cuvintele obinute din cuvntul citit prin
eliminarea primei i a ultimei litere. Prima prelucrare se refer la cuvntul citit, iar
urmtoarele la cuvntul rezultat din prelucrarea anterioar. Procedeul de eliminare i afiare
se va repeta pn cnd se obine cuvntul vid, ca n exemplu. Fiecare cuvnt obinut se va
afia pe cte o linie a ecranului.
Exemplu: dac se citete cuvntul bacalaureat, se va afia:
bacalaureat
acalaurea
calaure
alaur
lau
a
77. Scriei programul C/C++care citete de la tastatur un text de cel mult 50de caractere,
(litere mici ale alfabetului englez i spaii), text format din mai multe cuvinte, separate prin
cte un spaiu, i afieaz pe ecran textul obinut din cel iniial prin transformarea primei
litere i a ultimei litere ale fiecrui cuvnt n majuscul, restul caracterelor rmnnd
nemodificate.
Exemplu: dac se citete textul aziesteexamendebacalaureat, se va afia AzI
EstEExameNDEBacalaureaT. (10p.)
78. Scriei programul C/C++care citete de la tastatur un text cu cel mult 100de caractere
(doar litere mici ale alfabetului englez i spaii) i un cuvnt cu cel mult 15caractere, doar
litere mici ale alfabetului englez, i care afieaz pe ecran irul obinut prin inserarea n
textul iniial a caracterului ?dup fiecare apariie a cuvntului citit. Dac n text nu apare
cuvntul citit, se va afia mesajul NUAPARE.
Exemplu: dac se citete de la tastatur textul
examenuluiexamenuldebacalaureatsiexamenuldeatestat
i cuvntul examenulse va afia:
examenuluiexamenul?debacalaureatsiexamenul?deatestat(10p.)
79. Scriei programul C/C++care citete de la tastatur un text cu cel mult 100de caractere
(doar litere ale alfabetului englez i spaii), construiete n memorie i apoi afieaz pe
ecran irul de caractere obinut din irul iniial, 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
conine vocale, se va afia mesajul FARAVOCALE.
Exemplu: dac se citete de la tastatur textul Examenuldebacalaureatse va obine
i afia: E*xa*me*nu*lde*ba*ca*la*u*re*a*t. (10p.)
80. Scriei programul C/C++care citete de la tastatur un cuvnt cu cel puin una i cel mult 20
de litere ale alfabetului englez, construiete i afieaz pe ecran cuvntul obinut prin
interschimbarea primei consoane cu ultima vocal din cuvnt. n cazul n care cuvntul este
format numai din vocale sau numai din consoane, programul afieaz pe ecran mesajul
IMPOSIBIL. Se consider vocale literele a, e, i, o, u, A, E, I, O, U.
Exemplu: dac se citete cuvntul Marmoratse va obine i afia cuvntul aarmorMt
(10p.)
81. Un ir de caractere se numete palindrom dac irul citit de la stnga la dreapta este

14

Bacalaureat 2009- iruri de caractere


identic cu irul citit de la dreapta spre stnga. Care dintre urmtoarele expresii C/C++are
valoarea 1dac i numai dac irul de caractere memorat n variabila s,avnd exact 3
caractere, este palindrom? (4p.)
a. s[0]==s[1]b. s[1]==s[2]c. s[0]==s[2]d. s[1]==s[3]
82.tiind c variabila ieste de tip ntreg i c
variabila sreine irul de caractere barba, ce
se va afia la executarea secvenei alturate?
(6p.)
for(i=0;i<strlen(s);i++)
if(s[i]==b)
s[i]=t;
cout<<s;|printf(%s,s);
83.tiind c variabila ieste de tip ntreg i variabila s
reine un ir de caractere, ce se va afia la executarea
secvenei alturate? (4p.)
strcpy(s,bac2009);
for(i=0;i<strlen(s);i++)
if(s[i]<0||s[i]>9)
cout<<s[i];
a. bac2009b. 2009c. bacd. 2009bac
84.Se consider variabila c, de tip char, care memoreaz o liter a alfabetului englez, diferit
de zsau Z. Scriei secvena de program C/C++care afieaz pe ecran litera care i
urmeaz n alfabet.
Exemplu: dac litera memorat este gse va afia h. (6p.)
86. Ce valoare are variabila sde tip ir de caractere dup executarea instruciunilor de mai
jos?
strncpy(s,strstr(examen,am),4);s[4]='\0';(4p.)
a. amenb. examc. mennd. Men
87.Ce valoare are variabila sde tip ir de caractere dup executarea instruciunilor de mai
jos?
strncpy(s,strstr("Informatica","form"),strlen("BAC08"));s[5]='\0';
(4p.)
a. formb. forma
c. InfoBACd. Infor
88.Ce valoare are variabila sde tip ir de caractere dup executarea instruciunii de mai jos?
s=strcat(strstr("bacalaureat","bac")+strlen("2009"),"09");(4p.)
a. BAC2009b. laureat09c. Bac200909d. aur2009
89.Ce valoare are variabila sde tip ir de caractere dup executarea instruciunilor de mai
jos?
strncpy(s,strstr("informatica","form"),strlen("BAC009"));
s[6]='\0';(4p.)
a. formatb. informatc. informd. informBAC

15

Bacalaureat 2009- iruri de caractere

90.Ce memoreaz variabila s, de tip ir de caractere, dup executarea instruciunilor de mai


jos?
strncpy(s,"informatica",strlen("2009"));
s[strlen("2009")]='\0';
strcat(s,"BAC");(4p.)
a. infob. infoBACc. BACinfod. InformaticaBAC
91.Ce se va afia n urma executrii
secvenei alturate de program, n
care variabila cmemoreaz un ir cu
cel mult 20de caractere, iar variabila
ieste de tip ntreg?
(6p.)
charc[]="abracadabra";
i=6;
cout<<c[i]<<c[i+1]<<endl;
|printf(%c%c\n,c[i],c[i+1]);
while(i>=0)
{cout<<c[i];|printf(%c,c[i]);
i=i1;}
92.Variabila seste de tip ir de caractere, iar variabilele c1i c2sunt de tip char. Care
expresie are valoarea 1dac i numai dac irul de caractere sconine caracterele
memorate de variabilele c1i c2? (6p.)
a. strstr(s,c1+c2)!=0b. strchr(s,c1)!=0||strchr(s,c2)!=0
c. strchr(strchr(s,c1),c2)!=0d. strchr(s,c1)*strchr(s,c2)!=0

92III5
Scriei un program C/C++care creeaz fiierul text SIR.TXTi scrie n el toate irurile
formate din dou caractere distincte, litere mari ale alfabetului englez, astfel nct niciun ir
s nu fie format din dou vocale alturate. Fiecare ir va fi scris pe cte o linie a fiierului.
(6p.)
93. Un ir de caractere sse numete ablon pentru un alt ir de caractere x, dac este
format din caractere din mulimea {*,?,#}, are aceeai lungime cu xi pe fiecare poziie
din sn care apare *n xse gsete o vocal, pe fiecare poziie din sn care apare #
n xse gsete o consoan i pe fiecare poziie din sn care apare ?putem avea
orice caracter n x. Se consider vocal orice liter din mulimea {a,e,i,o,u}.
Scriei programul C/C++care citete de la tastatur dou iruri de caractere, de aceeai
lungime, formate din cel mult 200de litere mici ale alfabetului englez, i afieaz pe ecran,
un ablon comun celor dou iruri citite, care conine un numr minim de caractere ?.
Exemplu: pentru irurile diamanti pierdutse afieaz #**#??#(10p.)
94. Scriei un program n limbajul C/C++care citete de la tastatur un singur ir format din cel
mult 20de caractere care reprezint numele i prenumele unei persoane. ntre nume i
prenume se afl un numr oarecare de caractere spaiu (cel puin unul). Att numele ct i

16

Bacalaureat 2009- iruri de caractere


prenumele sunt formate numai din litere ale alfabetului englez. Programul construiete n
memorie i afieaz pe ecran un al doilea ir de caractere, care s conin prenumele,
urmat de exact un spaiu i apoi numele din irul citit iniial.
Exemplu: dac se citete irul:
PopescuVasile
se va construi i apoi se va afia pe ecran irul
VasilePopescu(10p.)
95. Scriei un program n limbajul C/C++care citete de la tastatur un singur ir, format din cel
mult 20de caractere, care reprezint numele i prenumele unei persoane. ntre nume i
prenume se afl un numr oarecare de caractere spaiu (cel puin unul). Att numele, ct i
prenumele, sunt formate numai din litere mici ale alfabetului englez. Programul construiete
n memorie i afieaz pe ecran un alt ir de caractere, care s conin iniiala prenumelui
(prima liter a prenumelui), urmat de un caracter punct, de exact un spaiu i de numele
din irul citit iniial. Toate literele din irul afiat vor fi, de asemenea, litere mici.
Exemplu: dac se citete irul:
popescuvasile
se va construi i apoi se va afia pe ecran irul
v.popescu(10p.)
96. Scriei un program n limbajul C/C++care citete de la tastatur dou iruri, formate fiecare
din cel mult 20de caractere. Primul ir reprezint numele unei persoane, iar al doilea ir
reprezint prenumele aceleiai persoane. Att numele ct i prenumele sunt formate numai
din litere ale alfabetului englez i fiecare conine cel puin o consoan. Programul
construiete n memorie i afieaz pe ecran un al treilea ir de caractere, care conine
consoanele din prenumele citit dispuse n ordinea n care apar n prenume urmate de exact
un spaiu i de numele citit.
Exemplu: dac primul ir citit este Popescu, iar al doilea este Vasile
se va construi i apoi se va afia pe ecran irul
VslPopescu
97.Se consider variabila scare memoreaz irul de caractere CARACATITA. Ce valoare va
avea sdup executarea instruciunii de mai jos?
strcpy(s,strstr(s,"TI"));(6p.)
98. Ce se va afia n urma executrii secvenei de
program alturate, considernd c aeste o
variabil de tip ir de caractere, iar io
variabil de tip ntreg? (4p.)
chara[10]="Examen";
for(i=0;i<=2;i++)
strcpy(a+i,a+i+1);
cout<<a;|printf("%s",a);
a. xmnb. Eaec. mend. Examen
99.Considerm variabila xcare memoreaz irul de caractere ABAC. Care dintre urmtoarele
instruciuni conduc la afiarea caracterului B? (4p.)
a. cout<<x[strlen(x)3];
|printf("%c",x[strlen(x)3]);

17

Bacalaureat 2009- iruri de caractere


b. cout<<x[strlen(x)1];
|printf("%c",x[strlen(x)1]);
c. cout<<x[2];
|printf("%c",x[2]);
d. cout<<x[strlen(x)];
|printf("%c",x[strlen(x)]);
100.Se consider declararea chare[20]=51+73;Care este irul memorat de variabila e
dup executarea instruciunii de mai jos?
strcpy(e,strchr(e,+)+2);(6p.)
Scriei un program C/C++care citete de la tastatur o fraz de maximum 255de caractere
(litere mari ale alfabetului englez i spaii), ale crei cuvinte sunt desprite prin cte un
spaiu i afieaz pe primul rnd al ecranului numrul total al cuvintelor din fraz, iar pe
rndul urmtor de ecran, n ordine alfabetic, scrise o singur dat, consoanele care au
aprut n fraz (consoane sunt toate literele alfabetului englez, mai puin A, E, I, O, U).
Literele afiate sunt separate prin cte un spaiu.
Exemplu: dac se citete fraza LABACALAUREATSUBIECTELEAUFOSTUSOARE
se va afia:
6
BCFLRST

18