игра брюс 2048
Главная / Программирование / Программирование на языке C в Microsoft Visual Studio 2010 / Тест 4

Программирование на языке C в Microsoft Visual Studio 2010 - тест 4

Упражнение 1:
Номер 1
Какая схема является структурной схемой условного оператора?

Ответ:

 (1) files 

 (2) files 

 (3) files 

 (4) files 


Номер 2
Структурная схема какого оператора представлена ниже?files

Ответ:

 (1) оператора switch 

 (2) цикла do while 

 (3) оператора if 

 (4) конструкции if - else 


Номер 3
Структурная схема какого оператора представлена ниже?files

Ответ:

 (1) оператора switch 

 (2) цикла do while 

 (3) оператора if 

 (4) конструкции if - else 


Упражнение 2:
Номер 1
Какой оператор используется для прерывания программного цикла при некотором условии?

Ответ:

 (1) continue 

 (2) break 

 (3) return 

 (4) goto 


Номер 2
Какой оператор используется для выхода из функции при выполнении некоторых условий?

Ответ:

 (1) continue 

 (2) break 

 (3) return 

 (4) goto 


Номер 3
Какой оператор используется для продолжения итераций цикла при выполнении некоторых условий?

Ответ:

 (1) continue 

 (2) break 

 (3) return 

 (4) goto 


Упражнение 3:
Номер 1
При каких значениях переменной A значение переменной cond будет равно 1? 

	int cond;
	int A = 1;
	cond = (A >= 100) && (A <= 150);

		

Ответ:

 (1) при A = 50 

 (2) при A = 100 

 (3) при A = 120 

 (4) при A = 150 

 (5) при A = 200 


Номер 2
При каких значениях переменной A значение переменной cond будет равно 0? 

	int cond;
	int A = 1;
	cond = (A >= 100) && (A <= 150);

		

Ответ:

 (1) при A = 50 

 (2) при A = 100 

 (3) при A = 120 

 (4) при A = 150 

 (5) при A = 200 


Номер 3
При каких значениях переменной A значение переменной cond будет равно 0?

	int cond,;
	cond = (A==5) || ((A>10) && (A<1));
		
		

Ответ:

 (1) при A = 0 

 (2) при A = 1 

 (3) при A = 5 

 (4) при A = 7 

 (5) при A = 10 

 (6) при A = 11 


Упражнение 4:
Номер 1
В результате выполнения какого фрагмента кода на экран будут выведены числа от 0 до 10?

Ответ:

 (1) for(t=0; t<100; t++) { printf("%d \n", t); if(t==10) t=100; }  

 (2) int t; for(t=0; t<100; t++) { printf("%d \n", t); if(t==10) break; }  

 (3) int t; for(t=0; t<100; t++) { if(t==10) printf("%d \n", t); }  


Номер 2
В результате выполнения какого фрагмента кода значение переменной t будет кратно 10?

Ответ:

 (1) int t; for(t=0; t<100; t++) { printf("%d \n", t); if(t==10) t=100; }  

 (2) int t; for(t=0; t<100; t++) { printf("%d \n", t); if(t==10) break; }  

 (3) int t; for(t=0; t<100; t++) { if(t==10) printf("%d \n", t); }  


Номер 3
В результате выполнения какого фрагмента кода значение переменной t будет равно 10?

Ответ:

 (1) int t; for(t=0; t<100; t++) { printf("%d \n", t); if(t==10) t=100; }  

 (2) int t; for(t=0; t<100; t++) { printf("%d \n", t); if(t==10) break; }  

 (3) int t; for(t=0; t<100; t++) { if(t==10) printf("%d \n", t); }  


Упражнение 5:
Номер 1
В результате выполнения какого фрагмента кода значение переменной m будет равно 8?

Ответ:

 (1) int k = 0, m; goto lbl; {int a = 3, b = 4; k = a + b; lbl: m = k + 1; }  

 (2) int k = 0, m; int a = 3, b = 4; k = a + b; goto lbl; lbl: m = k + 1;  

 (3) int k = 0, m; goto lbl; lbl: {int a = 3, b = 4; k = a + b; m = k + 1; }  


Номер 2
Почему применение оператора goto не является хорошим стилем программирования?

Ответ:

 (1) синтаксис записи выражений с помощью оператора goto менее удобен по сравнению с другими опеараторами 

 (2) применение goto нарушает принципы структурного и модульного программирования 

 (3) работа оператора goto непредсказуема 


Номер 3
Что делает приведенный фрагмент кода?

	int x = 0;

loop1:
	x++;
	if (x<=5) {
		printf("%d \n", x);
		goto loop1;
	}
		
		

Ответ:

 (1) выводит на экран только первое значение x, удовлетворяющее заданному условию 

 (2) выводит на экран числа от 1 до 5 

 (3) приведенный фрагмент кода содержит ошибку (метка loop1 объявлена раньше опеаратора goto


Упражнение 6:
Номер 1
Какой фрагмент кода полностью аналогичен заданному?

	int x = 10, y;
	if(x>9) y = 100;
	else y = 200;
		
		

Ответ:

 (1) int x = 10, y; y = x<9 ? 100 : 200;  

 (2) int x = 10, y; y = x<9 ? 200 : 100;  

 (3) int x = 10, y; y = x>9 ? 100 : 200;  


Номер 2
Какой фрагмент кода определяет максимальное из двух чисел?

Ответ:

 (1) int a = rand(); int b = rand(); int maxab = (a > b) ? a : b; printf("maxab = %d", maxab);  

 (2) int a = rand(); int b = rand(); int maxab = (a > b) ? b : a; printf("maxab = %d", maxab);  

 (3) int a = rand(); int b = rand(); int maxab = (a < b) ? a : b; printf("maxab = %d", maxab);  


Номер 3
Какой фрагмент кода определяет минимальное из двух чисел?

Ответ:

 (1) int a = rand(); int b = rand(); int minab = (a > b) ? a : b; printf("minab = %d", minab);  

 (2) int a = rand(); int b = rand(); int minab = (a > b) ? b : a; printf("minab = %d", minab);  

 (3) int a = rand(); int b = rand(); int minab = (a < b) ? a : b; printf("minab = %d", minab);  


Упражнение 7:
Номер 1
Дана программа определения дня недели:

	int x;
	printf("Введите число от 1 до 7: ");
	scanf_s("%d", &x);

	switch (x<=5 ? 1 :
			x==6 ? 2 : 3)
	{
	case 1:
		printf("Сегодня рабочий день"); 
		break;
	case 2:
		printf("Сегодня суббота"); 
		break;
	case 3:
		printf("Сегодня воскресенье"); 
		break;
	default:
		printf("Ошибка! Вы ввели неверное число");
		break;
	}
	
		Какое сообщение будет выведено на экран, если в запросе ввода пользователь задаст число 8?
		

Ответ:

 (1) Сегодня рабочий день 

 (2) Сегодня суббота 

 (3) Сегодня воскресенье 

 (4) Ошибка! Вы ввели неверное число 


Номер 2
При выполнении какого варианта программы определения дня недели при вводе числа 8 на экране будет выведено сообщение Ошибка! Вы ввели неверное число?

Ответ:

 (1) int x; printf("Введите число от 1 до 7: "); scanf_s("%d", &x); switch (x<=5 ? 1 : x==6 ? 2 : 3) { case 1: printf("Сегодня рабочий день"); break; case 2: printf("Сегодня суббота"); break; case 3: printf("Сегодня воскресенье"); break; default: printf("Ошибка! Вы ввели неверное число"); break; }  

 (2) int x; printf("Введите число от 1 до 7: "); scanf_s("%d", &x); switch (x>=5 ? 1 : x==6 ? 2 : x==7 ? 3 : 4) { case 1: printf("Сегодня рабочий день"); break; case 2: printf("Сегодня суббота"); break; case 3: printf("Сегодня воскресенье"); break; default: printf("Ошибка! Вы ввели неверное число"); break; }  

 (3) int x; printf("Введите число от 1 до 7: "); scanf_s("%d", &x); switch (x<=5 ? 1 : x==6 ? 2 : x==7 ? 3 : 4) { case 1: printf("Сегодня рабочий день"); break; case 2: printf("Сегодня суббота"); break; case 3: printf("Сегодня воскресенье"); break; case 4: printf("Ошибка! Вы ввели неверное число"); break; }  


Номер 3
Дана программа определения дня недели:

	int x;
	printf("Введите число от 1 до 7: ");
	scanf_s("%d", &x);

	switch (x<=5 ? 1 :
			x==6 ? 2 : 3)
	{
	case 1:
		printf("Сегодня рабочий день"); 
		break;
	case 2:
		printf("Сегодня суббота"); 
		break;
	case 3:
		printf("Сегодня воскресенье"); 
		break;
	default:
		printf("Ошибка! Вы ввели неверное число");
		break;
	}
	
		Какое число нужно ввести, чтобы на экран было выведено сообщение Ошибка! Вы ввели неверное число?
		

Ответ:

 (1)

 (2)

 (3)

 (4)

 (5) сообщение Ошибка! Вы ввели неверное число никогда не будет выведено 


Упражнение 8:
Номер 1
Что будет выведено на экран в результате выполнения приведенных инструкций при попытке пользователя вычислить значение 5^6?

  int a, b, res = 0;
  char op;
  int f = 1;

  printf("Введите 1й операнд: ");
  scanf("%d", &a);
  printf("Введите знак операции: ");
  scanf("%s", &op);
  printf("Введите 2й операнд: ");
  scanf("%d", &b);

  switch (op) {
	  case '+': res = a+b; break;
	  case '-': res = a-b; break;
	  case '*': res = a*b; break;
	  case '/': res = a/b; break;
	  default: 
		  printf("Неизвестная операция\n");
		  f = 0;
  }
  if (f) printf ("Результат: %d", res);
		
		

Ответ:

 (1) Неизвестная операция Результат: 0  

 (2) Неизвестная операция 

 (3) в процессе выполнения приведенного фрагмета кода возникнет ошибка 


Номер 2
Чему будет равно значение переменной f при попытке пользователя вычислить значение 5^6?

  int a, b, res = 0;
  char op;
  int f = 1;

  printf("Введите 1й операнд: ");
  scanf("%d", &a);
  printf("Введите знак операции: ");
  scanf("%s", &op);
  printf("Введите 2й операнд: ");
  scanf("%d", &b);

  switch (op) {
	  case '+': res = a+b; break;
	  case '-': res = a-b; break;
	  case '*': res = a*b; break;
	  case '/': res = a/b; break;
	  default: 
		  printf("Неизвестная операция\n");
		  f = 0;
  }
  f = f*2;
  if (f) printf ("Результат: %d", res);
		
		

Ответ:

 (1)

 (2)

 (3)


Номер 3
Чему будет равен результат вычисления значения 5+6 в результате выполнения приведенного фрагмента кода?

  int a, b, res;
  char op;
  int f = 1;

  printf("Введите 1й операнд: ");
  scanf("%d", &a);
  printf("Введите знак операции: ");
  scanf("%s", &op);
  printf("Введите 2й операнд: ");
  scanf("%d", &b);

  switch (op) {
	  case '+': res = a+b; 
	  case '-': res = a-b; break;
	  case '*': res = a*b; break;
	  case '/': res = a/b; break;
	  default: 
		  printf("Неизвестная операция");
		  f = 0;
  }
  if (f) printf ("Результат: %d", res);
			
		

Ответ:

 (1) -1 

 (2)

 (3)

 (4) 11 


Упражнение 9:
Номер 1
Каким будет результат выполнения приведенного фрагмента кода, если пользователь введет число 6?

	int num, half, div;
	printf("Введите число: ");
	scanf_s("%d", &num);
	half = num / 2;
	div = 2;

	do {
		if (!(num % div)) printf("%d ", div);
		div++;
	} while (div <= half);
			
		

Ответ:

 (1) 1 2 3 6 

 (2) 2 3 

 (3) 2 3 6 


Номер 2
В какой программе будет корректно обработана ситуация деления на нуль?

Ответ:

 (1) int a, b, res; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': res = a/b; break; default: printf("Неизвестная операция"); f = 0; } if (f) printf ("Результат: %d", res);  

 (2) int a, b, res; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': switch (b) { case 0: printf("Деление на 0!\n"); default: res = a/b; } break; default: printf("Неизвестная операция 111"); f = 0; } if (f) printf ("Результат: %d 222", res);  

 (3) int a, b, res; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': switch (b) { case 0: printf("Деление на 0!\n"); break; default: res = a/b; } break; default: printf("Неизвестная операция 111"); f = 0; } if (f) printf ("Результат: %d 222", res);  


Номер 3
В какой программе ситуация деления на нуль обрабатывается некорректно?

Ответ:

 (1) int a, b, res; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': res = a/b; break; default: printf("Неизвестная операция"); f = 0; } if (f) printf ("Результат: %d", res);  

 (2) int a, b, res; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': switch (b) { case 0: printf("Деление на 0!\n"); default: res = a/b; } break; default: printf("Неизвестная операция 111"); f = 0; } if (f) printf ("Результат: %d 222", res);  

 (3) int a, b, res; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': switch (b) { case 0: printf("Деление на 0!\n"); break; default: res = a/b; } break; default: printf("Неизвестная операция 111"); f = 0; } if (f) printf ("Результат: %d 222", res);  


Упражнение 10:
Номер 1
Что будет выведено на экран в результате выполнения приведенного фрагмента кода?

  int n = 1;

  while (n<=10)
  {
	  if (n%2) 
		  printf("%d\n", n);
		  n++;
		  return;
	  printf("%d\n", n);
	  n++;
  }
		
		

Ответ:

 (1) все числа от 1 до 10 

 (2) все нечетные числа от 1 до 10 

 (3) все четные числа от 1 до 10 

 (4) первое нечетное число - число 1 


Номер 2
В результате выполнения какого фрагмента кода на экран будет выведено одно число?

Ответ:

 (1) int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; return; printf("%d\n", n); n++; }  

 (2) int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; continue; printf("%d\n", n); n++; }  

 (3) int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; break; printf("%d\n", n); n++; }  


Номер 3
В результате выполнения какого фрагмента кода на экран будет выведено больше одного числа?

Ответ:

 (1) int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; return; printf("%d\n", n); n++; }  

 (2) int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; continue; printf("%d\n", n); n++; }  

 (3) int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; break; printf("%d\n", n); n++; }  


Упражнение 11:
Номер 1
В каком случае, если пользователь введет число -4, на экран будет выведено сообщение -4 в квадрате = -16?

Ответ:

 (1) int isqrd, i; printf("Введите число: "); scanf("%d", &i); isqrd = i>0 ? i*i : -(i*i); printf("%d в квадрате = -%d", i, isqrd);  

 (2) int isqrd, i; printf("Введите число: "); scanf("%d", &i); isqrd = i<0 ? i*i : -(i*i); printf("%d в квадрате = %d", i, isqrd);  

 (3) int isqrd, i; printf("Введите число: "); scanf("%d", &i); isqrd = i>0 ? i*i : -(i*i); printf("%d в квадрате = %d", i, isqrd);  


Номер 2
В каком случае, если пользователь введет число 4, на экран будет выведено сообщение 4 в квадрате = -16?

Ответ:

 (1) int isqrd, i; printf("Введите число: "); scanf("%d", &i); isqrd = i>0 ? -(i*i) : i*i; printf("%d в квадрате %d", i, isqrd);  

 (2) int isqrd, i; printf("Введите число: "); scanf("%d", &i); isqrd = i>0 ? i*i : -(i*i); printf("%d в квадрате %d", i, isqrd);  

 (3) int isqrd, i; printf("Введите число: "); scanf("%d", &i); isqrd = i<0 ? i*i : -(i*i); printf("%d в квадрате %d", i, isqrd);  


Номер 3
Для каких значений переменной i в результате выполнения приведенного фрагмента кода знак квадрата числа будет противоположен знаку самого числа?

  int isqrd = 0, i;

  printf("Введите число: ");
  scanf("%d", &i);

  isqrd = (!(i%2) && i>0) ? i*i : -(i*i);

  printf("%d в квадрате %d", i, isqrd);
		
		

Ответ:

 (1) -1 

 (2)

 (3)


Упражнение 12:
Номер 1
Задан цикл, который выводит все числа от 1 до 10:

  int n = 1;					(1)

  while (n<=10)					(2)
  {
	  if (n%2) 				(3)
		  printf("%d\n", n);		(4)
			n++;			(5)
	  printf("%d\n", n);			(6)
	  n++;					(7)
  }
	
Как изменить приведенный цикл, чтобы на экран выводились только нечетные числа от 1 до 10?
		

Ответ:

 (1) в строке (5) удалить приращение переменной n 

 (2) после строки (5) добавить оператор continue 

 (3) изменить условие в строке (3) на (!(n%2)) 


Номер 2
В каком случае на экран будут выведены только нечетные числа от 1 до 10?

Ответ:

 (1) int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; printf("%d\n", n); n++; }  

 (2) int n = 1; while (n<=10) { if (!(n%2)) printf("%d\n", n); n++; continue; printf("%d\n", n); n++; }  

 (3) int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; continue; printf("%d\n", n); n++; }  


Номер 3
В каком случае на экран будут выведены только четные числа от 1 до 10?

Ответ:

 (1) int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; printf("%d\n", n); n++; }  

 (2) int n = 1; while (n<=10) { if (!(n%2)) printf("%d\n", n); n++; continue; printf("%d\n", n); n++; }  

 (3) int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; continue; printf("%d\n", n); n++; }  




Главная / Программирование / Программирование на языке C в Microsoft Visual Studio 2010 / Тест 4