Sunteți pe pagina 1din 3

Nr.

Cerința
crt
1. 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;

2. Fie s o variabilă ce memorează un şir de caractere, c o variabilă de tip char, iar i şi j două variabile 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 modificarea conţinutul şirului s prin interschimbarea caracterelor aflate pe poziţii simetrice faţă de
mijlocul şirului (primului caracter cu ultimul, al doilea cu penultimul etc).
i=0;
j=strlen(s)-1;
while (i<j)
…………………………………
{c=s[i];s[i]=s[j];s[j]=c;
i++;j--;}

3. Ce se afişează în urma executării secvenţei de program alăturate dacă variabila s memorează şirul de caractere
abcdefgh? Justificați răspunsul.
strcpy(s+2, s+4);
cout<<s<<” ”<<strlen(s);

0 1 2 3 4 5
a b e f g h

abefgh 6

4. Se consideră declarațiile: char s[50], x[50]; Ce se afişează în urma executării secvenţei de program scrisă alăturat
dacă variabila s memorează şirul abcdefg? Justificați răspunsul.
strcpy(x,s +4);
strcpy(s+4, ”123”);
strcat(s, x);
cout<<s;
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? Justificați răspunsul.
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;
5. 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? Justificați răspunsul.
strcpy(s, ”abracadabra”);
i=0;
cout<<strlen(s);
while (i<strlen(s))
if (s[i]=='a') strcpy(s+i,s+i+1);
else i++;
cout<<" "<<s;
6. 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. Justificați răspunsul.
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;
7. 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. Justificați răspunsul.
char s[13]="abcdefghoid";
i=0;
cout<<<" "<<strlen(s);
while (i<strlen(s)) 1
if (strchr("aeiou",s[i])!=NULL)
strcpy(s+i,s+i+1);
else i++;
cout<<" "<<s;
Probleme
1.Scrieţi un program care citeşte de la tastatură, în această ordine, un număr natural n, apoi n cuvinte, separate prin
Enter, urmate de un număr natural k. Numerele citite sunt din intervalul [1, 20], iar fiecare cuvânt este format din
cel mult 20 de caractere, numai litere mici ale alfabetului englez. Cel puţin unul dintre cuvinte are k litere.
Programul construiește în memorie, apoi afișează pe ecran, un șir care să cuprindă cuvintele citite, separate prin
câte un spațiu, astfel încât toate cele care au k litere să ocupe primele poziţii, iar celelalte să se regăsească în
continuarea acestora, într-o ordine oarecare.
Exemplu: 5 am un de cires mai
am
un
cires
de
mai
2
2. Se consideră un text cu cel mult 100 de caractere, în care cuvintele sunt formate numai din litere mici ale
alfabetului englez și sunt separate prin spații. Scrieţi un program care citeşte de la tastatură un text de tipul
menţionat mai sus şi determină transformarea acestuia în memorie, astfel încât din fiecare cuvânt format dintr-
un număr impar de litere (cel puțin trei) să se elimine litera aflată pe poziția din mijloc, ca în exemplu. Programul
afişează pe ecran textul obţinut.
Exemplu: pictura aceea arata o pace profunda picura acea arta o pace profunda

3.

4. Se consideră un text cu cel mult 100 de caractere (litere mici ale alfabetului englez şi spaţii). Înaintea primului
cuvânt şi după ultimul cuvânt nu există spaţii. Scrieţi un program care citeşte de la tastatură un text de tipul
menţionat mai sus şi afişează pe ecran cuvintele în ordinea descrescătoare a numărului de caractere. Dacă două sau
mai multe cuvinte au acelaşi număr de caractere, se afişează în ordinea apariţiei lor în text.
Exemplu: pentru textul:azi sunt un elev bun
se afişează: sunt elev azi bun un

5. Se consideră un text cu cel mult 70 de caractere (litere mici ale alfabetului englez şi spaţii), în care cuvintele sunt
separate prin unul sau mai multe spaţii. Înaintea primului cuvânt si după ultimul cuvânt nu există spaţii. Scrieţi un
program care citeşte de la tastatură un text de tipul menţionat mai sus şi afişează pe ecran numărul de cuvinte în
care apare litera a.
Exemplu: pentru textul voi sustine examenul la informatica se afişează 3

6.

7. Scrieţi un program C/ C++ care citeşte de la tastaturǎ un şir de caractere format din cel mult 100 de caractere
(litere mici şi mari ale alfabetului englez şi caracterul *) şi afişează pe ecran şirul obţinut prin inversarea ordinii
literelor tuturor cuvintelor de lungime maximă. Șirul începe şi se termină cu caracterul *, ca în exemplu. Un cuvânt
din şir reprezintă o succesiune de litere delimitate de două caractere *.
Exemplu: dacă se citeşte şirul de caractere
*Ana*are*mere*si*pere*

2
se va afişa *Ana*are*erem*si*erep*

8. Scrieţi programul C/C++ care citeşte de la tastatură un şir de cel mult 20 de caractere şi creează fişierul text
A.TXT ce conţine şirul de caractere dat şi toate permutările circulare ale acestuia, fiecare pe câte o linie. De
exemplu, dacă se citeşte şirul magma, atunci A.TXT va conţine (nu neapărat în această ordine) permutările
circulare:
magma
amagm
mamag
gmama
agmam

9. Se consideră mulţimea {A, E, I, O, U} a vocalelor litere mari. Fiecărei vocale i se asociază un cod, format dintr-
o singură cifră, astfel: pentru vocala A codul 1, pentru vocala E codul 2, pentru vocala I codul 3, pentru vocala O
codul 4 iar pentru vocala U codul 5. 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 mari 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 urmată de codul
corespunzător, restul literelor nemodificându-se, ca în exemplu. Programul afişează pe ecran cuvântul obţinut, pe o
singură linie.
Exemplu: pentru cuvântul BACALAUREAT se va afişa pe ecran:
BA1CA1LA1U5RE2A1T

10. Se citește un şir de caractere. Să se afişeze şirul oglindit din care s-au eliminat vocalele.
Exemplu: Ana are mere  rm r n

11. Se citesc n cuvinte, scrise cu litere mici. Să se afişeze literele distincte din fiecare cuvânt şi literele distincte din
toate cele n cuvinte.
Exemplu: n=4
abracadabra abrcd
informatica informatc
elan elan
mare mare
abrcdinfomtel

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