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