игра брюс 2048
Главная / Программирование / Структуры и алгоритмы компьютерной обработки данных / Тест 6

Структуры и алгоритмы компьютерной обработки данных - тест 6

Упражнение 1:
Номер 1
Укажите объявление указателя-константы на вещественную переменную.

Ответ:

 (1) const float ci=1; 

 (2) const float *pci; 

 (3) float *const cpi; 

 (4) const float *const cpc; 


Номер 2
Укажите объявление указателя-константы на вещественную константу.

Ответ:

 (1) const float ci=1; 

 (2) const float *pci; 

 (3) float *const cpi; 

 (4) const float *const cpc; 


Номер 3
Укажите объявление указателя на вещественную константу.

Ответ:

 (1) const float ci=1; 

 (2) const float *pci;  

 (3) float *const cpi; 

 (4) const float *const cpc; 


Упражнение 2:
Номер 1
Укажите, что запрещено выполнять над указателем, который объявлен const int *const pa.

Ответ:

 (1) изменять значения указателя 

 (2) изменять значение, на которое указывает указатель 

 (3) инициализировать указатель 

 (4) разыменовывать указатель 


Номер 2
Укажите, что разрешено выполнять над указателем, который объявлен int const *pa.

Ответ:

 (1) изменять значения указателя 

 (2) изменять значение, на которое указывает указатель 

 (3) инициализировать указатель 

 (4) разыменовывать указатель 


Номер 3
Укажите, что запрещено выполнять над указателем, который объявлен const int *pa.

Ответ:

 (1) изменять значения указателя 

 (2) изменять значение, на которое указывает указатель 

 (3) инициализировать указатель 

 (4) разыменовывать указатель 


Упражнение 3:
Номер 1
В какой строке будут выведены одинаковые результаты, если ранее выполнены следующие инициализации:
		
int a=3,*pa,*pb;
pa=&a;
pb=pa;
		
		

Ответ:

 (1) printf ("\n%p %p ",pa, pb); 

 (2) printf ("\n%p %p ",&pb, &a); 

 (3) printf ("\n%d %d ",*pa, *pb); 

 (4) printf ("\n%d %d ",pb, a); 


Номер 2
В каких строках будут выведены одинаковые результаты, если ранее выполнены следующие инициализации:
		
int a=3,*pa,*pb;
pa=&a;
pb=pa;
		
		

Ответ:

 (1) printf ("\n%d %d ",*pa, a); 

 (2) printf ("\n%d %d ",pa, a);  

 (3) printf ("\n%p %p ",&pa, &pb); 

 (4) printf ("\n%d %d ",*pb, a); 


Номер 3
В каких строках будут выведены одинаковые результаты, если ранее выполнены следующие инициализации:
		
int a=3,*pa,*pb;
pa=&a;
pb=pa;
		
		

Ответ:

 (1) printf ("\n%p %p ",pa, &a);  

 (2) printf ("\n%p %p ",&pa, &a); 

 (3) printf ("\n%d %d ",*pa, *pb); 

 (4) printf ("\n%p %p ",pb, &a); 


Упражнение 4:
Номер 1
Укажите результат выполнения операции pa++, если выполнено объявление int *pa; и инициализация указателя адресом 0012FF48.

Ответ:

 (1) 0012FF48 

 (2) 0012FF49 

 (3) 0012FF52 

 (4) данная операция над указателями не определена 


Номер 2
Укажите результат выполнения операции pb+pa, если выполнено объявление int *pa,*pb; и инициализация указателей адресами 0012FF48 и 0012FF64 соответственно.

Ответ:

 (1) 0025FEAC 

 (2) 16 

 (3)

 (4) данная операция над указателями не определена 


Номер 3
Укажите результат выполнения операции pa--, если выполнено объявление float *pa; и инициализация указателя адресом 0012FF54.

Ответ:

 (1) 0012FF50 

 (2) 0012FF53 

 (3) 0012FF54 

 (4) данная операция над указателями не определена 


Упражнение 5:
Номер 1
Укажите операции, разрешенные над указателями:

Ответ:

 (1) умножение 

 (2) деление 

 (3) взятие адреса 

 (4) присваивание 


Номер 2
Укажите операции, запрещенные над указателями:

Ответ:

 (1) разыменование 

 (2) сравнение 

 (3) приведение типов 

 (4) сложение с вещественным числом 


Номер 3
Укажите операции, разрешенные над указателями:

Ответ:

 (1) сложение указателей 

 (2) вычитание указателей 

 (3) инкремент 

 (4) декремент 


Упражнение 6:
Номер 1
Что является результатом выполнения фрагмента кода: int *(*f)(char);?

Ответ:

 (1) объявление указателя на функцию f типа int 

 (2) объявление функции c именем f типа указатель на int 

 (3) объявление функции с именем f типа int 

 (4) объявление указателя на функцию f типа указатель на int 


Номер 2
Что является результатом выполнения фрагмента кода: int *f(char);?

Ответ:

 (1) объявление указателя на функцию f типа int 

 (2) объявление функции c именем f типа указатель на int 

 (3) объявление функции с именем f типа int 

 (4) объявление указателя на функцию f типа указатель на int 


Номер 3
Что является результатом выполнения фрагмента кода: int (*f)(char);?

Ответ:

 (1) объявление указателя на функцию f типа int 

 (2) объявление функции c именем f типа указатель на int 

 (3) объявление функции с именем f типа int 

 (4) объявление указателя на функцию f типа указатель на int 


Упражнение 7:
Номер 1
Каким образом компилятором происходит контроль конца списка параметров во фрагменте кода:
		
float sum(int k, ...) {
  int *p=&k;
  float s=0;
  for(;k!=0;k--)
    s+=*(++p);
  return s;
}
		
		

Ответ:

 (1) известен признак конца списка параметров 

 (2) известно количество параметров в списке 

 (3) контроль конца списка параметров данной функции проводить не надо 

 (4) количество параметров у функций при компиляции должно быть фиксировано 


Номер 2
Каким образом компилятором происходит контроль конца списка параметров во фрагменте кода:
		
double rec(double(*pf)(double), double a, double b){
  int N, i;
  double h,s=0.0;
  printf("\nВведите количество интервалов разбиения: N= ");
  scanf("%d",&N);
  printf("\na= ");
  h=(b-a)/N; 
  for (i=0;i<N;i++)
    s+=pf(a+h/2+i*h);
  return h*s;
}            
		
		

Ответ:

 (1) известен признак конца списка параметров 

 (2) известно количество параметров в списке 

 (3) у данной функции фиксированное число параметров, контроль не нужен 

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


Номер 3
Каким образом компилятором происходит контроль конца списка параметров во фрагменте кода:
		
float arifm(int k, ...) {
  int *p=&k;//настроили указатель на параметр k
  float s=*p; //значение первого параметра присвоили s
  int i;
  for(i=1;(*p)!=0;i++) //пока нет конца списка
    s+=*(++p);
  return s/(i-1);
}
		
		

Ответ:

 (1) известен признак конца списка параметров 

 (2) известно количество параметров в списке 

 (3) контроль конца списка параметров данной функции проводить не надо 

 (4) количество параметров у функций при компиляции должно быть фиксировано 


Упражнение 8:
Номер 1
Какой объект объявлен следующим образом: float **nb;?

Ответ:

 (1) указатель на функцию вещественного типа 

 (2) переменная вещественного типа 

 (3) указатель на вещественное число 

 (4) указатель на указатель на вещественное число 


Номер 2
Как получить доступ к значению переменой x, если выполнены объявления и инициализации:
		
int *p, x, **q;
x = 10;
p = &x;
q = &p;
		
		

Ответ:

 (1) printf("%d", **q); 

 (2) printf("%d", *q); 

 (3) printf("%d", q); 

 (4) printf("%d", *p); 


Номер 3
Даны следующие объявления и инициализации:
		
int x, *p, **q, ***r;
x=5;
p = &x;
q = &p;
r = &q;
		
		Укажите истинные высказывания:
		

Ответ:

 (1) значением переменой r является адрес адреса переменной p 

 (2) значением переменой q является число 5 

 (3) значением переменой p является число 5 

 (4) значением переменой p является адрес, по которому хранится число 5 




Главная / Программирование / Структуры и алгоритмы компьютерной обработки данных / Тест 6