Documente Academic
Documente Profesional
Documente Cultură
Siruri de Caractere
Siruri de Caractere
1.
2.
3.
4.
5.
6.
7.
Nr.pb. Problema
S se scrie un program C/C++ care citete de la tastatur un cuvnt format din cel
5
mult 20 de caractere, doar litere mici ale alfabetului englez. Programul determin
transformarea cuvntului citit prin nlocuirea fiecrei vocale a cuvntului, cu un ir
format din dou caractere i anume vocala respectiv urmat de litera mare
corespunztoare, restul literelor nemodificndu-se, ca n exemplu. Programul afieaz
pe ecran cuvntul obinut, pe o singur linie. Se consider vocale literele din mulimea
{a,e,i,o,u}.
Exemplu: pentru cuvntul bacalaureat se va afia pe ecran:
baAcaAlaAuUreEaAt
n secvena de instruciuni de mai jos, variabila s memoreaz un ir de caractere
4
format doar din litere ale alfabetului englez, iar variabilele i i n sunt de tip int.
tiind c n urma executrii secvenei s-a afiat succesiunea de caractere
eied*eael* scriei care este irul de caractere memorat de variabila s.
n=strlen(s);
for(i=0;i<n;i++)
if (s[i]==e) cout<<*;
else cout<<'e'<<s[i];
Fie s o variabil ce memoreaz un ir de caractere, format doar din litere ale
4
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 eliminarea tuturor literelor mici din irul s i apoi afiarea irului
obinut.
i=0;
while (i<strlen(s))
...............
cout<<s;
Fie
s o variabil ce memoreaz un ir de caractere, c o variabil de tip char, iar i
4
i j dou variabile de tip int. Scriei instruciunile ce pot nlocui punctele de
suspensie din secvena de program alturat astfel nct executarea ei s determine
modificarea coninutul irului s prin interschimbarea caracterelor
aflate pe poziii simetrice fa de mijlocul irului (primului caracter cu ultimul, al doilea
cu penultimul, etc).
i=0;
j=strlen(s)-1;
while (i<j)
{
.........
}
Se consider un text cu maximum 255 de caractere n care cuvintele sunt separate
5
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
Se consider un text cu maximum 255 de caractere, format din litere mici ale
5
alfabetului englez i spaii. Textul conine cel puin o consoan. Scriei un program
C/C++ care citete de la tastatur textul i apoi determin transformarea acestuia,
eliminnd numai ultima consoan care apare n text, ca n exemplu. Programul va
afia pe ecran textul obinut.
8.
9.
10. 4
11. 3
12. 4
13. 4
14. 3
15. 3
16. 4
17. 4
18. 4
19. 3
cout<<" "<<s;
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 i j
sunt de tip ntreg?
char s[11]="abcduecda";
cout<<strlen(s);
i=0; j=strlen(s)-1;
while (i<j)
if (s[i]==s[j])
{ strcpy(s+j,s+j+1);
strcpy(s+i,s+i+1); j=j-2;
}
else
{ i=i+1; j=j-1; }
cout<<" "<<s;
Ce se va afia 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?
i=0; char s[11]="abaemeiut";
cout<<strlen(s);
while (i<strlen(s))
if (strchr("aeiou",s[i])!=NULL))
{ strcpy(s+i,s+i+1); i=i+1; }
else
i=i+2;
cout<<" "<<s;
Ce se va afia n urma executrii secvenei de program alturate tiind c variabila a
memoreaz un ir cu cel mult 100 de caractere, iar variabilele
i i k sunt de tip ntreg?
k=a-A;
strcpy(a,clasa a-XII-a A);
cout<<a<<endl;
for(i=0;i<strlen(a);i++)
if(a[i]>=a&& a[i]<=z) a[i]=a[i]-k;
cout<<a;
Ce se va afia n urma executrii secvenei de program alturate tiind c
variabila a memoreaz un ir cu cel mult 100 de caractere, iar variabila i
este de tip ntreg ?
strcpy(a,bacalaureat);
cout<<strlen(a)<<endl;
for(i=0;i<strlen(a);i++)
if(strchr(aeiou,a[i])!=0)
cout<<*;
n secvena de program alturat, variabila a memoreaz un ir cu cel mult 100 de
caractere, iar variabila i este 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*.
strcpy(a,informatica);
for(i=0;i<strlen(a);i++)
if(...)
cout<<...; | printf(...);
else
cout<<...;
Ce se va afia n urma executrii secvenei de program alturate, tiind c variabila x
20. 4
21. 5
22. 3
23. 1
24. 5
25. 4
26. 3
27.
28. 5
29. 3
30. 2
31.
32. 5
33.
34. 4
35. 3
36. 1
37. 4
litere mici ale alfabetului englez i afieaz pe ecran (dac exist), toate clonele
acestui cuvnt, fiecare pe cte o linie a ecranului.
Exemplu: pentru cuvntul informatica se afieaz, nu neaprat n aceast ordine,
clonele scrise alturat.
nformatca
infrmatica
informtic
Care va fi irul de caractere afiat pe ecran dup executarea secvenei de program
alturate n care variabila s memoreaz un ir cu cel mult 4
caractere iar variabila t un caracter?
char s[]=arac;
t=s[1]; s[1]=s[3];
s[3]=t;
cout<<s;
Care este valoarea expresiei strlen(s) pentru variabila s de tip ir de caractere,
declarat i iniializat astfel: char s[15]=Proba_E;
a. 7
b. 15
c. 6
d. 5
Scriei un program C/C++ care citete de la tastatur dou caractere c1 i c2 (litere
distincte ale alfabetului englez), i un text avnd cel mult 250 caractere (doar spaii i
litere ale alfabetului englez), pe care l modific nlocuind toate apariiile caracterului
memorat n c1 cu cel memorat n c2 i toate apariiile caracterului memorat n c2 cu
cel memorat n c1. Programul afieaz pe linii separate ale ecranului att textul iniial
ct i textul obinut dup efectuarea nlocuirilor.
Exemplu: dac pentru c1 se citete a, pentru c2 se citete o iar textul citit este:
hocus pocus preparatus
se va afia :
hocus pocus preparatus
hacus pacus preporotus
Ce se va afia n urma executrii secvenei alturate, n care variabila c memoreaz
un ir cu cel mult 20 de caractere, iar i este o variabil de
tip ntreg?
char c[21]="tamara",*p;
for(i=0;i<strlen(c);i=i+1)
{ p=strchr(c,'a');
cout<<p-c;
Ce se va afia n urma executrii secvenei alturate, n care variabila c memoreaz
un ir cu cel mult 20 de caractere, iar variabila i este de tip
ntreg?
char c[]="tamara";
for(i=0;i<3;i++)
c[i]=c[i+1];
cout<<c;
tiind c n urma executrii secvenei alturate s-a afiat succesiunea de
caractere EXAMEN, care este irul de caractere memorat de variabila s?
x=strlen(s);
for (i=0;i<x/2;i++)
cout<<s[i]<<s[x-i-1];
a. ENXAME
b. EAENMX
c. NEEXMA
d. NEMAXE
Un ir cu maximum 255 de caractere conine cuvinte separate prin unul sau mai
multe spaii. Cuvintele sunt formate numai din litere mici ale alfabetului englez. Scriei
un program C/C++ care citete un astfel de ir i l afieaz modificat, prima i ultima
38. 2
39. 5
40. 5
41. 4
42. 5
43. 4
44. 4
45. 5
46. 5
47. 2
48. 2
49. 5
50. 5
51. 5
52. 5
bbc
abc
abc
abb
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 100 de
caractere, ca cel descris mai sus i care determin transformarea acestuia prin
nlocuirea fiecrei vocale din text cu litera imediat urmtoare din alfabet (a se
nlocuiete cu b, e se nlocuiete cu f .a.m.d.).
Programul va afia pe ecran irul obinut.
Exemplu: dac irul citit este examen de bacalaureat, dup modificare se
afieaz:
fxbmfn df bbcblbvrfbt
Variabila s reine irul de caractere bacalaureat. Ce se afieaz la executarea
instruciunii de mai jos?
cout<<strchr(s,a);
a. 2
b. acalaureat
c. 4
d. bclu
In secvena alturat, variabilele s1, s2 i s3 rein iruri de caractere.
Dup executarea acesteia, variabila ntreag val primete valoarea 1
dac:
if(!(strcmp(s1,s2) || strcmp(s1,s3)))val=1;
else val=2;
a. s1, s2, s3 rein iruri identice de caractere
b. s1, s2, s3 rein iruri de caractere ordonate lexicografic
c. s1, s2, s3 rein iruri de caractere de lungimi diferite
d. s1 este obinut prin concatenarea irurilor reinute n s2 i s3
Un cuvnt s, de cel mult 20 caractere, 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 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
Scriei programul C/C++ care citete de la tastatur un cuvnt s de cel mult 20 litere
mici ale alfabetului englez, construiete n memorie i afieaz pe ecran cuvntul s
dup eliminarea primei i a ultimei vocale. Cuvntul s conine 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
Se consider un ir s avnd maximum 52 de 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 a2b1f2 atunci irul cerut este aabff
Scriei un program C/C++ care citete de la tastatur un numr natural nenul n
(n100), apoi n iruri de caractere, fiecare ir avnd maximum 30 de caractere, doar
litere mici ale alfabetului englez, i afieaz pe ecran cte dintre cele n iruri 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
53. 4
54. 3
55.
56. 4
57. 4
58. 5
59. 1
60. 1
61. 2
62. 5
63. 4
64. 5
65.
66. 5
67. 5
68.
69.
70.
71. 5
72. 2
73. 5
74. 2
75. 1
76. 5
77. 5
78. 5
79. 5
80. 5
81. 1
82. 3
83. 1
bacalaureat
acalaurea
calaure
alaur
lau
a
Scriei programul C/C++ care citete de la tastatur un text de cel mult 50 de
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 azi este examen de bacalaureat, se va afia
AzI
EstE ExameN DE BacalaureaT.
Scriei programul C/C++ care citete de la tastatur un text cu cel mult 100 de
caractere (doar litere mici ale alfabetului englez i spaii) i un cuvnt cu cel mult 15
caractere, 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 NU APARE.
Exemplu: dac se citete de la tastatur textul
examenului examenul de bacalaureat si examenul de atestat
i cuvntul examenul se va afia:
examenului examenul? de bacalaureat si examenul? de atestat
Scriei programul C/C++ care citete de la tastatur un text cu cel mult 100 de
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 FARA VOCALE.
Exemplu: dac se citete de la tastatur textul Examenul de bacalaureat se va
obine i afia: E*xa*me*nu*l de* ba*ca*la*u*re*a*t.
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 Marmorat se va obine i afia cuvntul
aarmorMt
Un ir de caractere se numete palindrom dac irul citit de la stnga la dreapta este
identic cu irul citit de la dreapta spre stnga. Care dintre urmtoarele expresii C/C++
are valoarea 1 dac i numai dac irul de caractere memorat n variabila s, avnd
exact 3 caractere, este palindrom?
a. s[0]==s[1]
b. s[1]==s[2]
c. s[0]==s[2]
d. s[1]==s[3]
tiind c variabila i este de tip ntreg i c variabila s reine irul de caractere
barba, ce se va afia la executarea secvenei alturate?
for(i=0;i<strlen(s);i++)
if(s[i]==b)
s[i]=t;
cout<<s;
tiind c variabila i este de tip ntreg i variabila s reine un ir de caractere, ce se
va afia la executarea secvenei alturate?
strcpy(s,bac2009);
for(i=0;i<strlen(s);i++)
84. 3
85. 3
86. 2
87. 2
88. 2
89. 2
90. 2
91. 4
92. 2
93. 5
if(s[i]<0||s[i]>9)
cout<<s[i];
a. bac2009
b. 2009
c. bac
d. 2009bac
Se consider variabila c, de tip char, care memoreaz o liter a alfabetului englez,
diferit de z sau Z. Scriei secvena de program C/C++ care afieaz pe ecran litera
care i urmeaz n alfabet.
Exemplu: dac litera memorat este g se va afia h.
Variabila s reine un ir de caractere format din cel puin 2 i cel mult 30 de litere
mici ale alfabetului englez. Scriei secvena de program C/C++ care afieaz pe
ecran primul i ultimul caracter al irului s.
Ce valoare are variabila s de tip ir de caractere dup executarea instruciunilor de
mai jos?
strncpy(s,strstr(examen,am),4); s[4]='\0';
a. amen
b. exam
c. menn
d. men
Ce valoare are variabila s de tip ir de caractere dup executarea instruciunilor de
mai jos?
strncpy(s,strstr("Informatica","form"),strlen("BAC08"));
s[5]='\0';
a. form
b. Forma
c. InfoBAC
d. Infor
Ce valoare are variabila s de tip ir de caractere dup executarea instruciunii de mai
jos?
s=strcat(strstr("bacalaureat", "bac")+ strlen("2009"),"09");
a. BAC2009
b. laureat09
c. Bac200909
d. aur2009
Ce valoare are variabila s de tip ir de caractere dup executarea instruciunilor de
mai jos?
strncpy(s,strstr("informatica","form"),strlen("BAC009"));
s[6]='\0';
a. format
b. informat
c. inform
d. informBAC
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");
a. info
b. infoBAC
c. BACinfo
d. InformaticaBAC
Ce se va afia n urma executrii secvenei alturate de program, n care variabila c
memoreaz un ir cu cel mult 20 de caractere, iar variabila i este de tip ntreg?
char c[]="abracadabra";
i=6;
cout<<c[i]<<c[i+1] <<endl;
while (i>=0)
{cout<<c[i]; i=i-1;}
Variabila s este de tip ir de caractere, iar variabilele c1 i c2 sunt de tip char.
Care expresie are valoarea 1 dac i numai dac irul de caractere s conine
caracterele memorate de variabilele c1 i c2?
a. strstr(s,c1+c2)!=0
b. strchr(s,c1)!=0 || strchr(s,c2)!=0
c. strchr(strchr(s,c1),c2)!=0 d. strchr(s,c1)*strchr(s,c2)!=0
Un ir de caractere s se numete ablon pentru un alt ir de caractere x, dac este
format din caractere din mulimea {*, ?,#}, are aceeai lungime cu x i pe fiecare
poziie din s n care apare * n x se gsete o vocal, pe fiecare poziie din s n
care apare # n x se gsete o consoan i pe fiecare poziie din s n 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
94. 4
95. 5
96. 5
97. 3
98. 2
99. 2
100. 4
caractere, de aceeai lungime, formate din cel mult 200 de 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 diamant i pierdut se afieaz #**#??#
Scriei un program n limbajul C/C++ care citete 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 numr oarecare de caractere spaiu (cel puin unul). Att
numele ct i 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: Popescu Vasile
se va construi i apoi se va afia pe ecran irul Vasile Popescu
Scriei un program n limbajul C/C++ care citete 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 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: popescu vasile
se va construi i apoi se va afia pe ecran irul v. popescu
Scriei un program n limbajul C/C++ care citete 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 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 Vsl Popescu
Se consider variabila s care memoreaz irul de caractere CARACATITA. Ce valoare
va avea s dup executarea instruciunii de mai jos?
strcpy(s,strstr(s,"TI"));
Ce se va afia n urma executrii secvenei de program alturate, considernd c a
este o variabil de tip ir de caractere, iar i o variabil de tip ntreg?
char a[10]="Examen";
for (i=0;i<=2;i++)
strcpy(a+i,a+i+1);
cout<<a;
a. xmn
b. Eae
c. men
d. Examen
Considerm variabila x care memoreaz irul de caractere ABAC. Care dintre
urmtoarele instruciuni conduc la afiarea caracterului B?
a. cout<<x[strlen(x)-3];
b. cout<<x[strlen(x)-1];
c. cout<<x[2];
d. cout<<x[strlen(x)];
Se consider declararea char e[20]=51+73; Care este irul memorat de
variabila e dup executarea instruciunii de mai jos?
strcpy(e,strchr(e,+)+2);