Jump to content
em

[Easy] C++ quest 4

Recommended Posts

Posted (edited)

Vede?i ?i primele trei din serie.

https://rstforums.com/forum/38933-easy-c-quest.rst

https://rstforums.com/forum/40581-easy-c-quest-2-a.rst

https://rstforums.com/forum/67006-easy-c-quest-3-a.rst

Nu se va da warn pentru redeschidere topic daca raspundeti acolo. :-)

Care crede?i c? este outputul la urm?toarele programe?

(Se accepta si depinde sau nu va compila/rula)

NU RULATI si postati rezultatele aici, nu despre asta este vorba.

1.


#include <stdio.h>
int main() {
float x=16777216;
printf("%.1f\n%.1f", x+1, x+2);
return 0;
}

2.


#include <stdio.h>
int boss() {
return 2;
}
int main() {
printf("%d", sizeof(boss));
return 0;
}

3.


#include <stdio.h>
int main() {
printf("%d", 2+2/2);
}

4.


#include <stdio.h>
int main() {
http://ctf.rstforums.com/
printf("Soon");
return 0;
}

5.


#include <stdio.h>
int main() {
int a(31), b(337);
printf("%d%d", a, ;
}

Edited by em
  • Active Members
Posted (edited)

5. eroare de compilare pentu ca nu exista functiile a si b cu parametri , gen trebuia int a(int c),b(int d)

4. sintax error este pus http: in fata comentariului //

3. 2/2=1+2=3

2. returneaza int deci trebuie sa fie sizeof(int) dar nu stiu cat e... //aberez nu e asa am gresit

la 1 nu stiu sigur ce inseamna acel specificator, oricum e mai mult C asta ....

Edited by danyweb09
Posted

1.

printf("%.1f\n%.1f", x+1, x+2);

Format strng-ul %.1f precizeaza ca numarul va fi afisat cu cel putin o zecimala dupa virgula. Numarul nostru este intreg si mai mic decat 8 octeti ca si valoare deci rezultatul va fi:

16777217.0

16777219.0

2. Nu va compila deoarece functia nu este un tip. Putem declara un pointer la functie:


#include <stdio.h>
int boss() {
return 2;
}
int main() {
int (*boss_ptr)(int);
boss_ptr = &boss;
printf("%d", sizeof(boss_ptr));
return 0;
}

In cazul acesta rezultatul va fi 4(numarul de octeti pentru o adresa pe o masina x86).

3. Rezultatul este 3.

4. Link-ul nu este o variabila bine definita, deci vom avea o eroare la compilare.

5. Eroare de compilare a si b nu au fost definite ca si functii apriori.

Posted
1.

printf("%.1f\n%.1f", x+1, x+2);

Format strng-ul %.1f precizeaza ca numarul va fi afisat cu cel putin o zecimala dupa virgula. Numarul nostru este intreg si mai mic decat 8 octeti ca si valoare deci rezultatul va fi:

16777217.0

16777219.0

Aici am o oarecare rezerv? c? nu ai tri?at. Cum se face ca este o diferen?? de 2 între "x+1" ?i "x+2"? :-)

Posted

1. 16777217.0 si 16777218.0

2. Nu sunt sigur, nu cred c? merge s? pui sizeof(functie), dar dac? merge ar afi?a 4.

3. 3

4. Soon

?tiu c? dac? la sfâr?itul liniei avem ":" nu d? eroare (restul nu e luat în considerare pentru c? e comentat). Am observat asta mai demult, din gre?eal?, dar nu ?tiu sigur explica?ia.

5. 31337

Nu trebuie s? fie func?ii, variabilele se pot defeni ?i astfel, nu doar folosind "=".

Posted

1. 16777217.0 si 16777218.0 // %.1f -> afiseaza numarul cu o singura virgula

2. Nu cred ca o sa compileze din cauza ca "sizeof" se aplica unei functii, sau va afisa sizeof(int) care e 4

3. 3

4. Ar trebui sa dea eroare.

5. 31337

Posted (edited)

1. dupa numaru ala (2^24) floatu nu se mai incrementeaza din ce imi aduc aminte de la metode numerice... e o problema cu mantisa sau cum se numea chestia aia. Nush ce afiseaza, ar trebui 16777216.0 16777216.0

2. nu ai voie sa pui sizeof la o functie (din cate stiu)

3. 3

4. compilatorul crede ca http: este un label dala (sau cum se numeste la care te duci cu goto) si // comentariu. Deci compileaza bine si afiseaza "Soon"

5. initializare cu constructor... 31337

Edited by Byte-ul
Posted (edited)

1: 16777217.0 si 16777218.0

2: 4(marimea unui pointer)

3: 3( | are precedenta in fata lui +)

4: Nu va compila, undefined reference to http, expected "something" before :, expected ; before printf

5: 31337

Le. Dupa ce am verificat am gresit 2, intrebarea numarul 2 si numarul 4.

Ca tot intreba cineva mai sus, explicatia pentru 4 este "goto and labels", cautati-l si o sa intelegeti

Edited by nedo
Auto corectare.
Posted

La mine, CodeBlocks + MinGW, la 1:

16777217.0

16777218.0

Am gresit pe 2. In C afiseaza "1". In C++ cu "-fpermissive" afiseaza tot "1". Nu am nici cea mai mica idee de ce.

Restul le-am stiut.

Posted

4. Soon

?tiu c? dac? la sfâr?itul liniei avem ":" nu d? eroare (restul nu e luat în considerare pentru c? e comentat). Am observat asta mai demult, din gre?eal?, dar nu ?tiu sigur explica?ia.

In C exista etichete.

gigi:

goto gigi;

acolo este vorba de eticheta http si apoi comentarii.

http: //aici e un comentariu :-)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...