
- •Вопрос 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. Указатели на структуру. Использование структур с функциями. Передача структуры в функцию по значению, по ссылке и с использованием техники работы с указателями
- •Объявление указателя на структуру
- •Использование указателей на структуры
Int MyArray1 [ 10 ]; // Одномерный массив размерности 10
Int MyArray2 [ 20 ][ 10 ]; // 20 одномерных массивов
// размерности 10
Int MyArray3 [ 30 ][ 20 ][ 10 ]; // 30 двумерных массивов
// размерности 20*10.
Элементы многомерного массива располагаются в памяти в порядке возрастания самого правого индекса, т.е. самый младший адрес имеют элементы
MyArray1[0], MyArray2[0][0], MyArray3[0][0][0]
затем идут элементы
MyArray1[1], MyArray2[0][1], MyArray3[0][0][1]
Инициализация элементов многомерных массивов
Многомерный массив подобно одномерному массиву может быть проинициализирован с помощью списка инициализаторов. Первыми инициализируются элементы с самыми маленькими индексами:
int MyArray[3][3][3] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
Начальные значения получают следующие элементы трёхмерного массива:
MyArray[0][0][0] == 0
MyArray[0][0][1] == 1
MyArray[0][0][2] == 2
MyArray[0][1][0] == 3
MyArray[0][1][1] == 4
MyArray[0][1][2] == 5
MyArray[0][2][0] == 6
MyArray[0][2][1] == 7
MyArray[0][2][2] == 8
MyArray[1][0][0] == 9
MyArray[1][0][1] == 10
MyArray[1][0][2] == 11
Вопрос 31. Символы. Стандартные кодовые таблицы символов. Приведите известные вам кодировки символов. Привести примеры обработки символов с использованием библиотечных функций на языке С/C++.
Вопрос 32. Символьные строки. Два эквивалентных способа объявления и инициализации строк. Привести примеры обработки строк в С/C++.
Строки в С++ позволяют работать с символьными данными.
В С++ существует 2 типа строк.
1. Это массив переменных типа char.
Переменная типа char хранит в себе 1 символ. Размер такой строки равняется размеру
массива - 1, т.к. последний элемент содержит NULL (пустая переменная без значения),
который обозначает символ конца строки.
Например:
char name[ 50];
cin>>name;
cout<<"Hello "<<name<<endl;
2. Это специальный класс string.
Для его работы необходимо в начале программы подключить заголовочный файл string:
#include <string>
В отличие от типа char, string является классом. Для создания строки вам необходимо в
начале программы написать
using namespace std;
Теперь, чтобы создать строку достаточно написать:
string s;
Для записи в строку можно использовать оператор “=“:
s="Hello";
Пример работы с классом string:
string name;
cout<<"Enter your name"<<endl;
cin>>name;
cout<<"Hi "<<s<<“!"<<endl;
Строка при объявлении может быть инициализирована
начальным значением, например, так:
char string [10] = "abcdefghf";
Если подсчитать кол-во символов в двойных кавычках,
их окажется 9, а размер строки 10 символов.
Последнее место отводится под нуль–символ, причём
компилятор сам добавит его в конец строки.
Посимвольная инициализация строки:
char string [10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'f', '\0'};
При объявлении строки не обязательно указывать её
размер, но при этом обязательно нужно её
инициализировать начальным значением. Тогда размер
строки определится автоматически и в конец строки
добавится нуль-символ.
Инициализация строки без указания размера:
char string[ ] = "abcdefghf";
Вопрос 34. Алгоритмы копирования строк, реализованные через массивы и стандартные строковые функции языка С/C++.
char *s1, *s2;
char * strcpy (s1, s2);
создаёт копию строки S2 по адресу S1
char *s1, *s2; int n;
char * strncpy (s1, s2, n);
по адресу S1 копируется не более n
символов строки S2
Пример:
#include "stdafx.h"
#include <iostream>
#include <cstring>
// для strcpy()
using namespace std;
int main ()
{
char str1[ ] = "Я программист";
char str2[40];
char str3[80];
strcpy (str2, str1);
// копируем строку str1 в str2
strcpy (str3, “копирование выполнено успешно \n");
// копируем строку во втором параметре в str3
cout << "str1: " << str1 << "\n str2: " << str2
<< "\n str3: " << str3;
return 0;
}
Вопрос 35. Функции поиска одиночного символа и подстроки в строке. Проиллюстрировать работу функций в С/C++ на примерах.
char* s; int c;
char* strchr (s, c);
поиск первого вхождения символа с в строке s. В случае удачного поиска возвращает указатель на место первого вхождения символа с, а если не находит, то возвращает NULL (пустой указатель).
char *s1, *s2;
char* strstr (s1, s2);
функция ищет в строке s1 подстроку S2 и возвращает на нее указатель или NULL, если не
найдено.
Пример:
#include "stdafx.h"
#include <iostream>
#include <cstring>
// для strchr()
using namespace std;
int main ()
{
char lotr[ ] = "_- =Властелин к0лец =-_";
// строка в
// которой будем искать символ 0
cout << "Ищите кольцо всевластия в LOTR!!!\n";
char * ring = strchr(lotr, '0'); // поиск символа 0 в строке lotr
cout << "Моя прелесть находится в " << (ring - lotr + 1)
<< " квадрате\n"; // определяем позицию символа
return 0;
}