I.3 August 2019
Subiectul al II-lea – Exerciţiul 3
Variabila x este de tip char şi memorează o literă mică a alfabetului englez. Indicați expresia C/C++ care are valoare nenulă dacă şi numai dacă litera memorată în variabila x este o vocală. Se consideră vocale literele a, e, i, o, u.
a. strcmp(x,”aeiou”)==0
b. strchr(„aeiou”,x)
c. ’a’<=x && x<=’u’
d. x==a || x==e || x==i || x==o || x==u
a. Expresia strcmp(x,”aeiou”)==0 este incorectă din punct de vedere sintactic. Parametrii funcției strcmp trebuie să fie de tip șir de caractere. În apelul folosit, primul parametru este de tip char.
b. Funcția strchr(s,c) returnează adresa de memorie a primei apariții, de la stânga la dreapta, a caracterului c în șirul de caractere s. Așadar, expresia dată returnează o valoare nenulă, dacă variabila caracter x se regăsește în șirul vocalelor. Această variantă este cea corectă.
c. Expresia dată verifică dacă valoarea variabilei x se găsește între literele ’a’ și ’u’. Deci, expresia are valoare nenulă și dacă variabila x reține o consoană.
d. Expresia este incorectă sintactic deoarece a, e, i, o și u sunt variabile. Ar fi trebuit să fie reprezentate prin constante caracter: ’a’, ’e’ etc.
Răspuns corect: b.