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

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

Упражнение 1:
Номер 1
Какой разряд байта является младшим?files

Ответ:

 (1) 0-й 

 (2) 1-й 

 (3) 2-й 

 (4) 3-й 

 (5) 4-й 

 (6) 5-й 

 (7) 6-й 

 (8) 7-ой 

 (9) невозможно определить, так как это зависит от компилятора 


Номер 2
Какой разряд байта является старшим?files

Ответ:

 (1) 0-й 

 (2) 1-й 

 (3) 2-й 

 (4) 3-й 

 (5) 4-й 

 (6) 5-й 

 (7) 6-й 

 (8) 7-ой 

 (9) невозможно определить, так как это зависит от компилятора 


Номер 3
Каким образом нумерются разряды байта?

Ответ:

 (1) files 

 (2) files 

 (3) files 

 (4) files 


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

Ответ:

 (1) 1 байт равен 1 биту 

 (2) 1 бит содержит 8 байт 

 (3) 1 байт содержит 8 бит 


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

Ответ:

 (1) бит может принимать любые значения 

 (2) 1 бит содержит 8 байт 

 (3) бит может принимать только значения 0 и 1 

 (4) 1 байт содержит 8 бит 


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

Ответ:

 (1) бит может принимать любые значения 

 (2) 1 бит содержит 8 байт 

 (3) бит может принимать только значения 0 и 1 

 (4) 1 байт содержит 8 бит 


Упражнение 3:
Номер 1
Сколько возможных значений может принимать байт?

Ответ:

 (1)

 (2) 255 

 (3) 256 


Номер 2
Сколько возможных значений может принимать бит?

Ответ:

 (1)

 (2) 255 

 (3) 256 


Номер 3
Какие значения может принимать байт?

Ответ:

 (1) 0 и 1 

 (2) от 0 до 255 

 (3) любые целочисленные значения 


Упражнение 4:
Номер 1
Какое из перечисленных шестнадцатиричных чисел является наибольшим?

Ответ:

 (1) CA1 

 (2) A3F 

 (3) D6F 


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

Ответ:

 (1) CA1 

 (2) A3F 

 (3) D6F 


Номер 3
Чему будет равно шестнадцатиричное число D6F в десятичной системе счисления?

Ответ:

 (1) 3424 

 (2) 3439 

 (3) 54799 


Упражнение 5:
Номер 1
Что такое битовое поле?

Ответ:

 (1) любое поле, после имени которого через двоеточие указана длина поля в битах 

 (2) поле, над которым выполняются побитовые операции 

 (3) особый вид полей структуры 


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

Ответ:

 (1) экономия памяти под переменные 

 (2) уменьшение объема кода программы 

 (3) увеличение эффективности выполнения операций 


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

Ответ:

 (1) экономия памяти под переменные 

 (2) уменьшение объема кода программы 

 (3) увеличение эффективности выполнения операций 


Упражнение 6:
Номер 1
Какая программа содержит ошибку?

Ответ:

 (1) int main(void) { struct test { unsigned int : 3; unsigned int f1 : 1; unsigned int f2 : 1; unsigned int f3 : 1; unsigned int type : 8; unsigned int index : 18; }; int b; struct test t; t.f1 = 10; t.type = 3439; b = t.f1 + t.type; printf("b = %d\n", b); return 0; }  

 (2) int main(void) { struct test { unsigned int : 3; unsigned int f1 : 1; unsigned int f2 : 1; unsigned int f3 : 1; unsigned int type : 8; unsigned int index : 18; }; int b; struct test t, *pt; pt = &t; pt->f1 = 11; t.type = 3439; b = t.f1 + t.type; printf("b = %d\n", b); return 0; }  

 (3) int main(void) { struct test { unsigned int : 3; unsigned int f1 : 1; unsigned int f2 : 1; unsigned int f3 : 1; unsigned int type : 8; unsigned int index : 18; }; int a : 4, b; struct test t; t.type = 3439; b = a = t.type; return 0; }  


Номер 2
Определите, содержит ли приведенная программа ошибки? Если содержит, укажите, какие именно?

int main(void)
{
	struct test {
		unsigned int  : 3;
		unsigned int f1 : 1;
		unsigned int f2 : 1;
		unsigned int f3 : 1;
		unsigned int type : 8;
		unsigned int index : 18;
	};
	
	int a : 4, b;
	struct test t;

	t.type = 3439;
	b = a + t.type;

	//printf("t.type = %d\n", t.type);

	return 0;
}		
		
		

Ответ:

 (1) в структуре test задано безымянное битовое поле 

 (2) битовое поле объявлено вне структуры 

 (3) переменной t присваивается недопустимое значение 

 (4) программа не содержит ошибок 


Номер 3
Определите, содержит ли приведенная программа ошибки? Если содержит, укажите, какие именно?

int main(void)
{
	struct test {
		unsigned int  : 3;
		unsigned int f1 : 1;
		unsigned int f2 : 1;
		unsigned int f3 : 1;
		unsigned int type : 8;
		unsigned int index : 18;
	};
	
	int b;
	struct test t, *pt;

	pt = &t;
	pt->f1 = 11;
	t.type = 3439;
	b = t.f1 + t.type;

	printf("b = %d\n", b);

	return 0;
}		
		

Ответ:

 (1) в структуре test задано безымянное битовое поле 

 (2) поле t.f1 не инициализировано, поэтому не может участвовать в операции вычисления значения переменной b 

 (3) программа не содержит ошибок 


Упражнение 7:
Номер 1
Чему будет равно значение переменной b в результате выполнения приведенной программы?

int main(void)
{
	struct Options {
		unsigned int  centerX : 1;
		unsigned int centerY : 1;
		unsigned int shadow : 2;
		unsigned int palette : 4;
	};
	
	int b;
	struct Options t, *pt;

	t.shadow = 10;
	t.palette = 10;
	b = t.shadow + t.palette;

	printf("b = %d\n", b);

	return 0;
}	
	
		

Ответ:

 (1) 10 

 (2) 12 

 (3) 20 


Номер 2
Чему будет равно значение переменной b в результате выполнения приведенной программы?
		
int main(void)
{
	struct Options {
		unsigned int  centerX : 1;
		unsigned int centerY : 1;
		unsigned int shadow : 2;
		unsigned int palette : 4;
	};
	
	int b;
	struct Options t, *pt;

	t.shadow = 12;
	t.palette = 10;
	b = t.shadow + t.palette;

	printf("b = %d\n", b);

	return 0;
}	
	
		

Ответ:

 (1) 10 

 (2) 12 

 (3) 22 


Номер 3
Чему будет равно значение переменной b в результате выполнения приведенной программы?
		
int main(void)
{
	struct Options {
		unsigned int  centerX : 1;
		unsigned int centerY : 1;
		unsigned int shadow : 2;
		unsigned int palette : 4;
	};
	
	int b;
	struct Options t, *pt;

	t.shadow = 10;
	t.palette = 12;
	b = t.shadow + t.palette;

	printf("b = %d\n", b);

	return 0;
}	
	
		

Ответ:

 (1) 10 

 (2) 12 

 (3) 14 

 (4) 22 


Упражнение 8:
Номер 1
Определите, что делает приведенная программа?

void printBits(unsigned int var);

int main (void)
 {
	unsigned int number, mask;

	printf("The program on demonstration digit-by-digit operation And ( & )\n");

	printf("Enter a whole number of unsigned: ");
	scanf_s("%u", &number);

	printf("Enter the number of unsigned-mask: ");
	scanf_s("%u", &mask);

	printf("Binary representation of the starting number(%u) and\n", number);
	printf("Binary representation of the number-masks (%u):\n", mask);

	printBits(number);
	printBits(mask);

	printBits(number & mask); 

	return 0;
 }

void printBits(unsigned int var) 
{
	unsigned int b;
	unsigned int mask = 1 << 15; 

	printf("\n%10u = ", var);

	for (b = 1; b <= 16; ++b) 
	{
		printf("%c", var & mask ? '1' : '0');
		var <<= 1; 
		if (b % 8 == 0)
			putchar(' ');
	}
} 	
			
		

Ответ:

 (1) выполняет поразрядную операцию И над двумя целыми числами, представленными в двоичной системе счисления для 32-разрядного компьютера 

 (2) выполняет поразрядную операцию И над двумя целыми числами, представленными в двоичной системе счисления для 16-разрядного компьютера 

 (3) выполняет поразрядную операцию ИЛИ над двумя целыми числами, представленными в двоичной системе счисления для 32-разрядного компьютера 

 (4) выполняет поразрядную операцию ИЛИ над двумя целыми числами, представленными в двоичной системе счисления для 16-разрядного компьютера 


Номер 2
Определите, что делает приведенная программа?

void printBits(unsigned int var);

int main (void) 
{
	unsigned int number1, number2;

	printf("\n The program on demonstration digit-by-digit operator OR ( | ):\n");

	printf("\n\t Enter the unsigned number of N1: ");
	scanf_s("%u", &number1);
	printf("\t Enter the unsigned number of N2: ");
	scanf_s("%u", &number2);

	printf("\n\t Binary representation of the number of N1 (%u) and\n", number1);
	printf("\t Binary representation of the number of N2 (%u):\n", number2);
	printBits(number1);
	printBits(number2);

	printBits(number1 | number2); 

	printf("\n\n Press any key: ");
	_getch();
	return 0;
}

void printBits(unsigned int var) {
	unsigned int b;
	unsigned int num = 1 << 31; 
	printf("\n\t %10u = ", var);
	for (b = 1; b <= 32; ++b) {
		printf("%c", var & num ? '1' : '0');
		var <<= 1; 
		if (b % 8 == 0)
			putchar(' ');
	} 
} 
			
		

Ответ:

 (1) выполняет поразрядную операцию И над двумя целыми числами, представленными в двоичной системе счисления для 32-разрядного компьютера 

 (2) выполняет поразрядную операцию И над двумя целыми числами, представленными в двоичной системе счисления для 16-разрядного компьютера 

 (3) выполняет поразрядную операцию ИЛИ над двумя целыми числами, представленными в двоичной системе счисления для 32-разрядного компьютера 

 (4) выполняет поразрядную операцию ИЛИ над двумя целыми числами, представленными в двоичной системе счисления для 16-разрядного компьютера 


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

Ответ:

 (1) void printBits(unsigned int var); int main (void) { unsigned int number, mask; printf("The program on demonstration digit-by-digit operation And ( & )\n"); printf("Enter a whole number of unsigned: "); scanf_s("%u", &number); printf("Enter the number of unsigned-mask: "); scanf_s("%u", &mask); printf("Binary representation of the starting number(%u) and\n", number); printf("Binary representation of the number-masks (%u):\n", mask); printBits(number); printBits(mask); printBits(number & mask); return 0; } void printBits(unsigned int var) { unsigned int b; unsigned int mask = 1 << 15; printf("\n%10u = ", var); for (b = 1; b <= 16; ++b) { printf("%c", var & mask ? '1' : '0'); var <<= 1; if (b % 8 == 0) putchar(' '); } }  

 (2) void printBits(unsigned int var); int main (void) { unsigned int number, mask; printf("The program on demonstration digit-by-digit operation And ( ' )\n"); printf("Enter a whole number of unsigned: "); scanf_s("%u", 'number); printf("Enter the number of unsigned-mask: "); scanf_s("%u", 'mask); printf("Binary representation of the starting number(%u) and\n", number); printf("Binary representation of the number-masks (%u):\n", mask); printBits(number); printBits(mask); printBits(number ' mask); return 0; } void printBits(unsigned int var) { unsigned int b; unsigned int mask = 1 << 31; printf("\n%10u = ", var); for (b = 1; b <= 32; ++b) { printf("%c", var ' mask ? '1' : '0'); var <<= 1; if (b % 8 == 0) putchar(' '); } }  

 (3) void printBits(unsigned int var); int main (void) { unsigned int number1, number2; printf("\n The program on demonstration digit-by-digit operator OR ( | ):\n"); printf("\n\t Enter the unsigned number of N1: "); scanf_s("%u", &number1); printf("\t Enter the unsigned number of N2: "); scanf_s("%u", &number2); printf("\n\t Binary representation of the number of N1 (%u) and\n", number1); printf("\t Binary representation of the number of N2 (%u):\n", number2); printBits(number1); printBits(number2); printBits(number1 | number2); printf("\n\n Press any key: "); _getch(); return 0; } void printBits(unsigned int var) { unsigned int b; unsigned int num = 1 << 31; printf("\n\t %10u = ", var); for (b = 1; b <= 32; ++b) { printf("%c", var & num ? '1' : '0'); var <<= 1; if (b % 8 == 0) putchar(' '); } }  


Упражнение 9:
Номер 1
Чему будет равно значение переменной t.a после выполнения приведенной программы?

int main(void)
{
	struct test {
		unsigned int a : 2;
		unsigned int b : 8;
	};
	
	int c;
	struct test t;

	t.b = 255;
	t.a = t.b & 3;

	printf("t.a = %d\n", t.a);

	return 0;
}	

		

Ответ:

 (1)

 (2)

 (3) 15 


Номер 2
Чему будет равно значение переменной c после выполнения приведенной программы?

int main(void)
{
	struct test {
		unsigned int a : 2;
		unsigned int b : 8;
	};
	
	int c;
	struct test t;

	t.b = 255;
	t.a = 3;
	c = t.b ^ t.a;

	printf("c = %d\n", c);

	return 0;
}	

		

Ответ:

 (1)

 (2) 63 

 (3) 252 

 (4) 255 


Номер 3
Чему будет равно значение переменной c после выполнения приведенной программы?

int main(void)
{
	struct test {
		unsigned int a : 2;
		unsigned int b : 8;
	};
	
	int c;
	struct test t;

	t.b = 255;
	t.a = 3;
	c = t.b | t.a;

	printf("c = %d\n", c);

	return 0;
}	

		

Ответ:

 (1)

 (2) 63 

 (3) 252 

 (4) 255 


Упражнение 10:
Номер 1
В каком случае приведено верное описание выполнения операции побитового отрицания ~ для числа 0х92С4?

Ответ:

 (1) исходное число: 1001 0010 1100 0100 результат операции: 0000 0000 0000 0000  

 (2) исходное число: 1001 0010 1100 0100 результат операции: 1111 1111 1111 1111  

 (3) исходное число: 1001 0010 1100 0100 результат операции: 0110 1101 0011 1011  


Номер 2
В каком случае выполняется операция побитового исключающего ИЛИ (^)?

Ответ:

 (1) исходное число: 1001 0010 1100 0100 операнд-маска: 1000 0000 0000 0011 результат: 0001 0010 1100 0111  

 (2) исходное число: 1001 0010 1100 0100 операнд-маска: 1111 0000 0000 0000 результат: 1001 0000 0000 0000  

 (3) исходное число: 1001 0010 1100 0100 операнд-маска: 1000 0000 0000 0011 результат: 1001 0010 1100 0111  


Номер 3
В каком случае выполняется операция побитового включающего ИЛИ (|)?

Ответ:

 (1) исходное число: 1001 0010 1100 0100 операнд-маска: 1000 0000 0000 0011 результат: 0001 0010 1100 0111  

 (2) исходное число: 1001 0010 1100 0100 операнд-маска: 1111 0000 0000 0000 результат: 1001 0000 0000 0000  

 (3) исходное число: 1001 0010 1100 0100 операнд-маска: 1000 0000 0000 0011 результат: 1001 0010 1100 0111  


Упражнение 11:
Номер 1
Значения каких переменных будут четными?

	a = 6 & 5;
	b = 6 | 5;
	c = 6 ^ 5;
		
		

Ответ:

 (1) a 

 (2) b 

 (3) c 


Номер 2
Значения каких переменных будут нечетными?

	a = 6 & 5;
	b = 6 | 5;
	c = 6 ^ 5;
		
		

Ответ:

 (1) a 

 (2) b 

 (3) c 


Номер 3
Значение какой переменной будет наибольшим?

	a = 6 & 5;
	b = 6 | 5;
	c = 6 ^ 5;
		
		

Ответ:

 (1) a 

 (2) b 

 (3) c 


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

int main(void)
{	
	int date;
	int year = 26;
	int month = 12;
	int day = 31;
	
	year = year << 9;
	month = month << 5;
	date = day;
	date = date | month;
	date = date | year;
	
	return 0;
}	
		
		

Ответ:

 (1) складывает год, месяц, число 

 (2) выполняет операцию побитового включающего ИЛИ для всех переменных 

 (3) записывает в одно слово полную дату (год, месяц, число) 


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

	int year = 26;
	year = year << 9;	
		
		

Ответ:

 (1) 6656 

 (2) 13312 

 (3) 26624 


Номер 3
Чему будет равно значение переменной d в результате выполнения приведенного фрагмента кода?
	
	int d;
	int a = 10;
	int b = 15;
	
	a >>= 1;
	b <<= 1;
	d = a + b;
		
		

Ответ:

 (1) 18 

 (2) 19 

 (3) 34 

 (4) 35 




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