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