1.Ce se va afia in urma executrii secvenei de program de mai jos dac variabila x memoreaz cuvantul bacalaureat, iar variabila y memoreaz cuvantul banal ? if(strcmp(x, y) > 0) cout << x; else if(strcmp(x,y) < 0) cout << y; else cout <<imposibil;
a. imposibil
b. bacalaureat
c.banal
d.bacalaureatimposibil
Rezolvare: x=bacalaureat, y=banal; strcmp(x,y) este: 0 daca x>y, 1 daca x=y sau-1 daca x<y. Cum x[0]=y[0], x[1]=y[1] si x[2]=c<y[2]=n => x este mai mic decat y strcmp(x,y)=-1 => se va afisa y, adica banal.
2. 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; Rezolvare: Inlocuieste caracterul b cu t in sirul s. Rezulta cuvantul tarta. 3.Variabila s memoreaz un ir de caractere. Care dintre urmtoarele expresii C/C++ este nenul dac i numai dac lungimea irului este un numr par? a.s-2==0 b.strlen(s,2)=0 c.leng(s)%2 d.strlen(s)%2==0;
4. Un ir de caractere se numete palindrom dac irul citit de la stanga la dreapta este identic cu irul citit de la dreapta spre stanga. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac i numai dac irul de caractere memorat in variabila s, avand 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]
Rezolvare: Cum s are 3 caractere, rezulta ca avem s[0], s[1] si s[2]. Deci trebuie sa avem s[0]==s[2]. 5. 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")); Rezolvare: strstr(s,"TI") returneaza un pointer (adica un sir de caractere) de unde TI se afla in s => va returna TITA. strcpy(s,TITA) pune in s sirul TITA Dupa executarea instructiunii s va devenii TITA.
6. Ce se va afia in urma executrii secvenei de program alturate considerand c s este o variabil ir de caractere, iar i o variabil de tip intreg? 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
Rezolvare: a[0]=E; a[1]=x; a[2]=a; a[3]=m; a[4]=e; a[0]=n; a+0=Examen; a+1=xamen; a+2=amen etc. pentru i=0: strcpy(a+0,a+0+1) determina pastrarea in a a sirului a+1 => a=xamen. Acum a[0]=x, a[1]=a, etc. si a+0=xamen, a+1=amen, a+2=men etc. pt. i=1: strcpy(a+1,a+1+1) determina pastrarea in a+1 a sirului a+2, deci a=xmen pt. i=2: strcpy(a+2,a+2+1) determina pastrarea in a+2 a sirului a+3, deci a=xmn Se va afisa: xmn.
2
7.Variabila s memoreaz un ir de caractere. Care dintre urmtoarele expresii C/C++ este nenul dac i numai dac lungimea irului este strict mai mic decat 10? a.strlen(s)<10 b.strlen(s,10)<0 c.leng(s)<10 d.s-0<10
Rezolvare: strlen(s)<10 Functia care determina lungimea sirului este strlen(sir). Toate celelalte variante sunt gresite din punct de vedere sintactic. 8. In secvena alturat variabila x memoreaz un ir de caractere, iar toate celelalte variabile sunt de tip intreg. Ce valori au variabilele k1 i k2 dup executarea secvenei de instruciuni alturate? strcpy(x,bac2008); k1=strlen(x) k2=0; for (i=0;i<strlen(x);i++) if( x[i]>=0 && x[i]<=9) k2=k2+1; Rezolvare: x=bac2008 (x[0]=b, x[1]=a,,x[6]=8. X are 7 caractere ). K1=7. k2 determina cate dintre caractere sunt cifre. K2=4.
9.Scriei o expresie C/C++ care s fie nenul dac i numai dac variabila c de tip char esteo liter mic a alfabetului englezesc. Rezolvare: (c>=a&& c<=z). 10. 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)];
11. In secvena alturat, variabila x memoreaz un ir cu cel mult 100 de caractere, iar variabila i este de tip intreg. Care este numrul maxim de caractere pe care il poate avea irul x astfel incat secvena alturat s afieze exact 3 caractere ale acestuia? for(i=0;i<=strlen(x)-1;i=i+3) cout<<x[i]; a. 7 b.3 c.9 d.8
Rezolvare: daca lungimea lui x ar fi 9, for-ul lucreaza astfel: i=0 (cum 0<8=9-1 se afiseaza x[0]) i=3 (cum 3<8 se afiseaza x[3]) i=6 (cum 6<8 se afiseaza x[6]) i=9 (cum 9>8 nu se afiseaza nimic) d. 12. Se consider mulimea vocalelor {a,e,i,o,u}. Scriei o expresie C/C++ care s fie nenul dac i numai dac variabila c de tip char este o vocal. Rezolvare: strchr(aeiou,c) este o expresie a carei evaluare va avea ca rezultat NULL daca c nu se afla in sir si un pointer catre prima aparitie a caracterului in sirul vocalelor. 13. 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); Rezolvare: strchr(e,+) returneaz sirul +73. +73+2 reprezinta un sir de caractere la care se aduna 2. => va retine adresa cu 2 valori daca p=+73 => p+0 va fi +73, p+1 va fi 73, p+2 va fi 3. Deci rezultatul este 3.
14.Ce se va afisa in urma executarii secventei: a= Primavara; for (int i=1;i<=3;i++) strcpy(a+1,a+2); cout<<a; a.Pavara b.Ara Rezolvare: a.
4
c.Rim
d.Para
15. Ce se va afisa in urma executarii urmatoarei secvente de instructiuni: x=Mama; y=Macara; if (strcmp(x,y)>0) cout<<x; else if (strcmp(x,y)==0) cout<<Incorect; else cout<<y; a.Macara Rezolvare: b. 16. Fie declaratiile: char a[30],b[30]; Ce se va afisa in urma executiei secventei: x=dimineata; y=min; strcat(y,x+strlen(x)-1); p=strstr(y,x); if (p!=NULL) cout<<(p-y); else cout<<0; a.0 Rezolvare: a. 17. Ce realizeaza secventa urmatoare: char s[100]; cin>>s; n=strlen(s); i=0;j=n-1; while ((i<j)&&(s[i]==s[j])) {i++;j--;} if (i>=j) cout<<Este; else cout<<Nu este; a. b. c. d. Verifica daca sirul s este constant sau nu Verifica daca sirul s este identic cu inversul lui s (este palindrom) Verifica daca sirul s este format doar din litere Verifica daca sirul s este sau nu format doar din caractere distincte b.3 c.ta d.dieta b.Mama c.MamaIncorect d.Incorect
Rezolvare: b.
18. Fie secventa (s este de tip sir de caractere, iar i de tip int). Secventa realizeaza: for (i=0;i<strlen(s);i++) if (s[i]>=A && s[i]<=Z) s[i]=s[i]+a-A; a. Transformarea literelor mici in litere mari b. Inserarea literelor mici dupa fiecare litera mare c. Transformarea literelor mari in litere mici d. Ordonarea alfabetica a literelor mari in cadrul sirului Rezolvare: c. 19. Consideram sirul de caractere s in care stim ca are toate caracterele distincte, exceptand ultimele doua care sunt identice. Care din secventele urmatoare afiseaza in mod corect lungimea lui s: a. i=0; while (a[i]!=a[i+1]) i++; cout<<i+2; c. i=0; while (a[i]==a[i+1]) i++; cout<<i+2; Rezolvare: a. 20. Daca x este o variabila de tip sir de caractere, care din variante afiseaza 1 daca primul caracter din x este litera mica: a. if (x[0]<z) cout<<1; c. if (!(x[0]<z && x[0]<a) cout<<1; Rezolvare: d. b. if ((x[0]<z)||(x[0]>a)) cout<<1; d. if (!(x[0]<a) && (x[0]<=z)) cout<<1 b. i=0; while (a[i]!=a[i+1]) i++; cout<<i+1; d. i=0; while (a[i]!=a[i+1]) i++; cout<<i;