а) Если адрессация 32-х разрядная, то число ячеек -
.
б) Максимальный объмем адрессуемой памяти -
= 4гб. Вспомните траблу с тем, что на 32-х разрядных ОС (которые задействуют проц в виртуальном режиме - могут использовать его как 32-х разрядный, если он даже 64-х) видимый максимальный объмем ОЗУ не больше этого предела, хоть пусть стоят плашки по 32гб.
в) Ну, если считать, что первый адрес - 0, то последний
- 1
П.С. Число ячеек = объему памяти в байтах, так как можно адрессовать каждый байт - было сказано, что "при каждой операции... 32 бита данных", это говорит, что регистры тоже 32-х разрядные, но если вы видели какой-нибудь из языков ассемблера, то там можно обращаться к частям регистров, вплоть до размера части в 8 бит. Это на практике.
П.С.С. Сказано что проц теоретический, возможно, подразумевается, что ячейки не 1 байт, а 4 байта, т.е число ячеек в 4 раза меньше -
. Выбирайте, что вам кажется более подходящим, препод вам известнее :)
Поделитесь своими знаниями, ответьте на вопрос:
#define n 13
int main(){ setlocale(LC_ALL, "rus"); int *a = new int[n];
printf("\n >> Введите массив из %d элементов\n << ", n); for (int i = 0; i < n; i++) scanf("%d",&a[i]);
int Sm = 0; int k = 0; for (int i = 0; i < n; i++) if ((a[i] % 4 == 1) || (a[i] % 4 == 3)) { Sm += a[i]; k++; }
if (k) printf("\n >> Sr = %g", (float)Sm / k); else printf("\n >> k = 0");
delete[] a; system("pause>>void"); return 0;}