Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК-1_АЯП_рус.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.19 Mб
Скачать

2.5 Планы занятий в рамках самостоятельной работы студентов (срс).

В рамках самостоятельной работы студенты выполняют самостоятельнозадания, приведенные в пункте.2.4

2.6 Тестовые задания для самоконтроля с указанием ключей

1.Выберите правильное описание строковых констант

A) #define s ‘stroka’

B) define s=”stroka”

C) #define s=‘stroka’

D) define s stroka

E) #define s “stroka”

2. Укажите какие из спецификаций шаблона являются эквивалентными при вводе данных

A) %f %c

B) %e %c

C) %f %e

D) %u %g

E) %s %d

3. Выберите правильный вариант фрагмента для решения задачи

A) y=log(abc(5*x+3))+cos(PI*x*x)+tan(pow(x,3));

B) y=ln(abs(5x+3))+cos(PI*x*x)+tg(pow(x,3));

C) y=log(abs(5*x+3))+cos(PI*x*x)+tan(pow(x,3));

D) y=ln(abc(5*x+3))+cos(PI*x*x)+tan(pow(x,3));

E) y=log(abs(5x+3))+cos(PI*x*x)+tg(pow(x,3));

4.Выберите правильное описание условного оператора для решения задачи: даны a и b, меньшее из них заменить полусуммой, а большее – удвоенным произведением

A) if (a<b) {a1=(a+b)/2; b1=2*a*b;}

B) if (a<b) {a=(a+b)/2; b=2*a*b;}

C) if a<b a1=a+b/2; b1=2*a*b;

D) if a<b {a=(a+b)/2; b=2*a*b;}

E) if (a<b) a1=(a+b)/2; b1=2*a*b;

5. Выберите правильное описание цикла WHILE для вычисления

A) k=1;

while (k<=n)

{ z=x+y; }

B) k=1;

while (k<n)

{ z=x+k*y;

k++;}

C) k=1;

while (k<=n)

{ z=x+k*y;

k++; }

D) k=1;

while (k<n)

z=x+k*y;

E) k=1;

while (k<=n)

z=x+k*y;

k++;

6.Что будет напечатано в результате выполнения следующей программы

main()

{ int i=3, p=1;

for(;i*i*i>0;i--) p*=i*(i+1);

printf("i=%d, p=%d\n",i,p); }

A) i=0, p=144

B) 0, 72

C) i=0, p=72

D) i=1, p=72

E) i=0, p=144

7.Что будет напечатано в результате выполнения следующей программы

main()

{int s=17,t=29,z=47,x,y,f;

x=!(s>t)&&(s>z);

y=x++ +--z;

f=(y>=z);

printf(“x=%d, y=%d, f=%d”, x, y, f); }

A) x=1, y=46, f=1

B) x=2, y=47, f=1

C) x=1, y=47, f=1

D) x=1, y=46, f=0

E) x=2, y=46, f=1

8. Что будет напечатано программой с использованием указателей массивов (где 54300 и 54200 - начальные адреса массивов a[2] и b[2])

main()

{int i; long a[2],*pa;

double b[2],*pb;

pa=a; pb=b;

for(i=0;i<2;i++)

printf("указатели+%d: %u %u\n",i,pa+i,pb+i);}

A) указатели+0: 54300 54200

указатели+1: 54302 54208

B) указатели+0: 54300 54200

указатели+1: 54304 54204

C) указатели+0: 54300 54200

указатели+1: 54304 54208

D) указатели+0: 54300 54200

указатели+1: 54302 54204

E) указатели+0: 54300 54200

указатели+1: 54308 54204

9.Выберите правильный фрагмент программы для решения следующей задачи: дан массив целых чисел х[8]. ; вычислить (x1+x8)(x2+x7)…( x8+x1)

A) int x[8], *px, p=1;

px=*x;

for(i=0;i<8;i++)

p*=*(px+i)+*(px+7);

int x[8], *px, p=0;

px=x;

for(i=0;i<8;i++)

p+=*(px+i)+*(px+7-i);

C) int x[8], *px, p=1;

px=x;

for(i=0;i<8;i++)

p*=*(px+i)+*(px+7-i);

D) int x[8], *px, p=0;

px=x;

for(i=0;i<8;i++)

p+=*(px+i)+*(px+7);

E) int x[8], *px, p=1;

px=x;

for(i=0;i<8;i+=2)

p*=*(px+i)+*(px+7-i);

10.Что будет напечатано следующей программой

double a[7]={2,3,1,4,-2,5,6};

main()

{ int i;

for(i=0;i<7;i+=2)

a[i]=pow(a[i],3);

for(i=0;i<7;i++)

printf(“%f ”,a[i]); }

A) 8 3 1 4 –8 5 216

B) 2 27 1 64 –2 125 6

C) 8 27 1 64 –8 125 216

D) 3 31 64 –2 5 216

E) 2 3 1 4 -8 125 216

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

main()

{ int i, a[7]={0,1,2,0,5,6,4};

for (i=0;i<7;i++)

{if (a[i]==5) break;

a[i]*= a[i];}

for (i=0;i<7;i++)

printf("%d ",a[i]);}

A) 0 1 4 0 5 6 4

B) 0 1 4 0 25 36 16;

C) 0 1 2 0 5 6 4

D) 0 1 8 0 125 36 16

E) 0 1 2 0 25 6 16

12 Выберите правильный фрагмент ввода строковых данных str1, str2

A) scanf(“%s%s“, str1, str2);

B) scanf(“%s%c“, &str1, &str2);

C) scanf(“%s%c“, str1, str2);

D) scanf(“%c%c“, str1, str2);

E) scanf(“%u%u“, str1, str2);

13. Назовите оператор цикла с постусловием

A) for

B) while

C) do while

D) switch

E) static

14. Выберите функцию для преобразования строки в целое число

A) atof()

B) atoi()

C) strtod()

D) strchr()

E) strrev()

15. Функция fprintf() – это

A) преобразование строкового значения в целое

B) преобразование целого числа в строковое значение

C) преобразование числа с плавающей точкой в строковое значение

D) преобразование действительного числа в строку

E) запись в файл

16. Функция fgets

A) открывает файл и связывает его с потоком

B) считывает строку из потока

C) считывает символ из потока

D) закрывает поток

E) выполняет проверку на конец потока

17. Переменная, объявленная вне любого блока или функции, является

A) локальной переменной

B) глобальной переменной

C) переменной действительного типа

D) базовой переменной

E) рекурсивной переменной

18. Выберете правильный вариант определения суммы положительных элементов, расположенных в нечетных строках массива A[7,7]

A) for(i=0,s=0;i<7;i+=2)

for(j=0;g<7;i++);

if(a[i][j]>0) s+=a[i][j];

B) for(i=0,s= 0;i<7;i+=2)

for( j=0;j<7;j++)

if (a[i][j]>0) s+=a[i][j];

C) for (i=0,s=0;i<7;i+=2);

for(j=0;j<7;j++)

if (a[i][j]>0) s+=a[i][j];

D) for(i=0;s=0;i<7;i+2)

for(j=0;j<7;j++)

if (a[i,j]>0) s+=a[i,j];

E) for(i=0;s=0;i<7,i+=2)

for(j=0;j<7;j++)

if(a[i][j]>0) s+=a[i][j] ;

19. Выберите правильный вариант ответа следующей программы

#define stroka “Функция копирования”

main(){

static char *ptr=stroka;

static char res[40];

static char name[]=”, функция объединения”;

puts(ptr);

puts(res);

strcpy(res,ptr);

puts(res);

puts(name);

strcat(res,name);

puts(res);

puts(name);}

A) Функция копирования

Функция копирования

функция объединения

Функция копирования, функция объединения

функция объединения

B) Функция копирования

Функция копирования, функция копирования

Функция копирования, функция объединения

, функция объединения

C) Функция копирования

Функция копирования, функция объединения

Функция копирования, функция объединения

D) Функция копирования

Функция копирования

Функция копирования, функция объединения

, функция объединения

E) Функция копирования

Функция копирования, функция объединения

, функция объединения

20. Выберите правильный фрагмент программы для вывода сведений о машинах марки BMV 1995 года выпуска (Сведения о машинах хранятся в массиве структур)

A) for(i=0;i<5;i++)

if (strcmp(mas[i].marka, “BMV”)!=0 && mas[i].god==1995)

printf(“%s %d”, mas[i].fio, mas[i].nomer);

B) for(i=0;i<5;i++)

if (strcmp(mas[i].marka, “BMV”)==0 & mas[i].god==1995)

printf(“%s %d”, mas[i].fio, mas[i].nomer);

C) for(i=0;i<5;i++)

if (strcmp(mas[i].marka, “BMV”)==0 && mas[i].god==1995)

printf(“%s %d”, mas[i].fio, mas[i].nomer);

D) for(i=0;i<5;i++)

if (strcmp(mas[i].marka, “BMV”)==0 || mas[i].god==1995)

printf(“%s %d”, mas[i].fio, mas[i].nomer);

E) for(i=0;i<5;i++)

if (strcmp(mas[i].marka, “BMV”)==0) && (mas[i].god==1995)

printf(“%d %s”, mas[i].fio, mas[i].nomer);

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

A) #include

B) #define

C) typedef

D) union

E) extern

22. Выберите спецификатор преобразования для вывода символов

A) %с

B) %f

C) %d

D) %s

E) %u

23. Выберите правильный вариант фрагмента для решения задачи

A) ;

B) ;

C) ;

D) ;

E) ;

24. Функция gets

A) открывает файл и связывает его с потоком

B) считывает строку из потока

C) считывает символ из потока

D) закрывает поток

E) выполняет проверку на конец потока

25. Какая функция используется для получения случайных чисел

A) rand

B) srand

C) return

D) atan2

E) floor

26. Выберите правильный вариант фрагмента для решения задачи

A) y=pow(exp(3*x)+7,1/4)+cos(pow(x,5))+ln(abs(3*x+7));

B) y=pow(exp(3*x)+7,1/4)+pow(cos(5,x))+log(abs(3*x+7));

C) y=pow(exp(3*x)+7,1/4)+cos(pow(5,x))+log(abc(3*x+7));

D) y=pow(exp(3*x)+7,1/4)+cos(pow(x,5))+log(abs(3*x+7));

E) y=pow(exp(3*x)+7,1/4)+ pow(cos(x,5))+ln(abs(3*x+7));

27. Выберите правильный вариант фрагмента для решения задачи

A) y=pow(pow(x,5)+1.7,1/7)+cos(pow(x,3))+log(pow(x,4))+sin(PI*x);

B) y=pow(pow(x,5)+1.7,1/7)+cos(pow(x,3))+ln(pow(x,4))+sin(PIx);

C) y=pow(pow(x,5)+1.7,1/7)+ pow(cos(3),x)+log(pow(4,x))+sin(PI*x);

D) y=pow(pow(x,5)+1.7,1/7)+pow(cos(x),3)+ln(pow(x,4))+sin(PI*x);

E) y=pow(pow(x,5)+1.7,1/7)+cos(pow(3,x))+log(pow(4,x))+sin(PIx);

28. Выберите спецификатор преобразования для вывода восьмеричных целых чисел без знака

A) %f

B) %d

C) %x

D) %o

E) %u

29. Выберите правильное описание условного оператора для решения задачи: даны x и y, если отрицательно одно из них, то числа увеличить на 0,5

A) if ( x<0 & y<0) {x+=0.5; y+=0.5;}

B) if ( x<0 || y<0) {x+=0.5; y+=0.5;}

C) if ( x<0 && y<0) {x+=0.5; y+=0.5;}

D) if ( x<0 ! y<0) {x+=0.5; y+=0.5;}

E) if ( x<0 || y<0) x+=0.5; y+=0.5;

30. Выберите правильный фрагмент программы для вывода сведений о машинах марки BMV 1995 года выпуска (Сведения о машинах хранятся в массиве структур)

A) for(i=0;i<5;i++)

if (strcmp(mas[i].marka, “BMV”)!=0 && mas[i].god==1995)

printf(“%s %d”, mas[i].fio, mas[i].nomer);

B) for(i=0;i<5;i++)

if (strcmp(mas[i].marka, “BMV”)==0 & mas[i].god==1995)

printf(“%s %d”, mas[i].fio, mas[i].nomer);

C) for(i=0;i<5;i++)

if (strcmp(mas[i].marka, “BMV”)==0 && mas[i].god==1995)

printf(“%s %d”, mas[i].fio, mas[i].nomer);

D) for(i=0;i<5;i++)

if (strcmp(mas[i].marka, “BMV”)==0 || mas[i].god==1995)

printf(“%s %d”, mas[i].fio, mas[i].nomer);

E) for(i=0;i<5;i++)

if (strcmp(mas[i].marka, “BMV”)==0) && (mas[i].god==1995)

printf(“%d %s”, mas[i].fio, mas[i].nomer);

Таблица 6

Коды правильных ответов

№ вопроса

Правильный ответ

№вопроса

Правильный ответ

1

E

16

B

2

C

17

B

3

C

18

B

4

B

19

A

5

C

20

E

6

A

21

B

7

B

22

A

8

C

23

D

9

C

24

B

10

A

25

A

11

A

26

D

12

A

27

A

13

C

28

D

14

B

29

B

15

E

30

E