- •Операторы языка высокого уровня
- •Программирование рекурсивных алгоритмов
- •Списки : основные виды и способы реализации
- •Способы конструирования программ
- •Унифицированный процесс разработки оо пс
- •Структурное программирование Методы структурного анализа
- •Модульное программирование
- •Организация процесса тестирования в структурном программировании
- •Применение моделей в структурном анализе
- •Структурное проектирование Мои задания Технология программирования и этапы ее развития
- •2. Какие из утверждений являются ошибочными?
- •3. В процессе обработки потока сообщений выполняются следующие действия:
- •4. Расположите в правильном порядке этапы развития программирования:
- •5. Отметьте характерные черты стихийного этапа развития программирования:
- •6. Отметьте характерные черты структурного программирования:
- •6. Отметьте характерные черты объектно-ориентированного программирования:
- •7. Отметьте характерные черты компонентного программирования:
- •Жизненный цикл и этапы разработки по
- •Технологичность программных продуктов
- •Постановка задачи
- •Анализ требований и определение спецификаций
- •Проектирование по
- •79. Для списковых структур данных характерно:
- •89. Диаграмма размещения показывает:
- •Пользовательский интерфейс
- •Этап реализации по
- •206. Какие из следующих утверждений верны:
- •Структуры данных
- •Компонентные технологии
89. Диаграмма размещения показывает:
состав и взаимосвязи частей ПО на логическом уровне,
состав и взаимосвязи частей ПО на физическом уровне,
взаимосвязи между программными и аппаратными компонентами системы,
состояния объекты, переходы, события и сообщения,
отношения между классами, интерфейсы, атрибуты, операции и ограничения классов,
потоки данных между объектами,
взаимодействие объектов, упорядоченное по времени.
Ответ: 3.
Пользовательский интерфейс
90. Какие компоненты графического пользовательского интерфейса можно использовать для вывода текста на экран без возможности редактирования:
Label,
Edit,
Memo,
Button,
CheckButton,
RadioGroup,
ListBox,
ComboBox.
Ответ: 1, 7.
91. Какие компоненты графического пользовательского интерфейса можно использовать для вывода текста на экран с возможностью редактирования:
Label,
Edit,
Memo,
Button,
CheckButton,
RadioGroup,
ListBox,
ComboBox.
Ответ: 2, 3, 8.
92. Какие компоненты графического пользовательского интерфейса можно использовать для выбора одного варианта из списка:
Label,
Edit,
Memo,
Button,
CheckButton,
RadioGroup,
ListBox,
ComboBox.
Ответ: 6, 7, 8.
93. Какие компоненты графического пользовательского интерфейса можно использовать для выбора нескольких значений из списка:
Label,
Edit,
Memo,
Button,
CheckButton,
RadioGroup,
ListBox,
ComboBox.
Ответ: 7.
94. Какие компоненты графического пользовательского интерфейса можно использовать для ввода-вывода текстовой информации:
Label,
Edit,
Memo,
Button,
CheckButton,
RadioGroup,
ListBox,
ComboBox.
Ответ: 2, 3, 7, 8.
Этап реализации по
Структурное программирование в C++
95. Может ли определение одной функции включать объявления других функций?
Ответ: нет.
96. Если не указать тип возвращаемого значения, то по умолчанию считается, что функция возвращает значение типа …
Ответ: int.
97. Объявление функции представляет собой
заголовок функции,
программный код реализации функции.
Ответ: 1.
98. Определение функции представляет собой
заголовок функции,
программный код реализации функции.
Ответ: 2.
99. Если функция не возвращает никакого значения, то следует указать тип …
Ответ: void.
100. Допустимо ли следующее объявление функции
void myFunction (char *strMessage, . . . ) ;
Ответ: да.
101. Допустимо ли следующее объявление функции
int Max (int a,b) ;
Ответ: нет.
102. Вызов функцией самой себя называется …
Ответ: рекурсивный вызов.
103. Константа 1.256e6 имеет тип
char;
int;
float;
double;
Ответ: 4
104. Константа .69e7f имеет тип
char;
int;
float;
double;
Ответ: 3
105. Константа 1.256e-6L имеет тип
char;
long int;
long float;
long double;
Ответ: 4
106. Чему равно значение переменной, объявленной int i=010;, в десятичной системе счисления?
Ответ: 8.
107. Чему равно значение переменной, объявленной int i=0x10; , в десятичной системе счисления?
Ответ: 16.
108. Что означают символы UL в операторе присваивания FilePosition=45642UL;?
Ответ: unsigned long.
109. Как объявить переменную типа «Целое без знака в диапазоне (0-255)»?
Ответ: unsigned char.
110. Как объявить переменную типа «Длинное целое без знака»?
Ответ: unsigned long int.
111. Как объявить переменную типа «Короткое целое без знака»?
Ответ: unsigned short int.
112. Какая из символьных констант означает «Возврат каретки»?
'\n'
'\r'
'\t'
'\v'
'\b'
'\f '
'\\'
Ответ: 2.
113. Какая из символьных констант означает «Горизонтальная табуляция»?
'\n'
'\r'
'\t'
'\v'
'\b'
'\f '
'\\'
Ответ: 3.
114. Какое значение будет выведено на экран оператором, помеченным цифрой 6?
int i=16;
void рrос()
{
int i=l;
printf ("\n\t Proc: i=%d",i); //1
printf ("\n\t Proc: global i=%d",::i); //2
{
int i=2;
printf ("\n\t Proc: i=%d",i); //3
printf ("\n\t Proc: global i=%d",::i); //4
}
::i=i;
}
void main ()
{
printf ("\n\t Main: i=%d",i); //5
рrос();
printf ("\n\t Main: i=%d\n",i); //6
}
Ответ: 1.
115. Какое значение будет выведено на экран оператором, помеченным цифрой 4?
int i=16;
void рrос()
{
int i=l;
printf ("\n\t Proc: i=%d",i); //1
printf ("\n\t Proc: global i=%d",::i); //2
{
int i=2;
printf ("\n\t Proc: i=%d",i); //3
printf ("\n\t Proc: global i=%d",::i); //4
}
::i=i;
}
void main ()
{
printf ("\n\t Main: i=%d",i); //5
ргос();
printf ("\n\t Main: i=%d\n",i); //6
}
Ответ: 16.
116. Какое значение будет выведено на экран оператором, помеченным цифрой 3?
int i=16;
void рrос()
{
int i=l;
printf ("\n\t Proc: i=%d",i); //1
printf ("\n\t Proc: global i=%d",::i); //2
{
int i=2;
printf ("\n\t Proc: i=%d",i); //3
printf ("\n\t Proc: global i=%d",::i); //4
}
::i=i;
}
void main ()
{
printf ("\n\t Main: i=%d",i); //5
ргос();
printf ("\n\t Main: i=%d\n",i); //6
}
Ответ: 2.
117. Какие идентификаторы из перечисленных недопустимы?
X1,
Парам,
100_min,
Max Value,
Min_Value,
_strVal,
nCount%,
while.
Ответ: 2, 3, 4, 7, 8.
118. Сколько знаков в идентификаторе различает C++?
Ответ: 31.
119. Различаются ли заглавные и строчные буквы в идентификаторах?
Ответ: да.
120. Чему равно значение переменной i?
int x = 0;
int i = (х<0) ? -1 : (х>0) ? 1 : 0;
Ответ: 0.
121. Чему равно значение переменной i?
int x = 1;
int i;
switch (x)
{
case 1: i=1;
case 2: i+=x;
default: ++i;
}
Ответ: 3.
122. Чему равно значение переменной i?
int x = 0;
int i=1;
while (x)
{
i++;
}
Ответ: 1.
123. Чему равно значение переменной i?
int x = 10;
int i=0;
while (x)
{
x--;
i++;
}
Ответ: 10.
124. Чему равно значение переменной i?
int x = 0;
int i=1;
while (!x)
{
x--;
i++;
}
Ответ: 2.
125. Чему равно значение переменной i?
int x = 0;
int i=1;
do
{
i++;
} while (x);
Ответ: 2.
126. Чему равно значение переменной i?
int x = 10;
int i=0;
do
{
x--;
i++;
} while (x);
Ответ: 10.
127. Чему равно значение переменной i?
int x = 0;
int i=1;
do
{
x--;
i++;
} while (!x);
Ответ: 2.
128. Сколько раз выполнится цикл?
for (int i=0; i< 10; i++)
{
i++;
}
Ответ: 5.
129. Допустима ли такая форма записи оператора цикла?
for (int i=0, x=0; !x; i++,x=(i%3)?x:++x);
Ответ: да.
130. Чему равно значение переменной i?
for (int i=0, x=0; !x; i++,x=(i%3)?x:++x);
printf("i=%d x=%d\n",i,x);
Ответ: 3.
131. Чему равно значение переменной i?
int i=64; i>>=4;
Ответ: 4.
132. Чему равно значение переменной i?
int i=64; i<<=2;
Ответ: 256.
133. Каким символом обозначается операция поразрядного сложения (ИЛИ)?
Ответ: |.
134. Каким символом обозначается операция поразрядного умножения (И)?
Ответ: &.
135. Каким символом обозначается операция поразрядного исключающего ИЛИ (сложение по модулю 2)?
Ответ: ^.
135. Каким символом обозначается операция поразрядного отрицания (НЕ)?
Ответ: ~.
136. Что будет выведено на экран при x=2?
if ((x>=-1)&&(x<=1)&&(x!=0) || (x=3)) puts("true");
else puts("false");
Ответ: true.
137. Что будет выведено на экран?
int k=0;
int M[8]={ 1,-2,3,-4,5,-6,7,-8 };
double p=3.14195;
printf("M[%d]=%d, P=%6.2f, k=%d\n",1,M[1],p,k);
Ответ: M[1]=-2, P=3.14, k=0
138. Чему равно значение элемента массива a[3]?
float a[16],*p; for (int i=0; i<16; i++)
a[i]=float(i*i); p = &а[6]; *р = 3.14f; p++; а[1] = *(р+3); а[2] = ++*р; а[3] = *++р;
Ответ: 64
139. Чему равно значение элемента массива a[6]?
float a[16],*p: for (int i=0; i<16; i++)
a[i]=float(i*i); p = &а[6]; *р = 3.14f; p++; а[1] = *(р+3); а[2] = ++*р; а[3] = *++р;
Ответ: 3.14
140. Отметьте операторы, которые вызовут ошибку компиляции, если указатель объявлен следующим образом:
const char * title = "Diagram";
title[0]='d';
title="Function W(p)";
Ответ: 1
141. Отметьте операторы, которые вызовут ошибку компиляции, если указатель объявлен следующим образом:
char * const title = "Diagram";
title[0]='d';
title="Function W(p)";
Ответ: 2
142. Отметьте операторы, которые вызовут ошибку компиляции, если указатель объявлен следующим образом:
const char * const title = "Diagram";
title[0]='d';
title="Function W(p)";
Ответ: 1, 2
143. Эквивалентны ли следующие фрагменты программы?
float *р = new float[n];
И
float *р;
р = new float [n];
Ответ: да.
144. Каким оператором освобождается память, выделенная оператором new?
Ответ: delete.
145. Напишите оператор для освобождения памяти, на которую указывает переменная p.
float *р = new float[n];
Ответ: delete [] p;.
146. Напишите оператор для освобождения памяти, на которую указывает переменная p.
float *р = new float;
Ответ: delete p;.
147. Значение какого элемента массива a [2][3] изменится?
int a[2][3] = { {1,2,3},
{4,5,6}};
**(a+1) = 8;
Ответ: a[1][0].
148. Значение какого элемента массива a [2][3] изменится?
int a[2][3] = { {1,2,3},
{4,5,6}};
*(*(a+1) + 1) = 9;
Ответ: a[1][1].
149. Какой тип данных имеет переменная a, если объявлен массив double a[10][10]:
double,
double *,
double **,
double ***.
Ответ: 3.
150. Какой тип данных имеет объект a[2][0], если объявлен массив double a[3][10][5]:
double,
double *,
double **,
double ***.
Ответ: 2.
151. Верны ли равенства, если объявлен массив double a[3][10]:
а==&а[0]; а[0]==&а[0][0];
Ответ: да
152. Сколько ошибок содержит фрагмент программы?
typedef struct
{
int nCode;
char aValue[30];
} Entry;
Entry IdEntry,*pId;
IdEntry.nCode=100;
strcpy(IdEntry.aValue,"string");
pId=&IdEntry;
printf("nCode=%d aValue=%s",pId.nCode,pId.aValue);
Ответ: 2
153. Переменная какого типа объявлена в данном случае
typedef enum rank { captain=7, major=8, colonel=12 } rang;
Ответ: перечислимый, rank.
154. Какое значение имеет элемент перечисления excellent?
enum grades { bad=3, good, excellent } g[20], next;
Ответ: 5.
155. Укажите идентификаторы переменных, которые объявлены в данном случае
enum rank {captain, major, colonel} rang;
Ответ: rang.
156. Переменная какого типа объявлена в данном случае
int i=5, &r=i;
Ответ: ссылка, ссылка на int, ссылка на тип int.
157. Какое значение будет выведено на экран
int i=5, &r=i;
i++;
r*=2;
printf(“%d”,i);
Ответ: 12.
158. Как называет такой способ передачи параметров
void swap (int *x, int *y)
{
int temp =*x;
*х = *у;
*у = temp;
}
Ответ: #адрес#, #address#
159. Как называет такой способ передачи параметров
void swap (int &x, int &y)
{
int temp =x;
х = у;
у = temp;
}
Ответ: #ссылк#, #reference#
160. Как называет такой способ передачи параметров
void min (int x, int y)
{
return (x>y)?y:x;
}
Ответ: #значен#, #value#
161. Укажите правильные способы вызова функции void swap (int *, int *);
swap (&a, &b);
swap (a, b);
Ответ:1.
162. Укажите правильные способы вызова функции void swap (int &, int &);
swap (&a, &b);
swap (a, b);
Ответ:2.
163. Отметьте корректные вызовы, если сделаны следующие объявления:
int Young (float *field, int size, double factor = 1.95, char *mes = "Relaxation Procedure");
float data[1000]; char *slow = "Slow Convergence";
Young (data);
Young (data, 1000);
Young (data, 1000, 1.8);
Young (data, 1000, 1.8, slow);
Young (data, 1000, , slow);
Ответ: 2, 3, 4.
164. В программе объявлены переменные
char *fn = "test.txt";
FILE *fp;
Напишите, каким образом открыть текстовый файл “test.txt” в режиме чтения.
Ответ: fp=fopen (fn, "rt")
165. Какой тип имеет переменная FILE *fp;?
Ответ: указатель на файловую структуру
166. В программе объявлены переменные
char *fn = "test.txt";
FILE *fp;
Напишите, каким образом открыть бинарный файл “test.txt” для чтения и записи.
Ответ: fp=fopen (fn, "r+b")
167. Как называется макрорасширение, обозначающее конец файла?
Ответ: EOF
168. Напишите функцию, которая переместит указатель в файле, доступ к которому осуществляется через переменную fp, на 5 позиций от его начала.
Ответ: fseek(fp,5L,SEEK_SET);
169. Напишите функцию, которая вернет на начало указатель в файле, доступ к которому осуществляется через переменную fp.
Ответ: rewind(fp); (или) fseek(fp,0L,SEEK_SET);
170. В программе объявлены переменные
FILE *fp;
double m[10];
Переменная fp указывает на бинарный файл, открытый для чтения и записи.
Напишите функцию, которая запишет весь массив в файл.
Ответ: fwrite(m, sizeof(double), sizeof(m), fp);
171. В программе переменная fp указывает на открытый файл. Напишите функцию, которая закроет файл.
Ответ: fclose(fp);
172. В программе объявлены переменные
FILE *fp;
double m[10];
Переменная fp указывает на бинарный файл, содержащий числа типа double и открытый для чтения и записи. Напишите функцию, которая заполнит весь массив числами из файла.
Ответ: fread(m, sizeof(double), sizeof(m), fp);
173. В программе объявлены переменные
FILE *fp;
double m[10];
Переменная fp указывает на бинарный файл, содержащий 20 чисел типа double и открытый для чтения и записи. Сколько элементов массива будет считано из файла при выполнении функции
fread(m, sizeof(double), sizeof(m), fp);
Ответ: 10.
174. В программе объявлены переменные
FILE *fp;
double m[10];
Переменная fp указывает на бинарный файл, содержащий 5 чисел типа double и открытый для чтения и записи. Сколько элементов массива будет считано из файла при выполнении функции
fread(m, sizeof(double), sizeof(m), fp);
Ответ: 5.
175. В программе объявлены 2 массива символов
char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";
Каков будет результат работы функции strcmp( string1, string2 );?
<0;
>0;
=0;
-1;
1.
Ответ: 2, 5.
176. В программе объявлены 2 массива символов
char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";
Как сравнить эти 2 строки с учетом регистра символов?
Ответ: strcmp( string1, string2 );
177. В программе объявлены 3 массива символов
char string1[] = "Hello ";
char string2[] = "world";
char string3[80];
Как из строк string1 и string2 сформировать строку string3 с текстом «Hello world»?
Ответ: strcpy(string3, string1);strcat( string3,string2);
Объектно-ориентированное программирование в C++
178. Взаимодействие объектов программы осуществляется путем передачи …
Ответ: сообщений.
179. Интегрирование данных с подпрограммами их обработки при объектном подходе выполняется в специальной структуре данных, которая называется …
Ответ: классом.
180. Объект представляет собой ….
Ответ: экземпляр класса.
181. Недоступные извне (скрытые) данные и методы класса помещаются в секцию класса с описателем …
Ответ: private
182. Доступные извне данные и методы класса помещаются в секцию класса с описателем …
Ответ: public
183. Данные и методы класса, доступ к которым разрешен из методов производных классов, помещаются в секцию класса с описателем …
Ответ: protected
184. По умолчания для класса принят описатель …
Ответ: private
185. Объединение данных, характеризующих все объекты определенного класса, и функций, с помощью которых эти данные обрабатываются, в единой структуре данных называется …
Ответ: инкапсуляцией.
186. Сколько ошибок содержит фрагмент программы?
class Man
{
private:
unsigned int Age;
public:
void in() { cout<<" Age: "; cin>>Age; }
void out (){ cout<<Age; }
};
void main()
{
Man m;
m.in(); m.out ();
m.Age = 20;
Man *pMan = new Man;
pMan.in(); pMan.out();
}
Ответ: 3
187. Как будет выглядеть определение конструктора по умолчанию для класса MyClass?
Ответ: MyClass(){}; или MyClass::MyClass(){};
188. Как будет выглядеть определение деструктора по умолчанию для класса MyClass?
Ответ: ~MyClass(){}; или MyClass:: ~MyClass(){};
189. Какие из следующих утверждений ложны
Конструктор и деструктор имеют тип возвращаемого значения void.
Производный класс наследует конструкторы и деструкторы базового класса.
Конструкторы могут быть виртуальными.
Деструкторы могут быть виртуальными.
Если конструкторы или деструкторы не были определены явно, они генерируются компилятором.
Конструктор можно вызывать как обычную функцию.
Деструктор можно вызвать как обычный метод.
При определении и разрушении объектов вызов конструкторов и деструкторов осуществляется автоматически.
Конструкторы и деструкторы, при необходимости выделения объекту памяти, могут выполнять неявные вызовы операций new и delete.
Ответ: 1, 2, 3, 6.
190. Как называется конструктор, который будет вызван в данном случае
class Sample{
int nCnt;
public:
Sample(int i) {nCnt = i;}
};
Sample globall(1);
Ответ: конструктор с параметром
191. Как называется конструктор, который будет вызван в данном случае
class Sample{
int nCnt;
public:
Sample(int i) {nCnt = i;}
};
Sample globall;
Ответ: конструктор по умолчанию, конструктор без параметров
192. Как называется конструктор класса MyClass, который будет вызван в данном случае
MyClass clObjl = cl0bj2;
Ответ: конструктор копирования
193. Напишите прототип конструктора копирования для класса MyClass.
Ответ: MyClass::MyClass(MyClass &); или MyClass(MyClass &);
194. Напишите зарезервированное ключевое слово, с помощью которого в методе класса можно обратиться к адресу объекта, который инициировал этот метод.
Ответ: this.
195. Как называется неявный параметр любого метода, являющийся указателем на объект, которому было послано обрабатываемое сообщение?
Ответ: this.
196. Конструктор какого типа используется при создании массива объектов какого-либо класса?
Ответ: конструктор по умолчанию, конструктор без параметров
197. Сколько раз вызываются деструкторы в программе
class Resistors
{
double r;
public:
Resistors (double rs) {r=rs;}
Resistors() {r=100;}
double parallel (Resistors q)
{ return (q.r*r/(q.r+r)); }
double series (Resistors q)
{ return (r+q.r); }
void pr() { cout<<"r="<<r; }
~Resistors() { cout<<"Destructor invoked"<<endl; }
};
void main ()
{
Resistors rl (500), r2 (1000), r3;
cout<<"\n Rl + R2 ="<<rl.series(r2)<<endl;
cout<<"\n Rl || R2 ="<<rl.parallel(r2)<<endl;
cout<<"\n\n Array resistors\n";
Resistors many[6];
for (int i=0; i<4; i++,cout<<endl)
many[i].pr();
}
Ответ:11
198. Как называется конструктор класса MyClass, который будет вызван в данном случае
int Out(MyClass clObjl);
Ответ: конструктор копирования
199. Внешняя по отношению к классу функция, которая имеет прямой доступ к любым переменным и методам класса, называется …
Ответ friend-функцией
200. Если friend-функция класса принадлежать какому-либо другому классу, то она называется …
Ответ friend-метод
201. Какая friend-конструкция объявлена в данном случае
class A{
friend int strange(char* ch);
};
Ответ friend-функция, функция
202. Какая friend-конструкция объявлена в данном случае
class A{
friend class B;
};
Ответ friend-класс, класс
203. Какая friend-конструкция объявлена в данном случае
class A{
friend char* C::methc();
};
Ответ friend-метод, метод
204. Какие из следующих утверждений верны:
Секция, в которой объявлена friend-конструкция, не влияет на смысл объявления.
Свойство friend не транзитивно.
Свойство friend наследуется производным классом.
Ответ: 1, 2.
205. Какие из следующих утверждений ложны:
Элемент данных, имеющий описатель static, существует только в одном экземпляре и используется всеми объектами рассматриваемого класса.
К статическому элементу класса можно обращаться без указания имени объекта, используя лишь имя класса.
Обращение к статическим элементам класса невозможно без создания объекта этого класса.
При вызове static-метода не происходит неявной передачи указателя this.
Внутри статического метода разрешается прямое обращение к любым членам своего класса.
Static-члены класса используются для управления данными, общими для всех объектов класса.
Ответ: 3, 5.