Pagina informaticii

Teste de informatică pentru liceu, articole C#, C/C++, PHP

Test grilă – şiruri de caractere

1. Ce se va afisa in urma executarii secventei:
a= „Primavara”;
for (int i=1;i<=3;i++) strcpy(a+1,a+2);
cout<<a;

Pavara

Ara

Rim

Para

2. 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;

Macara

Mama

MamaIncorect

Incorect

3. Daca x este o variabila de tip sir de caractere, care din variante afiseaza 1 daca primul caracter din x este litera mica:


if (x[0]<’z’) cout<<”1”;

if ((x[0]<’z’)||(x[0]>’a’)) cout<<”1”;

if (!(x[0]<’z’ && x[0]<’a’) cout<<”1”;

if (!(x[0]<’a’) && (x[0]<=’z’)) cout<<”1”

4. 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”;

0

3

ta

dieta

5. Care din urmatoarele secvente verifica in mod corect daca un sirul de caractere s este format din acelasi caracter (de forma : s=”AAAAAAA”;


int ok=0;
for (i=1;i<strlen(s);i++)
   if (s[i]==s[0]) ok=1;
if (ok) cout<<”Este”;
    else cout<<”Nu este”;

int ok=0;
for (i=0;i<strlen(s);i++)
   if (s[i]==s[i+1]) ok=1;
if (ok) cout<<”Este”;
    else cout<<”Nu este”;

int ok=1;
for (i=1;i<strlen(s);i++)
   if (s[i]==s[0]) ok=0;
if (ok) cout<<”Este”;
    else cout<<”Nu este”;

int ok=1;
for (i=1;i<strlen(s);i++)
   if (s[i]!=s[0]) ok=0;
if (ok) cout<<”Este”;
    else cout<<”Nu este”;

6. 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”;


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

7. 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:

i=0;
while (a[i]!=a[i+1]) i++;
cout<<i+2;

i=0;
while (a[i]!=a[i+1]) i++;
cout<<i+1;

i=0;
while (a[i]==a[i+1]) i++;
cout<<i+2;

i=0;
while (a[i]!=a[i+1]) i++;
cout<<i;

8. Fie secventa (s este de tip sir de caractere, iar i de tip int)
for (i=0;i<strlen(s);i++)
   if (s[i]>=’A’ && s[i]<=’Z’) s[i]=s[i]+’a’-‘A’;
Secventa realizeaza:


Transformarea literelor mici in litere mari

Inserarea literelor mici dupa fiecare litera mare

Transformarea literelor mari in litere mici

Ordonarea alfabetica a literelor mari in cadrul sirului

9. Care din urmatoarele secvente realizeaza corect eliminarea caracterului ’w’ din sirul s:

char *p,s[100];
cin>>s;
while (p=strchr(s,’w’))
   strcpy(p,p+1);

char *p,s[100];
cin>>s;
while (p=strchr(s,’w’))
   strcpy(p+1,p);

char *p,s[100];
cin>>s;
while (p=strchr(s,’w’))
   strcpy(p,p+1);

char *p,s[100];
cin>>s;
while (p=strchr(s,”w”))
   strcpy(p+1,p);

 

Rezolvari:

  1. a
  2. b
  3. d
  4. a
  5. d
  6. b
  7. a
  8. c
  9. c

Despre autor
Author

Dan Pracsiu deţinător www.dponline.ro
Profesor, Liceul Teoretic "Emil Racoviță" Vaslui
Membru în Comisia Naţională a Olimpiadelor de Informatică
Pasiuni: istoria, călătoriile, fotografia, muzica clasică

Scrie un comentariu
Nume:

Comentariu:

15 + 10 =