Jump to content
em

[Easy] C++ quest 4

Recommended Posts

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
Link to comment
Share on other sites

  • Active Members

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
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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"? :-)

Link to comment
Share on other sites

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 "=".

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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.
Link to comment
Share on other sites

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 :-)

Link to comment
Share on other sites

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...