strcpy(e,strchr(e,+)+2); strchr(e,+) returneaz irul +73. +73+2 reprezinta un sir de caractere (un pointer, o adresa) la care se aduna 2. => va retine adresa (pointerul )cu 2 valori la (daca p=+73 => p+0 va fi +73, p+1 va fi 73, p+2 va fi 3). Deci rezultatul este 3. 2. 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.
strchr(aeiou c!
este o expresie a carei evaluare va avea ca re"ultat #$%% daca c nu se afla in sir si un pointer catre prima aparitie a caracterului in sirul vocalelor. 3. &n secvena de mai jos variabila s memorea" un ir de caractere iar variabila i este de tip 'ntre(. Ce valoare se va afia 'n urma executrii secvenei urmtoare? strcpy(s,bacalaureat); s va pastra sirul i=strchr(s,a)-s; (reprezinta diferenta a doua adrese pointeri-, adica numarul de elemente dintre cele doua adrese; cum strchr(s,a) reprezinta acalaureat, iar s este bacalaureat, iar cele doua siruri sunt memorate la adrese consecutive(p+0, respectiv p+1, unde p este adresa unde se memoreaza sirul si reprezentand de faptbacalaureat ), i va fi 1) cout<<i+1; se afiseaza 2 4. Considerm variabila x care memorea" irul de caractere ABAC. Care dintre urmtoarele instruciuni conduc la afiarea caracterului B? a. cout<<x[strlen(x)-3]=x[4-3]=x[1] b. cout<<x[strlen(x)-1]; c. cout<<x[2]; d. cout<<x[strlen(x)]; Cum x[0]=A; x[1]=B x[2]=A x[3]=C 5. )n secvena alturat variabila x memorea" un ir cu cel mult 100 de caractere iar variabila i este de tip 'ntre(. Care este numrul maxim de caractere pe care 'l poate avea irul x astfel 'nc*t secvena alturat s afie"e 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 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.
6. Se consider variabila s care memorea" irul de caractere CARACATITA. Ce valoare va avea s dup executarea instruciunii de mai jos? strcpy(s,strstr(s,"TI")); 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
TITA
7. Ce se va afia 'n urma executrii secvenei de pro(ram alturate consider*nd c s este o variabil ir de caractere iar i o variabil de tip 'ntre(?
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 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, etcsi 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
xmn
8. +ariabila s memorea" un ir de caractere. Care dintre urmtoarele expresii C/C++ este nenul dac i numai dac lun(imea irului este strict mai mic dec*t 10? a. strlen(s)<10 b. strlen(s,10)<0 c. leng(s)<10 d. s-0<10 strlen(s)<10 .Functia care determina lungimea sirului este strlen(sir). Toate celelalte variante sunt gresite din punct de vedere sintactic. 9. )n secvena alturat variabila x memorea" un ir de caractere iar toate celelalte variabile sunt de tip 'ntre(. Ce valori au variabilele k1 i k2 dup executarea secvenei de instruciuni alturate? strcpy(x,bac2008);x=bac2008 (x[0]=b, x[1]=a,,x[6]=8. X are 7 caractere ) k1=strlen(x);k1=7 k2=0; for (i=0;i<strlen(x);i++) if( x[i]>=0 && x[i]<=9) k2=k2+1; k2 determina cate dintre caractere sunt cifre. K2=4
10. Scriei o expresie C/C++ care s fie nenul dac i numai dac variabila c de tip char este
de caractere? char s1[20]=algoritm,s2[20]=bioritm,s3[20]=ritm; if (strlen(s1)< strlen(s2)) strcat(s3,s1); else strcat(s3,s2); cout<<s1<< <<s2<< <<s3; a. algoritmritm bioritm ritm b. algoritm bioritm ritmalgoritm c. algoritm bioritm ritmbioritm d. algoritm bioritmritm ritm (s1 are 8 caractere, s2 are 7 caractere si s3 are 4 caractere => lungimea lui s nu este mai mica decat lungimea lui s2 , deci se va executa instructiunea de pe ramura cu else a lui if => strcat(s3,s2) si va determina lipirea lui s2 in continuarea lui s3, deci s3 devine ritmbioritm, s1 si s2 raman neschimbate . Va afisa algoritm
bioritm ritmbioritm
),
12. Ce se va afia 'n urma executrii secvenei de pro(ram de mai jos dac variabila x memorea" cuv*ntul
bacalaureat iar variabila y memorea" cuv*ntul banal? if(strcmp(x, y) > 0) cout << x; else if(strcmp(x,y) < 0) cout << y; else cout << 1imposibil; a. imposibil b. bacalaureat c. banal d. bacalaureatimposibil 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 , adica strcmp(x,y)=-1 => se va afisa y, adica banal
13. $n ir de caractere se numete palindrom dac irul citit de la st*n(a la dreapta este identic cu irul citit de
la dreapta spre st*n(a. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac i numai dac irul de caractere memorat 'n variabila s, av*nd 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] Cum s are 3 caractere, rezulta ca avem s[0], s[1] si s[2]. Deci trebuie sa avem
s[0]==s[2]
14. Ce memorea" variabila s de tip ir de caractere dup executarea instruciunilor de mai jos?
strncpy(s,"informatica",strlen("2008")); s[strlen("2008")]='\0'; strcat(s,"BAC"); a. info b. infoBAC c. BACinfo d. InformaticaBAC strlen("2008") este 4 deoarece sirul are 4 caractere. strncpy(s,"informatica",4) are ca efect passtrarea in s a primelor 4 caractere din sirul informatica, deci s va avea info, dar la final nu pune NULL (!) Abia dupa instructiune s[4]='\0'; vom avea s clar, adica s=info. strcat(s,"BAC") va lipi BAC la s => s va fi infoBAC
15. Ce valoare are variabila s de tip ir de caractere dup executarea instruciunilor de mai
jos? s=strncpy(s,strstr("informatica","form"),strlen("BAC008"));
s[6]='\0'; a. format b. informat c. inform d. informBAC strstr("informatica","form") returneaza un pointer catre aparitia sirului form in informatica, adica sirul formatica. strlen("BAC008") va returna 6. strncpy(s,"formatica",6) pune in s primele 6 caractere, pe pozitiile 0, 1, 2, 3, 4, 5. s[6]='\0' pune pe pozitia 6 pe NULL.
16. 2tiind c variabila i este de tip 'ntre( 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; Inlocuieste caracterul b cu t in sirul s. Rezulta
tarta
17. +ariabila s memorea" un ir de caractere. Care dintre urmtoarele expresii C/C++ este
nenul dac i numai dac lun(imea irului este un numr par? a. s-2==0 b. strlen(s,2)=0 c. leng(s)%2 d. strlen(s)%2==0;
strlen(s)%2==0
Celelalte sunt incorecte din punct de vedere sintactic.