wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Lập trình hướng đối tượng

Total questions: 105

Worksheet time: 53mins

Name
Class
Date
1.

Phương án nào mô tả tính đa hình chính xác

a)

Phương án nào mô tả tính đa hình chính xác

b)

Các lớp Điểm, Hình tròn, Hình vuông, Hình chữ nhật… đều có phương thức Vẽ.

c)

Lớp Điểm, Hình tròn cùng có hàm tạo, hàm hủy.

d)

Lớp hình vuông kế thừa lớp hình chữ nhật.

2.

Đặc điểm chính nào phân biệt lập trình hướng đối tượng với lập trình thủ tục?

a)

Lập trình thủ tục tổ chức mã thành các đối tượng, còn lập trình hướng đối tượng tổ chức mã thành các hàm.

b)

Lập trình hướng đối tượng tổ chức mã thành các lớp và đối tượng, trong khi lập trình thủ tục chỉ tập trung vào các hàm và dữ liệu toàn cục.

c)

Lập trình thủ tục không có tính đóng gói, còn lập trình hướng đối tượng có tính đóng gói.

d)

Lập trình thủ tục hỗ trợ đa hình, còn lập trình hướng đối tượng không hỗ trợ.

3.

Lập trình tuyến tính không phù hợp với các dự án phần mềm lớn vì lý do gì?

a)

Không cho phép chia nhỏ chương trình thành các phần có thể quản lý được.

b)

Không có cách nào để xử lý nhiều điều kiện cùng một lúc.

c)

Không thể chạy chương trình trên nhiều hệ điều hành khác nhau.

d)

Không cho phép quản lý biến toàn cục

4.

Cho đối tượng Diem được định nghĩa như sau:

class Diemn {

private float x; //Hoành độ

private float y; //Tung độ }

Cho biết các thuộc tính cơ bản của đối tượng Diem sẽ được đặt tên là

a)

Hoành độ, tung độ

b)

x,y

c)

Diem

d)

float

5.

Xét bài toán nhập vào danh sách n sinh viên với thông tin: Họ tên, ngày sinh, giới tính. Các lớp đối tượng cần xây dựng trong bài toán gồm:

a)

Lớp sinh viên và lớp main

b)

Lớp danh sách sinh viên và lớp main

c)

Lớp sinh viên, lớp danh sách sinh viên và lớp main

d)

Chỉ cần xây dựng lớp main là đủ

6.

Cho biết phát biểu nào sau đây sai về bổ từ mức truy cập public, protected và private

a)

Những thành viên được đánh dấu public có thê được dùng bởi bất kì trong các phương thức của các lớp khác.

b)

Thành viên trong một lớp A được đánh dấu là private thì chỉ được truy cập bới các phương thức của lớp A

c)

Thành viên trong lớp A được đánh dấu là protected thì chỉ được các phương thức bên trong lớp A và những phương thức của lớp dẫn xuất từ lớp A truy cập

d)

public, protected và private có mức truy cập tương đương nhau, tùy tình huống sử dụng

7.

Xét bài toán nhập vào danh sách n sinh viên với thông tin sinh viên gồm: mã sinh viên, Họ tên, ngày sinh, giới tính. Cho biết các thuộc tính của lớp danh sách sinh viên là

a)

mã sinh viên, Họ tên, ngày sinh, giới tính

b)

mã sinh viên

c)

Số sinh viên, danh sách (mảng hoặc list) đối tượng sinh viên

d)

đối tượng sinh viên

8.

Cho biết loại hàm khởi tạo của hàm sau

public KhachHang()

{

}

a)

Hàm khởi tạo không tham số

b)

Hàm khởi tạo có tham số

c)

Hàm khởi tạo sao chép

d)

Không phải là hàm khởi tạo

9.

Xây dựng lớp hình tam giác gồm 3 thuộc tính a, b và c. Để khai báo hàm khởi tạo với tham số mặc định thì ta khai báo

a)

Hinhtamgiac()

b)

Hinhtamgiac (a,b,c)

c)

Hinhtamgiac (int a, int b, int c)

d)

Hinhtamgiac (Hinhtamgiac tg)

10.

Xây dựng lớp hình chữ nhật gồm 2 thuộc tính dai và rong.

public class Hinhchunhat {

private float dai,rong; }

Để khai báo hàm khởi tạo với tham số mặc định thì ta khai báo

a)

Hinhchunhat()

b)

Hinhchunhat(dai,rong)

c)

Hinhchunhat(float dai, float rong)

d)

Hinhchunhat(int dai, int rong)

11.

Một lớp tĩnh (static) có thể có thành phần nào? Chọn câu trả lời phù hợp/đầy đủ nhất.

a)

Chỉ được có Thuộc tính tĩnh

b)

Chỉ được có Phương thức tĩnh

c)

Chỉ được chứa thành phần (thuộc tính và phương thức) tĩnh

d)

Được chứa thành phần không tĩnh (non-static)

12.

Một phương thức tĩnh (static) trong một lớp có thể được/bị ghi đè (overridden) không? Chọn câu trả lời phù hợp/đầy đủ nhất.

a)

Không, một phương thức tĩnh không thể bị ghi đè vì nó thuộc về chính lớp đó, không phải là thể hiện (instance) của lớp đó.

b)

Không, một phương thức tĩnh không thể bị ghi đè vì nó là thể hiện (instance) của lớp đó.

c)

Có, một phương thức tĩnh có thể bị ghi đè vì nó thuộc về chính lớp đó, không phải là thể hiện (instance) của lớp đó.

d)

Có, một phương thức tĩnh có thể bị ghi đè vì nó là thể hiện (instance) của lớp đó.

13.

Phát biểu nào sau đây là sai?

a)

Một lớp tĩnh (static class) không thể được khởi tạo trong khi chúng ta được phép tạo các đối tượng của một lớp không tĩnh (non-static class) bằng cách sử dụng từ khóa new.

b)

Một lớp tĩnh (static class) không thể kế thừa từ một lớp khác trong khi một lớp không tĩnh (non-static class) có thể kế thừa từ một lớp khác.

c)

Một lớp tĩnh (static class) không thể được/bị kế thừa bởi bất kỳ lớp nào trong khi một lớp không tĩnh (non-static class) có thể được kế thừa bởi các lớp khác.

d)

Một lớp tĩnh (static class) có thể được kế thừa bởi bất kỳ lớp nào.

14.

Khẳng định nào sau đây mô tả chính xác nhất về kế thừa?

a)

Sao lưu mã chương trình đã được viết

b)

Sử dụng mã chương trình đã được viết

c)

Sử dụng các hàm đã được định nghĩa

d)

Sử dụng dữ liệu và phương thức trong phần kế thừa

15.

Khi khai báo, xây dựng lớp các thuộc tính của lớp thường được khai báo trong phạm vi private, điều này thể hiện đặc tính:

a)

Đa hình (Polymophism)

b)

Kế thừa (Inheritance)

c)

Trừu tượng (Abstraction)

d)

Đóng gói (Encapsulation)

16.

Giả sử rằng có ba lớp: Computer, AppleComputer và IBMComputer. Mối quan hệ nên xảy ra giữa các lớp này là gì?

a)

Computer, AppleComputer và IBMComputer là các lớp anh em.

b)

IBMComputer là lớp cha, AppleComputer và Computer là lớp con của IBMComputer

c)

Computer là lớp cha, AppleComputer và IBMComputer là lớp con của Computer.

d)

Computer là một lớp cha, AppleComputer là một lớp con của Computer và IBMComputer là một lớp con của AppleComputer.

17.

Lớp Cat kế thừa lớp Animal. Khai báo nào sau đây là sai?

a)

Cat x = new Cat();

b)

Cat x = new Animal();

c)

Animal X = new Animal();

d)

Animal x = new Cat();

18.

Đa hình thái (polymorphism) trong lập trình hướng đối tượng là gì?

a)

Khả năng của các phương thức có thể có nhiều tên khác nhau.

b)

Khả năng của các đối tượng khác nhau có thể đáp ứng cùng một phương thức theo các cách khác nhau.

c)

Khả năng của các lớp có thể kế thừa từ nhiều lớp cha

d)

Khả năng của các thuộc tính có thể thay đổi kiểu dữ liệu.

19.

Điều gì sẽ xảy ra nếu một lớp con không ghi đè một phương thức virtual trong lớp cha?

a)

Phương thức từ lớp cha sẽ được sử dụng.

b)

Lỗi biên dịch.

c)

Phương thức sẽ bị bỏ qua.

d)

Lớp con sẽ không thể khởi tạo đối tượng.

20.

Phương thức ảo có thể được khai báo là tĩnh không? Tại sao?

a)

Có, phương thức ảo có thể là tĩnh.

b)

Không, phương thức ảo không thể là tĩnh.

c)

Có, nhưng phương thức tĩnh không thể ghi đè.

d)

Không, vì phương thức tĩnh không thể được kế thừa.

21.

Lớp trừu tượng trong C# là gì?

a)

Lớp không chứa phương thức nào.

b)

Lớp có thể tạo đối tượng trực tiếp từ nó.

c)

Lớp có thể chứa cả phương thức cụ thể và phương thức trừu tượng

d)

Lớp mà các phương thức không bao giờ được ghi đè.

22.

Đặc điểm nào đúng về lớp trừu tượng trong C#?

a)

Nó bắt buộc phải chứa ít nhất một phương thức trừu tượng.

b)

Nó có thể tạo được đối tượng trực tiếp.

c)

Nó không thể chứa thuộc tính.

d)

Nó chỉ được sử dụng trong C++.

23.

Có thể nào một phương thức trong lớp trừu tượng được khai báo là private trong C#?

a)

Có, nhưng không thể ghi đè nó.

b)

Có, nhưng phải là phương thức trừu tượng.

c)

Không, vì phương thức trừu tượng phải có thể ghi đè.

d)

Có, nhưng nó sẽ không có thân phương thức

24.

Ngoại lệ (exception) trong C# là gì?

a)

Một lỗi cú pháp xảy ra khi biên dịch chương trình.

b)

Một lỗi logic xảy ra trong thời gian chạy (runtime) của chương trình.

c)

Một kỹ thuật lập trình để tối ưu hóa mã nguồn.

d)

Một phương thức để lưu trữ dữ liệu tạm thời.

25.

Trong C#, phương thức nào được sử dụng để ghi thông tin vào nhật ký trong quá trình Debugging?

a)

Console.WriteLine()

b)

Debug.WriteLine()

c)

Trace.WriteLine()

d)

File.WriteAllText()

26.

using System;

class RefTest {

public void sqr(ref int i) {

i=i*i;

}

}

class MainClass {

public static void Main() {

RefTest ob = new RefTest();

int a=10;

Console. WriteLine("a before call: " +a);

ob.sqr(ref a);

Console. WriteLine("a after call: " + a).

}

}

Két qua sau khi chay chuong trinh trên là

a)

a before call: 100

aftercal: 10

b)

a before call: 10

a after call: 100

c)

a before call: 10

a after call: 10

d)

a before call: 100

‘a after call: 100

27.

Trong các kiểu dữ liệu sau kiểu dữ liệu nào thuộc kiểu GIÁ TRỊ?

a)

interface

b)

array

c)

string

d)

int

28.

Trong các kiểu dữ liệu sau kiểu dữ liệu nào thuộc kiểu DỮ LIỆU THAM CHIẾU

a)

int

b)

bool

c)

double

d)

object

29.

Cách tiếp cận trong lập trình hướng đối tượng là ?

a)

Theo hướng chia để trị

b)

Dự trên nền tảng các đối tượng

c)

Theo hướng từ trên xuống ( Top - Down)

d)

Chủ yếu dựa vào việc phân tách các chức năng chính của bài toán thành các chức năng đơn giản hơn

30.

using System;

class Decompose {

public int parts(double n. out double frac) {

int whole;

whole = (inf) n;

frac =n -whole;

return whole;

}

}

class MainClass {

public static void Main() {

Decompose ob = new Decompose():

int i;

double f;

i= ob.parts(10.125, out f);

Console. WriteLine("Integer portion is " +i):

Console. WriteLine(" Fractional part is " +f);

}

}

a)

Integer portion is 0.125

Fractional part is 10

b)

Integer portion is 10

Fractional part is 10

c)

Integer portion is 10

Fractional part is 0.125

d)

Integer portion is 10

Fractional part is 9.875

31.

Trong các phát biểu sau phát biểu nào sai ?

a)

Quên trả lại giá trị cho phương thức khi phương thức cần phải trả lại một giá trị

b)

Đặt dấu ; sau khi báo phương thức sinh ra lỗi

c)

Khai báo phương thức bên ngoài một lớp hay bên trong một phương thức khác là lỗi

d)

Kiểu và số lượng các tham số trong lời gọi phương thức không phải giống với khai báo phương thức

32.

using System;

class RefTest {

public void sqr(ref int i) {

i=i*i;

}

}

class MainClass {

public static void Main() {

RefTest ob = new RefTest();

int a=10;

Console. WriteLine("a before call: " + a);

ob.sqr(ref a);

Console. WriteLine("a after call: " + a);

}

}

Kết quả sau khi chạy chương trình trên là

a)

a before call: 100

a after call :10

b)

a before call: 10

a after call: 100

c)

a before call: 10 |

a after call: 10

d)

a before call: 100

a after call: 100

33.

Khi khai báo thành phần dữ liệu của một lớp nếu không có từ khoá nêú không có từ khoá đặc tả truy cập thì mặc định là

a)

public

b)

internal

c)

private

d)

protected

34.

using System;

class Example {

public static void Main() {

int x;

x= 10;

if (x == 10) {

int y=20;

Console. WriteLine("x and y: "+x +" " + y);

}

Console. WriteLine("x is {0}, is {1} ",x,y):

}

}

a)

Báo lỗi

b)

x and y : 10 20

x is 10, y is 20

c)

x and y : 10 20

x is 10, y is 0

d)

x and y: 10 20

x is 20, y is 10

35.

Trong các khai báo thành phần dữ liệu của một lớp khai báo nào đúng ?

a)

private int a = 10;

b)

protected double internal a = 10;

c)

public int static a = 10;

d)

int static a = 10;

36.

Sự khác nhau giữa thành phần dữ liệu của một lớp và biến là

a)

Thành phần dữ liệu của một lớp (field) phải khởi tạo mới sử dụng được còn biến nếu không khởi tạo sẽ nhận giá trị mặc định

b)

Thành phần dữ liệu của một lớp (field) nếu không được khởi tạo sẽ nhận giá trị mặc định còn biến thì phải khởi tạo giá trị mới sử dụng được

c)

Chỉ khác nhau ở vị trí khao báo

d)

Không có sự khác nhau

37.

Cho khai báo thành phần dữ liệu của một lớp như sau:

private int a ;

Sau đó in biến a ra màn hình thì giá trị của biến a mặc định là bao nhiêu

a)

Máy báo lỗi

b)

0

c)

-32768

d)

32767

38.

Trong ngôn ngữ lập trình C#

a)

Không hỗ trợ kế thừa

b)

Hỗ trợ cả đơn kế thừa và đa kế thừa

c)

Hỗ trợ đa kế thừa

d)

Chỉ hỗ trợ đơn kế thừa

39.

class Point

{

private double x,y;

public Point() // 1

{

x=y=0;

}

public Point(double x, double y) // 2

{

this.x=x;

this.y=y:

}

public Point(Point d) // 3

{

x=d.x;

y=d.y:

}

public Point1(double x) // 4

{

this.x=x;

y=0;

}

}

a)

1

b)

2

c)

3

d)

4

40.

Kiểu dữ liệu tham chiếu được lưu trữ trong

a)

Trong bộ nhớ Stack

b)

Trong bộ nhớ Heap

c)

ổ cứng

d)

Không phải các kiểu trên

41.

class Vidu{

private int x=10;

private static int y = 0;

public Vidu () {

y++;

}

public void InSoDT()

t

Console. WriteLine("So doi tong: {0)", y);

}

}

class Test

{

public static void Main()

{

Vidu vd1= new Vidu();

vd1.InSoDT();

Vidu vd2= new Vidu();

vd2.InSeDT();

Console. ReadKey();

}

}

Cho biết kết quả in ra màn hình

a)

So doi tuong: 0

So doituong: 1

b)

So doi tuong: 0

So doi tuong: 0

c)

So doi tuong: 1 |

‘So doi tuong: 1

d)

So doi tuong: 1

So doi tuong: 2

42.

Khi một lớp con ghi đè một phương thức, từ khoá nào có thể được sử dụng để chỉ định

a)

new

b)

vitural

c)

sealed

d)

override

43.

Một lớp con có thể kế thức từ bao nhiêu lớp cha trong C#

a)

Nhiều hơn 2

b)

Vô hạn

c)

1

d)

2

44.

Phương thức abstract trong lớp cha yêu cầu lớp con phải

a)

Ghi đè phương thức đó

b)

Làm cho phương thức trở thành sealed

c)

Để trống

d)

Không làm gì cả

45.

Trong kế thừa, thuộc tính nào có thể được truy cập bởi lớp con?

a)

Internal

b)

private

c)

private and protected

d)

protected

46.

using System;

class Point

{

public Point(int x, int y)

{

thisx =x;

this.y = y;

}

public void GetPoint(out int x, out int y)

{

x= thisx; |

y= this.y;

}

int x;

inty;

}

class MainClass

{

public static void Main()

{

Point myPoint = new Point(10, 15);

int x;

int y;

myPoint.GetPoint(out x, out y);

Console. WriteLine(“myPoint( {0}. {1}". x.y):

}

}

Kết quả chạy chương trình

a)

myPoint(15, 10) 

b)

myPoint(10, 10) 

c)

myPoint(15, 15) 

d)

myPoint(10, 15) 

47.

Phương thức nào sau đây không thẻ bị ghi đè trong lớp con

a)

Phương thức sealed

b)

Phương thức protected

c)

Phương thức public

d)

Phương thức vitural

48.

Những phương thức trong một lơp mà không có triển khai phần thân thì phải khai báo bằng từ khoá

a)

abstract

b)

new

c)

vitural

d)

override

49.

Bên trong phương thức nào dưới đây không được sử dụng từ khoá this

a)

Phương thức tạo dựng

b)

Phương thức tĩnh

c)

Phương thức thường

d)

Phương thức không trả về giá trị

50.

Kế thừa trong C# cho phép

a)

Tạo ra nhiều lớp từ một lớp đã tồn tại

b)

Không cho phép chia sẻ thuộc tính giữa các lớp

c)

Tạo ra một lớp mới từ một lớp đã tồn tại

d)

Không có ý nghĩa trong lập trình

51.

Tất cả phương thức trong interface đều có mức truy cập

a)

public

b)

protected

c)

public hoặc protected

d)

private hoặc protected

52.

Khi một lớp kế thừa từ một lớp khác, nó có thể truy cập

a)

Chỉ các thành viên public và protected của lớp cha

b)

Không có thành viên nào

c)

Tất cả các thành viên của lớp cha

d)

Chỉ các thành viên private của lớp cha

53.

class Point

{

private double x,y;

public Point() // 1

{

x=y=0; |

}

public Point(double x, double) //2

{

this. x=x;

this.y=y;

i |

public Point(Point d) // 3

{

x=d.x; |

y=d.y: |

}

public Point1(double x) // 4 |

{

this.x = x:

y=0;

}

}

a)

1

b)

2

c)

3

d)

4

54.

Kế thừa đa cấp là gì

a)

Một lớp kế thừa từ nhiều lớp cha

b)

Một lớp kế thừa từ lớp cha và không có lớp con

c)

Không có ý nghĩa

d)

Một lớp kế thừa một lớp cha, sau đó lớp con có thể được kế thừa thêm

55.

Khi nào bạn nên sử dụng kế thừa

a)

Khi các lớp có mối quan hệ là "là một"

b)

Khi bạn có muốn tránh lặp mã

c)

Khi các lớp có mối quan hệ "là một" và khi bạn muốn tránh lặp mã

d)

Khi bạn cần tạo một thư viên

56.

Khi bạn không muốn xử lý ngoại lệ và muốn ném lại nó, bạn sử dụng từ khoá nào

a)

rethrow

b)

catch

c)

continue

d)

throw

57.

Khối finally trong C#được sử dụng để

a)

Chỉ chạy khi không có ngoại lệ

b)

Xử lý ngoại lệ

c)

Không có tác dụng

d)

Thực hiện mã dù có ngoại lệ hay không

58.

Trong C#, bạn có thể sử dụng interface nào để xử lý ngoại lệ

a)

IErrorHandler

b)

IException

c)

Không có interface nào

d)

Icomparable

59.

Khi một ngoại lệ được ném ra và không bị bắt, chương trình sẽ

a)

Chuyển sang khối catch

b)

Không có hành động gì

c)

Dừng lại

d)

Tiếp tục chạy

60.

Một phương thức có thể trả về kiểu dữ liệu nào dể biểu thị việc có thể ném ngoại lệ

a)

Không có kiểu nào

b)

void

c)

int

d)

string

61.

Khi nào bạn nên sử dụng khối try-catch trong C#

a)

Khi bạn muốn kiểm soát các lỗi runtime

b)

Khi bạn muốn tránh lỗi biên dịch

c)

Khi bạn muốn dừng chương trình

d)

Khi bạn không muốn sử dụng ngoại lệ

62.

Phương thức nào sau đây được sử dụng để ném một ngoại lệ trong C#

a)

trigger

b)

throw

c)

raise

d)

catch

63.

Để xử lý nhiều ngoại lệ khác nhau trong một khối try, bạn có thể

a)

Sử dụng nhiều khối catch

b)

Sử dụng khối finally

c)

Sử dụng một khối catch

d)

Không thể xử lý nhiều ngoại lệ

64.

Để xử lý ngoại lệ trong C#, bạn cần có ít nhất 1 trong các phần nào sau đây

a)

catch

b)

finally

c)

try

d)

try hoặc catch

65.

Khi gọi một phương thức ném ngoại lệ, bạn nên

a)

Không cần làm gì cả

b)

Kiểm tra xem phương thức có ném ngoại lệ không

c)

Chỉ sử dụng khối finally

d)

Luôn luôn sử dụng khối try-catch

66.

Một phương thức có thể ném ngoại lê được chỉ định bằng từ khoá nào

a)

exception

b)

throws

c)

return

d)

throw

67.

Khi ném một ngoại lệ bạn có thể chỉ định thông điệp bằng cách nào

a)

new Exception("Thông điệp")

b)

All of the above

c)

Exception("Thông điệp")

d)

throw Exception("Thông điệp")

68.

C# sử dụng từ khoá nào để khai báo một ngoại lệ

a)

throw

b)

catch

c)

exception

d)

try

69.

Để tạo một ứng dụng xử lý ngoại lệ mạnh mẽ, bạn nên

a)

Chỉ sử dụng try

b)

Chỉ bắt ngoại lệ cụ thể

c)

Không sử dụng try-catch

d)

Bắt tất cả các ngoại lệ

70.

Lớp nào trong C# là lớp cơ sở cho tất cả các ngoại lệ

a)

SystemException

b)

ApplicationException

c)

Exception

d)

Throwable

71.

Khi một lớp cha có một phương thức abstract, lớp con phải

a)

Để trống

b)

Không làm gì cả

c)

Tạo phương thức mới

d)

Ghi đè phương thức đó

72.

Từ khoá nào được sử dụng để chỉ định rằng một phương thức không thể bị ghi đè trong lớp con

a)

vitural

b)

sealed

c)

abstract

d)

override

73.

Phương thức ảo có thể được ghi đè bởi

a)

Cả hai lớp

b)

Chỉ trong lớp con

c)

Chỉ trong lớp cha

d)

Không có lớp nào

74.

Khi một phương thức được đánh dấu là ảo, lớp con có thể

a)

Tất cả các phương án trên

b)

Tạo một phương thức mới với tên khác

c)

Ghi đè phương thức

d)

Không ghi đè phương thức

75.

Lợi ích của đa hình là gì

a)

Giúp tăng tính linh hoạt của mã

b)

Tất cả phương án trên

c)

Giảm độ phức tạp của mã

d)

Tăng cường khả năng mở rộng

76.

Nếu một lớp có phương thức ảo nhưng không ghi đè, phương thức nào sẽ được gọi

a)

Tuỳ thuộc vào biến tham chiếu

b)

Phương thức lớp cha

c)

Không có phương thức nào

d)

Phương thức lớp con

77.

Phương thứ abstract là gì?

a)

Phương thức có thân

b)

Phương thức không thể ghi đè

c)

Không có phương thức abstract

d)

Phương thức không có thân

78.

Hàm ảo trong C# được khai báo bằng từ khoá?

a)

sealed

b)

virtual

c)

abstract

d)

override

79.

Từ khoá nào được sử dụng trong lớp con để ghi đè phương thức của lớp cha?

a)

base

b)

override

c)

virtual

d)

new

80.

Khi bạn gọi một phương thức ảo từ một biến kiểu cha, phương thức nào được thực thi?

a)

Không có phương thức trên

b)

Phương thức trong lớp cha

c)

Tuỳ thuộc vào kiểu tham chiếu

d)

Phương thức trong lớp con

81.

Một phương thức ảo có thể được sử dụng trong

a)

Lớp cha và lớp con

b)

Lớp cha

c)

Không có lớp nào

d)

Lớp con

82.

Đa hình trong lập trình hướng đối tượng cho phép?

a)

Không có ý nghĩa

b)

Sử dụng nhiều kiểu dữ liệu khác nhau

c)

Sử dụng nhiều kiểu dữ liệu khác nhau và Ghi đè phương thức trong lớp con

d)

Ghi đè phương thức trong lớp con

83.

Khi lớp con ghi đè một phương thức ảo, phương thức đó có thể có:

a)

Tất cả các phương án trên

b)

Kiểu trả về khác

c)

Tên khác

d)

Tham số khác

84.

Phương thức virtual có thể được khai báo trong

a)

Chỉ trong lớp cha

b)

Không có lớp nào

c)

Chỉ trong lớp con

d)

Trong cả hai lớp

85.

Cú pháp nào sau đây là chính xác để khai báo một phương thức ảo trong C#?

a)

public new...

b)

public virtual...

c)

public abstract...

d)

public override...

86.

Trong đa hình, khái niệm "tính ngữ " có nghĩa là gì?

a)

Một hình thức

b)

Không có hình thức

c)

Nhiều hình thức

d)

Tất cả các hình thức

87.

Khi lớp con ghi đè một phương thức của lớp cha, lớp cha có thể vẫn có thể gọi phương thức đó bằng từ khoá nào?

a)

parent

b)

base

c)

call

d)

super

88.

Khi lớp cha có một phương thức ảo, lớp con phải

a)

Tạo phương thức mới

b)

Để trống

c)

Ghi đè phương thức đó

d)

Không làm gì cả

89.

Đa hình kiểu nào không phải là một phần của đa hình trong C#

a)

Đa hình qua sự kiện

b)

Đa hình thời gian chạy

c)

Đa hình qua kiểu dữ liệu

d)

Đa hình thời gian biên dịch

90.

Một lớp có thể kế thừa từ bao nhiêu lớp cha trong C#

a)

Nhiều hơn 2

b)

Vô hạn

c)

2

d)

1

91.

Để khai báo và tạo đối tượng ta sử dụng cú pháp nào trong các cú pháp sau:

a)

Tenlop Tendoituong = null;

b)

Tenlop Tendoituong;

Tendoituong = new Tenlop();

c)

Tenlop Tendoituong = new Tenlop();

d)

Cả 3 cách trên

92.

Từ khoá nào chỉ cho phép truy cập bên trong của lớp đó

a)

protected

b)

internal

c)

public

d)

private

93.

Trong kế thừa, thuộc tính nào có thể được truy cập bởi lớp con?

a)

internal

b)

private và protected

c)

protected

d)

private

94.

Đặc điểm nào sau đây không phải là của kế thừa?

a)

Tái sử dụng mã

b)

Tạo ra một cấu trúc phân cấp

c)

Tăng cường tính bảo mật

d)

Tăng cường khả năng mở rộng

95.

Từ khoá nào được sử dụng để chỉ định một lớp kế thừa từ lớp khác trong C#

a)

base

b)

inherit

c)

extends

d)

:

96.

Trong C#, lớp con có thể kế thừa từ

a)

Các interface

b)

Một lớp cha

c)

Nhiều lớp cha

d)

Một lớp cha và các interface

97.

Kế thừa đa cấp là gì?

a)

Không có ý nghĩa

b)

Một lớp kế thừa từ nhiều lớp cha

c)

Một lớp kế thừa từ một lớp cha, sau đó lớp con có thể được kế thừa thêm

d)

Một lớp kế thừa từ lớp cha và không có lớp con

98.

Khi lớp con ghi đè một phương thức của lớp cha, nó phải có

a)

Không cần giống nhau

b)

Tên khác nhưng kiểu trả về giống nhau

c)

Cùng tên, cùng kiểu trả về và cùng tham số

d)

Tên khác và tham số khác

99.

Bên trong phương thức nào dưới đây không được sử dụng từ khoá this

a)

Phương thức tĩnh

b)

Phương thức tạo dựng

c)

Phương thức không trả về giá trị

d)

Phương thức thường

100.

using System; // 1

public abstract class MusicPlayer //2

{

public abstract void Play() {return "Start playing";} // 3

public void EndPlay()// 4

{

Console.WriteLine("Finished"); // 5

}

}

Cho biết đoạn chương trình trên câu lệnh nào sinh ra lỗi?

a)

2

b)

3

c)

4

d)

5

101.

Khi nào bạn nên sử dụng kế thừa?

a)

Khi các lớp có mối quan hệ "là một" và Khi bạn muốn tránh lặp mã

b)

Khi các lớp có mối quan hệ "là một"

c)

Khi bạn cần tạo một thư viện

d)

Khi bạn muốn tránh lặp mã

102.

Khi một lớp kế thừa từ lớp khác, nó có thể truy cập:

a)

tất cả các thành viên của lớp cha

b)

Chỉ các thành viên của lớp cha

c)

Không có thành viên nào

d)

Chỉ các thành viên public và protected của lớp cha

103.

Từ khoá nào được sử dụng để gọi đến phương thức của lớp cha trong C#

a)

parent

b)

call

c)

base

d)

super

104.
a)

Person name is

b)

Bill Gate

c)

Employee name is Bill Gate

d)

Person name is Bill Gate

105.

Kế thừa trong C# cho phép

a)

Tạo ra nhiều lớp từ một lớp đã tồn tại

b)

Không có ý nghĩa trong lập trình

c)

Không cho phép chia sẻ thuộc tính giữa các lớp

d)

Tạo ra một lớp từ một lớp đã tồn tại