wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

CTD

Total questions: 100

Worksheet time: 50mins

Name
Class
Date
1.

Các lệnh dưới đây, lệnh nào viết bằng mã ba địa chỉ được giới thiệu trong môn học

a)

t[i+1]:=x

b)

t[i]=y

c)

t[i]:=1+i

d)

a:=t[i]+b

2.

Từ khóa nào dưới đây có thể thay thế OP trong lệnh

máy : OP p q nếu mô tả của lệnh là t:=t+1;

s[t]:=s[base(p)+q]; ( t là đỉnh stack)

a)

LA

b)

LC

c)

LI

d)

LV

3.

Hệ thống nào dưới đây để mô tả một số thuộc tính liên

quan đến ngữ nghĩa của ngôn ngữ lập trình?

a)

Otomat hữu hạn

b)

Định nghĩa tựa cú pháp

c)

Stack

d)

Văn phạm hình thức

4.

Thông tin nào dưới đây không được lưu trữ trong bảng

ký hiệu của một phạm vi ứng với chương trình con?

a)

Thông tin về kiểu

b)

Tên của biến

c)

Địa chỉ bộ nhớ được phân phối

d)

Những hàm và thủ tục có thể sử dụng mà không cần

khai báo

5.

Bộ phân tích từ vựng được xây dựng dựa trên mô hình

a)

Ôtômat đẩy xuống

b)

Ôtômat hữu hạn

c)

Ôtômat tuyến tính giới nội

d)

Ôtômat đẩy xuống mở rộng

6.

Dạng lệnh nào trong mô tả dưới đây không thể đứng

đầu một khối ?

a)

Lệnh đầu của chu trình.

b)

Lệnh đầu của chương trình con.

c)

Lệnh là đích đến của lệnh goto có điều kiện.

d)

Lệnh ngay sau lệnh goto không điều kiện.

7.

Việc kiểm tra sự tương ứng về kiểu giữa biến ở vế trái

và biểu thức ở vế phải của lệnh gán được thực hiện

trong giai đoạn nào?

a)

Phân tích từ vựng

b)

Phân tích cú pháp

c)

Phân tích ngữ nghĩa

d)

Sinh mã đích

8.

Xử lý nào dưới đây để khử đệ quy trái:

a)

Thêm kí hiệu không kết thúc mới

b)

Thêm ký hiệu kết thúc mới

c)

Không được thêm ký hiệu không kết thúc mới

d)

Loại bỏ một số sản xuất không đệ quy trái

9.

Để mô tả hoạt động của giải thuật phân tích trên

xuống tiền định người ta dùng

a)

Trạng thái

b)

Stack

c)

Hình trạng

d)

Phân tích trái

10.

Ngôn ngữ để viết chương trình dịch được gọi là

a)

Ngôn ngữ đích

b)

Ngôn ngữ điều khiển

c)

Ngôn ngữ nguồn

d)

Ngôn ngữ thực hiện

11.

Mã lệnh ba địa chỉ bao gồm

a)

Đúng 3 địa chỉ

b)

ít nhất 3 địa chỉ

c)

Nhiều nhất 3 địa chỉ

d)

Tối đa 3 địa chỉ nhưng với có thể nhiều hơn khi truy cập phần tử của mạng

12.

Đầu vào của bộ sinh phân tích từ vựng là

a)

Chương trình nguồn

b)

Chương trình viết trên mã trung gian

c)

Tập các định nghĩa chính quy

d)

Văn phạm chính quy

13.

Quá trình sinh mã trung gian trong mô hình một ngôn

ngữ lập trình có thể biểu diễn qua

a)

Thuộc tính cho các ký hiệu của văn phạm

b)

Danh mục được lưu trữ trong bảng ký hiệu

c)

Cây cú pháp có chú giải

d)

Văn phạm

14.

Khẳng định nào nào dưới đây không đúng về trình

thông dịch interpreter?

a)

Trình thông dịch phân tích và thực hiện từng lệnh

b)

Trình thông dịch sinh ra chương trình đích trên

Assembly

c)

Trình thông dịch là một loại trình dịch

d)

Trình biên dịch có tốc độ cao hơn trình thông dịch

15.

Cho lệnh KPL a:=1;Nếu thay dấu chấm phảy bằng

dấu chấm thì lỗi nào sẽ xảy ra?

a)

Lỗi từ vựng

b)

Lỗi cú pháp

c)

Lỗi ngữ nghĩa

d)

Lỗi trong quá trình sinh mã

16.

Cho văn phạm S-> aSb, S -> c và xâu aacbb. Hình

trạng nào là hình trạng ngay sau (q, 2, S1aS1,aSbb#)?

a)

(q, 3, S1aS1aS2, cbb#)

b)

(b, 2, S1aS1,aSbb#)

c)

(q, 3, S1aS1a, Sbb#)

d)

Không lựa chọn nào đúng

17.

Đồ thị cho thấy mối liên hệ giữa các khối cơ sở gọi là

gì?

a)

Directed acyclic graph

b)

View graph

c)

Control flow graph

d)

Hamiltonion graph

18.

Đâu là tên của một bộ sinh phân tích từ vựng?

a)

Lex

b)

Yacc

c)

Bison

d)

Không lựa chọn nào là đúng

19.

Để lưu trữ lịch sử chọn sản xuất của giải thuật phân

tích top down quay lui người ta dùng

a)

Trạng thái

b)

Stack

c)

Hình trạng

d)

Phân tích trái

20.

Dãy dưới đây chứa bao nhiêu từ tố của KPL? (*c := b

+ a(*1*)

a)

0

b)

5

c)

6

d)

8

21.

Dòng nào dưới đây đúng cú pháp KPL?

a)

a := integer;

b)

a =1; b =-a;

c)

const a =1;b =-a;

d)

const a :=1; b :=a;

22.

Khẳng định nào dưới đây là đúng với EBNF

a)

Cặp [] chỉ một đối tượng có thể xuất hiện hoặc không

b)

Bắt buộc phân cách các ký hiệu kết thúc bằng cặp

nháy đơn hoặc cặp nháy kép

c)

Muốn thể hiện chu trình thì luật phải đệ quy

d)

Cần một ký pháp đặc biệt để mô tả ký hiệu đầu

23.

Việc xác định các biểu thức con chung và thay thế

trong thời gian dịch thay vì tính toán vào thời gian

thực hiện được làm trong giai đoạn

a)

Tối ưu cục bộ

b)

Tính giá trị hằng

c)

Tối ưu trong khối cơ bản

d)

Phân tích dòng điều khiển

24.

Trong một compiler, nơi chứa thông tin về các biến và

các thuộc tính của chúng là

a)

Stack ngữ nghĩa

b)

Bảng phân tích cú pháp

c)

Bảng ký hiệu

d)

Cây cú pháp có chú giải

25.

Khi nào compiler xem xét đến các ký tự được phép sử

dụng trong một ngôn ngữ lập trình?

a)

khi phân tích từ vựng

b)

khi phân tích cú pháp

c)

khi sinh mã đích

d)

khi phân tích dòng dữ liệu

26.

Tại sao lại tối ưu mã trên mã trung gian?

a)

Vì không thể tối ưu mã nguồn

b)

Vì chương trình tối ưu chạy trên mã trung gian nhanh

hơn mã đích

c)

Vì không thể sử dụng thông tin tối ưu khi phân tích

dòng dữ liệu

d)

Vì mã trung gian không phụ thuộc máy

27.

Kết quả của bộ phân tích cú pháp top down quay lui là

a)

Nghịch đảo của phân tích phải

b)

Nghịch đảo của phân tích trái

c)

Phân tích phải

d)

Phân tích trái

28.

Giai đoạn nào trong compiler không phụ thuộc máy?

a)

Phân tích cú pháp

b)

Sinh mã trung gian

c)

Phân tích từ vựng

d)

Tất cả các giai đoạn nói trên

29.

Cho văn phạm

E -> E * F | F + E | F

F -> F - F | id

Khẳng định nào dưới đây là đúng?

a)

* có thứ tự ưu tiên cao hơn +

b)

- có tứ tự ưu tiên cao hơn *

c)

+ và - có cùng thứ tự ưu tiên

d)

+ có thứ tự ưu tiên cao hơn *

30.

Việc loại bỏ mã chết trong tối ưu mã trung gian nhằm

mục đích

a)

Loại bỏ tất cả các nhãn

b)

Loại bỏ các đoạn mã không bao giờ được thực hiện

hoặc liên quan đến các biến chỉ sử dụng một lần

c)

Loại bỏ các hàm không liên quan đến chương trình

d)

Loại bỏ các module chương trình sau khi thựu hiện nó.

31.

Khẳng định nào sau đây là đúng về cây cú pháp là có

chú giải

a)

Nó chứa tất cả các thuộc tính của tất cả các nút

b)

Trên cây không có nút nào có thuộc tính kế thừa

c)

Mọi nút lá đều chỉ chứa các thuộc tính tổng hợp

d)

Mọi nút trong đề có ít nhất một thuộc tính kế thừa

32.

Cho văn phạm: với các sản xuất S → FR, R → *S | ε,

F → id

Trong bảng phân tích M, của văn phạm, các ô M[S,

id] và M[R, $] tương ứng là

a)

{S → FR} và {R → ε}

b)

{S → FR} và { }(lỗi)

c)

{S → FR} và {R → *S}

d)

{F → id} và {R → ε}

33.

linker là

a)

một dạng interpreter

b)

công cụ kết nối các module của chương trình

c)

là công cụ đọc mã nguồn chương trình

d)

là công cụ để soạn thảo chương trình

34.

Khẳng định nào sau đây là đúng?

a)

FIRST(ε) = {ε}

b)

FOLLOW(S) với S là ký hiệu đầu chứa $

c)

Nếu A → w là một sản xuất thì FIRST(A) chứa

FIRST(w)

d)

Tất cả các khẳng định trên đều đúng

35.

Mỗi sơ đồ cú pháp được xây dựng cho một

a)

Ký hiệu kết thúc

b)

Ký hiệu của văn phạm

c)

Ký hiệu không kết thúc

d)

Sản xuất

36.

Trong những chủ đề được nói đến dưới đây, chủ đề

nào không liên quan đến phân tích ngữ nghĩa?

a)

Đảm bảo trong mỗi phạm vi không tồn tại hai tên

trùng nhau

b)

Kiểm tra sự tương ứng giữa việc sử dụng hàm, biến

với khai báo của chúng

c)

Phân chia chương trình thành các khối cơ bản

d)

Đảm bảo biến điều khiển chu trình for phải có kiểu

nguyên

37.

Khẳng định nào dưới đây là về một nguyên tắc mà mọi

compiler phải tuân thủ?

a)

Compiler không bao giờ được phép quay lui

b)

Compiler phải đưa ra các lỗi về kiểu dựa trên cây cú

pháp có chủ giải

c)

Compiler phải giữ nguyên ý nghĩa của chương trình

sau khi dịch

d)

Compiler phải sinh đượcmã đích hiệu quả hơn mã

đích sinh bằng tay

38.

Phân tích phải là

a)

Dãy số nguyên là số thứ tự của các sản xuất được

dùng trong suy dẫn nào đó

b)

Nghịch đảo của dãy số nguyên là số thứ tự của các

sản xuất phải được dung trong suy dẫn

c)

Dãy số nguyên là số thứ tự của các sản xuất được

dung trong suy dẫn phải

d)

Không là đối tượng nào nói trên

39.

Xét hàm checkKeyword dưới đây

TokenType checkKeyword(char *string) {

int i;

for (i = 0; i < KEYWORDS_COUNT; i++)

if (keywordEq(keywords[i].string, string))

return ###;

return TK_NONE;

}

Cho biết cần điền đoạn mã nào dưới đây vào ###

a)

TK_IDENT

b)

keywords[i].tokenType

c)

TK_KEYWORD

d)

TK_CHAR

40.

void compileProgram(void) {

assert("Parsing a Program ....");

eat(KW_PROGRAM);

eat(TK_IDENT);

eat(SB_SEMICOLON);

###

eat(SB_PERIOD);

assert("Program parsed!");

}

a)

compileBlock2();

b)

compileBlock();

c)

eat(SB_SEMICOLON);

d)

missingToken(tokenType, lookAhead->lineNo,

lookAhead->colNo);

41.

Cho văn phạm với tập ký hiệu kết thúc {a, ;, <, >}và

các sản xuất

S → <L | a

L → aR | <LR

R → > | ;L

Câu << a >; a > có bao nhiêu cây phân tích cú pháp

khác nhau?

a)

0

b)

1

c)

2

d)

3

42.

Chiến lược tối ưu nào có thể áp dụng cho đoạn mã

dưới đây:

temp6 = 4 * i

x = a[temp6]

temp8 = 4 * j

temp9 = a[temp8]

a[temp6] = temp9

temp10= 4 * j

a[temp10] = x

goto 100

a)

Loại bỏ biểu thức con chung

b)

Loại mã chết

c)

Tính giá trị hằng

d)

Copy Propagation

43.

Cho hàm phân tích danh sách các chỉ số. Cần điền nội

dung nào cho dãy #####

void compileIndexes(void) {

#####

{ eat(SB_LSEL); compileExpression();

eat(SB_RSEL); }

}

a)

if (lookAhead->tokenType == SB_LSEL)

b)

while (lookAhead->tokenType == SB_LSEL)

c)

while (lookAhead->tokenType == SB_LPAR)

d)

if (lookAhead->tokenType == TK_IDENT)

44.

Cho đoạn chương trình KPL

Procedure A;var x, y : integer ;

Procedure B; var x, z : char ;

begin S1 end (*B*);

Procedure C; var I : integer ;

begin S2 end (*C*);

BEGIN S3 END (*A*);

Các biến có thể truy cập được trong S1 và S2 là:

a)

trong S1: x của A, y, x của B và z ; trong S2: x của B,

y và I

b)

trong S1: x của B, y và z ; trong S2:x của B, I và z

c)

trong S1: x của B, z và y; trong S2 x của A, I và y

d)

không lựa chọn nào đúng

45.

Cần điền giá trị nào vào vị trí ###

void eat(TokenType tokenType) {

if (lookAhead->tokenType == tokenType) {

printToken(lookAhead);

###

} else missingToken(tokenType, lookAhead->lineNo,

lookAhead->colNo);

}

a)

compileBlock ()

b)

scan();

c)

compileProgram();

d)

Không lựa chọn nào đúng

46.

Đối tượng nào dưới đây không có mặt trong định nghĩa hình thức của ôtômat hữu hạn đơn định

a)

Bảng chữ vào

b)

Hàm chuyển trạng thái

c)

Tập trạng thái kết thúc

d)

Xâu rỗng

47.

Biểu thức nào dưới đây không là biểu thức chính quy?

a)

((a+b)*(aa+bb))*

b)

(01+11+10)*

c)

(1+2+0)*(1+2)*

d)

((0+1)-(0b+a1)*(a+b))*

48.

Hãy ghi ra hình trạng mà ôtomat hữu hạn không đơn định có thể chuyển từ hình trạng q1abab, nếu

delta (q1,a) = {q2, q3}

a)

q2aab

b)

q2bab

c)

q1bab

d)

q3abab

49.

Compiler có thể phát hiện loại lỗi nào?

a)

Lỗi logic

b)

Lỗi cú pháp

c)

Cả hai loại

d)

Không loại nào nói trên

50.

Kết quả của bộ phân tích cú pháp top down quay lui là

a)

Nghịch đảo của phân tích phải

b)

Nghịch đảo của phân tích trái

c)

Phân tích phải

d)

Phân tích trái

51.

Cho văn phạm G với tập ký hiệu không kết thúc {S',S,B,E,J,L}, tập ký hiệu kết thúc {;,:=,(,),,} (dấu phảy

là dấu phân cách đồng thời là ký hiệu kết thúc, tập sản xuất

S' -> S

S -> LB

B ->;S;L | :=L

E -> a | L

J ->,EJ | )

L -> (EJ

Khẳng định nào dưới đây là đúng

a)

Văn phạm là nhập nhằng

b)

Văn phạm là LL(1)

c)

Văn phạm không là LL(1) nhưng là LL(k) với k>1

d)

Văn phạm không là LL(k) với mọi k>0

52.

Chiến lược tối ưu nào có thể áp dụng cho đoạn mã sau:

(1) i = 4

(2) t1 = i+1

(3) t2 = b[t1]

(4) a[t1] = t2

a)

Loại mã chết

b)

Loại biểu thức con chung

c)

Tính giá trị hằng

d)

Loại những đoạn mã dư thừa bộ phận

53.

(1) prod := 0

(2) I := 1

(3) t1 := 4 * I

(4) t2 := a[t1]

(5) t3 := 4 * I

(6) t4 := b[t3]

(7) t5 := t2 * t4

(8) t6 := prod + t5

(9) prod := t6

(10) t7 := I + 1

(11) I := t7

(12) if I <= 20 goto (3)

(13) t8:=t7+1

a)

2

b)

3

c)

4

d)

5

54.

Khẳng định nào dưới đây là đúng với ngữ nghĩa của KPL?

a)

Trong cùng một phạm vi có thể sử dụng tên hằng và tên biến giống nhau

b)

Không cho phép bất cứ hai tên nào, ở bất cứ phạm vi nào là giống nhau

c)

Không cho phép bất cứ hai tên nào, ở bất cứ phạm vi nào là giống nhau

d)

Trong một chương trình con thủ tục, tên thủ tục và tên biến địa phương trong thủ tục có thể trùng nhau

55.

Điều kiện nào dưới đây là bắt buộc đối với một văn phạm có thể phân tích cú pháp theo phương pháp từ

trên xuống?

a)

Văn phạm không đơn nghĩa

b)

Văn phạm LL(1)

c)

Văn phạm không đệ quy trái

d)

Văn phạm LL(k)

56.

Khẳng định nào dưới đây là đúng về tính nhập nhằng?

a)

Một ngôn ngữ là nhập nhằng nếu mỗi câu có 2 hoặc nhiều cây phân tích cú pháp

b)

Một ngôn ngữ là nhập nhằng nếu mỗi câu có 2 hoặc nhiều cây phân tích cú pháp

c)

Một văn phạm phi ngữ cảnh là nhập nhằng nếu vế phải của một trong các sản xuất bắt đầu bởi ký hiệu không

kết thúc xuất hiện ở vế trái.

d)

Cả 3 khẳng định đều sai

57.

Cho văn phạm

A -> B x | y C | @

B -> C z A

C -> x B

trong đó @ chỉ xâu rỗng.Tập nào dưới đây là FIRST(A)

a)

{y, @}

b)

{x, y, @}

c)

{y, z,@}

d)

{x, y, z, @}

58.

Mã nào dưới đây là mã trung gian?

a)

Ký pháp Ba Lan (hậu tố)

b)

Cây nhị phân

c)

Mã assembly

d)

Cả 3 lựa chọn được nêu đều đúng.

59.

Quá trình sinh mã trung gian trong mô hình một ngôn ngữ lập trình có thể biểu diễn qua

a)

Thuộc tính cho các ký hiệu của văn phạm

b)

Danh mục được lưu trữ trong bảng ký hiệu

c)

Cây cú pháp có chú giải

d)

Văn phạm

60.

Trong những ký hiệu được mô tả dưới đây, ký hiệu nào có thể xuất hiện trong stack D1 của bộ phân tích

cú pháp trên xuồng quay lui ?

a)

Ký hiệu xâu rỗng

b)

Ký hiệu đầu

c)

Ký hiệu phân cách vế trái và vế phải sản xuất

d)

Ký hiệu kết thúc xâu vào

61.

Cấu trúc dữ liệu nào là thích hợp nhất để lưu trữ bảng ký hiệu?

a)

Mảng

b)

Tệp

c)

Danh sách liên kết

d)

Stack

62.

Cho văn phạm S -> AB, A -> aA | b, B -> bB | c. Ô M(S,a) của bảng phân tích tiền định có giá trị là

a)

A->aA

b)

B->bB

c)

S->AB

d)

Tất cả các lựa chọn đều sai

63.

Cách thông thường để mô tả cú pháp của một ngôn ngữ lập trình là

a)

Dùng cây cú pháp có chú giải

b)

Dùng một tệp văn bản

c)

Dùng dạng chuẩn BNF

d)

Dùng mảng

64.

Khẳng định nào dưới đây là không đúng cho lớp ngôn ngữ LL(1)

a)

Không ngôn ngữ LL(1)nào là ngôn ngữ chính quy

b)

Mọi ngôn ngữ LL(1) là ngôn ngữ phi ngữ cảnh

c)

Mọi ngôn ngữ LL(1) là đơn nghĩa

d)

Lớp LL(1) được chứa trong lớp LR(1)

65.

Khẳng định nào không đúng luật phạm vi gần nhất?

a)

Toán tử edit chỉ được tham chiếu phạm vi gần nhất

b)

Toán tử delete chỉ được xóa các lối vào xuất hiện trong khai báo gần nhất

c)

Toán tử insert vào bảng ký hiệu không được ghi đè những khai báo trước

d)

Toán tử lookup vào bảng ký hiệu luôn luôn tham chiếu phạm vi hiện hành

66.

Dãy ac := b + a(*1.) chứa bao nhiêu từ tố của KPL?

a)

0

b)

5

c)

6

d)

8

67.

Ký tự nào không được bộ phân tích từ vựng bỏ qua?

a)

Các ký tự xuất hiện trong chú thích.

b)

Khoảng trắng.

c)

Ký tự kết thúc câu lệnh.

d)

Ký tự xuống dòng.

68.

Lý do để phương pháp phân tích cú pháp trên xuống có quay lui không được sử dụng để phân tích cú

pháp cho ngôn ngữ KPL là:

a)

Chi phí thời gian quá lớn

b)

Không đủ không gian nhớ để lưu trữ các hình trạng khi phân tích KPL

c)

KPL không thoả mãn một số điều kiện mà giải thuật đòi ỏi

d)

Văn phạm KPL quá phức tạp

69.

Trong các văn phạm dưới đây , văn phạm nào không nhập nhằng?

a)

S -> AaA, A -> Aa, A -> a

b)

S -> AaA, A -> Aa, A -> a

c)

S -> F, S -> ( S + F ),F -> a

d)

S -> 00S, S -> S1, S-> 1

70.

Khẳng định nào là đúng với cấu trúc mảng của KPL

a)

Chỉ cho phép dùng mảng 1 và 2 chiều

b)

Chỉ cho phép dùng mảng 1 chiều

c)

Cho dùng mảng có số chiều tuỳ ý

d)

Không cho phép dùng mảng

71.

Dòng nào dưới đây đúng cú pháp KPL?

a)

const a=integer;

b)

var a: integer;

c)

const a=1;b=a*2;

d)

const a:=1; b=a;

72.

Trong các văn phạm sau, văn phạm nào là LL(1)? Biết rằng@ chỉ xâu rỗng(epsilon)

a)

S -> Aa,A -> BD, B -> b, B -> @, D->d, D -> @

b)

S -> 1S0, S -> 10

c)

S -> AaA, A -> AaA, A -> a

d)

S -> 00S, S -> S1, S -> 1

73.

Phân tích trái là

a)

Dãy số nguyên là số thứ tự của các sản xuất không đệ quy được dùng trong suy dẫn trái

b)

Nghịch đảo của dãy số nguyên là số thứ tự của các sản xuất được dùng trong suy dẫn trái

c)

Dãy số nguyên là số thứ tự của các sản xuất được dung trong suy dẫn trái

d)

Không là đối tượng nào nói trên

74.

Hệ thống nào dưới đây để mô tả một số thuộc tính liên quan đến ngữ nghĩa của ngôn ngữ lập trình?

a)

Ôtômat hữu hạn

b)

Định nghĩa tựa cú pháp

c)

Stack

d)

Văn phạm hình thức

75.

Thuộc tính kế thừa được tính trên cây cú pháp có chú giải theo hướng

a)

Từ trên xuống

b)

Từ dưới lên

c)

Thứ tự bất kỳ

d)

Từ trên xuống hoặc từ các nút cùng cấp

76.

Hãy cho biết trong các thao tác sau, thao tác nào thuộc phân tích ngữ nghĩa

a)

Kiểm tra xem một chú thích có điểm kết thúc không

b)

Kiểm tra số chiều của mảng đang sử dụng có đung như khai báo không

c)

Kiểm tra xem trong lệnh while có chứa từ khóa do hay không

d)

Tìm địa chỉ phần tử của mảng trong stack

77.

Trong stack của bộ phân tích cú pháp tiền định chứa

a)

Tập ký hiệu kết thúc

b)

Tập ký hiệu không kết thúc

c)

Tập sản xuất

d)

Mọi ký hiệu của văn phạm

78.

Đâu là tên của một bộ sinh phân tích cú pháp?

a)

YACHT

b)

Flex

c)

Bison

d)

Compiler - compiler

79.

Điều kiện nào dưới đây là bắt buộc đối với một văn

phạm có thể phân tích cú pháp theo phương pháp

trên xuống tiền định

a)

Văn phạm không đơn nghĩa

b)

Văn phạm tuyến tính trái

c)

Văn phạm LL(k)

d)

Văn phạm LR(k)

80.

Công cụ nào dưới đây thích hợp nhất để mô tả các từ

tố của một ngôn ngữ lập trình?

a)

Văn phạm chính quy

b)

Bộ phân tích từ vựng

c)

Biểu thức chính quy

d)

Ôtômat hữu hạn

81.

Thông tin nào dưới đây không được lưu trữ trong

bảng ký hiệu của một phạm vi ứng với chương trình

con?

a)

Thông tin về kiểu

b)

Tên của biến

c)

Địa chỉ bộ nhớ được phân phối

d)

Những hàm và thủ tục có thể sử dụng mà không

cần khai báo

82.

Thuộc tính tổng hợp được tính trên cây cú pháp có

chú giải theo hướng

a)

Từ trên xuống

b)

Từ dưới lên

c)

Thứ tự bất kỳ

d)

Từ trên xuống hoặc từ các nút cùng cấp

83.

Một văn phạm là vô nghĩa nếu

a)

tập ký hiệu kết thúc và tập ký hiệu không kết thúc

có chứa ký hiệu chung

b)

tồn tại vế trái của sản xuất chứa nhiều hơn 1 ký

hiệu

c)

tồn tại vế trái của một sản xuất lầ ký hiệu kết thúc

d)

tồn tại vế phải của một sản xuất không chứa ký

hiệu kết thúc

84.

Trong các văn phạm sau, văn phạm nào là LL(k)?

a)

S → Aa,A → BD, B → b, B → ε, D → d, D → ε

b)

S → 1S0, S → ε

c)

S → AaA, A → AaA, A → a

d)

S → 00S, S → S1, S → 1

85.

Đâu là kỹ thuật để lệnh if trong KPL có thể phân tích

cú pháp bằng phương pháp đệ quy trên xuống

a)

Nhân tử

b)

Nhân tử ngược

c)

Nhân tử phải

d)

Nhân tử trái

86.

Khẳng định nào sau đây là đúng về cây cú pháp là có

chú giải

a)

Nó chứa tất cả các thuộc tính của tất cả các nút

b)

Trên cây không có nút nào có thuộc tính kế thừa

c)

Mọi nút lá đều chỉ chứa các thuộc tính tổng hợp

d)

Mọi nút trong đều có ít nhất một thuộc tính kế

thừa

87.

Cho văn phạm S → AB, A → aA | b, B → bB | c. Ô

M[B,a] của bảng phân tích tiền định có giá trị là

a)

Lỗi

b)

B → bB

c)

S → AB

d)

Tất cả các lựa chọn đều sai

88.

Khẳng định nào dưới đây là đúng cho lớp ngôn ngữ

LL(1)

a)

Không ngôn ngữ LL(1)nào là ngôn ngữ chính quy

b)

Tồn tại ngôn ngữ LL(1) nằm ngoài lớp ngôn ngữ

phi ngữ cảnh

c)

Tồn văn phạm đệ quy trái tương đương với văn

phạm LL(1)

d)

Tồn tại văn phạm LL(1) nhập nhằng

89.

Lệnh nào dưới đây có mô tả : s[t+2]:=b; s[t+3]:=pc;

s[t+4]:=base(p); b:=t+1; pc:=q; với t là đỉnh stack

a)

EQ

b)

CALL

c)

EP

d)

EF

90.

Xử lý nào dưới đây để khử đệ quy trái:

a)

Chuyển đệ quy trái thành đệ quy phải

b)

Thêm ký hiệu kết thúc mới

c)

Không được thêm ký hiệu không kết thúc mới

d)

Loại bỏ một số sản xuất không đệ quy trái

91.

Phần mềm dịch từ một ngôn ngữ nào đó sang mã

máy và thực thi được gọi là

a)

Bộ xử lý ngôn ngữ

b)

Trình thông dịch

c)

Trình biên dịch

d)

Assembler

92.

Khẳng định nào sau đây là đúng?

a)

Bộ phân tích từ vựng là đệ quy vì phải xử lý

những cặp ngoặc lồng nhau

b)

Bộ phân tích từ vựng không cần quan tâm đến văn

phạm của ngôn ngữ.

c)

Ô tô mat hữu hạn của bộ phân tích từ vựng chỉ

được phép có 1 trạng thái kết thúc duy nhất

d)

Tập chính quy dùng để biểu diễn dạng của các từ

tố

93.

Dãy nào dưới đây chỉ một thứ tự đúng?

a)

Assembler → Compiler → Preprocessor → Linker

b)

Compiler → Assenbler → Preprocessor → Linker

c)

Preprocessor → Compiler → Assembler → Linker

d)

Assembler → Compiler → Linker → Preprocessor

94.

Các lệnh dưới đây, lệnh nào viết bằng mã ba địa chỉ

được giới thiệu ?

a)

t[i+1]:=x

b)

t[i]:=y+1

c)

t[i]:=1 +i

d)

a:=t+b

95.

Trong các văn phạm dưới đây , văn phạm nào nhập

nhằng?

a)

S → Aa, A → Aa, A → a

b)

S → aSb, S → bSa, S → c

c)

S → F, S → (S + F ),F → a

d)

S → 00S, S →S1, S → 1

96.

Cho văn phạm

E -> E - F | E + F | F

F -> F * F | id

Khẳng định nào dưới đây là đúng?

a)

- có thứ tự ưu tiên cao hơn +

b)

- có tứ tự ưu tiên cao hơn *

c)

+ và - có cùng thứ tự ưu tiên

d)

+, * và - có cùng thứ tự ưu tiên

97.

Cho văn phạm với các sản xuất :

S → aB ∣ bA ∣ ε

A → aS ∣ bAA

B → b

Văn phạm này không là LL(1) vì:

a)

văn phạm đệ quy phải

b)

văn phạm vi phạm điều kiện LL(1)

c)

văn phạm nhập nhằng

d)

không phải những lý do nói trên

98.

Hãy cho biết trong các thao tác sau, thao tác nào

thuộc phân tích từ vựng

a)

Kiểm tra xem một chú thích có điểm kết thúc

không

b)

Kiểm tra số chiều của mảng đang sử dụng có đúng

như khai báo không

c)

Kiểm tra xem trong lệnh while có chứa từ khóa do

hay không

d)

Tìm địa chỉ phần tử của mảng trong stack

99.

Xử lý nào có trong bộ phân tích cú pháp theo phương

pháp đệ quy trên xuống cho một tập các sơ đồ cú

pháp của một ngôn ngữ lập trình?

a)

Mỗi nhánh của sơ đồ chuyển thành một lời gọi thủ

tục

b)

Mổi ký hiệu kết thúc trên sơ đồ được chuyển

thành một đoạn đối chiếu với các sản xuất của văn

phạm

c)

Mỗi chu trình được chuyển thành câu lệnh lặp

hoặc một đoạn đối chiếu từ tố phụ thuộc nút tròn

hay nút chữ nhật đứng ở đầu chu trình

d)

Mỗi ký hiệu không kết thúc trên sơ đồ được

chuyển thành một lời gọi thủ tục.

100.

Lựa chọn nào dưới đây là đúng về sự tương ứng của

các công cụ ở Nhóm 1 với các giai đoạn của compiler

ở Nhóm 2?

Nhóm 1 Nhóm 2

A. Biểu thức chính quy 1. Phân tích cú pháp

B. Ôtômat đẩy xuống 2. Sinh mã

C. Đồ thị dòng điều khiển 3. Phân tích từ vựng

D. Phân phối thanh ghi 4. Tối ưu mã

a)

A-4. B-1, C-2, D-3

b)

A-3, B-1, C-4, D-2

c)

A-3, B-4, C-1, D-2

d)

A-2, B-1, C-4, D-3