Тест по Си: где правильно присвоены адреса функций указателям? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задали большой итоговый тест. С 2-мя вопросами затык. Где правильно присвоены адреса фунцкций указателям? Не понятно немного само задание
char f1(char);//Определение функции
char f2(int);//Определение функции
void f3(float);//Определение функции
int *f4(char*);//Определение функции
char(*ptr1)(int);//Указатель на функцию
char(*ptr2)(int);//Указатель на функцию
void(*ptr3)(float) = f3;//Инициализированный указатель

void main()
{
    pt1 = f1;//
    pt2 = f3;//
    pt1 = f4;//
    pt1 = f2;//
    pt2 = pt1;//
    char c = (*pt1)(44);//
    c = (*pt2)('\t');//
}
И второй вопрос. Исправить ошибки в программе. Много исправил уже. Но все равно не запускается программа. А ее надо сделать рабочей. Я так понимаю, что проблемка в вызове функции
double avg(int a[], int n)
{
    int s;
    for (int i = 0; i < n; ++i)
        s += a[i];
    s = s / n;
    return s;
}
 
int main()
{
    int m[] = { 5, 7, 8, 9, 12 };
    avg(m[], 5);
    cout << "Srednee:" << s;
    return 0;
}

Решение задачи: «Тест по Си: где правильно присвоены адреса функций указателям?»

textual
Листинг программы
pt1 = f1;            // Неверно
pt2 = f3;            // Неверно
pt1 = f4;            // Неверно
pt1 = f2;            // Верно
pt2 = pt1;           // Верно
char c = (*pt1)(44); // Верно
c = (*pt2)('\t');    // Неверно

Объяснение кода листинга программы

  1. pt1 = f1; - Неверно
  2. pt2 = f3; - Неверно
  3. pt1 = f4; - Неверно
  4. pt1 = f2; - Верно
  5. pt2 = pt1; - Верно
  6. char c = (*pt1)(44); - Верно
  7. c = (*pt2)('\t'); - Неверно

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы