
- •Вопрос 1. История языков программирования от машинного кода до современных языков структурного программирования.
- •Вопрос 3. Понятие о синтаксисе языка программирования. Основные типы данных языка с.
- •Вопрос 14. Цикл с выходом из середины. Привести блок схемы и примеры реализации.
- •Вопрос 15. Итерационные алгоритмы. Привести примеры реализации итерационных алгоритмов в задачах вычисления суммы бесконечного ряда с заданной точностью (нет ничего)
- •Вопрос 21. Область видимости и "время жизни" переменных. Использование статических переменных в функции. Привести примеры.
- •Void Swap ( int &a, int &b ) // ссылки в заголовке
- •2) Массив можно заполнить, вводя элементы массива с клавиатуры:
- •Вопрос 26. Что такое вложенные циклы? Проанализировать работу программы, содержащей вложенные циклы.
- •Int MyArray1 [ 10 ]; // Одномерный массив размерности 10
- •Int MyArray2 [ 20 ][ 10 ]; // 20 одномерных массивов
- •Int MyArray3 [ 30 ][ 20 ][ 10 ]; // 30 двумерных массивов
- •Вопрос 36. Функции сравнения строк. Проиллюстрировать работу функций на примерах
- •Вопрос 37. Функции преобразования числа в цифровую строку и обратно. Проиллюстрировать работу функций на примерах.
- •Int value; //Запись &value означает «адрес объекта value».
- •1) С использованием имени переменной.
- •2) С использованием адреса переменной.
- •Int *ap [15]; // Массив из 15 указателей на int
- •Вопрос 40. Передача массивов в качестве параметров в функцию. Привести пример передачи массива вещественных чисел в функцию, вычисляющую сумму его элементов.
- •Вопрос 41. Статическое и динамическое выделение памяти. Операторы new и delete.
- •Вопрос 44. Привести пример реализации алгоритма обработки и преобразования матриц, используя динамическое выделение памяти и технику работы с указателями.
- •Вопрос 45. Понятие структуры. Описание, инициализация структур. Доступ к полям структур. Примеры использования структур.
- •Вопрос 46. Массивы структур. Привести пример обработки массива структур.
- •Вопрос 47. Передача структур в качестве параметров в функцию. Привести пример функции, обрабатывающей структуру.
- •Передача целых структур функциям
- •Вопрос 48. Указатели на структуру. Использование структур с функциями. Передача структуры в функцию по значению, по ссылке и с использованием техники работы с указателями
- •Объявление указателя на структуру
- •Использование указателей на структуры
2) Массив можно заполнить, вводя элементы массива с клавиатуры:
for (int i = 0; i < 12; ++i) cin >> month [i];
Обработка массива:
получение суммы элементов массива;
поиск максимума, минимума и других задаваемых значений;
сортировка массива;
выполнение однотипных действий над всеми элементами массива.
Пример использования: Вычисление суммы элементов массива вещественных чисел
#include "stdafx.h"
#include <iostream>
using namespace std;
int main (void)
{ double v [10] = { 1, 2, 3, 4, 5, 6 };
unsigned int n = sizeof (v) / sizeof (double) ;
double s = 0 ;
for ( int i = 0; i < n; ++i ) s += v [ i ] ;
cout << “Summa =“ << s << endl;
return 0;
}
Вопрос 25. Одномерные массивы: последовательный поиск элементов в массивах и его организация на языке С/C++.
Нахождение минимального элемента массива
#include "stdafx.h"
#include <iostream>
using namespace std;
int main (void)
{ int mas [ 6 ] = { 1, 2, 3, 4, 5, 6 };
int min = mas [ 0 ];
for ( int i = 0; i < 6; ++i )
if ( mas [ i ] < min)
min = mas [ i ] ;
cout << “min = “ << min << endl;
return 0;
}
Нахождение максимального элемента массива
#include "stdafx.h"
#include <iostream>
using namespace std;
int main (void)
{ int mas [ 6 ] = { 1, 2, 3, 4, 5, 6 };
int max = mas [ 0 ];
for ( int i = 5; i > 0; i-- )
if ( mas [ i ] > max)
max = mas [ i ] ;
cout << “max = “ << max << endl;
return 0; }
Нахождение числа элементов массива, больших заданного значения
#include "stdafx.h"
#include <iostream>
using namespace std;
int main (void)
{ int mas [ 6 ] = { 1, 2, 3, 4, 5, 6 }, N, k = 0;
cout << “Введите значение N “ << endl;
cin >> N;
for ( int i = 0; i < 6; ++i )
if ( mas [ i ] > N)
k++;
cout << “k = “ << k << endl;
return 0;
}
Нахождение индекса первого элемента массива, меньшего заданного значения
#include "stdafx.h"
#include <iostream>
using namespace std;
int main (void)
{ int mas [ 6 ] = { 1, 2, 3, 4, 5, 6 }, N, k = 5;
cout << “Введите значение N “ << endl;
cin >> N;
while ( k > = 0 )
{ if ( mas [ k ] < N)
d = k;
N--; }
cout << “k = “ << k << endl;
return 0; }
Вопрос 26. Что такое вложенные циклы? Проанализировать работу программы, содержащей вложенные циклы.
В языке Си нет особого подхода к вложенным циклам. Как и в других языках программирования, в Си рассматриваются внутренние и внешние циклы. Их-то и называют вложенными. Если один цикл находится внутри другого цикла, то первый цикл называют внутренним, а второй - внешним. Подобные циклы Вы чаще всего можете встретить при работе с таблицами. Например, простейшей таблицей, как известно, является таблица умножения: 2 х 2 = 4 и так далее. Рассмотрим соответствующую задачу.
Пример:
Получить на компьютере таблицу умножения натуральных чисел.
Программу написать в языке Си.
Программа для решения данной задачи предствлена Вам ниже. Здесь разными цветами раскрашены важные части программы. Сделано это для большей наглядности и лучшего восприятия отдельных ее частей: описательной части программы, подготовительного этапа, внешнего и внутреннекго циклов и заключительной части программы.
Так, начало программы, в котором указаны блоки, из которых извлекаются в дальнейшем готовые библиотечные подпрограммы языка Си, окрашено в темносерый (черный) цвет.
Далее: описательная часть программы, в которой описаны все переменные, использованные в задаче, окрашена в зеленый цвет.
Следующая часть содержит начало внешнего цикла. Она окрашена в красный цвет. Вы видите, что все команды, находящиеся внутри внешнего цикла и относящиеся к внутреннему циклу, окрашены в синий цвет.
Внимательно присмотритесь: внешний цикл имеет продолжение за внутренним циклом. Поэтому Вы видите снова красный цвет команд, относящихся к внешнему циклу.
Заключительная часть программы снова окрашена в зеленый цвет. Отсюда видно, что наиболее важные части программы, содержащие внешний и внутренний циклы, выделены особо красным и синим цветом!
#include <stdio.h>
#include <windows.h>
#include <conio.h>
main()
{
char str[50];
int i,j; // счетчики циклов: внешнего и внутреннего
// Очистить экран
textbackground(4);
textcolor(15);
clrscr();
// Внешний цикл
for(i=1;i<10;i++)
{
// Внутренний цикл
for(j=1;j<5;j++)
{
printf("%d * %d = %d", i, j, i*j);
printf("\n");
}
printf("\n");
}
CharToOem("\nДля выхода нажмите любую клавишу", str);
printf(str);
getch();
}
Вопрос 27. Алгоритм пузырьковой сортировки и его реализация на языке С/C++.
#include <iostream>
using namespace std;
int main()
{
const int arraysize = 10; int hold;
int array [arraysize] = {7, 12, 100, 1, 78, 1234, 3, 18900, 512, 5021};
int hold;
//выводим на экран исходный неотсортированный массив
for (int i = 0; i < arraysize; i++)
cout << array [ i ] << "; ";
cout << endl << endl;
for (int j = 1; j < arraysize; j++)
for (int k = 0; k < arraysize - 1; k++)
if ( array [ k ] > array [ k + 1 ] ) { hold = array [ k ]; array [ k ] = array [ k + 1 ]; array [ k + 1 ] = hold; }
//выводим на экран отсортированный массив
for (int i = 0; i < arraysize; i++)
cout << array [ i ] << "; ";
cout << endl << endl;
return 0;
}
Вопрос 28. Алгоритмы перестановок элементов массива и их реализация на языке С/C++.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main (void)
{ int days [ ] = { 1, 2, 3, 4, 5, 6, 7, 8 }, i, n, tmp;
int n = sizeof ( days ) / sizeof ( int ) ;
for ( i = 0; i < (n/2); ++i )
{
tmp = days [ i ] ;
days [ i ] = days [ n – i – 1 ] ;
days [ n – i – 1 ] = tmp;
}
for ( i = 0; i < n; ++i )
cout << days [ i ] << endl;
return 0;
}
Вопрос 29. Двумерные массивы: объявление, инициализация, использование. Привести пример реализации какого-либо алгоритма обработки и преобразования матриц на языке С/C++.
Двумерный массив - это массив одномерных массивов. Двумерный массив объявляется следующим образом:
тип имя_массива[размер второго измерения][размер первого измерения];
Следовательно, для объявления двумерного массива целых с размером 10 на 20 следует написать:
int d[10] [20] ;
Инициализация:
спецификатор типа имя_массива [размерN] ... [размер1] = {список значений};
Вопрос. 30 Понятие о многомерных массивах. Привести пример инициализации элементов многомерных массивов на языке С/C++.
Многомерные массивы в C++ рассматриваются как массивы, элементами которых являются массивы.
Определение многомерного массива должно содержать информацию о типе, размерности и количестве элементов каждой размерности.