Указать классы памяти переменной — КиберПедия 

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Указать классы памяти переменной

2020-04-01 76
Указать классы памяти переменной 0.00 из 5.00 0 оценок
Заказать работу

 

Что напечатает программа? Укажите область действия, область видимости и продолжительность жизни всех переменных n.

int n = 1;

void main ()

{

printf (“%d", n);

static int n=3;

printf (“%d", n);

while (n--)

{

printf (“%d", n);

int n=10;

printf (“%d", n);

printf (“%d”,:: n+n);

}

}

Работаем с адресами

 

У некоторой программы в модели large при работе в отладчике регистры содержат следующие значения:

 

CS = 1ADF, DS=1AE3, SS=1B26, SP=0FD2.

 

Найдите размеры областей памяти.

Укажите диапазоны возможных адресов для:

переменной int n=2, если она а) глобальная, б) статическая, в) локальная;

содержимого указателя char *str=”Hello”;

значения адресной константы main;

содержимого указателя int *A= (int *) malloc (1000).

 

Прототипы функций

 

Свопинг

Напишите прототип функции, которая организует обмен значений двух переменных.

 

Индексы максимальных элементов одномерного массива

Напишите прототип функции, которая находит индексы максимальных элементов одномерного массива.

 

Индексы максимальных элементов двумерного массива

Напишите прототип функции, которая находит индексы максимальных элементов двумерного массива с заданными размерами.

 

Угол между двумя векторами

Напишите прототип функции, которая находит угол в радианах между двумя векторами из пространства Rn.

 

Определитель матрицы

Напишите прототип функции, которая находит определитель квадратной матрицы с размерами nxn.

 


Выделение фрагмента программы в отдельную функцию

 

Разбиение программы на функции

 

#include <stdio. h>

void main ()

{

int a, b, div, mod;

printf (“Введите два целых числа”);

scanf (“%d%d”, &a, &b);

div = a/b;

mod = a%b;

printf (“\n%d /%d =%d”, a, b, div);

printf (“\n%d%%%d =%d", a, b, mod);

}

 

Выделите в три отдельных функции фрагменты, связанные с вводом данных, с вычислениями и с организацией вывода результатов. Вычислительная функция должна быть одна. Глобальные переменные не использовать.

 

Тестирование функции

 

Сортировка массива

Следующий прототип функции сортирует массив А размером n по возрастанию на месте оригинального массива void sort (int A [], int n);

Напишите тест этой функции для трех различных вариантов исходных данных.


МиниМакс

Функция находит минимальное и максимальное из двух чисел типа int и имеет прототип

 

void MinMax (int a, int b, int *pmin, int *pmax);

 

Напишите тест для этой функции.


6. Лабораторные задания

 

Линейное уравнение

 

Написать функцию, которая решает линейное уравнение a ∙ x + b = 0 с проверкой выхода за диапазон типа float. Прототип функции

int linur (float a, float b, float *px);

Функция получает: a и b - коэффициенты уравнения, px - указатель на ячейку, в которую будет помещен единственный корень уравнения.

Функция возвращает:

0 - нет решения,

1 - найдено единственное решение,

2 - любое число является решением,

3 - решение единственное, но не входит в диапазон типа переменной x.

Вывод текстовой информации с результатами решения организовать с использованием оператора switch. Выход из программы должен быть единственным. Организовать тестирование функции linur.

 

Четные элементы массива

 

Напишите функцию, которая находит все четные элементы одномерного массива элементов типа int. Организовать тестирование функции.

Прототип функции

 

int Chot (int A [], int DimA, int FoundA []);

 


Нахождение простых чисел

 

Напишите функцию, которая находит все простые числа и их количество до long N включительно. Натуральное число m > 1 называется простым, если оно делится только на 1 и на само себя. Организовать тестирование функции.

Прототип функции.

 

long AllProst (long N, long Prost [], int DimProst, int *flag);

 

Количество вхождений подстроки в строку

 

Напишите функцию, которая определяет количество вхождений подстроки в строку. Организовать тестирование функции.

Прототип функции

 

int NumStrStr (char *str, char *substr);

 

Произведение матриц

 

Напишите функцию, которая находит произведение двух прямоугольных матриц с согласованными размерами. Организовать тестирование функции.

Прототип функции

 

void MMult (float A [], float B [], float AB [], int m, int n, int k);

 

Здесь одномерные массивы эмулируют двумерные массивы.


7. Дополнительные задания

 

Написать функцию принадлежности точки невыпуклому многоугольнику без самопересечений.

Написать функции tolowerrus и toupperrus для перевода одной русской буквы из верхнего регистра в нижний и наоборот.

 


Библиографический список

 

1. Керниган Б. Язык программирования Си / Б. Керниган, Д. Ритчи. СПб.: Невский диалект, 2001.352 с.

2. Подбельский В.В. Программирование на языке Си / В.В. Подбельский, С.С. Фомин. М.: Финансы и статистика, 2004.600 с.

3. Программирование в Си. Организация ввода-вывода: метод. указания / сост. С.П. Трофимов. Екатеринбург: УГТУ, 1998.14 с.

4. Программирование в Си. Динамическое распределение памяти: метод. указания / сост. С.П. Трофимов. Екатеринбург: УГТУ, 1998.13 с.


Поделиться с друзьями:

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.015 с.