Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ШПОРЫ КПИ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
86.48 Кб
Скачать

6.Назовите виды операторов цикла, приведите синтаксис их записи на языке С++, поясните назначение и укажите, в каких ситуациях какую конструкцию рационально использовать, приведите примеры.

while ( ) оператор; выражение оператор. Выполнение оператора начинается с выражения. (false), цикла. false, вычисления выражения Если оно истинно не равно false ), выполняется оператор цикла Если при первой проверке выражение равно false

цикл не выполнится ни разу.

do {Сначала выполняется простой или составной оператор, Затем вычисляется выражение

оператор Если оно истинно ( не равно false ), цикл выполняется еще раз.

} while ( выражение ) ; Выполнение цикла завершается, когда выражение станет равным false или в теле цикла будет выполнен оператор передачи управления break.

For (инициализация ; выражение ; модификации)

оператор ; for ( int i = 0 ; i < 10 ; i++ ) cout << i << ;′ ′

8.Перечислите основные математические функции языка С++, поясните назначение, особенности подключения и использования, приведите примеры.

Для подключения #include <cmath>.

sqrt(x) - корень квадратный (положительное значение)

log(x) - логарифм натуральный — Ln x

abs(x) - абсолютное значение целого числа

cos(x) - косинус (х в радианах)

sin(x) - синус (х в радианах)

tan(x) - тангенс (х в радианах)

pow(x,y) - х в степени у ху

1.Расскажите историю появления и развития языка С++, этапы принятия стандарта С/C++.

Язык С был разработан в 1972 Кен Томпсон и Деннис Ритчи. В 1990 году стандарт был завершен и утвержден. Язык С++ был разработан Бьерн Страуструп в 1979. первый рабочий проект в 1994 со всеми дополнения стандарт был в 1998 недавнее изменение в 2003. Состав Символы, Лексемы, выражения, операторы.

2.Запишите структуры классической С++ - программы, приведите запись общего вида программы, объясните назначение каждой части.

#директива препроцессора(указание компиляторы выполнять каике либо действия)#include <iostream>

Объявления функций using namespace std;

Описание переменных глобальных и констант

Функция main(параметры){ int main () {

Локальных переменных и констант, операторы count <<”hello and die”; return 0;

}}

4.Назовите арифметические, логические, битовые операторы, операторы отношения и комбинированные операторы, приведите способ их записи в контексте языка С++, поясните назначение и приведите примеры использования.

Логическое отрицание (!) дает в результате значение 0, если операнд есть истина (не нуль), и значение 1, если операнд равен нулю.

Поразрядное отрицание (~), часто называемое побитовым, инвертирует каждый разряд в двоичном представлении целочисленного операнда.

Операция деления применима к операндам арифметического типа.(/ и %).

Поразрядная конъюнкция или поразрядное И (&) – бит результата равен 1 только тогда, когда соответствующие биты обоих операндов равны 1.

Поразрядная дизъюнкция или поразрядное ИЛИ (| )– бит результата равен 1 тогда, когда соответствующий бит хотя бы одного из операндов равен 1.

Поразрядное исключающее ИЛИ (^ )– бит результата равен 1 только тогда, когда соответствующий бит только одного из операндов равен 1.

3.Перечислите типы данных С++, назовите правила задания имен в С++, запишите общий синтаксис объявления переменной,константы, дайте определение указанным понятиям, приведите примеры объявления переменных и констант разных типов в разных системах исчисления.

тип даны определяет:

1)представление данных в памяти компьютера

2)множества значений которые могут принимать величины этого типа.

3)операции и функции которые можно применять к этому типу.

[класс памяти(auto,extern(в др. месте рпоги),static(1 при выполнении)] [const] тип имя [инициализация];

Описание типов: int (целый) char(символьный) bool(логический) float(вещественный).

Const int a, int a, void f()

5.Назовите виды операторов разветвления, приведите синтаксис их записи на языке С++, поясните назначение и укажите, в каких ситуациях какую конструкцию рационально использовать, приведите примеры.

if ( выражение) оператор_1; [else оператор_2;] if (а < 0) b = 1;

switch ( выражение ){ switch (op){

case константное_выражение_1: [список_операторов_1] case ‘+’ : res = a+b; break

[default: операторы ]

}

7.Перечислите операторы передачи управления языка С++, дайте им характеристику, приведите примеры использования.

В С++ есть четыре оператора, которые изменяют порядок выполнения операторов:

оператор безусловного перехода goto; оператор выхода из блока break;

оп перехода к следующей итерации цикла continue; оператор возврата из функции return.

9.Поясните, каким образом осуществлять потоковый ввод/вывод информации на языке С++, назовите объекты, предназначенные для потокового ввода/вывода, основные методы, поясните назначение, особенности подключения и использования, приведите примеры.

#include <iostream> Поток - механизм преобразования значений различного типа в последовательность символов (вывод) и наоборот (ввод), в значение переменной. Помещение (направление) данных в поток вывода осуществляется с помощью оператора << который также иногда называют экстрактор (extractor).

вывести count <<”введите число”; ввода sin >>x;

10.Назовите функции, предназначенные для форматного ввода/вывода информации библиотеки cstdio, приведите синтаксис их записи на языке С, поясните особенности подключения и использования, приведите примеры. putchar()- обеспечивает вывод одиночного символа без перехода на новую строку

puts()- используется для вывода строки символов с переходом на начало новой строки

printf()- форматированный вывод данных

рrintf (<управляющая строка>,<список аргументов>);

Спецификация преобразования имеет вид:

%<флаг> <размер поля.точность> спецификация %d целое %c символ %f дробное

printf ("Стол стоит %d%s.\n", cost," руб."); 110000

вывод

getch() - ввод одиночных символов

gets() - ввод строки символов до нажатия

клавиши ENTER

scanf() - форматированный ввод

информации любого вида

scanf(<управляющая строка>,<список адресов>); scanf("%d", &i);

11.Поясните, что представляет собой строка старого типа в С++, назовите основные функции, предназначенные для работы со строками такого вида, поясните назначение, особенности подключения и использования этих функций, приведите примеры использования.

В языке С строка представляет собой массив символов, заканчивающийся нуль-символом. Нуль-символ – это символ с кодом, равным 0, что записывается в виде управляющей последовательности ‘\0'.

В языке С++ есть две возможности работы со строками:

- используя библиотечные функции языка C (заголовочный файл <string.h> или <cstring>);

- используя библиотечный класс string.Строку можно инициализировать (задать начальное значение) строковым литералом (т.е. строковой константой):Char str [10] = “Hello”;

1

11.Если строка при определении инициализируется, ее размерность можно не записывать:

char str [] = “Hello”; /* выделено и заполнено 6 байт.

Для ввода строк с клавиатуры используются две функции:

- scanf () – вводит строку до первого появления символа «пробел»;

- gets () - вводит строку содержащую пробелы до нажатия клавиши ENTER.

Для вывода строк используются функции:

- printf () – после вывода строки не переводит курсор на начало следующей строки;

- puts () – после вывода строки автоматически переводит курсор на начало следующей строки.

Обе выводят строку до появления нуль-символа.

2

13.Дайте определение понятию inline-функции языка С++, поясните, в каких случаях целесообразно использовать функции данного вида, запишите синтаксис объявления, приведите пример реализации и использования inline-функции.

Функцию можно определить как встроенную с помощью модифика- тора inline, который рекомендует компилятору вместо обращения к функции помещать ее код непосредственно в каждую точку вызова. Это целесообразно выполнять для коротких функций. Inlane тип имя ([список параметров]) { тело функции }

inline int InlineFunction ( int x ) { return x* x* x;}

14.Дайте определение рекурсивной функции на языке С++, назовите этапы разработки рекурсивной функции, поясните, в чём заключается особенность работы со стеком при вызове рекурсивной функции, запишите пример рекурсивной функции.

Рекурсивной называется функция, которая вызывает саму себя. Такая рекурсия называется прямой. Существует еще косвенная рекурсия, когда две или более функций вызывают друг друга.

long fact( long n) {

if ( n == 0 || n == 1 ) return 1;

return ( n* fact( n n-1) );

}

11. Для работы с этими функциями необходимо подключить файлы <string.h>

Программа запрашивает ввод пароля, давая не более трех попыток.

#include <iostream>

#include <string.h>

using namespace std;

Определение: Объединение (union) представляет собой частной случай структуры, все поля которой располагаются по одному и тому же адресу. Длина объединения равна наибольшей из длин его полей.

4

12.Приведите синтаксис записи пользовательской функции на языке С++. Поясните, чем отличается описание функции от объявления, что представляет собой список фактических и формальных параметров. Приведите пример пользовательской функции, имеющей список параметров и возвращающей значение, покажите, как эту функцию можно вызвать.

[класс] тип имя ([список параметров]) [throw(исключения)]{ тело функции }

Класс видимость extern – видимость везде, static – в модуле.

Тип возвращаемого функцией значения может быть любым, кроме массива и функции (но может быть указателем на массив или функцию).

Список параметров определяет величины, которые передаются в функцию.

#include < iostream >

using namespace std;

float maxsimum (float);

int main( ) {

float x, y, z; cout << "Введите числа:\n”;

cin >> x

return 0;}

11. #include <stdio.h>

#include <conio.h>

int main ( ) {

const int n=30;

char str1 [n],str2 [n];

gets (str1); //ввод строки с пробелами

scanf (“%s”, str2); //ввод до пробела

puts (str1); //вывод с переводом курсора

printf (“%s”, str2); //вывод без перевода

getch

return 0;

}

Strcpy, strrncpy - Копирование строк

Strcmp, strncmp - Сравнение строк

Strcat, strncat - Объединение строк

Strstr - Поиск подстроки

Strchr, strrchr, strpbrk - Поиск вхождения

Strlen - Определение длины строки

3

15.Назовите отличие процедуры от функции, запишите синтаксис void-функции на языке С++, принимающей в качестве параметров ссылки, поясните, в чём состоит разница при передаче аргументов по значению и по ссылке. Приведите пример описания и использования void-функции, принимающей в качестве параметров ссылки.

Функция, в отличие от процедуры, обязательно возвращает значение.

тип имя ([список параметров]) { тело функции } (void print (float r)

{

cout << "Diametr kruga raven " << 2 * r << endl;

cout << "Dlina okrushnosti ravna " << 2 * 3.14159 * r << endl;

cout << "Ploshad' kruga ravna " << 3.14159 * r * r << endl;

}

Для объявления ссылок вне функции может использоваться описатель ссылки:

int i = 0;

int &ir = i; // ir является псевдонимом i

ir = 2; // то же, что i = 2

Описатель ссылки может также использоваться для объявления в функции параметров типа ссылки:

void func1 (int i);

void func2 (int &ir); // ir имеет тип "ссылка на int"

...

int sum=3;

func1(sum); // sum передается по значению

func2(sum); // sum передается по ссылке

16.Дайте определение понятию перегруженной функции, поясните, в каких случаях целесообразно использовать перегрузку, запишите синтаксис объявления на языке С++, приведите пример реализации и использования перегруженных функций.

Использование нескольких функций с одним и тем же именем, но различными типами параметров, называется перегрузкой функций. Чтобы избежать дублирования функции, C++ позволяет вам определять несколько функций с одним и тем же именем. Перегрузка функций позволяет вам использовать одно и то же имя для нескольких функций с разными типами параметров. Для перегрузки функций просто определите две функции с одним и тем же именем и типом возвращаемого значения, которые отличаются количеством параметров или их типом.

#include <iostream.h>

int add_values(int a,int b) {

return(a + b);

)

int add_values (int a, int b, int c) (

return(a + b + c);

)

void main(void) {

cout << "200 + 801 = " << add_values(200, 801) << endl;

cout << "100 + 201 + 700 = " << add_values(100, 201, 700) << endl;

}

17.Дайте определение понятию шаблона функции, поясните, в каких случаях целесообразно использовать шаблоны функций, запишите синтаксис объявления на языке С++, приведите пример реализации и использования шаблона функции.

Функция, которая абстрагируется от типа хотя бы одного из своих параметров, называется шаблонами функций. С помощью шаблона функции можно определить алгоритм, который будет применяться к данным типов, а конкретный тип данных передается функции ввиде на этапе компиляции. различных типов параметра.

template <class|typename Туре> template <class Т> Т mах(Т а, Т b)

заголовок {{ if (а > b) return(а);

тело функции else return(b);

}}

18.Дайте определение понятию шаблона класса, поясните, в каких случаях целесообразно использовать шаблоны классов, запишите синтаксис объявления на языке С++, приведите пример реализации и использования шаблона класса.

Класс, который абстрагируется от типа хотя бы одного своего члена, называется шаблонами классов. Если возникает необходимость создавать подобные функции, отличающиеся только используемыми типами, то может возникнуть необходимость и создания общих классов. А если так, то ваши программы могут определять шаблоны классов.

template < class Туре > template<class T> class array

class имя_класса {{ public: }; array(int size);

private:

T *data; };

22.Поясните, что представляет собой поток, для чего используется, назовите виды потоков, приведите способ их записи в контексте языка С++, запишите примеры использования потоков при работе с файлами.

Поток - механизм преобразования значений различного типа в последовательность символов (вывод) и наоборот (ввод), в значение переменной. Помещение (направление) данных в поток вывода осуществляется с помощью оператора << который также иногда называют экстрактор (extractor). вывести count <<”введите число”; ввода sin >>x; Поток текстовый режим(поток записывает и читает из файла текстовые строки) и бинарный (поток записывает и читает данные любого типа). Потоки – входные, выходные, двунаправленные. Потоки – стандартные , файловые , строковые.

#include <iostream> ios::out(откр. Для записи)

#include <fstream> ios::app(добав. В конец файла)

int main() {

const int n=240;

char str[n];

ifstream fin("test.txt",ios::in(чтение) | ios::nocreate(не сущетвует выдать ощибку));

if (!fin) {

cout << "ERROR";

return 1;

}

24.Поясните, что представляет собой такой тип данных, как структура, запишите синтаксис объявления структуры, приведите примеры инициализации и использования.

Структуры в С++ используются для логического и физического объединения данных произвольных типов, так же как массивы служат для группирования данных одного типа.

struct <имя_структуры> { struct A{

тип (элементы) структуры double x;

};

Для инициализации структур значения ее элементов перечисляются в фигурных скобках worker worker; worker={“aaa”,25};

21.Перечислите виды массивов в контексте языка С++, запишите синтаксис их объявления. Поясните, в чём состоят особенности инициализации и использования массивов разных видов, приведите примеры.

Массивом называется последовательность данных одного типа с именем. общим именем. тип_элементов имя_массива [размерность]; int a [8]; int b[6][6]. В ступенчатых массивах количество элементов в разных строках может различаться. тип [][]имя_массива;

int [][] a = new int [2][]; 0 строка массив из 3 элементов a[0]=new int[3], 1 строка массив из 5 a[1]=new int[5]; 2 строка массив из 6 a[2]=new int[6];

19.Дайте определение понятию указателя, запишите синтаксис объявления, назовите операции, которые допустимо использовать применительно к указателям, приведите примеры инициализации указателей разных типов и операций, проводимых с ними.

Указатель – переменная, которая предназначена для хранения адресов областей памяти. тип *имя; int I ; int *pi char *cp(на переменную) const int *pci(цел. Константу) int *iparray[5]. Операции с указателями разадресация(*(* p = 'Ю'; a = *p;) присваивание сложение с константой вычитание(shot * p = new shot [5]; p++;) инкремент декремент сравнение приведение типов.

20.Назовите операторы, предназначенные для выделения памяти под переменную в процессе работы программы и освобождения памяти, приведите способ их записи в контексте языка С++, поясните порядок динамического выделения и освобождения памяти под переменные и массивы, приведите примеры.

int *n=new int; int *m=new int(10). int *q=new int[10] Тут new выполняет выделение из памяти под 10 величин типа int (маисва) и записывает адрес начала этого участка в переменную q которая трактуется как имя массива.

Освобождение памяти выделенной с помощью операции new выполняется с помощью операции delete. Delete n; delete m; delete []q

23.Запишите имена функций, предназначенных для ввода/вывода в файл в контексте языка с, поясните их назначение, особенности подключения и использования, приведите примеры.

Сначала надо создать указатель на переменную типа FILE:FILE FILE*FILE. FILE *fopen (const char *fname, const char *mode);

Прототипы функций для работы с файлами содержатся в заголовочном файле <stdio.h>. Запись и считывание данных из файла осуществляется следующими функциями:fputc(символ в файл) fputs(строку в файл) fgetc(символ из файла) fgets(строку из файла) printf(форматированный ввод) fscanf(чтение из ф в соответствие с форматом). fscanf(in, "%c", &c);

printf("%c\n", c);

out=fopen("text.txt","w");

fputs(str,out); // пишем строку в файл

fclose(out);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]