LINUX.ORG.RU
ФорумTalks

Как хорошо на ЛОРе знают C++


0

3

Я понимаю, что C++ не нужен, но тем не менее. Случайно наткнулся на забавное тестирование: http://www.cprogramming.com/cgi-bin/quiz.cgi . 50 вопросов по C++ и не только. У кого какие результаты? У самого 76% По своей невнимательности и из-за склероза завалил все вопросы о том, какие функции каким хидерам стандартной библиотеки соответствуют.

Да, я знаю, что тесты ничего не показывают. Но всё равно забавно.

★★★

Последнее исправление: Sadler (всего исправлений: 1)
Ответ на: комментарий от arturpub

will a recursive function without an end condition ever quit?

will an infinite loop without an end condition ever quit?

No. Намыльте, кто там намылить хотел.

arturpub ★★
()
Ответ на: комментарий от delete83

>Если перевести на человеческий язык то, что написано в ответах: некоторые компиляторы занимаются лишней оптимизацией, о которой их не просили, и в состоянии развернуть рекурсию в бесконечный цикл. Хотя в нормальном компиляторе должен закончиться стек на каком-то этапе рекурсии.

Это оптимизация хвостовой рекурсии - лишняя? I lol'd!

AptGet ★★★
()
Ответ на: комментарий от alpha2

> Тест говно! Я набрал 66%, но должен был лечь спать 2 часа назад.

Хочу тебя огорчить...

Sadler ★★★
() автор топика
Ответ на: комментарий от melkor217

> В моём понимании ++ это всего лишь инкремент переменной.

Всего лишь инкремента не бывает. Бывает преинкремент или постинкремент.

geekless ★★
()
Ответ на: комментарий от geekless

> Всего лишь инкремента не бывает. Бывает преинкремент или постинкремент.

Опять тебе тред перечитывать... В данном случае тут неважно, какой инкремент стоит. Переменную C ты не сравнишь ни с C++, ни с ++C в том же выражении, где сделал инкремент. Ибо нельзя.

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

> В данном случае тут неважно, какой инкремент стоит. Переменную C ты не сравнишь ни с C++, ни с ++C в том же выражении, где сделал инкремент. Ибо нельзя.

И чо?

int C = 1;
int x = C++;
printf(«ВНЕЗАПНО %d\n», C == x);

geekless ★★
()
Ответ на: комментарий от geekless

Есть что возразить? Хотите зачитать мне какой-то особо секретный стандарт, где все совсем иначе, чем в реальном мире?

delete83 ★★
()
Ответ на: комментарий от geekless

Интеллектуал, научись уже читать пост, на который отвечаешь и внимательно следи, какую часть поста цитируешь...

delete83 ★★
()
Ответ на: комментарий от Sadler

> Хм... чуда не случилось.

Что? Предыдущее содержимое С сравнивается с текущим, без всякого UB и ворнингов. Или теперь скажете, что по особо секретным стандартам неопределенность последовательности побочных эффектов стала через границы операторов перескакивать?

geekless ★★
()
Ответ на: комментарий от delete83

Понятно, в гугл ты так и не сходил. Так теперь и помрешь, не узнав, что частные случай рекурсии оптимизируются в цикл.

geekless ★★
()
Ответ на: комментарий от geekless

Да не, просто в данном примере не очень видно отличие постинкремента от преинкремента, ну да ладно.

Sadler ★★★
() автор топика
Ответ на: комментарий от Sadler

> Да не, просто в данном примере не очень видно отличие постинкремента от преинкремента, ну да ладно.

А ничего, что с преинкрементом результат будет 1, а не 0?

geekless ★★
()
Ответ на: комментарий от geekless

Ладно, уговорил. Тем более подтвердил мою изначальную мысль.

Sadler ★★★
() автор топика
Ответ на: комментарий от legolegs

Зато я могу результат выражения C++ присвоить другой переменной и сравнить с C в другом выражении. А тут говорят, что бывает некий «просто инкремент». Врут, шабаки, и не краснеют.

geekless ★★
()
Ответ на: комментарий от geekless

Какой икс ещё? Тут имелось в виду примитивнейшее.

int main()
{
  int c=1;
  printf("%i\n",c);
  c++;
  printf("%i\n",c);
}

А вы городите велосипеды, кичась своими знаниями об отличие постинкремента от прединкремента. Специально для таких как вы варианта ответа не оставили, чтобы мыслили проще.

melkor217 ★★★★★
()
Ответ на: комментарий от geekless

> Это как-то отменят тот факт, что «просто инкремента» не существует?

Я тебе ещё раз повторю. В данном контексте нам не важно, какой там инкремент.

melkor217 ★★★★★
()
Ответ на: комментарий от geekless

Что этот вопрос требовал от тебя - сравнить значения переменной до и после операции. Неужели так неочевидно?

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

Чтобы мыслили проще есть тяжёлые наркотики и лоботомия. Всё остальное оставляет свободу воли. Вы подумали так, мы иначе. Это не значит, что один из нас прав, другой нет. Просто мозги наши работают по-разному. Уж не знаю, почему и в чём, но факт остаётся фактом.

Sadler ★★★
() автор топика
Ответ на: комментарий от melkor217

Мне даже кажется, что в первую очередь все подумают именно таким образом. И всем, наверно, придётся подумать «иначе» чтобы не зафейлить вопрос.

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

> Что этот вопрос требовал от тебя - сравнить значения переменной до и после операции. Неужели так неочевидно?

Этот вопрос требовал от тебя продемонстрировать владение телепатией. Неужели так неочевидно?

geekless ★★
()
Ответ на: комментарий от melkor217

Мне всегда приходится придумать «таким образом», а «иначе» возникает в первую очередь. Потому, как я писал выше, мне приходится апеллировать практически после каждого теста. Я так на экзаменационном тесте в универе с 3 на 5 исправил :)

Sadler ★★★
() автор топика
Ответ на: комментарий от geekless

Как вы охотно сознаётесь в собственной глупости, я просто поражаюсь. Где ваше чутьё, товарищи? Если считаете этот чуть ли не шуточный вопрос некорректным - всё это весьма грустно.

melkor217 ★★★★★
()
Ответ на: комментарий от geekless

Ощущаете неприятную пустоту в черепной коробке?

Ученье - свет, а неученье - приятный полумрак. :)

ciiccii
()
Ответ на: комментарий от melkor217

Как вы охотно сознаётесь в собственной глупости, я просто поражаюсь. Где ваша телепатия, товарищи? Если считаете этот чуть ли не шуточный вопрос трудным - всё это весьма грустно. Вот я сразу проинтуичил правильный ответ, даже libastral пересобирать не пришлось.

geekless ★★
()
Ответ на: комментарий от melkor217

Да ответил-то я так, как хотел автор. Грустно то, что мне пришлось для этого думать, что хотел от меня автор (да-да, телепатия в её исконном виде). И вы, поддерживающие неграмотность составителей тестов, только усугубляете ситуацию.

Sadler ★★★
() автор топика
Ответ на: комментарий от Sadler

Ну тут проще: способу, который вы предлагали, не соответствует варианта ответа.

А вообще тесты с дибильными наигранными условиями и сферическими конями в вакууме меня тоже основательно бесили. Вздумаешь из честности в задаче про взаимодействие электронов учесть гравитационную силу, а ответ окажется неверным. Помню, в какой-то задаче она получилась чуть ли не того же порядка, что и электрические силы. Хотя по условию «предполагалось», что она ничтожно мала по сравнению с ними, раз речь идёт об электронах.

melkor217 ★★★★★
()
Ответ на: комментарий от Sadler

Ну этот вопрос формально корректен, в отличие от..

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

Поэтому, я считаю, любой тест подлежит предварительной обкатке, нельзя его выпускать в реальный мир без продолжительного бета-тестинга.

Sadler ★★★
() автор топика

86%

Убил вопрос «What header file is needed for exit();». Я никаких хидеров для нее не подключаю и ВР.

segfault ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.