Tải bản đầy đủ (.docx) (5 trang)

câu hỏi ôn tập môn nguyên lý các ngôn ngữ lập trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (78.22 KB, 5 trang )

Câu hỏi ôn tập
Nguyên lý các ngôn ngữ lập trình
Các câu đánh dấu * là các câu các em cần ôn tập.
Bài 1.
1. Người ta nói Pascal là ngôn ngữ lập trình có cấu trúc. Tính cấu trúc của Pascal được thể
hiện qua 3 yếu tố: cấu trúc trong dữ liệu, cấu trúc trong các toán tử và cấu trúc trong công
cụ thủ tục như thế nào? Tại sao khó xây dựng chương trình ứng dụng lớn trong Pascal.
2. *Tại sao nói C tỏ ra thích hợp với lập trình hệ thống, có tính tương thích cao, tốc độ cao,
nhưng hệ thống kiểu không chặt chẽ và khó kiểm soát chương trình lớn.
3. *Tại sao nói C++ không phải hướng đối tượng hoàn toàn, mà là đa hướng và C++ là ngôn
ngữ thích hợp cho việc xây dựng những chương trình lớn nhưng phức tạp và khó kiểm
soát.
4. *Tại sao nói Java là ngôn ngữ hướng đối tượng hoàn toàn, đơn giản, độc lập với cấu trúc
máy, dễ chuyển mang, an toàn. Lý do chương trình Java chậm, các cách khắc phục để
tăng tốc độ.
5. *Họ các ngôn ngữ dot net có ưu nhược điểm gì: có nhiều công cụ hỗ trợ, có dễ dàng tích
hợp với nhau được không, vai trò của CRL như thế nào, có phụ thuộc nền tảng không.
6. Nêu mục đich và các đặc tính của họ các ngôn ngữ kịch bản. So sánh ASP, Javascript và
php?
7. *Bạn cho ví dụ truyền tham số hàm trong Javascript.
8. *Bạn cho ví dụ trả về hàm trong lời gọi hàm trong Javascript.
Bài 2.
1. So sánh những tình huống giống nhau trong việc xác định vị trí con trỏ trong C và đánh
chỉ số mảng.
2. *Một đặc tính là C có khả năng khắc phục lỗi kiểu. Cho ví dụ minh họa. Đây là ưu điểm
hay nhược điểm của C.
3. Người lập trình C phải tự xin cấp bộ nhớ và giải phóng bộ nhớ như thế nào. Theo bạn
đây là ưu điểm hay nhược điểm?
4. *Bạn cho biết đặc tính của ngôn ngữ lập trình ML. Tại sao nói nó là ngôn ngữ lập trình
hàm.
5. *Cho biết khai báo kiểu danh sách trong ML như thế nào. Cho ví dụ hàm trên danh sách.


6. *Cho biết khai báo hàm trong ML như thế nào? Sử dụng mẫu ra sao, cho ví dụ.
7. Khai báo kiểu dữ liệu do người sử dụng định nghĩa trong ML như thế nào? Cho ví dụ.
8. Thế nào là ô tham chiếu, L value và R value trong ML. Cho ví dụ.
Bài 3.
1. *Thế nào là an toàn kiểu. Bạn có thể nói gì về an toàn kiểu của C, C++, ML và Java.
2. *Kiểm tra kiểu thời gian dịch và kiểm tra kiểu thời gian chạy khác nhau như thế nào, ưu
nhược điểm của chúng. Cho ví dụ minh họa.
3. *ML có thuật toán suy luận kiểu dựa trên cơ sở nào? Cho ví dụ suy luận kiểu của hàm
trong ML
4. Nêu cách khai báo hàm đệ qui với nhiều thành phần trong. Cho ví dụ


5. *Nêu cách sử dụng đa hình tham số kiểu trong ML. Cho ví dụ cài đặt swap trong ML.
6. *Thế nào là đa hình ghi đè. Cho ví dụ trong ML.
7. Nêu ví dụ khai báo kiểu cây nhị phân đa hình trong ML (các lá của nó có kiểu tham số).
Xét ví dụ trong ML xem một giá trị cho trước có trên cây không.
8. *Sắp xếp đa hình là gì? Cho ví dụ cài đặt sắp xếp đa hình trong ML
Bài 4.
1. Thế nào là ngôn ngữ lập trình có cấu trúc khối. Nêu khái niệm biến cục bộ và tổng thể.
Cho các ví dụ minh họa.
2. *Hãy trình bày mô hình máy tính đơn giản. Nêu cách thức hoạt động của nó, khi thực thi
một chương trình.
3. *Nêu cấu tạo của bản ghi kích hoạt. Lấy ví dụ bản ghi kích hoạt của các hàm.
4. *Nêu khái niệm phạm vi và thời gian sống của các biến. Cho ví dụ chỉ rõ sự khác biệt của
chúng.
5. *Hai cơ chế truyền tham số cho lời gọi hàm là truyền tham trị và truyền tham chiếu khác
nhau như thế nào. Cho ví dụ minh họa. Lợi thế của mỗi cơ chế.
6. *Thế nào là phạm vi tĩnh và phạm vi động. Cho ví dụ nêu sự khác biệt giữa hai loại phạm
vi.
7. Giải thích: việc xác định hàm và các biến tổng thể trong C và ML có phạm vi tĩnh. Cho ví

dụ minh họa thông qua liên kết điều khiển.
8. Giải thích: việc xác định các lỗi trong hầu hết các ngôn ngữ có phạm vi động. Cho ví dụ
minh họa thông qua liên kết truy cập.
9. *Thế nào là đệ qui đuôi. Đối với đệ qui đuôi việc tái sử dụng ngăn xếp được thực hiện
như thế nào cho ví dụ minh họa
10. Cho ví dụ chuyển tự đệ qui thường sang đệ qui đuôi. Tại sao việc thực thi lời gọi đệ qui
đuôi giống như việc thực hiện một vòng lặp.
11. *Thế nào là truyền tham số hàm. Cho ví dụ trong ML
12. *Thế nào là trả về hàm trong lời gọi hàm. Cho ví dụ trong ML. Theo bạn nghĩ nó đem lại
những lợi ích gì?
13. *Cho ví dụ hàm map trên danh sách trong ML (hàm tác động đến từng phần tử của danh
sách).
Bài 5:
1. Nêu các đặc tính của lập trình cấu trúc. Cho các ví dụ minh họa
2. Thế nào là trừu tượng thủ tục, cho ví dụ
3. Thế nào là trừu tượng dữ liệu, cho ví dụ
4. Cho ví dụ kiểu dữ liệu trừu tượng trong ML
5. *Nêu cách sử dụng C++ function templates. Cho ví dụ dùng template như tham số kiểu
trong C++.
6. *Nêu sự khác biệt giữa cơ chế tham số kiểu trong C++ và trong ML. Cho ví dụ minh họa.
7. *Nêu đặc trưng và cho ví dụ dùng thư viện template chuẩn C++ (STL). Cho ví dụ minh
họa.
Bài 6
1. *Nêu bốn khái niệm cơ bản trong ngôn ngữ hướng đối tượng
2. Thế nào là tìm kiếm động. Cho ví dụ


3.
4.
5.

6.
7.

Thế nào là trừu tượng, cho các ví dụ minh họa.
Thế nào là kiểu con, cho ví dụ minh họa
Thế nào là kế thừa, cho ví dụ minh họa
Cho ví dụ kế thừa không phải kiểu con.
*Mẫu thiết kế (design patterns) dùng để làm gì. Cho ví dụ về singleton pattern hoặc
visitor pattern.

Bài 7
1. *Nêu các mục đích và ràng buộc thiết kế C++. Sự tương thích với C và thành công của
C++
2. Nêu các bổ sung cho C trong C++ mà không liên quan đến đối tượng
3. Nêu các đặc tính hướng đối tượng của C++.
4. *Nêu các quyết định tốt và các chỗ còn vấn đề khi thiết kế C++
5. Nêu định nghĩa lớp trong C++, cho ví dụ minh họa.
6. Nêu định nghĩa lớp suy diễn trong C++, cho ví dụ minh họa. Nêu cách giải quyết xung
đột đa kế thừa trong lớp suy diễn
7. Nêu định nghĩa hàm ảo trong C++, cho ví dụ minh họa.
Bài 8
1. *Nêu các mục tiêu chính khi thiết kế ngôn ngữ lập trình Java. Tại sao nói Java là ngôn
ngữ hướng đối tượng thuần túy.
2. *Các quyết định tốt làm cho Java đươc sử dụng rộng rãi hiện nay là gì?
3. *Lớp trong Java có gì khác biệt so với C++. Phương thức và trường tĩnh trong lớp Java
có ý nghĩa gì. Cho ví dụ minh họa.
4. Tính đa hình – tải chồng của các phương thức trong một lớp của Java được thực hiện như
thế nào, cho ví dụ.
5. *Kế thừa trong Java có gì khác biệt so với C++. Phương thức lớp con ghi đè phương thức
lớp cha như thế nào. Cho ví dụ.

6. *Giao diện trong Java dùng để làm gì. Một lớp có thể cài đặt nhiều giao diện không, cho
ví dụ minh họa.
7. *Lớp trừu tượng dùng để làm gì, hãy phân biệt nó với giao diện. Cho ví dụ minh họa
8. Tính đa hình kiểu con trong Java được cài đặt qua lớp Object như thế nào. Lấy ví dụ
chẳng hạn cài đặt Stack kiểu tham sô qua Object.
9. *Phiên bản mới của Java có hỗ trợ cài đặt tham số kiểu trực tiếp không cần qua Object
không, điều đó được thực hiện như thế nào


Đề thi số 1: NGUYÊN LÝ CÁC NGÔN NGỮ LẬP TRÌNH
Lớp cao học CNTT – 12/2013
Thời gian làm bài 90 phút.
1. Tại sao nói Java là ngôn ngữ hướng đối tượng hoàn toàn, đơn giản, độc lập

với cấu trúc máy, dễ chuyển mang, an toàn. Lý do chương trình Java chậm,
các cách khắc phục để tăng tốc độ.
2. Kiểm tra kiểu thời gian dịch và kiểm tra kiểu thời gian chạy khác nhau như

thế nào, ưu nhược điểm của chúng. Cho ví dụ minh họa.
3. Nêu cách sử dụng đa hình tham số kiểu trong ML. Cho ví dụ cài đặt swap

trong ML.
4. Thế nào là trả về hàm trong lời gọi hàm. Cho ví dụ trong ML. Theo bạn nghĩ

nó đem lại những lợi ích gì?
5. Thế nào là phạm vi tĩnh và phạm vi động. Cho ví dụ nêu sự khác biệt giữa

hai loại phạm vi.
6. Cho ví dụ chuyển từ đệ qui thường sang đệ qui đuôi. Tại sao việc thực thi lời


gọi đệ qui đuôi giống như việc thực hiện một vòng lặp.
7. Nêu sự khác biệt giữa cơ chế tham số kiểu trong C++ và trong ML. Cho ví

dụ minh họa.
8. Nêu bốn khái niệm cơ bản trong ngôn ngữ hướng đối tượng. Thế nào là tìm

kiếm động. Cho ví dụ.
9. Các quyết định tốt làm cho Java đươc sử dụng rộng rãi hiện nay là gì?
10. Phiên bản mới của Java có hỗ trợ cài đặt tham số kiểu trực tiếp không cần

qua Object không, điều đó được thực hiện như thế nào. Cho ví dụ minh họa.
Đề thi số 2: NGUYÊN LÝ CÁC NGÔN NGỮ LẬP TRÌNH
Lớp cao học CNTT – 12/2013


Thời gian làm bài 90 phút.

1. Họ các ngôn ngữ dot net có ưu nhược điểm gì: có nhiều công cụ hỗ trợ, có

dễ dàng tích hợp với nhau được không, vai trò của CRL như thế nào, có phụ
thuộc nền tảng không.
2. Hai cơ chế truyền tham số cho lời gọi hàm là truyền tham trị và truyền tham

chiếu khác nhau như thế nào. Cho ví dụ minh họa. Lợi thế của mỗi cơ chế.
3. Sắp xếp đa hình là gì? Cho ví dụ cài đặt sắp xếp đa hình trong ML
4. Thế nào là truyền tham số hàm cho một hàm. Cho ví dụ trong ML. Theo bạn

nghĩ nó đem lại những lợi ích gì?
5. Thế nào là đệ qui đuôi. Đối với đệ qui đuôi việc tái sử dụng ngăn xếp được


thực hiện như thế nào cho ví dụ minh họa
6. *Nêu đặc trưng và cho ví dụ dùng thư viện template chuẩn C++ (STL). Cho

ví dụ minh họa.
7. Mẫu thiết kế (design patterns) dùng để làm gì. Cho ví dụ minh họa.
8. Nêu bốn khái niệm cơ bản trong ngôn ngữ hướng đối tượng. Thế nào là kiểu

con, cho ví dụ minh họa kiểu con
9. Nêu các quyết định tốt và các chỗ còn vấn đề khi thiết kế C++
10. Lớp trừu tượng dùng để làm gì, hãy phân biệt nó với giao diện. Cho ví dụ

minh họa về ưu điểm cho trường hợp dùng lớp trừu tượng tốt hơn dùng giao
diện.



×