logic de 2

1. Kiểu lập trình nào sau đây: lập trình logic và lập trình hàm thuộc về lập trình thuật (thông báo)

a. chỉ có kiểu logic b. Chỉ có kiểu hàm *c. cả logic và hàm

2. Danh sách trong LISP có thể làm thành phần của danh sách khác không?

*a. Có b. Không

3. Việc gọi hàm của ngôn ngữ hàm (function programming) có dạng:

a. Nguyên tử *b. Danh sách c. S- biểu thức

4. Danh sách nào dưới đây chỉ chứa những hàm cơ bản của LISP?

a. CAR, CDR, APPEND *b. ATOM, CAR, CONS c. APPEND, CAR, CDR, LIST

5. Kết quả của việc so sánh biểu thức cuối cùng là gì, nếu như các việc gọi hàm đươc thực hiện lần lượt?

(setq x (cons 'a '()))

(setq y (cons 'a1 x))

(setq w (cons 'a1 '(a)))

(setq z (cons w y))

(equal (cdr z) y)

*a. T (true) b. NIL (false)

6. Cho x có giá trị (a b), y có giá trị là 5. Hãy xác định giá trị khi gọi hàm (list x 'y)

a. (a b y) b. (a b 5) *c. ((a b) y)

7. Định nghĩa danh sách như thế này có đúng không ?

<Danh_sách> ::= NIL / ( <đầu> <đuôi>)

<Đầu> ::= <nguyên tử> / <danh_sách>

<Đuôi> ::= <danh_sách>

*a. Đúng b.Sai

8. Đối tượng nào sau đây của LISP có số con trỏ cố định khi biểu diễn trong bộ nhớ ?

a. Ký tự *c. Số

b. Ô danh sách cons d. Gọi hàm

9. Trong định nghĩa của hàm nâng 1 số lên lũy thừa bậc nguyên ta :

(defun POWER (x N) ; N - số nguyên dương

(cond ((zerop N) 1)

((even N) (POWER (* x x) (/ N 2)))

(T (* x (POWER x (- N 1))))))

a. Chỉ sử dụng sự đệ quy theo giá trị

b. Chỉ sử dụng đệ quy theo đối số

*c Đệ quy theo giá trị và cả theo đối số

10. Hàm sau đây tính gì ?

(defun count (lst) ; lst - danh sách

(cond ((null lst) 0)

((atom lst) 1)

(T (plus (count (car lst)) (count (cdr lst)))))),

*a. Số nguyên tử trong 1 danh sách bất kỳ trên tất cả các tầng của nó

b. Số nguyên tử ở tầng trên của danh sách

11. Nếu như khi gọi hàm reverse ta nhận được danh sách đảo, thì hàm dưới đây xóa đi:

(defun del (lst); lst - danh sách 1 tầng

(reverse (cdr (reverse lst))))

*a. Phần tử đầu tiên của danh sách b. Phần tử cuối cùng của danh sách

12. Hãy chỉ ra kết quả đúng của (apply 'car '((1 2)))

*a. ( 1 2) b. 1

13. Bản ghi (A . ((B . NIL) . (C . NIL))) tương đương với danh sách:

a. (A (B) C) *b. (A (B) (C))

14. Hãy chỉ ra đáp án đúng:

(MAPCAR 'ATOM '(A B C))

a. NIL (false) *b. T (true) c. (T T T)

15. Biến số trong ngôn ngữ hàm ký hiệu :

a. Theo tên vùng nhớ *b. Đối tượng của chương trình

16. Chương trình nào sau đây tính đúng dãy số Fibonaci ?

a. fib(0, 1)

fib(1, 1)

fib(N, M) :- N1 is N - 1, N2 is N1 - 1, M is M1 + M2, fib(N1, M1), fib(N2, M2)

b. fib(0, 1)

fib(N, M) :- N1 is N - 1, N2 is N - 2, fib(N1, M1), fib(N2, M2) , M is M1 + M2

fib(1, 1)

c. *fib(0, 1)

fib(1, 1)

fib(N, M) :- N1 is N - 1, N2 is N - 2, fib(N1, M1), fib(N2, M2) , M is M1 + M2

d. *fib(N, M) :- N1 is N - 1, N2 is N1 - 1, fib(N1, M1), fib(N2, M2) , M is M1 + M2; N is 0, M is 1; N is 1, M is 1

17. Chương trình nào sau đây tính chính xác độ dài của danh sách?

a. Length([], 0)

Length([H/T], S) :- S is S1 + 1, length(T, S1)

b. *Length(List, S) :- List = [], S = 0; List = [H/T], length(T,S1), S is S1 + 1

c. Length(List, S) :- (List = [], S = 0; List = [H/T], length(T,S1)), S is S1 + 1

18. Vị từ nào trong các vị từ sau đây là vị từ không được xếp vào PROLOGG?

a. var(X) *b. atom(X) c.number(X) d.character(X)

19. Nếu như dữ liệu được cho trước dưới dạng data(X), với X - là số nguyên dương, thì chương trình nào trong các chương trình dưới đây không tìm thấy số nhỏ nhất?

data(4)

data(6)

data(3)

...

a. find_min(X) :- data(X), not(have_better(X))

have_better(X) :- data(Y), Y<X

b. find_min(X) :- setoff(Z, data(Z), L), L = [X/_]

c. *find_min(X) :- data(M), find_min(M, X)

find_min(M, X) :- data(X), X<M, find_min(X, Y)

find_min(M, M)

20. Sự mô tả đối với vị từ nào trong các vị từ được đưa vào là sai?

a. *functor(+nonvar, ?atomic, ?integer)

functor(-nonvar, +atomic, +integer)

Trong đó: tham số đầu tiên -functor, tham số thứ 2 - tên của functor, tham số thứ 3 - số đối số (arity) của functor

b. arg(+compound_term, ?term, +integer)

Trong đó: tham só đầu tiên - số hạng phải tìm, tham số thứ 2 - số hạng mà tha số của nó được phân tích, tham số thứ 3 - số của số hạng cần tìm

c. =..(+nonvar, ?list)

=..(-nonvar, +list)

Trong đó: tham số thứ nhất - functor, tham số thứ 2 - danh sách với tên của functor nằm ở đầu và các tham số ở cuối.

21. Chức năng của hàm bagof là gì?

a. Biến đổi dữ liệu từ dạng functor sang danh sách mà tên nằm ở đầu và các tham số functor nằm ở đuôi. V

b. Lấy dữ liệu từ mảng và kiểm tra xem có thành phần tương ứng nào trong chương trình đối với nó không.

c. Chứng minh mục đích và tạo mảng giá trị mà biến tự do sẽ nhận nó.

22. Chương trình nào thực hiện đúng việc tìm kiếm phần tử lớn nhất trong danh sách?

a. max([Head/Tail], Maximum) :- max(Tail, Head, Maximum)

max([X], _, X)

max([X/Y], Z, M) :- X > Z, max(Y, X, M)

max([X/Y], Z, M) :- max(Y, X, M)

b. *max([H], H)

max([H/T], M) :- M < H, max(T,H)

max([H/T], M) :- max(T,M)

c. max([H/T], M) :- T == [], H = M ; H < M, max(T, M) ; H >= M, mã(T,H)

23. Vị từ nào không có quan hệ với việc chỉnh sửa trình ứng dụng trogn PROLOG ?

a. trace b.debug c. spy V d. check

24. Vị từ nào không có quan hệ với việc them và xóa các sự kiện từ chương trình?

a. assertz b. Retract c. abolish *d. Inserta V

25. Chương trình nào sau đây thực hienẹ sai việc xóa phần tử khỏi danh sách ?

a. delete(E, ListSource, ListDest) :- ListSource = [E / ListDest] ; ListSource = [_ / List], de-lete(E, List, ListDest).

b. delete(E, ListSource, ListDest) :- concat(L1, [E / L2], ListSource), concat(L1, L2, ListDest).

V c. delete(E, ListSource, ListDest) :- member(E, ListSource), ListSource = [Head / Tail],

delete(E, [Head / Tail], ListDest).

delete(E, [E / ListDest], ListDest).

26. Vị từ nào sau đây không được dùng cho việc load văn bản của chương trình trong PROLOG?

a. consult b. reconsult *c. readfile

Bạn đang đọc truyện trên: truyentop.pro

Tags: #business