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

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

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

extern int x, y;
extern char ch;

static void func1(void)
{
	y = 100;
}

int func2(int a)
{
	int b;
	b = a;
	return b;
}

extern void func2(void)
{
	x = y/10;
	ch = 'R';
}
		
		

Ответ:

 (1) func1 

 (2) func2 

 (3) func2 


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

extern int x, y;
extern char ch;

static void func1(void)
{
	y = 100;
}

int func2(int a)
{
	int b;
	b = a;
	retun b;
}

extern void func2(void)
{
	x = y/10;
	ch = 'R';
}
		
		

Ответ:

 (1) func1 

 (2) func2 

 (3) func2 


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

int func1(int a);
static void func2(void);
extern void func3(void);
		

Ответ:

 (1) func1 

 (2) func2 

 (3) func3 


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

Ответ:

 (1) при статической продолжительности хранения 

 (2) при автоматической продолжительности хранения 

 (3) при распределенной продолжительности хранения 


Номер 2
При какой продолжительности хранения память под переменную выделяется в момент, когда выполнение программы входит в блок, в котором эта переменная определена, и освобождается, когда выполнение программы покидает этот блок?

Ответ:

 (1) при статической продолжительности хранения 

 (2) при автоматической продолжительности хранения 

 (3) при распределенной продолжительности хранения 


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

Ответ:

 (1) память выделяется в начале выполнения программы и остается занятой на протяжении всего выполнения 

 (2) память под переменную выделяется в момент, когда выполнение программы входит в блок, в котором эта переменная определена, и освобождается, когда выполнение программы покидает этот блок 

 (3) память выделяется по возможности в регистрах процессора 


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

Ответ:

 (1) внутреннее связывание 

 (2) внешнее связывание 

 (3) не имеет связывания 


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

Ответ:

 (1) при внутреннем связывании 

 (2) при внешнем связывании 

 (3) при любом типе связывания 

 (4) ни при каком типе связывания 


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

Ответ:

 (1) при внутреннем связывании 

 (2) при внешнем связывании 

 (3) при любом типе связывания 

 (4) ни при каком типе связывания 


Упражнение 4:
Номер 1
В каких функциях видна переменная t?

int c = 9;

int sum(int a, int b)
{
	return a+b;
}

int t = 8;

int main(void)
{
	int n=4, m=3, s1, s2;
	s1 = sum(n,m);
	s2 = mul(n,m);
	return 0;
}

int mul(int a, int b)
{
	return a*b;
}
		
		

Ответ:

 (1) main() 

 (2) sum() 

 (3) mul() 


Номер 2
Какие из перечисленных переменных видны в функции main()?

int c = 9;

int sum(int a, int b)
{
	return a+b;
}

int t = 8;

int main(void)
{
	int n=4, m=3, s1, s2;
	s1 = sum(n,m);
	s2 = mul(n,m);
	return 0;
}

int k = 6;

int mul(int a, int b)
{
	return a*b;
}
		
		

Ответ:

 (1) c 

 (2) t 

 (3) k 


Номер 3
Какие из перечисленных переменных видны в функции sum()?

int c = 9;

int sum(int a, int b)
{
	return a+b;
}

int t = 8;

int main(void)
{
	int n=4, m=3, s1, s2;
	s1 = sum(n,m);
	s2 = mul(n,m);
	return 0;
}

int k = 6;

int mul(int a, int b)
{
	return a*b;
}
		
		

Ответ:

 (1) c 

 (2) t 

 (3) k 


Упражнение 5:
Номер 1
В каком случае переменные a и b видны в функции main()?

Ответ:

 (1) int main (void) { printf("a = %d; b = %d\n", a, b); printf("Press any key: "); _getch(); return 0; } int a = 33, b = 34;  

 (2) int a = 33, b = 34; int main (void) { printf("a = %d; b = %d\n", a, b); printf("Press any key: "); _getch(); return 0; }  

 (3) int main (void) { extern int a, b; printf("a = %d; b = %d\n", a, b); printf("Press any key: "); _getch(); return 0; } int a = 33, b = 34;  


Номер 2
В каком случае переменные a и b будут невидны в функции main()?

Ответ:

 (1) int main (void) { printf("a = %d; b = %d\n", a, b); printf("Press any key: "); _getch(); return 0; } int a = 33, b = 34;  

 (2) int a = 33, b = 34; int main (void) { printf("a = %d; b = %d\n", a, b); printf("Press any key: "); _getch(); return 0; }  

 (3) int main (void) { extern int a, b; printf("a = %d; b = %d\n", a, b); printf("Press any key: "); _getch(); return 0; } int a = 33, b = 34;  


Номер 3
Как можно решить проблему невидимости переменных a и b в функции main() для приведенного фрагмента кода?

int main (void) 
{	
	printf("a = %d; b = %d\n", a, b);
	printf("Press any key: ");
	_getch();
	return 0;  
}

int a = 33, b = 34;
		
		

Ответ:

 (1) добавить в функцию main() объявление переменных a и b со спецификатором extern 

 (2) объявить и инициализировать переменные a и b перед функцией main() 

 (3) переменные a и b должны быть объявлены локально, так как в функции main() допускается использовать только локальные переменные 


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

int test();
int a = 1;

int main (void) 
{
	int b, s;
	extern int x;
	static int c;
	int a;
	a = 2;
	s = test();

	return 0;  
}

int test() 
{
	int t = a;
	return t;
}
		
		

Ответ:

 (1)

 (2)

 (3)


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

int test();
int a = 1;

int main (void) 
{
	int b, s;
	extern int x;
	static int c;
	s = test();

	return 0;  
}

int test() 
{
	int t = a;
	return t;
}

int x = 4;
		
		

Ответ:

 (1) a 

 (2) b 

 (3) x 

 (4) c 


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

int test();
int a = 1;

int main (void) 
{
	int b, s;
	extern int x;
	static int c;
	s = test();

	return 0;  
}

int test() 
{
	int t = a;
	return t;
}

int x = 4;
		
		

Ответ:

 (1) a 

 (2) b 

 (3) x 

 (4) c 


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

int min(int, int);
int t;

int main(void)
{
	register int x=-5, y=5, m;
	int *p;
	p = &x;
	m = min(x,y);
	printf("min = %d\n", m);
	
	return 0;
}

int min(register int a, register int b)
{
	int m = (a<b) ? a : b;
	return m;
}
		
		

Ответ:

 (1) спецификатор register применен к формальным параметрам функции min() 

 (2) спецификатор register применен к локальным переменным функции main() 

 (3) в функции main() указателю p присваивается адрес переменной, объявленной со спецификатором register 


Номер 2
Для каких переменных разрешено применение спецификатора register?

int min(int, int);
int t;

int main(void)
{
	int x=-5, y=5, m;
	m = min(x,y);
	printf("min = %d\n", m);
	
	return 0;
}

int min(int a, int b)
{
	int m = (a<b) ? a : b;
	return m;
}
			
		

Ответ:

 (1) t 

 (2) x 

 (3) m 

 (4) a 

 (5) b 


Номер 3
Для каких переменных не допускается применение спецификатора register?

int min(int, int);
int t;

int main(void)
{
	int x=-5, y=5, m;
	m = min(x,y);
	printf("min = %d\n", m);
	
	return 0;
}

int min(int a, int b)
{
	int m = (a<b) ? a : b;
	return m;
}
			
		

Ответ:

 (1) t 

 (2) x 

 (3) m 

 (4) a 

 (5) b 


Упражнение 8:
Номер 1
Какие статические переменные видны в функции main()?

int f();
static int d = 5, e = 8;

int main(void)
{
	int n = 1, m = 1;
	int s;
	s = f();	
	return 0;
}

int f()
{
	int p;
	static int c = 0;
	p = c;
	printf("d = %d",d);
	return p;
}
		
		

Ответ:

 (1) c 

 (2) d 

 (3) e 


Номер 2
Какие статические переменные будут не видны в функции main()?

int f();
static int d = 5, e = 8;

int main(void)
{
	int n = 1, m = 1;
	int s;
	s = f();	
	return 0;
}

int f()
{
	int p;
	static int c = 0;
	p = c;
	printf("d = %d",d);
	return p;
}
		
		

Ответ:

 (1) c 

 (2) d 

 (3) e 


Номер 3
Какие статические переменные будут видны в функции f()?

int f();
static int d = 5, e = 8;

int main(void)
{
	int n = 1, m = 1;
	int s;
	s = f();	
	return 0;
}

int f()
{
	int p;
	static int c = 0;
	p = c;
	printf("d = %d",d);
	return p;
}
		
		

Ответ:

 (1) c 

 (2) d 

 (3) e 


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

Ответ:

 (1) auto 

 (2) static 

 (3) extern 

 (4) register 


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

Ответ:

 (1) auto 

 (2) static 

 (3) extern 


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

Ответ:

 (1) auto 

 (2) static 

 (3) extern 

 (4) register 


Упражнение 10:
Номер 1
Что обозначает подключение #include "..\..\some.h"?

Ответ:

 (1) то, что файл some.h находится на два уровня ниже, чем главный файл 

 (2) то, что файл some.h находится на два уровня выше, чем главный файл 

 (3) то, что для поиска файла some.h необходимо выполнить просмотр верхних уровней до тех пор, пока файл не будет найден 


Номер 2
Что обозначает подключение #include "..\some.h"?

Ответ:

 (1) то, что файл some.h находится на один уровень ниже, чем главный файл 

 (2) то, что файл some.h находится на один уровень выше, чем главный файл 

 (3) то, что для поиска файла some.h необходимо выполнить просмотр верхних уровней до тех пор, пока файл не будет найден 


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

Ответ:

 (1) #include "..\some.h" 

 (2) #include "..\..\some.h" 

 (3) #include "..\..\..\some.h" 


Упражнение 11:
Номер 1
Для чего используется класс статической памяти?

Ответ:

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

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

 (3) для исключения конфликта имен 


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

Ответ:

 (1) класс статической памяти используется для улучшения ясности алгоритма, реализованного в программе 

 (2) класс статической памяти используется для улучшения читаемости и ясности текста программы 

 (3) класс статической памяти используется для исключения конфликта имен 


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

Ответ:

 (1) класс статической памяти используется для улучшения ясности алгоритма, реализованного в программе 

 (2) класс статической памяти используется для улучшения читаемости и ясности текста программы 

 (3) класс статической памяти используется для исключения конфликта имен 


Упражнение 12:
Номер 1
Файл second.h, расположенный на диске D:, содержит следующие описания переменных и функций:

extern int x, y;
extern char ch;

void func22(void)
{
	y = 100;
}

void func23(void)
{
	x = y/10;
	ch = 'R';
}
			
В каком случае выполняется неверное подключение файла second.h в другом файле?

Ответ:

 (1) #include <stdio.h> #include <conio.h> #include "D:\second.h" int x = 99, y = 77; char ch; void func1(void); int main(void) { ch = 'Z'; func1(); printf("\n Press any key: "); _getch(); return 0; } void func1(void) { func22(); func23(); printf("\n\t x = %d; y = %d;\ ch = %c\n", x, y, ch); }  

 (2) #include <stdio.h> #include <conio.h> #include <D:\second.h> int x = 99, y = 77; char ch; void func1(void); int main(void) { ch = 'Z'; func1(); printf("\n Press any key: "); _getch(); return 0; } void func1(void) { func22(); func23(); printf("\n\t x = %d; y = %d;\ ch = %c\n", x, y, ch); }  

 (3) #include <stdio.h> #include <conio.h> #include D:\second.h int x = 99, y = 77; char ch; void func1(void); int main(void) { ch = 'Z'; func1(); printf("\n Press any key: "); _getch(); return 0; } void func1(void) { func22(); func23(); printf("\n\t x = %d; y = %d;\ ch = %c\n", x, y, ch); }  


Номер 2
Файл second.h, расположенный на диске D:, содержит следующие описания переменных и функций:

extern int x, y;
extern char ch;

void func22(void)
{
	y = 100;
}

void func23(void)
{
	x = y/10;
	ch = 'R';
}
			
В каком случае подключение файла second.h в другом файле выполняется верно?

Ответ:

 (1) #include <stdio.h> #include <conio.h> #include "D:\second.h" int x = 99, y = 77; char ch; void func1(void); int main(void) { ch = 'Z'; func1(); printf("\n Press any key: "); _getch(); return 0; } void func1(void) { func22(); func23(); printf("\n\t x = %d; y = %d;\ ch = %c\n", x, y, ch); }  

 (2) #include <stdio.h> #include <conio.h> #include <D:\second.h> int x = 99, y = 77; char ch; void func1(void); int main(void) { ch = 'Z'; func1(); printf("\n Press any key: "); _getch(); return 0; } void func1(void) { func22(); func23(); printf("\n\t x = %d; y = %d;\ ch = %c\n", x, y, ch); }  

 (3) #include <stdio.h> #include <conio.h> #include D:\second.h int x = 99, y = 77; char ch; void func1(void); int main(void) { ch = 'Z'; func1(); printf("\n Press any key: "); _getch(); return 0; } void func1(void) { func22(); func23(); printf("\n\t x = %d; y = %d;\ ch = %c\n", x, y, ch); }  


Номер 3
Файл second.h, расположенный на диске D:, содержит следующие описания переменных и функций:

extern int x, y;
extern char ch;

void func22(void)
{
	y = 100;
}

void func23(void)
{
	x = y/10;
	ch = 'R';
}
			
Каким образом файл second.h должен быть подключен для возможности использования описанных в нем переменных и функций в другом файле?

Ответ:

 (1) #include <stdio.h> #include <conio.h> #include "D:\second.h"  

 (2) #include <stdio.h> #include <conio.h> #include <D:\second.h>  

 (3) #include <stdio.h> #include <conio.h> #include D:\second.h  




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