ĐỀ KIỂM TRA GIỮA KỲ (ĐỀ 3) Môn : LTHDT – Thời gian : 45 phút (Không được sử dụng tài liệu) Tên & mã số SV: ........................................................................ Câu 01 : Trong VC#, xét lệnh sau: func1(); a. lệnh trên có thể là lời gọi hàm cục bộ. //nếu hàm func1() ko có virtual b. lệnh trên luôn được hiểu là this.func1(); //chắc chắn đúng c. lệnh trên có thể được xử lý đa xạ. //nếu hàm func1 là hàm có virtual d. cả 3 câu trên đều đúng. Câu 02 : Trong VC#, cách tốt nhất để định nghĩa thông tin interface cho 1 đối tượng là dung phát biểu: a. class //có thể nhưng ko tốt nhất b. abstract class //có thể nhưng ko tốt nhất c. interface d. cả 3 câu trên đều đúng. Câu 03 : Trong VC#, lệnh sau: ClassC p = new ClassC(); sẽ tạo ra đối tượng ở: a. vùng nhớ heap của ứng dụng. b. vùng nhớ stack của ứng dụng. c. vùng nhớ static data của ứng dụng. d. vùng nhớ được quản lý bởi hệ thống.
//đối tượng hoàn toàn do hệ thống quản lý
Câu 04 : Xét lệnh: ClassC.func(); Trong đó ClassC là tên của 1 class. Chọn câu đúng nhất: a. lệnh trên không có tính đa xạ. //Hàm func() chắc chắn là hàm static b. lệnh trên có tính đa xạ. c. lệnh trên có thể không có tính đa xạ. d. lệnh trên có thể có tính đa xạ. //Cần đa xạ mà xử lý liên kết tĩnh chắc chắn thất bại
Câu 05 : Yếu tố nào sau đây ảnh hưởng lớn đến tính trong sáng của ngôn ngữ OOP: a. ngôn ngữ hỗ trợ nhiều khả năng để diễn đạt cùng một hành vi nào đó. b. một cú pháp nào đó diễn đạt nhiều hành vi khác nhau. c. mức độ hỗ trợ tính thừa kế d. cả 3 câu trên đều sai Câu 06 : Khi ứng dụng chạy, form hiện ra như sau thì kết luận nào sau đây là đúng:
a. form chỉ chứa một đối tượng Button.
b. form chứa ít nhất một đối tượng Button. //Các đối tượng button có thể bị ẩn c. thủ tục xử lý sự kiện nhấn chuột của nút nhấn có tên là Nhan_Click(). d. cả 3 câu trên đều sai. Câu 07 : Chọn phát biểu đúng: a. ta có thể vẽ toolbar ở bất kỳ vị trí nào và với kích thước nào trong form. b. toolbar có thể được đồng chỉnh về lề trên hay lề dưới của form. c. toolbar có thể được đồng chỉnh về lề trái hay lề phải của form. d. cả 3 câu trên đều đúng. Câu 08 : Trong một form VC#: a. thuộc tính Name của các đối tượng được phép trùng nhau. b. thuộc tính Name của các đối tượng được phép trùng nhau với điều kiện các đối tượng này cùng chủng loại. c. thuộc tính Name của các đối tượng không được phép trùng nhau. d. cả a, b, c đều sai. Câu 09 : Các ưu điểm của tính bao đóng (encapsulation) trong lập trình hướng đối tượng là: a. làm tăng tính độc lập giữa các đối tượng. b. làm giảm tính phụ thuộc giữa các đối tượng. c. đễ dàng trong việc bảo trì và phát triển ứng dụng. d. cả a, b, c đều đúng. Đọc nội dung sau để trả lời 2 câu hỏi kế: Để xây dựng một ứng dụng VC# một cách trực quan, thường chúng ta phải thực hiện các bước (1) thiết kế giao diện, (2) viết code, (3) tạo thủ tục xử lý sự kiện, (4) thiết lập giá trị thuộc tính của các đôi tượng giao diện Câu 10 : Bước nào trong các bước trên là khó khăn nhất? a. (1) b. (2) c. (3) d. (4) Câu 11 : Thứ tự nào là thích hợp nhất? a. (1), (2), (3), (4) b. (1), (3), (4), (2) c. (1), (4), (3), (2) d. (1), (3), (2), (4) Câu 12 : Việc hiệu chỉnh thuộc tính của dối tượng giao diện a. không thể thực hiện được, vì mọi thuộc tính đều đóng, cố định. b. chỉ có thể thực hiện trong lúc thiết kế trực quan thông qua cửa sổ thuộc tính, không thể lập trình để thay đổi giá trị thuộc tính. c. có thể thực hiện thông qua cửa sổ thuộc tính cũng như lập trình. d. chỉ có thể thực hiện thông qua việc lập trình, không thể thực hiện thông qua cửa sổ thuộc tính. Câu 13 : Một cửa sổ bất kì trên Windows có dạng: a. hình chữ nhật có titlebar và các đường biên bao quanh.
b. hình do đường biên bất kì qui định. c. cả 2 câu a. và b. đều sai. d. cả 2 câu a. và b. đều đúng. Câu 14 : Để giúp người dùng kích hoạt một chức năng nào đó, ta có thể dùng đối tượng: a. Button. b. TextBox. c. Label. d. cả 3 câu trên đều đúng. //Các đối tượng cơ bản như nhau Câu 15 : VC# che dấu chi tiết hiện thực đối tượng bằng cách: a. cho phép dùng tên kiểu đặc tả biến đối tượng. //Phương pháp mới,khá mạnh b. cho phép kết hợp từ khoá tầm vực với từng thành phần đối tượng. //Sử dụng từ khóa private,kiểu trừu tượng,yếu nhất c. cả 2 câu a. và b. đều đúng. d. cả 2 câu a. và b. đều sai. Câu 16 : VC# hỗ trợ tầm vực: a. protected internal. b. internal protected. c. cả 2 câu a. và b. đều đúng. d. cả 2 câu a. và b. đều sai. Câu 17 : Chọn câu đúng nhất: a. toán tử là một tác vụ đặc biệt. b. toán tử là một thành phần static. //Toán tử luôn là static c. cả 2 câu a. và b. đều đúng. //Khi định nghĩa toán tử,luôn phải override d. cả 2 câu a. và b. đều sai. Câu 18 : Trong VC#, khi định nghĩa một tác vụ thuộc class A và muốn cấm không cho các class con override lại tác vụ này, ta dùng: a. từ khoá final trong lệnh định nghĩa tác vụ. b. từ khoá virtual trong lệnh định nghĩa tác vụ. c. từ khoá fixed trong lệnh định nghĩa tác vụ. d. mặc định tác vụ có khả năng này. Câu 19 : Trong VC#, biến thuộc kiểu struct: a. chứa trực tiếp giá trị thuộc kiểu đó. //đc truy xuất trực tiếp,ko cần new Class_name b. chứa tham khảo đến đối tượng struct. c. tuỳ tham số cấu hình Visual Studio mà a. hay b. đúng. d. cả 3 câu trên đều sai. Câu 20 : Kiểu string thuộc loại: a. kiểu giá trị (value type). b. kiểu tham khảo (reference type). c. kiểu giá trị hoặc tham khảo tuỳ trường hợp dùng. d. cả 3 câu trên đều sai. Câu 21 : Để tạo mới phần tử thuộc kiểu array nhiều chiều, ta phải: a. gọi một lệnh new. b. gọi nhiều lệnh new.
c. gọi n lệnh new (n là số chiều). d. hoặc dùng a. hoặc dùng c. tuỳ sở thích. Câu 22 : Kiểu liệt kê thuộc loại: a. kiểu giá trị (value type). //kiểu miền con của kiểu số nguyên b. kiểu tham khảo (reference type). c. kiểu giá trị hoặc tham khảo tuỳ trường hợp dùng. d. cả 3 câu trên đều sai. Câu 23 : Class bình thường có chức năng: a. tạo ra đối tượng b. đặc tả chi tiết hiện thực đối tượng c. cả 2 câu a. và b. đều đúng. d. cả 2 câu a. và b. đều sai. Câu 24 : Các ngôn ngữ hướng đối tượng hiện đại hỗ trợ: a. đơn thừa kế. b. đa hiện thực. c. cả 2 câu a. và b. đều đúng. d. cả 2 câu a. và b. đều sai. Xét đoạn code VC# sau và trả lời 3 câu hỏi kế tiếp class Complex { private double real, imag; public Complex(double re, double im) { real = re; imag = im; } public static Complex operator +(Complex a, Complex b) { return new Complex(a.real + b.real, a.imag + b.imag); } //tác vụ add Complex add(Complex a, Complex b) { return new Complex(a.real + b.real, a.imag + b.imag); } }; Câu 25 : Xét thân của tác vụ operator + : a) không có lỗi trong lúc dịch và chạy nó. b) có lỗi trong lúc dịch vì real và imag là 2 thuộc tính có tầm vực private của đối tượng a và b nên không thể truy xuất từ ngoài. c) tuỳ tham số cấu hình cụ thể của lệnh dịch mà a. hay b. đúng. d) cả 3 câu trên đều sai. Câu 26 : Xét thân của hàm add: a. không có lỗi trong lúc dịch và chạy nó. b. có lỗi trong lúc dịch vì real và imag là 2 thuộc tính có tầm vực private của đối tượng a và b nên không thể truy xuất từ ngoài. c. tuỳ tham số cấu hình cụ thể của lệnh dịch mà a. hay b. đúng. d. cả 3 câu trên đều sai.
Xét đoạn code VC# sau và trả lời 3 câu hỏi kế class ClassA { public ClassA() { } public ClassA(int i, double d) { } }; class ClassB : ClassA { public ClassB() : base(1, 1.1) { } public ClassB(int i, double d) { } }; class ClassC : ClassB { public ClassC() { } public ClassC(int i, double d) { } }; Câu 27 : Khi thực hiện lệnh classC p = new classC(2, 1.2); thì trình tự các hàm constructor sẽ chạy là: a. classC(2, 1.2) > classB(2, 1.2) > classA(2, 1.2). b. classA(2, 1.2) > classB(2, 1.2) > classC(2, 1.2). c. classA() > classB() > classC(2, 1.2). d. cả 3 câu trên đều sai. Câu 28 : Khi thực hiện lệnh classC p = new classC(); thì trình tự các hàm constructor sẽ chạy là: a. classC() > classB() > classA(). b. classA() > classB() > classC(). c. classA(1, 2.1) > classB(1, 2.1) > classC(). d. cả 3 câu trên đều sai. //Đáp án đúng là classA(1,1.1) -> B -> C Câu 29 : Trong VC#, ngay trước khi một đối tượng bị xoá thì: a. hàm destructor của đối tượng tương ứng sẽ được kích hoạt. b. hàm destructor của class tron path "cha-con" của class liên quan sẽ được kích hoạt theo thứ tự từ trên xuống c. hàm destructor của class tron path "cha-con" của class liên quan sẽ được kích hoạt theo thứ tự từ dưới lên d. tuỳ thông số cấu hình, mà a. hay b. hay c. đúng. Câu 30 : Trong VC#, đời sống của một đối tượng trong một phần mềm: a. được quản lý hoàn toàn bởi phần mềm đó. b. được quản lý hoàn toàn bởi hệ thống. c. tuỳ tham số cấu hình mà được quản lý hoàn toàn bởi phần mền hay hệ thống. d. cả 3 câu trên đều sai.
Xét đoạn code VC# sau và trả lời 3 câu hỏi kế tiếp class Complex { private double real, imag; public Complex(double re, double im) { real = re; imag = im; } public static Complex operator +(Complex a, Complex b) { return new Complex(a.real + b.real, a.imag + b.imag); } }; //tác vụ add Complex add(Complex a, Complex b) { return new Complex(a.real + b.real, a.imag + b.imag); } Câu 25 : Xét thân của tác vụ operator + : a. không có lỗi trong lúc dịch và chạy nó. b. có lỗi trong lúc dịch vì real và imag là 2 thuộc tính có tầm vực private của đối tượng a và b nên không thể truy xuất từ ngoài. c. tuỳ tham số cấu hình cụ thể của lệnh dịch mà a. hay b. đúng. d. cả 3 câu trên đều sai. Câu 26 : Xét thân của hàm add: a. không có lỗi trong lúc dịch và chạy nó. b. có lỗi trong lúc dịch vì real và imag là 2 thuộc tính có tầm vực private của đối tượng a và b nên không thể truy xuất từ ngoài. c. tuỳ tham số cấu hình cụ thể của lệnh dịch mà a. hay b. đúng. d. cả 3 câu trên đều sai. Câu 31: Chọn câu đúng nhất a. b. c. d.
Tác vụ static có thể truy xuất bất kì thành phần nào của odi961 tượng Tác vụ bình thường có thể truy xuất thành phần static Cả a & b đều đúng Cả a & b đều sai.
Câu 32 : Việc hiệu chỉnh thuộc tính của dối tượng giao diện a. không thể thực hiện được, vì mọi thuộc tính đều đóng, cố định. b. chỉ có thể thực hiện trong lúc thiết kế trực quan thông qua cửa sổ thuộc tính, không thể lập trình để thay đổi giá trị thuộc tính. c. có thể thực hiện thông qua cửa sổ thuộc tính cũng như lập trình. d. chỉ có thể thực hiện thông qua việc lập trình, không thể thực hiện thông qua cửa sổ thuộc tính. //Hiệu chỉnh động chỉ thông qua lập trình mới làm đc Câu 33: Tính đa xạ trong C# ko liên quan đến từ khóa tầm vực mà chỉ liên quan đến virtual =>có virtual là có đa xạ
Câu 34: Trong C# a. b. c. d.
không tồn tại hoạt động gọi hàm mà chỉ có lệnh gửi thông điệp Chỉ tồn tại lời gọi hàm cục bộ trong class tương ứng Cho phép gọi hàm thư viện Cả 3 đều sai
Câu 35: Kiểu array thuộc loại : a. b. c. d.
Kiểu tham khảo Kiểu giá trị Tùy trường hợp A & b đúng
Câu 36: Để tạo mới 1 kiểu array nhiều chiều ta phải : a. b. c. d.
Gọi 1 lệnh new Gọi nhiều lệnh new Gọi n lênh new (n la số chiều A & b & c đều đúng
Câu 37 : Đề tạo 1 array jagged ta phải : a. b. c. d.
Gọi 1 lệnh new Gọi nhiều lệnh new Gọi n lênh new (n la số chiều A & b & c đều đúng
Câu 38 : Chọn phát biểu đúng nhất : a. b. c. d.
Tất cả các phần tử thuộc 1 namespace nào đó phải được để cùng 1 assembly Tất cả các phần tử thuộc 1 assembly nào đó phải được truy xuất thông qua 1 namespace 1 asssembly có thể chứa nhiều phẩn tử thuộc nhiều namespace khác nhau ….
Câu 39 : Để giải quyết triệt để tính bao đóng dùng : interface Câu 40 : để tạo các đối tượng có các mới quan hệ : 1 quốc giachua71 nhiều tỉnh,1 tỉnh hcu7a1 nhiều TP => Dùng tính bao gộp Câu 40 : Tính chất thiết yếu nhất của lời gởi thông điệp là tính đa xạ Câu 41 : Tính chất nào giúp người dùng giảm nhẹ việc lập trình : =>Tổng quá hóa và da xạ Câu 41 : Thuộc tính giao tiếp ( luận lý ) là :
Các tác vụ get/set C âu 42 : Event là 1 delegate Câu 43: truy xuất thuộc tính giao tiếp,tác vụ chức năng,event hoặc delegate Câu 44 : Để truy xuất thành phần static của class phải thông qua : tên class Câu 45 : Để hiển thị chuỗi kết quả hay chuỗi cảnh báo có thể dùng : =>Button,textbox,label.Dủng textbox là nguy hiểm nhất do người dùng có thể sau73 giá trị Câu 46 : dùng thiết kế trực quan hoặc lập trình động để thay đổi thuco65 tính đối tượng Câu 47 : chức năng của đối tượng giao diện là giúp người dùng nhập hoặc cảnh báo,hiển thị kết quả Câu 48 : Một kết xuất phức tạp nào đó chỉ chứa 3 loại thành phần chuỗi,bitmap,… Câu 49 : Để hiên thị 1 hình chữ nhật có thể dùng : DrawLine,DrawRec,DrawImg Câu 50 : Để hiển thị 1 chuỗi văn bản : DrawString,DrawImage Câu 51: DrawString kém an toàn hơn,do DrawString phụ thuộc vào font chữ => gây lỗi font Câu 52: Thông qua biến tham khảo đến 1 đối tượng có thể truy xuất những gì cho phep` Câu 53: Yếu tố liên quan mật thiết đến kích hoạt chức năng : sự kiện và hàm xử lý sự kiện Câu 54 : Xem đoạn lệnh sau : interface IA {…}; Class A : IA {…}; IA a = new A(); Thông qua a có thể truy xuất : chỉ truy xuất được những gì IA có o a thuộc kiểu IA. a. b. c. d.
Truy xuất bát kỳ thành phần public nào của class A Truy xut61 bất kì thành phần protected của class A Truy xuất bất kì thành phần intenal nào của class A. Cả 3 câu trên đều sai
Câu 55 : Abstract class A { … }; A a = new A(); a. Lệnh tạo đối tượng A và gán tham khảo vào biến a b. Lệnh trên bị lỗi (nếu ko có câu d thì chọn câu này)
c. Tùy vào nội dung cụ thể d. Bị lỗi do class a là class trửu tượng Câu 56: Hình 1 : form login Có thể chứa nhiều đối tượng Câu 57 : Để hiển thị 1 chuỗi văn bản có thể sử dụng : 1 hoặc nhiều drawstring hoặc draw image Câu 58 : Sự kiện click chuột ko kết hợp với : timer Câu 59 : sự kiện click chuột kết hợp với : a. b. c. d.
Button Timer Cả 2 đều sai Cả a,b đều đúng
Câu 59 : ưu điểm của đọc file binary so với từ file text là : a. b. c. d.
Dễ dàng. Hiệu quả. Kích thước file binary thường ngắn hơn file Text chứa cùng thông tin. Cả 3 câu đều đúng.
Câu 60 : để đọc ghi đối tượng dễ dàng tin cây nhờ vào kĩ thuật serialization,người lập trình: a. b. c. d.
Không cần làm gì Chỉ cần dùng mệnh đề [Serializable] ngay trước đối tượng định nghĩa class cần đọc ghi Phải thiết lập 1 số thông số cấu hình cho môi trường .. Cả 3 đều sai
Câu 61 : Tác vụ phục vụ việc đọc thông tin đối tượng vào biến đối tượng : Deserialize Câu 62 : Việc xây dựng user control chủ yếu dựa trên tính chất : a. b. c. d.
Bao đóng Bao gộp Thừa kế Đa xạ
Việc xây dựng đối tượng inherited control có dùng tính chất : a. b. c. d.
Override Thừa kế Đa xạ Cả 3 tính chất trên
Việc xây dựng đối tượng Owned-Draw control có dùng tính chất : override,thừa kế đa xạ. Một project quản lý việc xây dựng đối tượng user control có thể chứa : n user control . Kỹ thuật data biding giúp người dùng tránh tối đa được việc : a. b. c. d.
Viết code miêu tả quy trình truy xuất chi tiết vào database. Viết code thiết lập các chế độ, các thông tin về database Cả 2 câu trên A,B sai
Kỹ thuật data binding tồn tại trên đối tượng nào : a. b. c. d.
Form Data form DatagirdView Hầu hết các dối tượng giao diện. (=cả 3 câu trên)
Việc thiết kế sự kết hợp giữa đối tượng giao diện với dữ liệu trong database có thể thực hiện bằng : a. b. c. d.
Thao tác thiết kế trực quan Viết code tường minh trongh chương trình. Cả 2 câu trên đúng Cả 2 câu trên sai
Trường hợp tốt nhật của databinding là : ko cần viết code . Kỹ thuật databinding của C# sử dụng các đối tượng trong: a. b. c. d.
thư viện ADO.NET thư viện ADO thư viện DAO cả 3 câu trên đều đúng
Trong chương trình VC#, bạn có thể dùng và gọi dịch vụ cua : a. b. c. d.
Thành phần COM Windows Service Web Service Cả 3 câu trên
Form VC# có thể chứa
a. b. c. d.
ActiveX Control Control Cà a,b đúng Cả a,b sai
Câu 53 : tính chất nào giúp đoạn code có tính tổng quát hóa : a. b. c. d.
Tính thừa kế Tính tổng quát hóa Tính đa xạ Cả 3 câu trên đều đúng
Khi lưu nội dung ra file binary thì : a. Nội dung các biến chưa bị giải mã (nội dung trên file giống như nội dung bộ nhớ) b. Nội dung các biến đã bị giải mã c. Tùy thuộc vào kiễu biến mà nội dung bị giải mã hay không (ngoai tru kieu chuoi, cac kieu con lai bê nguyên xi sang nhị phân) d. Cả 3 câu trên đều sai Khi lưu nội dung các biến ra file văn bản thì : a. Nội dung các biến bị giải mã b. Nội dung chưa bị giải mã c. Tùy thuộc vào kiểu biến mà nội dung có bị giải mã hay không Đọc nội dung từ file binary vào biến thì : Tùy thuộc kiểu biến mà nội dung gốc cần bị mã hóa hay không Khi đọc file văn bản vào các biến : Nội dung sẽ bị mã hóa trước khi chứa vào các biến Hiện nay , chương trình viết bằng ngôn ngữ VC# có thể chạy trên : a. b. c. d.
Máy Pc Máy server Điện thoại di động Cả 3 đều đúng
Chọn câu đúng nhất: a. Tác vụ static không có quyền truy xut61 các thành phần private của các đối tượng thuộc class tương ứng. b. Tác vụ static không có quyền truy xuất bất kì thuộc tính nào của đối tượng cụ thể nào thuộc class tượng ứng (static chỉ truy xuất các ptu static và ngược lại) Chọn câu đúng nhất : a. Ta có thể định nghĩa các toán tử theo kỹ thuật overloaded b. Ta phải định nghĩa các toán tử theo kỹ thuật override c. Cả 2 câu a, và b, đều đúng.
d. Cả 2 câu a và b đều sai Thông tin về kiểu hình thức trong đặc tả class tổng quát hóa là : a. Tên kiểu hình thức