0% au considerat acest document util (0 voturi)
116 vizualizări3 pagini

Stringuri 1

Acest document conține 17 probleme de testare a cunoștințelor legate de manipularea șirurilor de caractere în C/C++. Fiecare problemă prezintă o secvență de cod și cere rezultatul executării acesteia.

Încărcat de

Miruna Greavu
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
116 vizualizări3 pagini

Stringuri 1

Acest document conține 17 probleme de testare a cunoștințelor legate de manipularea șirurilor de caractere în C/C++. Fiecare problemă prezintă o secvență de cod și cere rezultatul executării acesteia.

Încărcat de

Miruna Greavu
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

TEST ȘIRURI DE CARACTERE - R1

1. Variabilele i și j sunt de tip întreg, iar variabila s poate memora un şir de cel mult 20 de caractere.
Scrieți șirul memorat de variabila s în urma executării secvenței de mai jos.
strcpy(s,"optsprezece"); i=0; j=strlen(s)-1;
while(i<j)
{ if(strchr("aeiou",s[i])==NULL && strchr("aeiou",s[j])!=NULL)
{ s[i]=s[i]+1; s[j]=s[j]-1;}
i=i+1;j=j-1;
}

2. Variabila i este de tip întreg, iar variabila s poate memora un șir de cel mult 20 de caractere.
Scrieți ce se afișează în urma executării secvenței alăturate.
strcpy(s,"stilou"+4);
cout<<s<<endl;
strncpy(s,"stilou",4); s[4]='\0';
for(i=0;i<4;i++)
if(i%2==0) s[i]=s[0]+i-1;
else s[i]=s[0]+3*(2*i/3-1);
cout<<s;

3. Variabilele s1 și s2 pot memora câte un șir cu cel mult 20 de caractere. Scrieți ce se afișează în
urma executării secvenței alăturate.
strcpy(s1,"bacalaureat2020");
cout<<strlen(s1);
strcpy(s2,s1+11); strcpy(s1+3,s2);
cout<<s1;

4. Variabilele i și j sunt de tip întreg, iar variabila s poate memora un șir de cel mult 20 de caractere.
Scrieți șirul memorat de variabila s în urma executării secvenței de mai jos.
strcpy(s,"informatie"); n=strlen(s)-1;
for(i=0;i<n/2;i++)
if(strchr("aeiou",s[i])!=NULL && strchr("aeiou",s[n-i])!=NULL)
{ s[i]=s[i+1]; s[n-i]=s[n-i-1];}

5. Variabilele s1 și s2 pot memora câte un șir de cel mult 50 de caractere. Scrieți ce se afișează în
urma executării secvenței alăturate.
strcpy(s1,"bac2021");
cout<<strlen(s1)<<endl;
strcpy(s2,s1+3); strcpy(s2+2,"20-");
strcat(s2,s1+3);
cout<<s2;

6. Variabila s memorează un șir de cel mult 20 de caractere (litere mari și mici ale alfabetului
englez). Declarați eventuale alte variabile necesare și scrieți o secvență de instrucțiuni în urma
executării căreia se afișează pe ecran vocalele care NU apar în șirul menționat.
Se consideră vocale literele a, e, i, o, u, A, E, I, O, U.
Exemplu: dacă se citește textul PREafrUMoASA se afișează pe ecran, nu neapărat în această
ordine, vocalele: euOiI
7. Variabila s permite memorarea unui șir de cel mult 20 de caractere. Scrieți ce se afișează în urma
executării secvenței alăturate.
strcpy(s,"muzeu");
s[0]=s[0]+1;
cout<<s[1]<<s[0]<<endl;
strcpy(s,"muzeu"+2);
cout<<s;

8. În secvenţa alăturată, variabila i este de tip întreg, iar variabilele s și t pot memora câte un şir cu
cel mult 20 de caractere. Scrieţi ce se afișează pe ecran în urma executării secvenţei.
strcpy(s,"sanataTEA");
cout<<strlen(s);
i=0;
while(i<strlen(s))
if(s[i]=='a')
{ strcpy(t, s+i+1); strcpy(s+i, t);}
else i=i+1;
cout<<s;

9. Variabila i este de tip întreg, iar variabilele s și t permit memorarea câte un șir de cel mult 20 de
caractere. Scrieți șirul accesat prin variabila s în urma executării secvenței alăturate.
strcpy(s,"PRASLEA*CEL*VOINIC"); i=0;
while (i<strlen(s))
if (strchr("ACEI",s[i])!=NULL)
{ strcpy(t,s+i+1); strcpy(s+i,t);}
else i=i+1;

10. Variabilele i și j sunt de tip întreg, iar variabilele s și t permit memorarea unui șir de cel mult 20
de caractere. Scrieți șirul accesat prin variabila s în urma executării secvenței de mai jos.
strcpy(s,"ABCDUECDA");
i=0; j=strlen(s)-1;
while (i<j)
if(s[i]==s[j])
{strcpy(t,s+j+1);strcpy(s+j,t);strcpy(t,s+i+1);strcpy(s+i,t);j=j-2;}
else { i=i+1; j=j-1; }

11. Variabila i este de tip întreg, iar variabilele s și aux permit memorarea câte unui șir cu cel
mult 15 caractere. Scrieți ce se afișează pe ecran în urma executării secvenței de program alăturate.
strcpy(s,"voalata");
cout<<strlen(s);
i=0;
while (i<strlen(s))
if (strchr("aeiou",s[i])!=NULL)
{ strcpy(aux,s+i+1);strcpy(s+i,aux); i=i+1; }
else i=i+2;
cout<<s;
12. Scrieți ce se afișează în urma executării secvenței de mai jos, în care variabilele s și t permit
memorarea câte unui șir de cel mult 50 de caractere.
strcpy(s,"vorbeste");
s[3]=s[0]; s[5]=s[2]; s[0]=s[1]+1; s[2]=s[1]-2; s[6]=s[4]-1;
strcpy(t,s); t[3]='\0';
cout<<t<<endl<<s+3;

13. Ce se va afişa în urma executării secvenţei de program alăturate, considerând că a și aux sunt
variabile de tip şir de caractere, iar i o variabilă de tip întreg?
char a[10]="creion";
for (i=0;i<=2;i++)
{ strcpy(aux,a+i+1); strcpy(a+i,aux);}
cout<<a; | printf("%s",a);

14. Variabila i este de tip întreg, iar variabila s permite memorarea unui șir cu cel mult 50 de
caractere, numai litere mari ale alfabetului englez. Scrieți secvența de mai jos înlocuind punctele de
suspensie astfel încât, în urma executării secvenței obținute, să se afișeze pe ecran toate consoanele
din șir, iar în locul vocalelor din mulțimea {O,A,U} să se afișeze simbolul *.
Exemplu: dacă șirul este CALCULATOARE, se afișează C*LC*L*T**RE
for(i=0;i<strlen(s);i++)
if(.............) cout<<...;
else cout<<...;

15. În secvenţa alăturată, fiecare dintre variabilele x şi s sunt de tipul şir de caracter, iar i este de tip
întreg. Dacă variabilele x şi s memorează iniţial şirul crizantema, ce se va memora în variabila x în
urma executării secvenţei alăturate?
for(i=0; i<strlen(s); i++)
if(strcmp(x, s+i)<0)
strcpy(x,s+i);

16. Subprogramul nrap(s,c) returnează numărul aparițiilor caracterului c în șirul s. Știind că șirul a
conține doar litere mici ale alfabetului englez și variabila c este de tip char, scrieți o secvență de
program care atribuie variabilei k valoarea 1 dacă și numai dacă șirul a este format din litere mici
distincte sau valoarea 0 în caz contrar. Se vor utiliza apeluri ale suprogramului și nu se vor utiliza
alte variabile.

17. Ce se va afișa după executarea secvenței de program alăturate?


char a[20]="informatica", b[20]="";
strncat(b,a,strlen(strstr(a, "ma")));
cout<<b;

18. În secvenţa de program următoare, variabila s memorează un şir de caractere, iar variabila i este
de tip întreg. Ce valoare se va afişa în urma executării secvenţei?
strcpy(s,”informatica”);
i=strchr(s,’a’)-s;
cout<<i*i;

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