Главная / Программирование /
Основы разработки программного обеспечения на примере языка С / Тест 3
Основы разработки программного обеспечения на примере языка С - тест 3
Упражнение 1:
Номер 1
Какие типы данных являются стандартными в языке Си?
Ответ:
 (1) int
 
 (2) real
 
 (3) long
 
 (4) bool
 
 (5) динамические массивы  
Номер 2
Какие типы данных являются целочисленными?
Ответ:
 (1) float
 
 (2) char
 
 (3) long
 
 (4) double
 
Номер 3
Какие типы данных являются вещественными?
Ответ:
 (1) float
 
 (2) char
 
 (3) long
 
 (4) double
 
Упражнение 2:
Номер 1
Какой диапазон значений может принимать тип signed char
?
Ответ:
 (1) -128 ... 127 
 (2) 0 ... 255 
 (3) 0 ... 65535 
Номер 2
Какой диапазон значений может принимать тип unsigned char
?
Ответ:
 (1) -128 ... 127 
 (2) 0 ... 255 
 (3) -32768 … 32767 
Номер 3
Какие описания типов являются эквивалентными?
Ответ:
 (1) char
и signed char
 
 (2) char
и unsigned char
 
 (3) signed char
и unsigned char
 
Упражнение 3:
Номер 1
Какая строка задает перечислимый тип данных?
Ответ:
 (1) unsigned int UINT;
 
 (2) typedef char Msg[100];
 
 (3) enum Err {ERR_READ, ERR_WRITE, ERR_CONVERT};
 
Номер 2
В программе определено перечисление: enum Err {ERR_READ, ERR_WRITE, ERR_CONVERT}
. Чему равно значение константы ERR_WRITE
?
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
 (4) значение не определено 
Номер 3
В программе определено перечисление: enum Err {ERR_READ=1, ERR_WRITE, ERR_CONVERT}
. Чему равно значение константы ERR_WRITE
?
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
 (4) значение не определено 
Упражнение 4:
Номер 1
Какие элементы может содержать структура (struct
)?
Ответ:
 (1) только однотипные  
 (2) элементы разных типов 
 (3) только символьные данные 
Номер 2
В программе задан массив int Arr[5]={3,2,1}
. Значение какого элемента этого массива равно 2?
Ответ:
 (1) Arr[0]
 
 (2) Arr[1]
 
 (3) Arr[2]
 
 (4) Arr[3]
 
Номер 3
В программе задан массив int Arr[5]={3,2,1}
. Чему равно значение элемента Arr[4]
?
Ответ:
 (1) 3 
 (2) 2 
 (3) 1 
 (4) 0 
 (5) значение не определено 
Упражнение 5:
Номер 1
В программе определена структура
typedef struct
{
char * name;
long price;
int volume;
} GOODS;
Какое объявление переменной этого типа является верным?
Ответ:
 (1) GOODS food;
 
 (2) struct goods food;
 
 (3) struct GOODS food;
 
Номер 2
В программе определена структура
struct goods
{
char * name;
long price;
int volume;
};
Какое объявление переменной этого типа является верным?
Ответ:
 (1) GOODS food;  
 (2) struct goods food; 
 (3) struct GOODS food; 
Номер 3
В программе объявлена переменная struct goods food
. Каким образом должна быть определена структура goods
?
Ответ:
 (1)
typedef struct
{
char * name;
long price;
int volume;
} GOODS;
 
 (2)
typedef struct
{
char * name;
long price;
int volume;
} goods;
 
 (3)
struct goods
{
char * name;
long price;
int volume;
};
 
 (4)
struct GOODS
{
char * name;
long price;
int volume;
};
 
Упражнение 6:
Номер 1
Что будет выведено на экран в результате выполнения следующего фрагмента программы?
int i;
for(i=9;i>0;--i)
printf("*");
Ответ:
 (1) ********** 
 (2) ********* 
 (3) ******** 
 (4) ******* 
Номер 2
Сколько ;
нужно добавить в приведенный фрагмент, чтобы в результате его выполнения на экран было выведено 10 звездочек?
int i
for(i=0;i<10;i++)
printf("*")
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
Номер 3
Что будет выведено на экран после выполнения программы (язык Си)?
void msum(int a, int b) {
a = a + 2*b;
}
void main() {
int a = 1;
int b = 1;
msum(a,b);
printf("%d",a);
}
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
Упражнение 7:
Номер 1
Как правильно задать трехмерный массив в Си?
Ответ:
 (1) int A[10,20,30];
 
 (2) int A[10;20;30];
 
 (3) int A[10][20][30];
 
 (4) int A[3][10,20,30];
 
Номер 2
Как правильно обратиться к элементу el2
структуры smth
?
typedef struct {
double el1;
int el2;
} smth;
smth A;
Ответ:
 (1) A.el2 
 (2) A->el2 
 (3) A[el2] 
Номер 3
В программе задана структура
struct Worker {
char fio[30];
int date, code;
double salary;
};
Worker worker, stuff[100], *ps;
В каких случаях доступ к полям структуры выполняется неверно?
Ответ:
 (1) worker.fio=”Иванов”; 
 (2) stuff[2]->code=100; 
 (3) ps->salary=0.12; 
Упражнение 8:
Номер 1
Что будет выведено на экран в результате выполнения приведенного фрагмента?
float f;
f = 10/3;
printf("%f",f);
Ответ:
 (1) 1.000000 
 (2) 3.000000 
 (3) 3 
 (4) 3.333333 
 (5) 4 
Номер 2
Что будет выведено на экран в результате выполнения приведенного фрагмента?
int f;
f = 10%3;
printf("%d",f);
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
Номер 3
Что будет выведено на экран в результате выполнения приведенного фрагмента?
float f;
f = 10/3;
printf("%f",f);
Ответ:
 (1) 1.000000 
 (2) 3.000000 
 (3) 3 
 (4) 3.333333 
 (5) 4 
Упражнение 9:
Номер 1
Что хранит указатель на переменную?
Ответ:
 (1) значение переменной 
 (2) имя переменной 
 (3) адрес переменной в области памяти 
Номер 2
Сколько указателей и переменных задано в описании int *a, b, c
?
Ответ:
 (1) 3 указателя 
 (2) 3 переменнх 
 (3) 1 указатель, 2 переменных 
Номер 3
В программе задана переменная int a=5
. Как в указатель записать адрес этой переменной?
Ответ:
 (1) int * p=a; 
 (2) int * p=&a; 
 (3) int * p (&a); 
Упражнение 10:
Номер 1
В программе задана строка char str[10]= "Vasya"
. Какие утверждения являются верными?
Ответ:
 (1) под строку выделяется 5 байт 
 (2) 5 байт занято символами строки 
 (3) 6-ой байт занят нуль-символом 
Номер 2
Какое описание строки является верным?
Ответ:
 (1) char str[10]= "Vasya";
 
 (2) char str[]="Vasya";
 
 (3) char str[];
 
Номер 3
Какое описание строки является верным для языка Си?
Ответ:
 (1) char *st;
 
 (2) char st[100];
 
 (3) string st;
 
Упражнение 11:
Номер 1
Чему будет равно значение перемнной x после выполнения приведенного кода?
int x = 1;
x += x++ + ++x;
Ответ:
 (1) 4 
 (2) 6 
 (3) 7 
Номер 2
Чему будет равно значение перемнной x после выполнения приведенного кода?
int x = 1;
x += x++;
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
Номер 3
Чему будет равно значение перемнной x после выполнения приведенного кода?
int x = 1;
x += ++x;
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
Упражнение 12:
Номер 1
В результате выполнения каких инструкций вывод на экране будет такой же, как при выполнении приведенного цикла?
for(int i=0; i<10; i++) printf("%d\n", i);
Ответ:
 (1)
int i=10;
while (i<=10 && i>=0) {
printf("%d\n", i);
i--;
}
 
 (2)
int i=1;
while (i<=10 && i>=0) {
printf("%d\n", i);
i++;
}
 
 (3)
int i=0;
while (i<=10 && i>=0) {
printf("%d\n", i);
i++;
}
 
 (4)
int i=0;
while (i<10 && i>=0) {
printf("%d\n", i);
i++;
}
 
Номер 2
В результате выполнения каких инструкций вывод на экране будет такой же, как при выполнении приведенного цикла?
int i=0;
while (i<10 && i>=0) {
printf("%d\n", i);
i++;
}
Ответ:
 (1)
for(int i=0; i<=10; i++) printf("%d\n", i);
 
 (2)
for(int i=1; i<=10; ++i) printf("%d\n", i);
 
 (3)
for(int i=0; i<10; i++) printf("%d\n", i);
 
Номер 3
В результате выполнения каких инструкций на экране будет выведено такое же количество строк, как при выполнении приведенного цикла?
int i=0;
while (i<10 && i>=0) {
printf("%d\n", i);
i++;
}
Ответ:
 (1)
int i=0;
do
{
i++;
printf("%d\n", i);
} while (i<=10);
 
 (2)
int i=1;
do
{
printf("%d\n", i);
i++;
} while (i<=10);
 
 (3)
int i=0;
while (i>=0 && i<=100) {
printf("%d\n", i);
i+=10;
}
 
 (4) for(int i=1; i<=10; ++i) printf("%d\n", i);