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