Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Mick
Сообщений: n/a
#1

! BrainBench ! Классные тесты - Помогите,пожалуйста, мне и другим поднять свой уровень. Спасибо! - C++

18.11.2007, 22:05. Просмотров 1666. Ответов 2
Метки нет (Все метки)

На мой взгляд, важными являются два направления.

1) Подбор хорошей литературы, тут конечно каждый скажет - СтраусТруп, но не только мне кажется.. что для сдачи С его мало.. например, тот же разбор комбинированых типов не поможет получить полного понимания, и оветить на все вопросы. Возможно у когото есть на примете, хорошие книги на русском, которые реально могут дать знания для сдачи тестов.

2) Разбор, интересных вопросов с людьми чей уровень знания на порядок выше твоего..
У меня уже есть пару вопросов, может ктонибудь подскажет как было бы правильно находить на них ответ.

Спасибо.

================================
Вопрос №1

Sample Code :
int matrix [10][20][5];

Consider the definition of matrix above. Which one of the following is the type of *matrix?

Choice 1
Pointer to array [0 .. 19] of array [0 .. 4] of int
Choice 2
Pointer to array [0 .. 9] of int
Choice 3
Array [0 .. 19] of array [0 .. 9] of int
Choice 4
Pointer to pointer to int
Choice 5
Array [0 .. 19] of array [0 .. 4] of int
--------------------------------
Вопрос №2

Assuming int and long are each 32 bits, which one of the following expressions is consistently true if x is an unsigned int and consistently false if x is a signed int?

Choice 1
-x > 0
Choice 2
~x == x
Choice 3
x >= 0L && ~x >= 0L
Choice 4
x > 0 && ~x > x
Choice 5
x >= 0UL && ~x >= 0UL

Ответ, конечно найти можно.. но почему именно он, а не тот который похож на него... Вот в чем вопрос
--------------------------------
Вопрос №3

Sample Code
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   int i; 
   int * p; 
   int ** pp; 
 
   i = (int) &p; 
   p = (int *) &pp; 
   pp = (int **) &i; 
 
   ***((int ***) p) = 14; 
  (int) *pp = 8; 
  pp = (int **) &pp; 
  (int) *pp = 4; 
  *p += 2; 
  i += 9;
Assume the above code is written for an architecture that uses protected memory and that has pointers and integers of equal size. The above code results in a fault. Which one of the following lines causes the fault?

Choice 1
Line 9
Choice 2
Line 10
Choice 3
Line 11
Choice 4
Line 12
Choice 5
Line 13

--------------------------------
Вопрос №4

Which one of the following declares a read-only pointer p to a volatile character array of 64 characters?
Choice 1
volatile char (* const p) [64];
Choice 2
volatile char * const p [64];
Choice 3
volatile char (* const) p [64];
Choice 4
const char (* volatile) p [64];
Choice 5
volatile char (* const [64]) p;

--------------------------------
Вопрос №5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int factorial (int x) { 
  extern jmp_buf jb; 
  int fact, chk; 
  if (!x) return 1; 
  fact = x * (chk = factorial(x - 1)); 
  if (chk > fact) longjmp(jb, -1); 
  return fact; 
} 
 
int check_for_overflow (int x) { 
  extern jmp_buf jb; 
  if (setjmp(jb)) { 
    printf('discovered overflow in factorial(%d)', x); 
    return 0; 
  } 
  if (x < 0) x = 0; 
  return factorial(x); 
}
The code above contains an error that may result in apparent corruption in some rare circumstances. Which one of the following describes this error?

Choice 1
The factorial of zero (0) is incorrectly handled by factorial().

Choice 2
The argument to check_for_overflow() should be qualified with volatile to en
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2007, 22:05     ! BrainBench ! Классные тесты - Помогите,пожалуйста, мне и другим поднять свой уровень. Спасибо!
Посмотрите здесь:

Подскажите мне пожалуйста!!! C++
C++ Объясните мне пожалуйста
C++ C++Решите мне пожалуйста через функцию
C++ C++Решите мне пожалуйста через функцию
C++ C++Решите мне пожалуйста через функцию
C++ Помогите мне пожалуйста найти ошибки в алгоритме
C++ Прошу оценить свой уровень
Уважаемые програмеры помогите с массивами на с++. За ранее огромное спасибо C++
C++ вышлите мне dxguid.lib пожалуйста
C++ Надо исправить программу, пожалуйста. Задание: заменить заданное слово в строке другим заданным словом
Ребята пожалуйста , переписать с С++ на Си ! ! Спасибо! C++
Исправьте пожалуйста, где моя ошибка? спасибо C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ice321
0 / 0 / 0
Регистрация: 20.11.2007
Сообщений: 15
27.11.2007, 10:22     ! BrainBench ! Классные тесты - Помогите,пожалуйста, мне и другим поднять свой уровень. Спасибо! #2
Постораюсь ответить на первый вопрос (так, как я это понимаю).

Насколько мне известно, при определении массива int arr[10], запись *arr означает нулевой элемент массива, arr[0]. Аналогично, *(arr+2) - то же самое, что и arr[2].

В случае с двумерным массивом: int arr[10][20], запись *arr значает массив arr[0..9], причём первый из двадцати. Запись **arr это элемент arr[0][0]. Альтернативный метод доступа к элементу массива такой: arr[5][10] == *(*(arr+5)+10).

В случае с массивом из вопроса int matrix[10][20][5]:
Чтобы 'добраться' до элемента трёхмерного массива, надо произвести тройное разименование. т.е. ***matrix - это элемент массива matrix[0][0][0].
В результате получается, например, matrix[3][14][2] == *(*(*(matrix+2)+14)+3).

Вот мои рассуждения поповоду массивов. Кто думает по-другому?
Mick
Сообщений: n/a
27.11.2007, 18:28     ! BrainBench ! Классные тесты - Помогите,пожалуйста, мне и другим поднять свой уровень. Спасибо! #3
Спасибо за отклик.
Yandex
Объявления
27.11.2007, 18:28     ! BrainBench ! Классные тесты - Помогите,пожалуйста, мне и другим поднять свой уровень. Спасибо!
Ответ Создать тему
Опции темы

Текущее время: 01:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru