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

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

Упражнение 1:
Номер 1
Какой цикл реализует приведенную структурную схему?files	

Ответ:

 (1) while 

 (2) do while 

 (3) for 


Номер 2
Какой цикл реализует приведенную структурную схему?files	

Ответ:

 (1) while 

 (2) do while 

 (3) for 


Номер 3
Какой цикл является циклом с предусловием?

Ответ:

 (1) while 

 (2) do while 

 (3) for 


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

Ответ:

 (1) int x=1, y = 1; for (; x < 5; x++) { y = y*2; printf("%d ", x); }  

 (2) int x, y = 1; for (x = 0; x < 5; x++) { x = y*2; printf("%d ", x); }  

 (3) int x=1, y = 1; for (; ; x++) { y = y*2; printf("%d ", x); if (x>=5) break; }  

 (4) int x = 5, y = 1; do y = x*2; while (y<=10);  


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

Ответ:

 (1) int x=0, y = 1; while (1) { y = y*2; printf("%d ", x); x++; }  

 (2) int x=1, y = 1; for (; x<5; x++) { y = y*2; printf("%d ", x); }  

 (3) int x, y = 1; for (x = 0; x < 5; x++) { x = y*2; printf("%d ", x); }  

 (4) int x=1, y = 1; for (; ; x++) { y = y*2; printf("%d ", x); if (x>=5) break; }  


Номер 3
В каком случае при выполнении приведенного кода возникнет зацикливание?

Ответ:

 (1) int x=0, y = 1; while (1) { y = y*2; printf("%d ", x); x++; }  

 (2) int x=1, y = 1; for (; x<5; x++) { y = y*2; printf("%d ", x); }  

 (3) int x=1, y = 1; for (; ; x++) { y = y*2; printf("%d ", x); if (x>=5) break; }  

 (4) int x, y = 1; for (x = 0; x < 5; x++) { x = y*2; printf("%d ", x); }  


Упражнение 3:
Номер 1
Чему будет равно значение переменной y в результате выполнения приведенного фрагмента кода?
		
	int x = 5, y;
	for(y=1; y<=x; ++y)  
		printf("%d ", y);
		y = x*2;	
		
		

Ответ:

 (1)

 (2) 10 

 (3) 11 


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

Ответ:

 (1) int x = 5, y = 10; while (y<=x) { printf("%d ", y); y = x*3; }  

 (2) int x = 5, y; for(y=1; y<=x; ++y) { printf("%d ", y); y = x*2; }  

 (3) int x = 5, y = 1; do { y = x+1; x++; } while (y<=10);  


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

Ответ:

 (1) int x = 5, y = 10; while (y<=x) { printf("%d ", y); y = x*2+1; }  

 (2) int x = 5, y = 10; while (y<=x) y = x+1; y = x*2+1;  

 (3) int x = 5, y = 1; do { y = x+1; x++; } while (y<=10);  


Упражнение 4:
Номер 1
Ниже приведены несколько вариантов программы для нахождения всех делителей целого положительного числа (условный оператор if (!(num % div)) определяет, делится ли число num на div без остатка). В каком случае цикл будет выполнен хотя бы один раз для переменной num = 3?

Ответ:

 (1) int num, half, div; printf("Введите число: "); scanf_s("%d", &num); half = num / 2; div = 2; while (div <= half) { if (!(num % div)) printf("%d ", div); div++; }  

 (2) 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);  

 (3) int num, half, div; printf("Введите число: "); scanf_s("%d", &num); half = num / 2; for (div = 2; div <= half; div++) { if (!(num % div)) printf("%d ", div); }  


Номер 2
Ниже приведены несколько вариантов программы для нахождения всех делителей целого положительного числа (условный оператор if (!(num % div)) определяет, делится ли число num на div без остатка). Пользователь ввел значение переменной num = 3. В каком случае значение переменной div не изменится?

Ответ:

 (1) int num, half, div; printf("Введите число: "); scanf_s("%d", &num); half = num / 2; div = 2; while (div <= half) { if (!(num % div)) printf("%d ", div); div++; }  

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

 (3) 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);  


Номер 3
Ниже приведены несколько вариантов программы для нахождения всех делителей целого положительного числа (условный оператор if (!(num % div)) определяет, делится ли число num на div без остатка). Пользователь ввел значение переменной num = 3. В каком случае цикл не выполнится ни одного раза?

Ответ:

 (1) int num, half, div; printf("Введите число: "); scanf_s("%d", &num); half = num / 2; div = 2; while (div <= half) { if (!(num % div)) printf("%d ", div); div++; }  

 (2) 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);  

 (3) int num, half, div; printf("Введите число: "); scanf_s("%d", &num); half = num / 2; for (div = 2; div <= half; div++) { if (!(num % div)) printf("%d ", div); }  


Упражнение 5:
Номер 1
Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль - число 95. Какой фрагмент кода реализует поставленную задачу?

Ответ:

 (1) int i, psw = 0; printf("Введите пароль: "); for (i=0; i<3 && psw!=95; i++) { scanf("%d", &psw); i++; }  

 (2) int i = 0, psw = 0; printf("Введите пароль: "); while (i<3 && psw!=95) { scanf("%d", &psw); i++; }  

 (3) int i, psw = 0; printf("Введите пароль: "); while (psw!=95) { for (i=0; i<3; i++) scanf("%d", &psw); }  


Номер 2
Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль - число 95. Какой фрагмент кода реализует поставленную задачу?

Ответ:

 (1) int i, psw = 0; printf("Введите пароль: "); while (psw!=95) { for (i=0; i<3; i++) scanf("%d", &psw); }  

 (2) int i = 0, psw = 0; printf("Введите пароль: "); while (i<3 || psw!=95) { scanf("%d", &psw); i++; }  

 (3) int i, psw = 0; printf("Введите пароль: "); for (i=0; i<3 && psw!=95; i++) scanf("%d", &psw);  


Номер 3
Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль - число 95. Какой фрагмент кода реализует поставленную задачу?

Ответ:

 (1) int i, psw = 0; printf("Введите пароль: "); scanf("%d", &psw); for (i=0; i<3 && psw!=95; i++) scanf("%d", &psw);  

 (2) int i = 1, psw = 0; printf("Введите пароль: "); while (i<3 && psw!=95) { scanf("%d", &psw); i++; }  

 (3) int i = 0, psw = 0; printf("Введите пароль: "); do { scanf("%d", &psw); i++; } while (i<3 && psw!=95);  


Упражнение 6:
Номер 1
Какое утверждение является верным для приведенного фрагмента кода?
		
	int x;
	printf("Угадайте число:\n");
	for (x=0; x!=123; ) 
		scanf("%d", &x);

		

Ответ:

 (1) цикл выполняется, пока пользователь не введет число 0 

 (2) цикл выполняется, пока пользователь не введет число 123 

 (3) цикл выполняется 123 раза 

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


Номер 2
Сколько раз будет выполнен цикл for?
		
	int x;
	printf("Угадайте число:\n");
	for (x=0; x!=123; ) 
		scanf("%d", &x);

		

Ответ:

 (1)

 (2) 123 

 (3) заранее неизвестно 


Номер 3
Сколько раз будет выполнен цикл for?
		
	int x=123;
	printf("Угадайте число:\n");
	for (x=0; x==123; ) 
		scanf("%d", &x);

		

Ответ:

 (1)

 (2) 123 

 (3) заранее неизвестно 


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

Ответ:

 (1) int i; for (i=0; i<5; i++) printf("*****\n");  

 (2) int i, j; for (i=0; i<5; i++) for (j=0; j<5; j++) printf("*");  

 (3) int i, j; for (i=0; i<5; i++) { for (j=0; j<5; j++) printf("*"); printf("\n"); }  

 (4) int i, j; for (i=0; i<5; i++) { for (j=i; j<5; j++) printf("*"); printf("\n"); }  


Номер 2
В результате выполнения какого фрагмента кода на экран будут выведены 5 строк, в каждой из которых будет на 1 звездочку меньше, чем в предыдущей?

Ответ:

 (1) int i, j; for (i=0; i<5; i++) for (j=0; j<5; j++) printf("*");  

 (2) int i, j; for (i=5; i>0; i--) { for (j=i; j<5; j++) printf("*"); printf("\n"); }  

 (3) int i, j; for (i=0; i<5; i++) { for (j=i; j<5; j++) printf("*"); printf("\n"); }  


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

Ответ:

 (1) int i, j; for (i=0; i<5; i++) for (j=0; j<5; j++) printf("*");  

 (2) int i, j; for (i=5; i>0; i--) { for (j=i; j<5; j++) printf("*"); printf("\n"); }  

 (3) int i, j; for (i=0; i<5; i++) { for (j=i; j<5; j++) printf("*"); printf("\n"); }  

 (4) int i, j; for (i=5; i>0; i--) { for (j=i-1; j<5; j++) printf("*"); printf("\n"); }  


Упражнение 8:
Номер 1
Как организовать бесконечный цикл while?

Ответ:

 (1) while (-1) { ... } 

 (2) while (0) { ... } 

 (3) while (1) { ... } 


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

Ответ:

 (1) int i; char ch; for (i=1; ; i++) { ch = getchar(); if (ch != 'y') i++; }  

 (2) int i = 0; char ch; for (; i<5 ; i++) { ch = getchar(); if (ch != 'y') i++; }  

 (3) int i; char ch; for (i=1; i<5 ; ) { ch = getchar(); if (ch != 'y') i++; }  

 (4) int i = 1; char ch; for ( ; ; ) { ch = getchar(); if (ch != 'y') i++; }  


Номер 3
В каком случае цикл for не будет бесконечным?

Ответ:

 (1) int i = 0; char ch; for (; i<5 ; i++) { ch = getchar(); if (ch != 'y') i++; }  

 (2) int i; char ch; for (i=1; i<5 ; ) { ch = getchar(); if (ch != 'y') i++; }  

 (3) int i; char ch; for (i=1; ; i++) { ch = getchar(); if (ch != 'y') i++; }  

 (4) int i = 1; char ch; for ( ; ; ) { ch = getchar(); if (ch != 'y') i++; }  


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

	int x, n = 1;
	while (n<=10)
	{
		x = n*n;
		printf("%d %d\n", n, x);
	}
		
		

Ответ:

 (1) таблица чисел от 1 до 10 и их квадратов 

 (2) бесконечное число строк "1 1" 

 (3) 10 строк с квадратами чисел от 1 до 10 


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

Ответ:

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

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

 (3) int x, n; for (n=1; n<=10; n++) { x = n*n; printf("%d %d\n", n, x); }  


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

Ответ:

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

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

 (3) int x, n; for (n=1; n<9; n++) { x = n*n; printf("%d %d\n", n, x); }  


Упражнение 10:
Номер 1
Игра "Угадай число" заканчивавается, если задуманное число угадано, или количество попыток достигло определенного значения, например, 10. Главный цикл игры реализован следующим образом:

	int c = 0, n = 100, m;
	do {
		printf("Ваш вариант: ");
		scanf("%d", &m);
		c++;
	} while <Условие>

		c - число попыток, n - задуманное число. Каким должно быть условие завершения игры?
		

Ответ:

 (1) ((n==m) || (c>10)) 

 (2) ((n==m) && (c>10)) 

 (3) (n!=m) || (c<=10)) 

 (4) ((n!=m) && (c<10)) 

 (5) ((n!=m) && (c<=10)) 


Номер 2
Игра "Угадай число" заканчивавается, если задуманное число угадано, или количество попыток достигло определенного значения, например, 10. Какой фрагмент кода правильным образом реализует эту игру, если c - число попыток, n - задуманное число?

Ответ:

 (1) int c = 0, n = 100, m; do { printf("Ваш вариант: "); scanf("%d", &m); c++; } while ((n!=m) && (c<=10))  

 (2) int c = 0, n = 100, m; do { printf("Ваш вариант: "); scanf("%d", &m); c++; } while ((n!=m) && (c<10))  

 (3) int c = 0, n = 100, m; do { printf("Ваш вариант: "); scanf("%d", &m); c++; } while (n!=m) || (c<=10))  


Номер 3
Игра "Угадай число" заканчивавается, если задуманное число угадано, или количество попыток достигло определенного значения, например, 10. Какой фрагмент кода реализует эту игру неверно, если c - число попыток, n - задуманное число?

Ответ:

 (1) int c = 0, n = 100, m; do { printf("Ваш вариант: "); scanf("%d", &m); c++; } while ((n!=m) && (c<=10))  

 (2) int c = 0, n = 100, m; do { printf("Ваш вариант: "); scanf("%d", &m); c++; } while ((n!=m) && (c<10))  

 (3) int c = 0, n = 100, m; do { printf("Ваш вариант: "); scanf("%d", &m); c++; } while ((n!=m) || (c<=10))  


Упражнение 11:
Номер 1
Какое назначение может иметь в программе приведенный цикл без тела?

	for(t=0; t<SOME_VALUE; t++) ;

		

Ответ:

 (1) вычисление значения SOME_VALUE 

 (2) задержка выполнения последующей части программы 

 (3) задание цикла без тела недопустимо 


Номер 2
При вводе каких значений выполнение цикла завершится?

int num; 
do {
	scanf("%d", &num);
} while (num > 100);	
		
		

Ответ:

 (1) 200 

 (2) -100 

 (3) 100 

 (4) 120 


Номер 3
При вводе каких значений выполнение цикла не будет завершено?

	int num; 
	do {
		scanf("%d", &num);
	} while (num > 100);	
		
		

Ответ:

 (1) 200 

 (2) -100 

 (3) 100 

 (4) 120 


Упражнение 12:
Номер 1
Какие утверждения являются верными?

Ответ:

 (1) операторы циклов for, while и do while не являются взаимозаменяемыми 

 (2) проверка условия выполняется на каждой итерации цикла 

 (3) в случаях, когда число итераций заранее неизвестно, удобнее использовать оператор while  


Номер 2
Какие утверждения являются неверными?

Ответ:

 (1) операторы циклов for, while и do while не являются взаимозаменяемыми 

 (2) проверка условия выполняется на каждой итерации цикла 

 (3) в случаях, когда число итераций заранее не известно, удобнее использовать оператор while  


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

Ответ:

 (1) for 

 (2) while 

 (3) do while 




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