Тест по Си: где правильно присвоены адреса функций указателям? - 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'); // Неверно
Объяснение кода листинга программы
pt1 = f1;- Неверноpt2 = f3;- Неверноpt1 = f4;- Неверноpt1 = f2;- Верноpt2 = pt1;- Верноchar c = (*pt1)(44);- Верноc = (*pt2)('\t');- Неверно