Lucrare șiruri de caractere – clasa 10D -............................................................................................................
1. Precizați ce se va afișa după executarea secvenței de program de mai jos:
char a[20]=”informatica”,b[20]=””; strncat(b,a,strlen(strchr(a,’t’))); cout<<b; a) tica b) form c) info d) inf 2. Precizați ce valoare are variabila b de tip șir de caractere după executarea secvenței de program de mai jos: char b[]=”toc2019”; b[3]=b[3]-1; strcpy(b+5,b+7); strcpy(b,b+3); a) b20 b)10 c)19 d)toc 3. Se consideră definit un subprogram care determină ștergerea tuturor aparițiilor unui caracter c din șirul de caractere s. Antetul subprogramului este : void del(char s[255], char c); Precizați ce secvență poate fi utilizată pentru ștergerea tuturor caracterelor ce reprezintă cifre din șirul s, unde s este un șir de maxim 255 caractere iar i este o variabilă de tip caracter. a)del(s,”0123456789”); b)del(s,i); c)for(i=0;i<=9;i++) del(s,i); d)for(i=’0’;i<=’9’;i++) del(s,i); 4. Precizați care este rolul următorului subprogram: void f(char s[], char t[], int k) { char aux[255]; strcpy(aux,s+k); s[k]=0; strcat(s,t); strcat(s,aux); } a) Înlocuiește primele k caractere din s cu primele k caractere sin t b) Inserează șirul s în șirul t, începând cu poziția k c) Inserează șirul t în șirul s începând cu poziția k d) Nici una dintre variantele de mai sus 5. Precizați ce se va afișa după executarea secvenței de program de mai jos, știind că s este o variabilă ce memorează un șir de caractere, iar i este o variabilă de tip întreg: strcpy(s,”lucrare siruri de caractere”); for(i=0;i<strlen(s);i++) if(strchr(”vacanta”,s[i])) strcpy(s+i,s+i+1); cout<<s; a) lurre siruri de arcere b) lurre siruri de rere c) lurr iui e aaee d) lurresiruridearcere 6. Precizați ce se va afișa după executarea secvenței de program de mai jos, știind că a și b sunt variabile ce memorează cel mult 100 caractere : strcpy(a,"matematica"); strcpy(b,strstr(a,"ema")+2); strcat(b,strchr(a,a[3])+1); cout<<b; a) aticamatica b) maticamatica c) maticaatica d) atica 7. În urma executării secvenței de mai jos, în care variabila s memorează un șir cu cel mult 100 caractere, iar i este de tip întreg, se fișează șirul acbb. Precizați conținutul șirului s înainte de această secvență. char s[100];int i; for(i=0;i<strlen(s);i++) { strcpy(s+i,s+i+1); if(!strchr("aeiou",s[i])) s[i]--; else s[i]++;} cout<<s; a) abba b) abcbdcba c)abcddcba d)abcd 8. Se consideră declarările: char s[30]="bacaacbc"; char t[3][3]= {"ab","ac","bc"}; Precizați ce se va afișa după executarea secvenței de program de mai jos: for(int i=0; i<3; i++) if(!strstr(s,t[i])) strcat(s,t[2-i]); else cout<<t[i]; cout<<strlen(s); cout<<s; a) Secvența este incorectă sintactic b) acbc10bacaacbcbc c)bcac10bacaacbcbc d)abc10bacaacbc 9. Precizați care este valoarea întoarsă de subprogramul f , definit mai jos, în urma apelului f(s), atunci când variabila s memorează șirul de caractere : 123abc45678 int f(char s[100]) { int nr=0,i,n=strlen(s),p=1; for(i=0;s[i]>='0'&&s[i]<='9';i++) { nr=nr+p*(s[n-i-1]-'0');p*=10; } return nr;} a) 12345678 b) 45678 c) 678 d) 876