Главная / Программирование /
Введение в программирование на Лиспе / Тест 8
Введение в программирование на Лиспе - тест 8
Упражнение 1:
Номер 1
Укажите, какие функции являются псевдо-функциями Лисп-системы:
Ответ:
 (1) (cond) 
 (2) (union) 
 (3) (setq) 
Номер 2
Укажите, какие функции являются псевдо-функциями Лисп-системы:
Ответ:
 (1) (let) 
 (2) (intesection) 
 (3) (print) 
Номер 3
Что такое псевдо-функция:
Ответ:
 (1) это функция, которая выполняется ради воздействия на систему 
 (2) это функция, которая выполняется ради получения значений 
 (3) это функция, в качестве аргументов которой могут выступать другие функции 
Упражнение 2:
Номер 1
Какой из результатов вычисления формы (union '(1 2 3) '(1 2 5)) будет получен (учесть порядок следования элементов итогового списка). Функция Union имеет следующее определение:
(DEFUN UNION (X Y)
(COND
((NULL X) Y)
((MEMBER (CAR X) Y) (UNION (CDR X) Y) )
(T (CONS (CAR X) (UNION (CDR X) Y))) )) )
))
Ответ:
 (1) (1 2 3 5) 
 (2) (3 2 5 1) 
 (3) (1 2 5 3) 
 (4) (3 1 2 5) 
Номер 2
Какой из результатов вычисления формы (union '(a b c) '(с a b)) будет получен (учесть порядок следования элементов итогового списка). Функция Union имеет следующее определение:
(DEFUN UNION (X Y)
(COND
((NULL X) Y)
((MEMBER (CAR X) Y) (UNION (CDR X) Y) )
(T (CONS (CAR X) (UNION (CDR X) Y))) )) )
))
Ответ:
 (1) (a b с) 
 (2) (с a b) 
 (3) (a b a b)  
 (4) (a с b) 
Номер 3
Какой из результатов будет получен при вычисления формы (union '(a b c) '(1 a a)), функция union имеет следующее определение:
(DEFUN UNION (X Y)
(COND
((NULL X) Y)
((MEMBER (CAR X) Y) (UNION (CDR X) Y) )
(T (CONS (CAR X) (UNION (CDR X) Y))) )) )
))
Ответ:
 (1) (1 a b c) 
 (2) (с a a b 1) 
 (3) (b с 1 a a) 
 (4) (a с b 1) 
Упражнение 3:
Номер 1
Укажите, какая из приведенных ниже форм является специальной:
Ответ:
 (1) (Atom x) 
 (2) (Eq x1 x2) 
 (3) (Cond (x (cons 1 (cdr x)) )) 
 (4) T 
Номер 2
Укажите, какая из приведенных ниже форм являются специальными:
Ответ:
 (1) (defun f(x) (car x)) 
 (2) (Atom '(x y)) 
 (3) T 
 (4) nil 
Номер 3
Укажите, какая из приведенных ниже форм является специальной:
Ответ:
 (1) (cond ((Eq x y) (print x)) (T (print y)) ) 
 (2) (Eq (x y)) 
 (3) (eval '(car x)) 
 (4) nil 
Упражнение 4:
Номер 1
Какой из результатов вычисления формы (intersection '(1 2 3) '(4 5 3)) является верным. Функция intersection имеет следующее определение:
(DEFUN INTERSECTION (X Y)
(COND
((NULL X) NIL)
((MEMBER (CAR X) Y) (CONS (CAR X) (INTERSECTION (CDR X) Y)) )
(T (INTERSECTION (CDR X) Y))
))
Ответ:
 (1) (1 2 3 4 5) 
 (2) (1 2 4 5) 
 (3) (3) 
Номер 2
Какой из результатов вычисления формы (intersection '(a b c) '(a b d)) является верным. Функция intersection имеет следующее определение:
(DEFUN INTERSECTION (X Y)
(COND
((NULL X) NIL)
((MEMBER (CAR X) Y) (CONS (CAR X) (INTERSECTION (CDR X) Y)) )
(T (INTERSECTION (CDR X) Y))
))
Ответ:
 (1) (d c) 
 (2) (b a) 
 (3) (a b) 
Номер 3
Какой из результатов вычисления формы (intersection '(a b c) '(с a b)) является верным. Функция intersection имеет следующее определение:
(DEFUN INTERSECTION (X Y)
(COND
((NULL X) NIL)
((MEMBER (CAR X) Y) (CONS (CAR X) (INTERSECTION (CDR X) Y)) )
(T (INTERSECTION (CDR X) Y))
))
Ответ:
 (1) (a b с) 
 (2) (с a b) 
 (3) Nil 
Упражнение 5:
Номер 1
Какое из представленных ниже выражений содержит ошибки:
Ответ:
 (1) (a b c d . e) 
 (2) (a b .( c d) e) 
 (3) (((a . b) . c) d . e) 
Номер 2
Какие из представленных ниже выражений содержат ошибки:
Ответ:
 (1) (a . b c d e) 
 (2) (a . b .( c d e)) 
 (3) (((a . b) . c) d e) 
Номер 3
Какие из представленных ниже выражений содержат ошибки:
Ответ:
 (1) (a b c d e . nil) 
 (2) (a b ( c d . e)) 
 (3) (((a . b) . c) d e) 
Упражнение 6:
Номер 1
Какая из представленных ниже пар форм имеет одинаковые результаты при их вычислении:
Ответ:
 (1) (apply (f x y)) и (funcall f x y) 
 (2) (apply (f x y)) и (funcall (f x y)) 
 (3) (eval '(f 'x 'y)) и (eval '(f x y)) 
 (4) (eval '(f x y)) и (funcall f 'x 'y) 
Номер 2
Какая из представленных ниже пар форм дает одинаковые результаты при их вычислении:
Ответ:
 (1) (eval f (x y)) и (apply (f x y)) 
 (2) (eval (f x y)) и (funcall f x y) 
 (3) (eval '(f x y)) и (funcall f x y) 
 (4) (eval '(f 'x 'y)) и (funcall f x y)  
Номер 3
Какая из представленных ниже пар форм имеет одинаковые результаты при их вычислении:
Ответ:
 (1) (append f (x y)) и (funcall f (x y)) 
 (2) (apply f (x y)) и (funcall f x y) 
 (3) (eval f (x y)) и (funcall f x y) 
 (4) (eval '(f x y)) и (funcall f x y) при учете, того, что (defun f(x y) (cons x y)) был вызван ранее  
Упражнение 7:
Номер 1
Что означает запись (let ((a (cons x y))) a) :
Ответ:
 (1) замена в последующих выражениях списков "x" и "y" на список "a" 
 (2) присваивание локальной переменной "a" результата консолидации (cons x y)  
 (3) замена в выражениях (аргументах Let) повторяющегося подвыражения "(cons x y)" на "a" без воздействия на результат вычисления последующих форм 
Номер 2
Что означает запись (let ((a (car x)) (b (car y))) a b):
Ответ:
 (1) замена в последующих выражениях повторяющихся подвыражений "a" и "b" на "(car x)" и "(car y)" 
 (2) замена в выражениях (аргументах Let) повторяющихся подвыражений "(car x)" и "(car y)" на "a" и "b" 
 (3) замена в последующих выражениях повторяющихся голов " x" и "y" на "a" и "b" 
Номер 3
В каких случаях можно использовать инструкцию Let :
Ответ:
 (1) вынос из определения совпадающих подвыражений 
 (2) задание глобальной переменной значения 
 (3) вывод на экран результата выполнения функции, идущей в качестве аргумента Let 
Упражнение 8:
Номер 1
Каким образом низкоуровневая подпрограмма может быть включена в Лисп-систему:
Ответ:
 (1) создание низкоуровневой программы в Лисп-системе пользователем 
 (2) создание низкоуровневой программы возможно вне систем программирования, но никак не внутри системы 
 (3) создание низкоуровневой программы в другой системе и ее перенос в Лисп систему 
Номер 2
Каким образом низкоуровневая программа может быть включена в Лисп-систему:
Ответ:
 (1) создание низкоуровневой программы в Лисп-системе пользователем 
 (2) лисп система не поддерживает работу с языком Ассемблер 
 (3) путем трансляции Лисп-кода в код ассемблера Лисп-программы с дальнейшим использованием 
Номер 3
Каким образом низкоуровневая программа может быть включена в Лисп-систему:
Ответ:
 (1) никаким 
 (2) создание низкоуровневой программы в Лисп-системе пользователем 
 (3) создание низкоуровневой программы возможно вне систем программирования, но никак не внутри системы 
Упражнение 9:
Номер 1
Какой результат будет получен при вычислении формы (cons '(car '(A B) (car '(C D)))) :
Ответ:
 (1) (A . C) 
 (2) ((car '(A B)) . C) 
 (3) сообщение об ошибке 
Номер 2
Какой результат будет получен при вычислении формы (cons '(car '(A B)) '(car '(C D))) :
Ответ:
 (1) (A . C) 
 (2) сообщение об ошибке 
 (3) ((car '(A B)) . (car '(B C))) 
Номер 3
Какой результат будет получен при вычислении формы (funcall (cons 'car '('(C D)))):
Ответ:
 (1) C 
 (2) (car '(C D))  
 (3) сообщение б ошибке 
Упражнение 10:
Номер 1
Какое из представленных ниже выражений содержит ошибки:
Ответ:
 (1) (1 2 3 4 5) 
 (2) (1 . (2 3 . (4 5))) 
 (3) (((1 . 2) . (3 . 4 . 5)) 
Номер 2
Какие из представленных ниже выражений содержат ошибки:
Ответ:
 (1) (1 2 3 . 4 5 ) 
 (2) (1 2 3 4 . (5)) 
 (3) (((1 . nil) . nil) 3 4 5) 
Номер 3
Какие из представленных ниже выражений содержат ошибки:
Ответ:
 (1) ((1) (2) (3 4) . (5)) 
 (2) (1 2 3 . (4 . nil) 5) 
 (3) ((1 . nil) (2. nil) (3 . nil) (4 . nil) (5 . nil) . nil)