}
КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ
1. Разобрать примеры 5.1 и 5.2, используя режим Debug.
2. В главной функции с клавиатуры ввести значение переменных n, kиt .
В функции f1() динамически выделить память под целочисленную квадратную матрицу c элементами aij , i = 1,…n; j = 1,…, n и ввести значения всех элементов матрицы. В главной функции после вызова функции f1() вывести на экран значение элемента akt .
Описать все возможные способы передачи значения элемента akt в главную функцию.
· akt - возвращаемое значение функции f1() .
· В функцию f1 передается адрес, по которому записывается значение akt .
· Возвращаемым значением функции f1() является адрес строки матрицы, содержащей akt .
· В функцию f1() передается адрес, по которому записывается адрес k-ой строки матрицы .
· Возвращаемым значением функции f1() является «начальный адрес матрицы».
· В функцию f1() передается адрес, по которому записывается «начальный адрес матрицы» .
· Возвращаемым значением функции f1() является адрес элемента akt .
· В функцию f1() передается адрес, по которому записывается адрес элемента akt .
Замечание. Количество параметров функции f1() зависит от конкретного способа.
3. Что будет на экране после выполнения программы:
#include <stdio.h>
#include <stdlib.h>
void fun (char ** q, char * t)
{char *A[]={"hello","day","month","year"};
*q = A[0];*t='m';
}
void main (void)
{ char *ptr, ch;int i = 0;
fun(&ptr, &ch);
for (; i<4; ch = *ptr++, i++)
{switch (ch)
{ case 'm': printf ("%c", 'g'); break;
case 'l': printf ("%c", 'w');
default : printf ("%c", 'a');}
}
}
4. Что будет на экране после выполнения программы:
#include <stdio.h>
#include <stdlib.h>
char ** fun (char * t)
{char*S[]={"hello","day","month","year"};
int j=0; char **A;
A=(char **)malloc(sizeof(char *));
for (; j<4; j++) A[j]=S[j];
*t = 'm';
return A;
}
void main (void)
{int j=0, i= 0; char **ptr, *ch;
ch = (char *)malloc(sizeof(char)); ptr = fun(ch);
for (; i<4; ch = *(ptr+j),j++, i++)
{switch (*ch)
{ case 'm': printf ("%c", 'g'); break;
case 'l': printf ("%c", 'w');
default : printf ("%c", 'a');}
}
}
ЛАБОРАТОРНАЯ РАБОТА 6
Целью лабораторной работы 6 является освоение библиотечных функций для обработки символьной информации.
ВАРИАНТЫ ЗАДАНИЙ
Вариант 1. В главной функции ввести переменную n, определяющую максимальное количество символов в вводимом далее предложении. Это количество не должно превышать длину строки экрана (80 символов). С клавиатуры ввести предложение из слов и чисел с точкой на конце, динамически выделив для него память. Посчитать количество слов в предложении и вывести его на экран. Завести массив из всех чисел в предложении. Посчитать количество элементов массива, найти максимальный элемент, вывести эти данные на экран.
Вариант 2. В главной функции ввести переменную n, определяющую максимальное количество символов в вводимом далее предложении. Это количество не должно превышать длину строки экрана (80 символов). С клавиатуры ввести предложение из слов и чисел с точкой на конце, динамически выделив для него память. Слова и числа могут отделяться друг от друга одним и более пробелов. Удалить лишние пробелы в предложении и вывести новое предложение на экран. Завести массив из всех чисел в предложении. Посчитать количество элементов массива, расположить числа в порядке возрастания и вывести эти данные на экран.
Вариант 3. В главной функции ввести переменную n, определяющую максимальное количество символов в вводимом далее предложении. Это количество не должно превышать длину строки экрана (80 символов). С клавиатуры ввести предложение из слов и чисел с точкой на конце, динамически выделив для него память. Каждому слову поставить в соответствие число, которое получается как сумма кодов его букв. Найти максимальное число и вывести его на экран вместе с соответствующим ему словом.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.