Cu ajutorul operatorului [] se poate:
12
Expresia:
'abc''def'
este validă?
1
Dacă unul din operanzii unei împărțiri este Float, rezultatul este tot Float, chiar dacă este întreg.
În Ruby, semnul restului de la operația „modulo” este:
2
Ca și în cazul șirurilor de caractere, se poate folosi multiplicarea pentru a obține un alt masiv ([2, 3] * 10).
În cazul cărei encodări există Byte Order Mark (care este opțional)?
3
Clasele și modulele sunt:
În Ruby, obiectele BigDecimal memorează numerele:
Codul următor face corect interpolarea?
$formula_salut = 'salutare'
"#$formula_salut lume"
Alegeți varianta corectă:
do...end
{...}
Expresia
Array.new(10)
Încărcarea claselor se face:
Programele Ruby pot cuprinde documentație comentată API pentru metode, clase și module. Alegeți variantele corecte:
1245
După executarea codului de mai jos:
['a', 'b', 'c', 'b', 'a'] - ['b', 'c', 'd', 'e']
În exprimarea numerelor float, se pot folosi bazele de numerație:
Împărțirea unui Float la 0 întoarce:
Împărțirea (0.0)/(0.0) întoarce:
Propoziția case folosește operatorul:
În Ruby, întorc valoare:
1234
String.force_encoding modifică efectiv caracterele stringului?
Există identificatori care pot începe cu o cifră.
Dacă s = "abcdefghi", atunci expresia de mai jos întoarce:
s[2,3] == s[2..3]
true
false
Spre deosebire de stringuri, în cazul unui Array, dacă se asignează un element peste limita de sfârșit, atunci:
125
Alegeți literalii scriși corect în alte baze de numerație:
13456
Literalii string încadrați de ghilimele duble au mai multe secvențe escape disponibile decât cei încadrați între ghilimele simple.
Corpul propozițiilor END (și alte „cârlige” definite cu metoda „at_exit”) se execută:
Encodarea externă:
În expresiile condiționale (precum if și while), care din expresiile de mai jos evaluează ca „true”?
Interpretorul Ruby caută întâi metoda main() pentru a porni execuția programului?
Alegeți varianta corectă pentru concatenarea a două stringuri:
"partea 1 " + 2
"partea 1 " "2"
"partea 1 " + "partea 2"
"partea 1 " + "2"
124
Se dă variabila tip string „x”. Următoarele două linii de cod sunt echivalente?
puts x << " abc"
puts x + " abc"
În Ruby există encodarea US-ASCII (7-bit ASCII).
În Ruby, exponentul folosit în cadrul literalilor float se folosește în evaluarea numărului prin înmulțire cu 10 la puterea exponent.
În Ruby, în cazul unei operațiuni string[<plajă indecși>] = "<text>"
14
Un program Ruby se încheie dacă:
123
În Ruby, ca în majoritatea celorlalte limbaje, există riscul de „overflow” (depășirea limitelor) la operațiile aritmetice cu numere întregi.
Alegeți diferențele între „p” și „puts”:
13
Operatorul de ridicare la putere este:
Limbajul Ruby:
156
Ruby cunoaște diferența între literele mici și mari:
Dacă s = "abcd", alegeți expresiile acceptate:
s[-1] = ?X
s[s.length] = ?X
s[3] = ?X
s[4] = ?X
s[0] = ?X
În Ruby, un comentariu poate fi intercalat în mijlocul unei linii de cod.
În Ruby, codul dintre { și } se numește:
Cuvântul cheie „__ENCODING__” întoarce:
Prin convenție, constantele multi-cuvânt se notează:
Comentariul ce indică encodarea fișierului:
Ruby este un limbaj:
Dacă a și b sunt două masive oarecare, atunci a | b este egal întotdeauna cu b | a ?
Dacă într-un literal String avem o secvență "\u", atunci encodarea sa va fi:
Pentru repetare, în Ruby se poate folosi:
1.upto(9) do
repeat .. until
3.times
while .. end
[1, 2].each do
Interpolarea este o metodă preferată față de concatenarea stringurilor?
În „shebang” se pot include parametri pentru interpretorul ruby (de exemplu -w).
În Ruby, sunt obiecte:
'a'..'x' este un Range corect?
Alegeți propozițiile corecte:
Expresiile de mai jos sunt toate echivalente?
"\2"
"\02"
"\002"
Într-un Array, prima valoare are indexul 0.
Dacă s = "hello world", atunci s[0, -1]:
"hello world"
nil
"h"
Dându-se un string „s”, alegeți variantele acceptate:
s[-1] = ""
s[-1] = nil
s[-1] += "ab"
s[-1] = "ab"
134
Alegeți definițiile corecte de stringuri:
%q cuvinte
%q!cuvinte\!multe!
%q{cuvinte}, %q[cuvinte], %q(cuvinte), %q<cuvinte>
%q|cuvinte|
%qacuvintea
%q-aasdfasdf-
Un string se poate defini prin String.new ?
În identificatorii Ruby, literele mari și mici sunt tratate identic.
Obiectele tip Hash pot avea ca și cheie:
„require” caută respectivele module pe o cale de căutare, și împiedică încărcarea unui modul de mai multe ori.
Dacă a = ('a'..'e').to_a, alegeți propozițiile corecte sintactic:
a[0..2] = []
a[-1, 1] = ['Z']
a[2...5] = ['C', 'D', 'E']
a[0, 2] = ['A', 'B']
a[-2, 2] = nil
a[0, 0] = [1, 2, 3]
a[-1, 1] = 'Z'
1234567
În Ruby există o clasă pentru reprezentarea caracterelor separate.
Expresiile regulare sunt un tip fundamental de date, precum numerele, textele și masivele?
Alegeți variantele corecte:
Codul de mai jos afișează:
a = 0; "#{a=a+1} " * 3
Un număr float poate fi oricât de mare?
Pentru ca o metodă să întoarcă mai multe rezultate, codul de mai jos este corect?
def inversare(a, b)
[b, a]
end
x, y = inversare(a, b)
Împărțirea unui Float sau a unui număr întreg la 0.0 întoarce:
Unitatea de bază în sintaxa Ruby este expresia.
Din interpretorul irb se poate lansa un alt interpretor irb?
Obiectele tip Symbol se compară:
Metodele Array.size și Array.length sunt echivalente.
Este valid următorul cod?
a, b = 3, 5
În Ruby, literalii float se pot scrie cu caractere underscore („_”) intercalate, de exemplu 1_000_000.01
În Ruby, la finalul unui string:
4
În Ruby, exponentul folosit în cadrul literalilor float poate fi doar număr întreg, pozitiv sau negativ.
Alegeți variantele corecte pentru a defini un caracter Unicode într-un string încadrat între ghilimele duble:
"\u23"
"\u{AB}"
"\uAB0C"
"\u1023"
"\u{AB0C}"
Alegeți diferența corectă între Ruby 1.8 și Ruby 1.9:
String.encode, dacă noua encodare nu poate reprezenta un anumit caracter:
Ultimul caracter al unei metode poate fi:
Dacă s = "hello world", atunci s[2, 4] întoarce:
"llo "
"ell"
"ello"
Dacă se asignează un element înainte de limita de început a unui Array, atunci:
Care tipuri numerice fac parte din biblioteca standard (nu din nucleul Ruby)?
678
BEGIN se referă:
În Ruby, comentariile pe mai multe linii se scriu cu /* .. */.
Doi operatori de ridicare la putere consecutivi (3**4**5) sunt evaluați:
În Ruby, literalii float se pot scrie cu exponent folosind „e” sau „E”.
Dacă rezultatul unei operații cu obiecte Bignum se poate reprezenta printr-un Fixnum, atunci respectivul rezultat este Fixnum.
Expresia 5[0]:
În Ruby, comportamentul operației „modulo” din C și Java poate fi obținut cu următoarea metodă:
Un identificator poate conține:
s["def"]
"def"
În documentația comentată:
1256
Dacă a = [1, 2, 3, 4, 5], atunci a[-1]:
În Ruby, există riscul ca rezultatul operațiilor cu numere Float să poată depăși domeniul maxim („overflow”)?
Dacă se încearcă accesarea unui element printr-un index inexistent în Array, atunci:
Un comentariu „coding” poate apărea doar pe prima linie (sau pe a doua, dacă prima este un „shebang”).
Într-un Array se poate scrie o virgulă la final?
Alegeți variantele de cod care fac ceea ce trebuie:
total = x +
y
animals = Array.new
.push("dog")
.push("cat")
total = x
+ y
x = 3 + 5; y = x + 10; z = y - 10
x = y + z \
+ t
1345
După execuția codului de mai jos:
a1 = [3,4]
a2 = Array.new(a1)
Identificatorii sunt nume de variabile, metode sau clase.
Expresiile se grupează în propoziții.
Dacă s = "abcdefghi", atunci expresia de mai jos:
s[/[aeiou]/] = '*'
În Ruby, toate cele 8 tipuri numerice definesc operatorii +, -, * și /.
În Ruby, restul împărțirii (modulo) se obține:
Alegeți variantele corecte pentru definirea unui string de 1 caracter:
?A
?"
?€
?\u20AC
?""
??
12345
Regulile lexicale din Ruby, cuvintele cheie, punctuația și operatorii sunt definiți folosind caractere din setul:
Alegeți sintaxa corectă pentru a rula o comandă „backtick”:
`ls`
%x[ls]
%X[ls]
listing = `#{listcmd}`
listing = Kernel.`("ls")
Alegeți sintaxele corecte pentru definirea unui „here document”:
document = <<HERE # inceput de definire
Textul propriu-zis
HERE
document = <<alabala
alabala
document = <<HERE
HERE # final de definire
document = <<345
345
document = <<-HERE
12346
Cuvântul rezervat „__END__”:
=begin
=end
23
Ruby suportă nativ următoarele encodări:
În cazul unei reuniuni sau a unei intersecții de masive:
Dacă în expresia string[n], n este în afara domeniului:
Obiectele tip String sunt mutabile?
Împărțirea unui întreg la 0 întoarce:
Dacă a = [1, 2, 3, 4, 5], atunci după evaluarea expresiei a[-6] = 0:
În Ruby, parantezele sunt:
În Ruby 1.9, în cazul stringurilor, pentru optimizare este preferat operatorul „[]” față de metoda „each_char”.
Encodarea cunoscută ca și BINARY este:
Înlocuirea unei expresii în cadrul unui string se numește:
"\u{AB2}"
"\u0AB2"
"\u{0AB2}"
"\u{0A B2}"
Mai multe fișiere sursă aparținând aceluiași program pot avea encodări diferite?
Alegeți sintaxele corecte pentru un document încorporat (embedded document):
# =begin aici începe comentariul
text comentat
# =begin aici se termină comentariul
=BEGIN aici începe comentariul
=END aici se termină comentariul
begin
=begin aici începe comentariul
=end aici se termină comentariul
Stringurile adiacente se concatenează automat, chiar și dacă au spații între ele?
Se dă codul:
f(3+2)+1
f (3+2)+1
f((3+2)+1)
145
Caracterul # poate fi folosit:
Ca și în cazul șirurilor, dacă a = [3, 4, 5], atunci a[3, 0]:
Dacă două numere sunt întregi, atunci rezultatul operației de împărțire este tot întreg, obținut prin trunchiere.
Ce valoare întoarce expresia:
'a\b' == 'a\\b'
a = [3, 4, 5]
a = a + 9
[3, 4, 5, [9]]
[3, 4, 5]
În Ruby, operația „modulo” se poate face și cu numere Float?
Ca și șirurile, un masiv poate fi indexat:
Numărul 0.1 se poate reprezenta exact în Float?
Cel mai mare cod Unicode este:
"\u{10ffff}"
"\u{ffff}"
"\u{ffffff}"
Biblioteca claselor din nucleul Ruby:
Unitățile parametrizate se numesc în Ruby:
Expresia de mai jos întoarce:
"\x0A" == "\xA"
234
Un comentariu „shebang” (#!/bin/ruby) poate apărea doar pe prima linie.
Regulile pentru %w sunt aceleași ca și pentru %q, iar cele pentru %W sunt aceleași ca pentru %Q.
Interpolarea în stringuri se poate face și în cazul literalilor încadrați între ghilimele simple.
În documentația comentată pentru rdoc:
= titlu
== subtitlu
În Ruby, 0.4 - 0.3 == 0.1 întoarce:
Toate limbajele care folosesc reprezentarea în virgulă mobilă conform IEEE-754 (C, Java, JavaScript) nu pot reprezenta numărul 0.1.
Alegeți secvențele de escape ce pot apărea într-un literal string încadrat între ghilimele simple (apostroafe):
Literalii pot fi:
Alegeți definirea corectă de masive:
deschise = %w| ( [ { < |
%w[ 234 234 234]
whitespace = %W(\s \t \r \n)
%w[acesta este un test]
Clasa „Encoding” are o interfață API bogată.
Token-urile (jetoanele) cuprind:
Câte rânduri are următorul string?
"Această carte
are 30 de pagini\
cu tot cu coperți"
În Ruby, true este:
O metodă singleton este o metodă ce aparține direct unui obiect (de obicei modul).
Implicit, interpretorul Ruby (v > 2.0) consideră că fișierul sursă este encodat UTF-8.
Codul de mai jos afișează la fiecare iterație același lucru?
5.times { puts 859.object_id }
Elementele dintr-un Array sunt mutabile.
O constantă poate fi modificată?
În Ruby, literalii întregi se pot scrie cu caractere underscore („_”) intercalate, de exemplu 1_000_000.
În Ruby, literalii float se pot scrie omițând partea întreagă, dacă este 0 (de exemplu: .134).
În Ruby 1.9:
Alegeți operatorii matematici existenți în Ruby:
34
Gramatica limbajului Ruby este:
String.encode modifică efectiv caracterele stringului?
Care din următoarele variante definește corect un string folosind mai multe linii de cod, string care are o SINGURĂ linie?
'Acest literal string \
este corect'
'Acest literal string'\
'este corect.'
Ruby asigură un set puternic de operatori pentru string-uri, cuprinzând:
Elementele dintr-un Array trebuie să fie din aceeași clasă.
Operatorul „|”, în cazul a două masive, realizează:
În Ruby, operatorul = poate fi suprascris?
Pentru cazul când este nevoie de formatare a valorilor interpolate, în Ruby se poate folosi:
"pi este aproximativ %.4f" % Math::PI
printf("pi este aproximativ %.4f", Math::PI)
sprintf("pi este aproximativ %.4f", Math::PI)
"%s: %f" % ["pi", Math::PI]
a, b, c = [3, 5, 7]
Metodele se definesc prin cuvântul cheie:
În Ruby, obiectele numerice sunt mutabile?
%<<book><title>Titlu carte</title></book>>
%((1+(2*3)) = #{(1+(2*3))})
%(O paranteza ( se folosește la deschidere.)
%'Un apostrof \' se folosește la deschidere.'
Array.new(10, 0)
Se pot defini Array-uri imbricate?
1...4
Cu unealta „ri” se poate căuta documentație despre:
Cu ajutorul unui document încorporat (embedded document) se poate:
Alege varianta corectă:
Operatorul „&”, în cazul a două masive, realizează:
Interpretorul Ruby interpretează un program ca o secvență de jetoane (token-uri).
Encodarea unui literal String este întotdeauna aceea a fișierului sursă în care este definit.
Stringurile introduse manual într-un terminal „cmd” în Windows au encodarea:
O metodă definită în afara oricărei clase devine:
Un scurt program Ruby poate fi lansat cu o comandă de tipul: ruby ‑e "puts 3+4" ?
În compararea stringurilor se aplică:
5.times { puts "aaa".object_id }
Blocurile de cod pe mai multe linii se numesc „corpuri” (corpul metodei, corpul clasei). Ele sunt: