База ответов ИНТУИТ

Основы программирования

<<- Назад к вопросам

Функция языка Си имеет прототип
    int f(int x, int y);
(т.е. имеет два целочисленных аргумента ивозвращает целочисленное значение).Локальные переменные и аргументы функцииадресуются относительно регистра FP, т.е. их адресаравны сумме содержимого FP и константы, задающей смещение.Чему равен адрес аргумента y функции?

(Отметьте один правильный вариант ответа.)

Варианты ответа
Адрес y равен FP-12.
Адрес y равен FP+12. (Верный ответ)
Адрес y равен FP-4.
Адрес y равен FP+4.
Адрес y равен FP+8.
Адрес y равен FP-8.
Похожие вопросы
В функции f языка Си описана одна целочисленнаяпеременная z:
    int f(int x, int y) {        int z;        . . .    }
Локальные переменные и аргументы функцииадресуются относительно регистра FP, т.е. их адресаравны сумме содержимого FP и константы, задающей смещение.Чему равен адрес переменной z?
Прототип функции, которая ищет вхождение строкиs2 в строку s1,выглядит следующим образом:
    int find(char *s1, char *s2);
функция возвращает смещение подстрокиs2 относительно начала строки s1в случае успеха или (-1) в случае неудачи.Можно ли воспользоваться функцией find в приведенном нижефрагменте программы(будут ли выданы сообщения об ошибках или предупрежденияпри компиляции этого фрагмента)?
    void f(char s[1024], const char p[64]) {        int pos = find(s, p);        . . .    }
Локальные переменные функции языка Си адресуютсяотносительно регистра FP (Frame Pointer — указателькадра). Что содержится в ячейке памяти, адрес которойзаписан в регистре FP, в процессе выполнения телафункции?
Пусть описан тип R2Vector, представляющий векторна плоскости с вещественными координатами:
    typedef struct {        double x;        double y;    } R2Vector;
также описаны три переменные u, v и wтипа вектор и вещественная переменная s:
    R2Vector u, v, w;    double s;
при этом переменная u содержат конкретный векторединичной длины. Указать, чему будетприблизительно равно значение переменной s врезультате выполнения следующего фрагмента программы:
    v.x = (-u.y);    v.y = u.x;    w.x = u.x + v.x;    w.y = u.y + v.y;    s = sqrt(w.x * w.x + w.y * w.y);
(функция sqrt извлекает квадратный корень из вещественногочисла).
Пусть описан тип R2Vector, представляющий векторна плоскости с вещественными координатами,
    typedef struct {        double x;        double y;    } R2Vector;
также описаны три переменныеu, v и w типа вектори вещественная переменная s:
    R2Vector u, v, w;    double s;
при этом переменная u содержат конкретный векторединичной длины, а вектор v получается изu вращением на 30 градусов по часовойстрелке. Указать, чему будет приблизительно равнозначение вещественной переменной s в результатевыполнения следующего фрагмента программы:
    w.x = (-u.y); w.y = u.x;    s = v.x * w.x + v.y * w.y;
Пусть значения целочисленных переменных x и yравны 20 и 10 соответственно.Указать значение логического выражения
    y != 0 и x/y <= 1
Пусть значения целочисленных переменных x и yравны 100 и 10 соответственно.Указать значение логического выражения
    (x > 1 и y <= 10) или x == 0
Пусть значения целочисленных переменных x и yравны 1 и 2 соответственно.Указать значение логического выражения
    (x >= 1 и y < 0) или (x <= 1 и y > 0)
Пусть описан тип R2Vector, представляющий векторна плоскости с вещественными координатами:
    typedef struct {        double x;        double y;    } R2Vector;
также описаны три переменные u, v иw типа вектор и вещественная переменная s:
    R2Vector u, v, w;    double s;
при этом известно, что переменные u и vсодержат два конкретныхвектора единичной длины.Пусть в результате выполнения следующего фрагмента программызначение переменной s приблизительно равно 0.7071,т.е. корню из двух, деленному пополам:
    w.x = (-u.y); w.y = u.x;    s = v.x * w.x + v.y * w.y;    // s == 0.7071
На какой угол надо повернуть вектор u,чтобы получить вектор v?
Прототип функции, которая вычисляет сумму элементов массива aдлины n, выглядит следующим образом:
    double sum(const double *a, int n);
Можно ли в описании этой функции и ее прототипа опустить слово const?(Могут ли при этом в корректной программе возникнутьошибки или предупреждения на стадии компиляции?)