Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга C++.doc
Скачиваний:
24
Добавлен:
10.11.2019
Размер:
2.48 Mб
Скачать

Домашнее задание

  1. Напишите программу, которая определяет, принадлежит ли точка заданной области. При реализации используйте механизм указателей на функции, каждая из которых определяет принадлежность точки какой-то одной области, то есть одна функция описывает квадрат, другая ромб, третья окружность и так далее. Интерфейс пользователя оформите в виде текстового меню.

  2. Создайте структуру, описывающую точку в двумерной системе координат (x,y). С помощью этой структуры задайте две точки. Будет ли прямая, проходящая через эти точки параллельна оси ординат? Оси абсцисс?

  3. Создайте структуру, описывающую точку в трехмерной системе координат (x,y,z). Найдите расстояние между двумя точками.

Расстояние между точками — √((x1−x2)2 + (y1−y2)2 + (z1−z2)2).

  1. Создайте структуру Время с элементами Часы, Минуты. Сохраните в ней введенное пользователем с клавиатуры время в американском формате (например, 5:30PM). (Т.е. для того чтобы сохранить время, Вам придется преобразовать его к формату часы:минуты, например, 17:30). Выведите результат на экран.

  2. Создайте структуру, описывающую дробь. Реализуйте арифметические операции с дробями:

    • сумму

    • разность

    • частное

    • произведение

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

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

На этой неделе у Вас консультация, поэтому урока и домашнего задания не будет.

Желаем успехов в Вашей подготовке!

Тест по c Группа ___________________ф. И. О. ______________________

Вопрос 1. Отметьте правильное использование оператора cout:

a) сout << “Hello world!!!\\\”;

d) cout << ‘Hello world!!! \n’;

b) cout << “Hello “ << “world!!!”<< “\\\n”;

e) cout << Hello world!!!\n;

c) cout >> “Hello “ << “world!!! \\n”;

Вопрос 2. Отметьте тот вызов функции, который не содержит синтаксических ошибок:

a) my_func(int& a, int b);

d) my_func(&x, y);

b) void my_func(a, b);

e) my_func(i)

c) my_func(++&x, y);

Вопрос 3. Если int А[3] ={1,3}; то после выполнения int с = (++*(A+2))++;

a) c = 0

d) c = 4

b) c = 1

e) c = 6

c) c = 2

Вопрос 4. Что выведется на экран после выполнения следующего фрагмента кода:

int *p = new int, *q = new int;

*p = 255;

*q = 128;

delete p;

p = q;

*p = 64;

cout << “*p = “ << *q << “ *q = “ << *p;

delete p;

a) *p = 128 *q = 64

d) ошибка на этапе компиляции

b) *p = 64 *q = 64

e) ошибка на этапе выполнения

c) *p = 128 *q = 128

Вопрос 5. Чему будет равно z после выполнения следующего фрагмента кода?

int z = 1, y;

for( y=-1; y++ < 2; y-- )

z += y++;

cout << z;

a) z = 0

d) z = 3

b) z = 1

e) z = 4

c) z = 2

Вопрос 6. Исходя из приведенного ниже кода, как можно присвоить ячейке памяти, на которую указывает p значение y+1?

char y = 'A'; char *ptrY;

a) ptrY = &y + 1;

d) *ptrY = y + 1;

b) *ptrY = &y + 1;

e) *ptrY = *y + 1;

c) ptrY = (char *)(y + 1);

Вопрос 7. Чему будет равно значение x?

double x; x = 17 % 3 + 1 % 2;

a) 0

d) 3

b) 1

e) 4

c) 2

Вопрос 8. Для следующего фрагмента программы укажите возможный прототип функции f():

float *x = new float(5);

float y[] = {4.6, 8, *x};

f(*x, y);

a) void f(float*, float*);

d) void f(float, float);

b) void f(float*, float);

e) ошибка компиляции

c) void f(float, float*);

Вопрос 9. Что будет выведено на экран в результате выполнения следующего фрагмента кода?

char buffer[] = "0123456789";

char *ptr = buffer;

ptr += 5;

cout<<1+ptr++<<endl ;

cout<<++ptr[ptr – buffer - 5]<<endl ;

a) 6789

7

d) 789

9

b) 6789

8

e) 789

8

c) 6789

9

Вопрос 10. Что будет выведено на экран в результате выполнения следующего фрагмента кода?

cout << "What output \\0\0n do \you\ expect\?";

a) What output \\0\0n do \you\ expect?

d) What output \0

b) What output \\0\0

do \you\ expect?

e) ошибка компиляции

c) What output \\0\0

Вопрос 11. Чему будет равно значение переменной z после выполнения следующего фрагмента кода?

int x = -1, y;

for(y = 10; y > 5; --y)

++x;

int z = y * ++x;

a) 0

d) 30

b) 20

e) ошибка компиляции

c) 25

Вопрос 12. Чему будет равно значение переменной z после выполнения следующего фрагмента кода?

int a[] = { 3, 5, 3.4, 67.6, 55, -40.64, -1 };

int *b = &a[6];

int z = *(b - 3);

a) –1

d) 67.6

b) 55

e) 3.4

c) 67

Вопрос 13. Укажите правильные вызовы функции func():

void func(int * a, double * d)

{

}

a) int i, *ptr1=&i;

double pi, *ptr2=π

func(*ptr1, *ptr2);

d) int i, *ptr1=&i;

double pi, *ptr2=π

func( ptr1, ptr2);

b) int i;

double pi;

func(*i, *pi);

e) int i;

double pi;

func( &a, &pi);

c) int i, *ptr1=&i;

double pi, *ptr2=π

func( &ptr1, &ptr2);

Вопрос 14. Что будет выведено на экран в результате выполнения следующей программы?

#include <iostream.h>

void Swap(int *x, int& y)

{

int temp;

temp = *x; *x = y; y = temp;

}

void main()

{

int x = 4, y = 9;

Swap(x,y);

cout << x << “ ” << y;

}

a) 4 4

d) 9 9

b) 4 9

e) ошибка компиляции

c) 9 4

Вопрос 15. Определите значение переменной ref.

int i = -7;

int& ref = i;

int *p = &++ref;

*p += i /3;

a) –9

d) –7.6666666

b) –8

e) ошибка компиляции

c) –7

Вопрос 16. Чему будет равно значение переменной x после выполнения следующего фрагмента кода?

int x = 1, i =- 4;

do{ x+=i; } while((i += 2) < 4);

a) –5

d) 1

b) –3

e) 3

c) –1

Вопрос 17. Для массива int a[2][3] укажите правильные объявления указателя на массив:

a) int **p;

d) void *p[3];

b) int *p[3];

e) void *p;

c) int (*p)[3];

Вопрос 18. Чему будет равно значение переменной i после выполнения следующего фрагмента кода?

for(int i = 1 ; i > -5; I--)

{

if(i % 3) i--;

if(i % 2) break;

else i--;

}

a) –4

d) –1

b) –3

e) 0

c) –2

Вопрос 19. Чему будет равно значение переменной i после выполнения следующего фрагмента кода?

int i = -3, a = -3;

while(a-i)

a = i++;

a) –3

d) 4

b) 0

e) не определено

c) 3

Вопрос 20. Чему будет равно значение переменной i после выполнения следующего фрагмента кода?

enum Season{Winter = 7, Spring = 6, Summer, Autumn};

int i = Summer;

cout << i;

a) 0

c) не определено

b) 2

d) ошибка на этапе компиляции

c) 7