Sunteți pe pagina 1din 10

FISA DE LUCRU --SIRURI DE CARACTERE

A) PROGRAME
1) Scrieţi un program C/C++ care citeşte de la tastatură un cuvânt format din cel mult 20 de caractere, doar
litere ale alfabetului englez. Programul determină transformarea cuvântului citit prin înlocuirea fiecărei litere
mici a cuvântului cu litera mare corespunzătoare, restul literelor nemodificându-se, ca în exemplu.
Programul afişează pe ecran cuvântul obţinut. Exemplu: pentru cuvântul: bACAlaUrEaT se va afişa pe
ecran: BACALAUREAT

2) Un cuvânt s, de cel mult 20 caractere, format doar din litere mici ale alfabetului englez, conţine cel puţin o
consoană. 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 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 Un enunt analog doar ca se vor elimina vocalele Exemplu: dacă
se citeşte cuvântul bacalaureat, pe ecran se afişează: bclrt

3) 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.
Exemplu: dacă şirul citit este examen de bacalaureat, după modificare se afişează: fxbmfn df bbcblbvrfbt

4) Scrieţi un program C/C++ care citeşte de la tastatură o frază având maximum 100 de
caractere, în care cuvintele sunt separate prin câte un spaţiu; programul construieşte în memorie şi afişează
pe ecran un şir ce conţine doar primul caracter al fiecăruia dintre cuvintele frazei, în ordinea în care acestea
apar în frază, ca în exemplu. Exemplu: dacă se citeşte fraza Ana sustine bacalaureatul la informatica
atunci se va afişa Asbli
5)Scrieţi un program C/C++ care citeşte de la tastatură un şir format din maximum 100 caractere,
construieşte în memorie şi afişează un nou şir de caractere obţinut din şirul iniţial prin eliminarea tuturor
caracterelor care nu sunt caractere cifră. În cazul în care noul şir are lungimea 0 se va afişa mesajul Şir vid.
Exemplu: dacă se citeşte de la tastatură şirul de caractere. Ana are 17 ani . atunci şirul cerut este: 17

6)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), determină şi afişează pe ecran numărul de caractere din şirul citit care
sunt litere mici ale alfabetului englez.
Exemplu: dacă se citeşte şirul: Voi lua 9 la matematica si 10 la informatica, atunci se va afişa: 32.

7)Scrieţi programul C/C++ care citeşte de la tastatură un text cu cel mult 100 de caractere
(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.
Exemplu: dacă se citeşte de la tastatură textul Examenul de bacalaureat se va afişa: E*xa*me*nu*l de*
ba*ca*la*u*re*a*t.

8)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 obţinute 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 abb

9) Ş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, toate “clonele” acestui cuvânt, fiecare pe câte o linie a ecranului. Exemplu:
pentru cuvântul informatica se afişează, nu neapărat în această ordine, “clonele” scrise alăturat.
nformatca infrmatica , informtic
10)
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 litere a fiecărui cuvânt în majusculă.
Exemplu: dacă se citeşte textul azi este examen de atestat se va afişa Azi Este Examen De Atestat
B) APLICATII SIRURI DE CARACTERE-SECVENTE

1) Î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';
2) Fie s o variabilă ce memorează un şir de caractere , i=0;
format doar din litere ale alfabetului englez, şi i o while (i<strlen(s))
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 înlocuirea tuturor literelor mici din şirul s cout<<s;
cu litera W şi apoi afişarea şirului obţinut.

3) Fie s o variabilă ce memorează un şir de caractere, c şi d două variabile ce memorează


câte un caracter, iar n şi i variabile întregi. Scrieţi instrucţiunile ce pot înlocui punctele de suspensie din
secvenţa de program de mai jos astfel încât executarea ei să determine înlocuirea tuturor apariţiilor
caracterului memorat de variabila c în şirul s cu caracterul memorat de variabila d şi apoi afişarea şirului
obţinut. n=strlen(s);
for(i=0;i<n;i++)
…………………….
cout<<s;

4) Ce se afiseaza in urma executarii secventei de program urmatoare ,daca variabila s memoreaza sirul de
caractere abcdefgh? strcpy(s+2,s+4); cout<<s<<” “<<strlen(s);

5)Ce se afiseaza in urma exucutarii secventei de program urmatoare ,daca variabila s memoreaza sirul de
caractere abcdef iar variabile n este de tip intreg?
n=strlen(s);
s[n-1]=s[0];
cout<<s;
6) Ce va afişa secvenţa strcpy(a,”clasa a-XII-a A”);
alăturată, ştiind că variabila a cout<<a<<endl; | printf(“%s\n”,a);
memorează un şir cu cel mult for(i=0;i<strlen(a);i++)
100 de caractere, iar if(a[i]>=’a’&&a[i]<=’z’) cout<<a[i];
variabila i este de tip întreg?

7) Ce va afişa secvenţa alăturată de strcpy(a,”bacalaureat”);


program, ştiind că variabila a n=strlen(a);
memorează un şir cu cel mult 100 de cout<<n<<endl;
caractere, iar variabila i este de tip cout<<a[0]<<’*’<<a[n-1];
întreg?

8) In secventa alaturata ,variabila a memoreaza un sir cu cel mult 100 de caractere ,iar variabila i este de tip
intreg. Completati punctele de suspensie din secventa astfel incat aceasta sa afiseze sirul de caractere
*nf*rm*t*c*.
strcpy(a,”informatica”);
for(i=0;i<strlen(a);i++)
if (…………….) cout<<……………………;
else cout<<………………..;

9) Ce va afişa secvenţa alăturată de program, ştiind că variabila x memorează un şir cu cel mult 100 de
caractere, iar variabila i este de tip întreg? strcpy(x,“bac2008”);
for(i=3;i<strlen(x);i++) cout<<x[i]; cout<<x<<endl;
10) In secventa alaturata , variabila a memoreaza un sir cu cel mult 100 de caractere ,iar variabila i este de tip
intreg . Completati punctele de suspensie astfel incat aceasta sa afiseze caracterele sirului memorat in variabila
a in ordine inversa celei in care se gasesc in sir.
strcpy(a,”Bac 2008 iulie”);
for(…………………) cout<<a[i[;
11) Î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 eied*eael* scrieţi 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];

12) 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.
(6p.)
i=0;
while (i<strlen(s))
...............

13) 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). (6p.)
i=0;
j=strlen(s)-1;
while (i<j) {
......... }

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

15) Se consideră declararea de mai jos:


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? (6p.)
strcpy(x,s+4); strcpy(s+4,”123”); strcat(s,x); cout<<s;

16) 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. (6p.)
char s[13]="informatica"; cout<<strlen(s);
for (i=0;i<strlen(s);i++)
if (strchr("aeiou",s[i])!=NULL)
s[i]= '*';
cout<<" "<<s;

17)Ce se va afişa în urma executării secvenţei de program alăturate ştiind că variabila a memorează un şir
cu cel mult 100 de caractere, iar variabila i este de tip întreg ? (6p.)
strcpy(a,”bacalaureat”);
cout<<strlen(a)<<endl; for(i=0;i<strlen(a);i++)
if(strchr(”aeiou”,a[i])!=0) cout<<’*’;

18) În secvenţa de program alăturată, variabila a memorează un şir cu cel mult 100 de caractere, iar
variabila i este de tip întreg. Completaţi punctele de suspensie din secvenţă astfel încât,
în urma executării secvenţei, aceasta să afişeze şirul de caractere *nf*rm*t*c* (6p.)
strcpy(a,”informatica”);
for(i=0;i<strlen(a);i++)
if(...)
cout<<...;
else
cout<<...;

19)Ce se va afişa în urma executării secvenţei de program alăturate, ştiind că variabila x memorează un şir
cu cel mult 100 de caractere, iar variabila i este de tip întreg ? (6p.)
strcpy(x,”bac2009”);
cout<<x<<endl;
for(i=0;i<strlen(x);i++)
if (strchr(“0123456789”,x[i])==0)
cout<<x[i];

20) In secvenţa de program alăturată, variabila a memorează un şir cu cel mult 100 de caractere,
iar variabila i este de tip întreg. Completaţi punctele de suspensie, astfel încât, în urma executării secvenţei,
să se afişeze doar literele mici şi literele mari din şirul de caractere memorat în variabila a. (6p.)
strcpy(a,”Bac 2009 iulie”);
for(i=0;i<strlen(a);i++)
if(...)
cout<<a[i];

21)Ce valoare are expresia de mai jos dacă variabila s memorează şirul de caractere alfabet?
strlen(strcpy(s,s+2))

22) Scrieţi o secvenţă de instrucţiuni C/C++ care determină, în urma executării ei, afişarea 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 sfârşit este identic cu şirul citit de la sfârşit la început.
Exemplu: şirul de caractere cojoc este palindrom

23) Care va fi şirul de caractere afişat după executarea secvenţei de program alăturate, în care variabila
smemorează un şir cu cel mult 5 caractere ? (6p.)
char s[]=”raton”; s[1]=s[3]; cout<<s;

24) Care va fi şirul de caractere afişat pe ecran după executarea secvenţei de program alăturate în
care variabila s memorează un şir cu cel mult 4 caractere iar variabila t un caracter? (4p.)
char s[]=”arac”;
t=s[1]; s[1]=s[3]; s[3]=’t’; cout<<s;

25) Care este valoarea expresiei strlen(s) pentru variabila s de tip şir de caractere,
declarată şi iniţializată astfel: char s[15]=”Proba_E”; (4p.) a. 7 b. 15 c. 6 d. 5

27) Ştiind că s contine sirul EXAMEN în urma executării secvenţeide mai jos ce se afiseaza?
x=strlen(s);
for (i=0;i<x/2;i++)
cout<<s[i]<<s[x-i-1];

28) Considerăm că variabila s memorează şirul de caractere examen. Care va fi valoarea lui s după
executarea instrucţiunilor scrise alăturat? (4p.)
s[0]= ‘E’;
s[strlen(s)-1]= ‘A’;
s[strlen(s)/2-1]= ‘N’;
s[strlen(s)/2]= ‘M’; a. ExameN b. exAMen c. ExNMeA d. ExAMeN

29) Ce se afişează pe ecran în urma executării secvenţei de program scrisă alăturat, în care i este o
variabilă de tip char? (6p.)
for (i='a';i<='z';i++)
if (strchr("info",i)) cout<<i;

30) Ce se afişează pe ecran în urma executării secvenţei de program alăturate, unde a este o
variabilă de tip şir de caractere? (6p.)
strcpy(a,"informatica"); strcpy(a+2,a+5); cout<<a;

31) Ce valoare se va afişa pe ecran în urma executării secvenţei de program alăturate, ştiind că variabila a
este de tip şir de caractere, iar i este o variabilă de tip întreg? (6p.)
strcpy(a,"info");
for(i=0;i<strlen(a);i++)
a[i]=a[i]+1;
cout<<a;

32) Variabila s reţine şirul de caractere bacalaureat. Ce se afişează la executarea instrucţiunii de mai jos?
cout<<strchr(s,’a’); (4p.) a. 2 b. acalaureat c. 4 d. bcluret
34) Î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,”bacalaureat”);
i=strchr(s,’a’)-s; cout<<i+1;

35) În secvenţa alăturată, variabila x memorează un şir de caractere, iar toate


celelalte variabile sunt de tip întreg. Ce valori au variabilele k1 şi k2 după
executarea secvenţei de instrucţiuni alăturate? (6p.)
strcpy(x,”bac2009”);
k1=strlen(x); k2=0;
for (i=0;i<strlen(x);i++)
if( x[i]>=’0’ && x[i]<=’9’)
k2=k2+1;

36)Scrieţi o expresie C/C++ care să fie nenulă dacă şi numai dacă variabila c de tip char este o literă mică a
alfabetului englez.

37)Se consideră mulţimea vocalelor {a,e,i,o,u}. Scrieţi o expresie C/C++ care să fie nenulă dacă şi numai
dacă variabila c de tip char este o vocală.

38) Se consideră variabila s care memorează şirul de caractere CARACATITA. Ce valoare va avea s după
executarea instrucţiunii de mai jos? strcpy(s,strstr(s,"TI")); (6p.)

39)Ce se va afişa în urma executării secvenţei de program alăturate, considerând că a este o


variabilă de tip şir de caractere, iar i o variabilă de tip întreg? (4p.) 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

40) Considerăm variabila x care memorează şirul de caractere ABAC. Care dintre următoarele
instrucţiuni conduc la afişarea caracterului B? (4p.)
a. cout<<x[strlen(x)-3];
b. cout<<x[strlen(x)-1];
c. cout<<x[2];
d. cout<<x[strlen(x)];

41) Se consideră declararea char e[20]=”51+73”; Care este şirul memorat de variabila e după executarea
instrucţiunii de mai jos? strcpy(e,strchr(e,’+’)+2);

42) Considerăm că variabila s memorează şirul de caractere examen. Care va fi valoarea lui s după
executarea instrucţiunilor urmatoare :s[0]= ‘E’; s[strlen(s)-1]= ‘N’; s[strlen(s)/2-1]= ‘A’; s[strlen(s)/2]= ‘M’.
a. EXAMEN b. exAMen c. ExAMeN d. ExameN
43) Considerăm că variabila s memorează şirul de caractere mama. Care va fi valoarea lui s
după executarea instrucţiunilor de mai jos? s[0]=′M′; s[strlen(s)-3]= ′A′;
a. MAma b. MamA c. MaAa d. MAMA

44) Ce se afişează pe ecran în urma executării for (i='a';i<='z';i++)


secvenţei de program alăturate ştiind că if (i<'d')
variabila i este de tip char? cout<<i;

45)Ce se afişează în urma executării secvenţei de strcpy(a,"informatica");


program alăturate, ştiind că variabilele a şi b strcpy(b,a);
pot memora câte un şir de caractere? cout<<strlen(b);

46) Ce valoare se va afişa pe ecran în urma strcpy(a,"info");


executării secvenţei de program alăturate, for(i=2;i<strlen(a);i++)
ştiind că a este o variabilă care cout<<a[i];
memorează un şir de caractere, iar i este
o variabilă de tip întreg?

47 ) Variabila s retine sirul de caractere bacalaureat. Ce valoare are expresia de mai jos? strchr(s,’a’);
48) În secvenţa alăturată, variabila x
strcpy(x,”bac2008”);
memorează un şir de caractere, iar toate k1=strlen(x);
celelalte variabile sunt de tip întreg. k2=0;
Ce valori au variabilele k1 şi k2 după for (i=0;i<strlen(x);i++)
executarea secvenţei de instrucţiuni if( x[i]>=’0’ && x[i]<=’9’)
alăturate? (6p.) k2=k2+1;

49) Care vor fi valorile afişate după executarea secvenţei alăturate, dacă variabilele s1
şi s2 sunt de tip şir de caractere? (4p.)
a. variabila variant c. varianta variabila
b. Variantavariabila d. variabila variabila

50) Se consideră variabilele s1 şi s2 care memoreaza fiecare câte un şir de maximum 50 de caractere.
Scrieţi secvenţa de instrucţiuni care afişează cele două şiruri de caractere în ordinea crescătoare a
lungimilor lor.

60) Fie s şi t două variabile de tipul şir de caractere. Scrieţi o instrucţiune C/C++ prin care variabilei t i se
atribuie şirul format din primele n caractere ale lui s.

61) Considerăm s o variabilă de tip şir de caractere declarată astfel: char s[100];
Scrieţi o instrucţiune în limbajul C/C++, care permite afişarea pe ecran a ultimului caracter memorat în s?

62)Variabilele x şi s memorează şiruri cu cel mult 20 de caractere: x memorează şirul


primavara, iar variabila s memorază şirul anotimp. Ce se va memora în variabila s în urma executării
instrucţiunii strncat(s, x, 5)
a. anotimpprima b. anotimpprimavara
c. primavara d. prima

63) Ce se va afişa în urma if(strcmp(x, y) > 0)


Executării secvenţei de cout << x; | printf(“%s”,x);
program alăturate dacă else
variabila x memorează if(strcmp(x,y) < 0)
cuvântul bacalaureat, iar cout << y;
variabila y memorează else
cuvântul banal? (4p.) cout << “imposibil”;
a. imposibil b. bacalaureat
c. banal d. bacalaureatimposibil
C)SUBIECTE DATE IN ANII 2010-2014 LA BACALAUREAT

1) bac_iunie2011
Scrieti un program C/C++ care citeste de la tastatură un număr natural n (2≤n≤20) si apoi n cuvinte distincte,
fiecare fiind format din cel mult 20 de caractere, numai litere mici ale alfabetului englez. La introducerea
datelor, după fiecare cuvânt se tastează Enter. Programul afisează pe ecran numărul de cuvinte dintre
ultimele n-1 citite, care încep cu primul cuvânt citit.
Exemplu: dacă n=5 si cuvintele citite sunt:
bun
buncar
bunici
abundent
bunavoie pe ecran se afisează 3 (deoarece numai cuvintele buncar, bunici si bunavoie încep cu bun).

2) bac_iunie2011_rezerva
În secventa de program alăturată variabila a memorează un sir cu cel mult 100 de caractere, iar variabilele i
si k sunt de tip întreg. Scrieti sirul afisat pe ecran în urma executării secventei.
k=’a’-’A’;
strcpy(a,”ExaMeN”);
for(i=0;i<strlen(a);i++)
if(a[i]>=’a’ && a[i]<=’z’)
a[i]=a[i]-k;
else
a[i]=a[i]+k;
cout<<a;

3) bac_septembrie2011
În secventa de program alăturată variabila a memorează un sir cu cel mult 100 de caractere, iar variabilele i
si k sunt de tip întreg. Scrieti sirul afisat pe ecran în urma executării secventei.
k=’a’-’A’;
strcpy(a,”bacalaureat”);
for(i=0;i<strlen(a);i++)
if(strchr(”aeiou”,a[i])!=NULL)
a[i]=a[i]-k;
cout<<a;

4) bac iulie2010
Se consideră secventa de instructiuni alăturată, în care variabilele i si j sunt de tip întreg, iar
variabila s poate memora un sir de cel mult 20 de caractere. Sirul afisat în urma executării
secventei este:
strcpy(s,"bacalaureat");
j=strlen(s);
for(i=0;i<3;i++)
if(s[i]!=s[j-i-1])
s[i]=s[j-i-1];
cout<<s; a. aureatbacal b. bacalaureab c. taealaureat d. taerualacab

5) bac_septembrie2010
Se consideră un text cu cel mult 100 de caractere, format din cuvinte si numere, separate
prin unul sau mai multe spaŃii. Cuvintele sunt formate numai din litere ale alfabetului
englez. Toate numerele sunt reale, pozitive si sunt formate numai din parte întreagă sau
din parte întreagă si parte fracŃionară, separate prin punctul zecimal (.).
ScrieŃi un program C/C++ care citeste de la tastatură textul, pe care îl transformă,
eliminând din componenŃa sa toate numerele care au parte fracŃionară. Programul afisează
apoi pe ecran textul obŃinut.
Exemplu: dacă textul citit este
Reprezentat cu 4 zecimale PI este 3.1415 si e este 2.7182
se va afisa pe ecran textul:
Reprezentat cu 4 zecimale PI este si e este
6) BAC 2013(SESIUNE SPECIALA)
Se consideră un text cu cel mult 100 de caractere (litere mici ale alfabetului englez si
spa¤ii), în care cuvintele sunt separate prin câte un spa¤iu. Înaintea primului cuvânt si după
ultimul cuvânt nu există spa¤ii.
Scrie¤i un program C/C++ care citeste de la tastatură un text de tipul men¤ionat mai sus si
determină transformarea acestuia în memorie prin înlocuirea fiecărui cuvânt format din trei
litere cu simbolul *. Programul afisează pe ecran textul ob¤inut.
Exemplu: pentru textul
bun este izvorul ce are apa rece
se afisează
* este izvorul ce * * rece

7)BAC2013(IUNIE)
Expresia strlen(”bine”) are valoarea:
a. 1 b. 4 c. 5 d. 6

8)BAC2013(AUGUST-SEPT)
Se consideră un text cu cel mult 100 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 şi după ultimul cuvânt nu există spaţiu.
Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul menţionat mai sus şi
determină transformarea acestuia în memorie prin eliminarea unor spaţii, astfel încât între
oricare două cuvinte alăturate să rămână exact un spaţiu. Programul afişează pe ecran
textul obţinut.
Exemplu: pentru textul
in vacanta plec la mare
se obţine şi se afişează
in vacanta plec la mare

9)SIMULARE BAC 2013 –FEBRUARIE


Se consideră o variabilă c de tip char, care memorează o literă a alfabetului englez, diferită de
a sau A. Scrieti secvenŃa de program C/C++ care afisează pe ecran litera care o precede în
alfabet. Exemplu: dacă litera memorată este q se va afisa p.

10)SIMULARE BAC 2013-APRILIE


Se consideră un text cu cel mult 100 de caractere (litere mici ale alfabetului englez şi spaţii), în care
cuvintele sunt separate printr-un spaţiu.
Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul menţionat mai sus şi afişează pe ecran
textul obţinut după eliminarea din fiecare cuvânt de lungime pară a tuturor consoanelor. Se consideră
consoană orice literă care nu este în mulţimea {a, e, i, o, u}.
Exemplu: pentru textul acesta este un exemplu bun
se afişează aea ee u exemplu bun

11)BAC2012-IUNIE

Se consideră două şiruri de caractere a, de lungime na şi b, de lungime nb.


Şirul a este numit prefix al şirului b dacă na≤nb şi subşirul lui b determinat de primele
sale na caractere coincide cu a. Şirul a este numit sufix al şirului b dacă na≤nb şi subşirul
lui b determinat de ultimele sale na caractere coincide cu a.
Scrieţi un program C/C++ care citeşte de la tastatură două cuvinte, fiecare fiind format din
cel mult 30 de caractere, numai litere mici ale alfabetului englez. După primul cuvânt se
tastează Enter. Programul afişează pe ecran, separate prin câte un spaţiu, toate sufixele
primului cuvânt care sunt prefixe ale celui de al doilea cuvânt, ca în exemplu. Dacă nu
există astfel de subşiruri, se afişează pe ecran mesajul NU EXISTA.
Exemple:
dacă se citesc, în ordine, cuvintele
rebele
elegant
se afişează (nu neapărat în această ordine) subşirurile: e ele
iar dacă se citesc, în ordine, cuvintele
strai
rai
se afişează subşirul rai
12)BAC 2012_TOAMNA

Se consideră două şiruri de caractere a, de lungime na şi b, de lungime nb.


Şirul a este numit sufix al şirului b dacă na≤nb şi subşirul lui b determinat de ultimele sale
na caractere coincide cu a.
În secvenţa de instrucţiuni de mai jos variabila i este de tip întreg, iar variabila s
memorează un şir cu cel mult 20 de caractere.
Fără a utiliza alte variabile, scrieţi una sau mai multe instrucţiuni care pot înlocui punctele
de suspensie astfel încât, în urma executării secvenţei obţinute, să se afişeze pe ecran, în
ordinea descrescătoare a lungimii, separate prin câte un spaţiu, toate sufixele şirului
memorat în variabila s, ca în exemplu.
Exemplu: pentru şirul elevi se afişează: elevi levi evi vi i
for(i=0;i<strlen(s);i++)
..................

13)SIMULARE BAC 2014


Se consideră un text cu cel mult 100 de caractere (litere mici ale alfabetului englez şi
spaţii), care conţine cel puţin o vocală.
Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul menţionat mai sus şi
determină transformarea acestuia în memorie prin duplicarea tuturor vocalelor din text, ca
în exemplu. Programul afişează pe ecran textul obţinut.
Se consideră vocale literele a, e, i, o, u.
Exemplu: pentru textul
problema aceea frumoasa
se afişează proobleemaa aaceeeeaa fruumooaasaa

14) BAC 2014 OLIMPICI


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 câte un spațiu.
Scrieţi un program C/C++ 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, iar dacă nu există niciun cuvânt
modificat, afișează pe ecran mesajul nu exista.
Exemplu: pentru textul
pictura prin aceea arata o pace profunda
se afişează picura prin acea arta o pace profunda

14) BAC 2014 IUNIE


Variabila s poate memora un șir cu maximum 20
de caractere. În urma executării secvenței de
instrucțiuni alăturate se afișează: (4p.)
strcpy(s,"1b2d3");
s[2]='a'+2;
strcpy(s,s+1);
strcpy(s+3,s+4);
cout<<s;
a. 1b438 b. 1bcd8 c. ba2 d. bcd

15)BAC 2014 SEPTEMBRIE


Variabila s poate memora un șir cu maximum 20 de caractere, iar variabila i este de tip
întreg. Scrieți ce se afișează în urma executării secvenței de instrucțiuni de mai jos.
strcpy(s,"BACALAUREAT");
cout<<strlen(s); | printf("%d",strlen(s));
i=0;
while (i<strlen(s)-1)
{ if(strchr("EAIOU",s[i])!=NULL) strcpy(s+i+1,s+i+2);
i++;
}
cout<<s;
Exercitii extrase din variantele de bacalaureat subiecte de tip S_II_ex5 2008-proba E informatica
neintensiv
V38) Considerăm că variabila s memorează şirul de caractere examen. Care va fi valoarea lui s după
executarea instrucţiunilor urmatoare :s[0]= ‘E’; s[strlen(s)-1]= ‘N’; s[strlen(s)/2-1]= ‘A’; s[strlen(s)/2]= ‘M’.
a. EXAMEN b. exAMen c. ExAMeN d. ExameN
V39) Considerăm că variabila s memorează şirul de caractere mama. Care va fi valoarea lui s
după executarea instrucţiunilor de mai jos?
s[0]=′M′; s[strlen(s)-3]= ′A′; a. MAma b. MamA c. MaAa d. MAMA

V41) Ce se afişează pe ecran în urma executării for (i='a';i<='z';i++)


secvenţei de program alăturate ştiind că if (i<'d')
variabila i este de tip char? cout<<i;
V43)Ce se afişează în urma executării secvenţei de strcpy(a,"informatica");
program alăturate, ştiind că variabilele a şi b strcpy(b,a);
pot memora câte un şir de caractere? cout<<strlen(b);

V44) Ce valoare se va afişa pe ecran în urma strcpy(a,"info");


executării secvenţei de program alăturate, for(i=2;i<strlen(a);i++)
ştiind că a este o variabilă care cout<<a[i];
memorează un şir de caractere, iar i este
o variabilă de tip întreg?

V47 ) Variabila s retine sirul de caractere bacalaureat. Ce valoare are expresia de mai jos?
strchr(s,’a’);
V54) În secvenţa alăturată, variabila x strcpy(x,”bac2008”);
memorează un şir de caractere, iar toate k1=strlen(x);
celelalte variabile sunt de tip întreg. k2=0;
Ce valori au variabilele k1 şi k2 după for (i=0;i<strlen(x);i++)
executarea secvenţei de instrucţiuni if( x[i]>=’0’ && x[i]<=’9’)
alăturate? (6p.) k2=k2+1;
char s1[20]=”variabila”, s2[20]=”varianta”;
V61) Care vor fi valorile afişate if(strcmp(s1,s2)<0 && strlen(s1)<strlen(s2))
după executarea secvenţei cout<<s1<<’ ’<<s2;
alăturate, dacă variabilele s1 else
şi s2 sunt de tip şir de cout<<s2<<’ ’<<s1;
caractere? (4p.)
a. variabila varianta b. Variantavariabila
c. varianta variabila d. variabila variabila
V63) Se consideră variabilele s1 şi s2 care memorează fiecare câte un şir de maximum 50 de
caractere. Scrieţi secvenţa de instrucţiuni care afişează cele două şiruri de caractere în ordinea
crescătoare a lungimilor lor.
V69) Fie s şi t două variabile de tipul şir de caractere. Scrieţi o instrucţiune C/C++ prin care variabilei t i se atribuie
şirul format din primele n caractere ale lui s.
V70) Considerăm s o variabilă de tip şir de caractere declarată astfel: char s[100];
Scrieţi o instrucţiune în limbajul C/C++, care permite afişarea pe ecran a ultimului caracter memorat în s?
V72)Variabilele x şi s memorează şiruri cu cel mult 20 de caractere: x memorează şirul
primavara, iar variabila s memorază şirul anotimp. Ce se va memora în variabila s în urma executării
instrucţiunii strncat(s, x, 5)
a. anotimpprima b. anotimpprimavara
c. primavara d. prima
V74) Ce se va afişa în urma if(strcmp(x, y) > 0)
executării secvenţei de cout << x;
program alăturate dacă else
variabila x memorează if(strcmp(x,y) < 0)
cuvântul bacalaureat, iar cout << y;
variabila y memorează else
cuvântul banal? (4p.) cout << “imposibil”;
a. imposibil b. bacalaureat
c. banal d. bacalaureatimposibil

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