Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
void* |
10.2.2009, 22:08
Сообщение
#1
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
Вот собственно предлагаю скидывать сюда интересные задачи по С/С++. Желательно не слишком простые и не требующие написания программы, а только касательно понимания кода и знания стандартов. Начну сам:
1)Каков результат вычисления следующего кода? а) 4 б) 5 в) 6 г) 7 д) Любое число ввиду неопределенности данной конструкции 2) Почему в C нельзя выводить текстовую информацию таким способом? 3) Что делает следующий С++ код? (Matt Marcus) 4)Выбрать результат выполнения программы. A. AA B. A C. Пустой экран D. Программа не скомпилируется E. Программа не запустится F. Свой вариант (написать в комментариях) Сообщение отредактировал void* - 10.2.2009, 22:12 |
|
|
|
|
Sami |
11.2.2009, 12:03
Сообщение
#2
|
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 28.4.2008 Пользователь №: 160 Спасибо сказали: 0 раз(а) Репутация: 0
|
1) Определенно д)
2) А вот почему? незнаю. сам так делал. Можно предположить только из-за переполнения буфера. Ибо лучший вариант будет так: 3) А ни чего код ни делает, template без класса-аргументов. Скорее компилятор начнет ругатся. 4) Вариант D) однозначно. Так как доступ к конструктору закрыт. |
|
|
|
|
Tonal |
11.2.2009, 12:35
Сообщение
#3
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17
|
В задаче 3 нужно таки использование.
Кроме того, возможны реализации С++ где sizeof char == sizeof int и в этом случае value будет всегда 1. |
|
|
|
|
void* |
11.2.2009, 17:46
Сообщение
#4
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
вроде все правильно, насчет 3-его сам еще не думал
1) тут все элементарно, undefined behaviour, т.к. нельзя больше одного раза изменять одну и ту же переменную в одной точке следования 2) опасность кроется в потенциальном наличии кусков типа %s в строке что приведет к ошибке 3) еще не разбирался 4) самая легкая задачка, естественно D |
|
|
|
|
Novak |
19.2.2009, 16:23
Сообщение
#5
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 319 Регистрация: 15.3.2008 Из: Замкадыш Пользователь №: 121 Спасибо сказали: 28 раз(а) Репутация: 6
|
Цитата(void* @ 10.2.2009, 22:08) Link 1)Каков результат вычисления следующего кода? Нормального варианта ответа в предложенных нет. По сути результат будет зависеть от конкретной реализации компилятора, в какой последовательности он будет разрешать т.н. undefined behaviour. Но это неопределённое поведение не касается самого исполнения программы, просто в стандарте не задан порядок обработки такой ситуации, и те, кто реализуют компиляторы, могут на своё усмотрение эту ситуацию разрешить. Потому говорить, что будет возвращено любое число также неверно, как и полагать какой-то конкретный результат. Сообщение отредактировал Novak - 19.2.2009, 16:23 |
|
|
|
|
kuler |
5.3.2009, 15:58
Сообщение
#6
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1
|
чему будет равно z?
int z = 1. / 3 - 1; |
|
|
|
|
AD |
5.3.2009, 16:13
Сообщение
#7
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(kuler @ 5.3.2009, 15:58) Link чему будет равно z? int z = 1. / 3 - 1; нулю |
|
|
|
|
void* |
5.3.2009, 17:51
Сообщение
#8
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
Цитата(kuler @ 5.3.2009, 14:58) Link чему будет равно z? int z = 1. / 3 - 1; думаю будет равно -1 Сообщение отредактировал void* - 5.3.2009, 17:52 |
|
|
|
|
kuler |
5.3.2009, 18:47
Сообщение
#9
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1
|
что и требовалось доказать
|
|
|
|
|
void* |
5.3.2009, 20:12
Сообщение
#10
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
так все-таки будет -1?
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 3.1.2026, 2:00 |