Kỹ thuật lập tình, CNTT, Lập trình Ứng dụng cho máy tính cá nhân c#, C#...........Ngôn ngữ C# được xây dựng trên nền tảng ngôn ngữ nào
Trang 1TUẦN 1
Câu Hỏi 1: Thành phần nào tạo nên NET?
A.Các sản phẩm NET B.Các dịch vụ NET
C.Visual Studio NET D.IDE và NET framework
Câu Hỏi 2: Ngôn ngữ MSIL là?
A.Mã nguồn ngôn ngữ C# B.Mã nguồn ngôn ngữ VB.NET
C.Ngôn ngữ trung gian D.Mã nguồn ngôn ngữ Java
Câu Hỏi 3: IDE là một thành phần của khối nào sau đây?
Câu Hỏi 4: Tính hướng đối tượng của C# thể hiện ở tính chất nào?
A.Kế thừa và hướng cấu trúc B.Đóng gói và tổng quát hoá
C.Đa hình và đa thành phần D.Kế thừa, đa hình và đóng gói
Câu Hỏi 5: Mối quan hệ giữa JIT và CLR?
A.JIT là một phần của CLR B.JIT và CLR không liên quan đến nhau C.CLR là một phần của JIT D.JIT chính là CLR
Câu Hỏi 6: Một chương trình C# chỉ chạy được trên máy có cài đặt chương trình nào?
Câu Hỏi 7: Vai trò của CLR là gì?
A.Quản lý bộ nhớ và biên dịch chương trình thành ngôn ngữ chung
B.Biên dịch chương trình thành 01 file exe
C.Biên dịch chương trình thành 01 file dll
D.Biên dịch chương trình thành mã máy
Câu Hỏi 8: Ngôn ngữ C# được xây dựng trên nền tảng ngôn ngữ nào?
C.Visual Basic D.Turbo Pascal
Câu Hỏi 9:Một chương trình C# sau khi biên dịch trở thành loại mã nào?
C.Visual Basic D.Visual C#
Câu Hỏi 10: Mã nguồn C# không yêu cầu tập tin nào sau đây?
Trang 2Câu Hỏi 11: NET platform được xây dựng trên giao thức internet nào?
Câu Hỏi 12: Chức năng của JIT là?
A.Chuyển IL sang mã máy B.Chuyển mã C# thành IL
C.Chuyển các lớp thư viện thành IL D.Chuyển IL thành các gói tin exe
Trang 3TUẦN 2
Câu Hỏi 1: Kiểu dữ liệu byte là số nguyên có giá trị trong khoảng?
Câu Hỏi 2: Kiểu dữ liệu sbyte là số nguyên có giá trị trong khoảng?
Câu Hỏi 3: Sau khi khai báo biến thì?
A.Không cần khởi
B.Sau khi khởi tạo phải gán trước khi sử dụng
C.Phải khởi tạo ngay
D.Có thể khởi tạo ngay hoặc có thể gán trước khi sử dụng
Câu Hỏi 4: Đối với việc đặt tên biến trong C# thì?
A.Có phân biệt chữ hoa chữ thường
B.Có thể hai biến trùng nhau
C.Có thể dùng từ khóa
D.Không phân biệt chữ hoa chữ thường
Câu Hỏi 5: Biến kiểu dữ liệu tham chiếu sau khi khai báo thì lưu ở đâu?
Câu Hỏi 6: Biến kiểu dữ liệu giá trị sau khi khai báo thì được lưu ở đâu?
Câu Hỏi 7: Từ nào sau đây là từ khóa của C#?
Câu Hỏi 8: Khi khai báo biến thì thành phần bắt buộc phải có là?
C.Kiểu dữ liệu và tên biến D.Từ khóa
Câu Hỏi 9: Ngôn ngữ lập trình C# là ngôn ngữ có khoảng … từ khóa?
Câu Hỏi 10: Từ nào sau đây không phải từ khóa của C#?
Trang 4TUẦN 3
Câu Hỏi 1: public class SuperClass
{
public SuperClass (string s) { }
}
public class SubClass
{
public SubClass() {}
public static void Main()
{
SuperClass s = new SuperClass("The");
}
}
Điều gì xảy ra khi cho chạy đoạn mã trên?
A.Không tìm thấy hàm tạo phù hợp trong lớp SuperClass
B.Không có lỗi
C.Không thực hiện lệnh gán SubClass cho SuperClass
D.Lỗi truyền tham số hàm tạo
Câu Hỏi 2: class Book{
int num1=1;
int num2;
public static void Main()
{
int num3=3;
Console.WriteLine(num1+num2+num3);
}
}
Kết quả khi cho chạy đoạn chương trình trên?
A.Lỗi chưa khai báo biến num1 và num2
B.0
C.4
D.Các mã không biên dịch vì biến num3 chưa được khởi tạo
Trang 5Câu Hỏi 3: Những thành phần của lớp có bổ từ truy cập nào thì chỉ có thể được truy cập bởi những phương thức của lớp?
Câu Hỏi 4: Từ khoá nào được dùng để tạo đối tượng trong C#?
Câu Hỏi 5: Thành phần nào sau đây sẽ bị huỷ khi phương thức trong lớp kết thúc?
A.Biến trong phương thức B.Thuộc tính của lớp
C.Biến trong hàm main D.Thuộc tính của đối tượng
Câu Hỏi 6: Những thành phần của lớp có bổ từ truy cập nào thì có thể được truy cập bởi những phương thức của bất cứ lớp nào trong cùng khối hợp ngữ với nó?
A.Protected internal B.Public
Câu Hỏi 7: class main
{
static long afield = 123 ;
static main()
{
Console.Write(afield);
}
main()
{
afield = 1000;
Console.WriteLine(afield);
}
static void Main(String[] args)
{
main obj = new main();
}
}
Chọn đáp án đúng khi cho chạy đoạn chương trình trên?
Trang 6Câu Hỏi 8: class A{
public static void Main ()
{
int i=0;
switch (i) {
default:
System.Console.Write (i);
break;
case 1:
System.Console.Write ("{0}",1);
goto default;
case 0:
System.Console.Write ("{0}",0);
goto case 1;
}
}
}
Kết quả khi cho chạy đoạn chương trình trên?
Câu Hỏi 9: Hàm tạo mặc định khởi tạo gán các giá trị mặc định nào sau đây không
đúng?
A.Biến logic bằng false B.Biến chuỗi bằng 0
C.Biến chuỗi bằng rỗng D.Biến số bằng 0
Câu Hỏi 10: Chọn loại biến khai báo ngoài phương thức tĩnh có thể sử dụng hợp lệ trong thân phương thức tĩnh?
A.Tất cả các biến
B.Chỉ các biến static
C.Các biến public
D.Các biến private
Trang 7TUẦN 4
Câu hỏi 1: Điều gì xảy ra khi lớp dẫn xuất override phương thức khai báo sealed?
A.Biên dịch và chạy bình thường và cho kết quả đúng
B.Lỗi biên dịch
C.Lỗi runtime
D.Biên dịch và chạy bình thường nhưng khi chạy cho kết quả sai
Câu hỏi 2: Từ khoá nào dùng để định nghĩa cho giao diện?
Câu hỏi 3: Điều gì xảy ra khi một lớp kế thừa lớp sealed?
A.Lỗi biên dịch
B.Biên dịch và chạy bình thường và cho kết quả đúng
C.Biên dịch và chạy bình thường nhưng khi chạy cho kết quả sai
D.Lỗi runtime
Câu hỏi 4: abstract class Class
{
public abstract void getNumber();
public abstract void getHeight();
public bool isEmpty(){return (true);}
}
abstract class ClassA:Class
{
public abstract void getWidth();
}
class ClassB:ClassA
{ }
Đoạn code trên cần sửa lỗi như thế nào?
A.Lớp ClassB không được kế thừa lớp ClassA mà phải kế thừa lớp Class
B.Bỏ lệnh “return (true);” và thực hiện các phương thức: getNumber(), getHeight(), isEmpty(), getWidth()
C.Tên lớp “Class” đổi lại thành tên khác như Lop1, lop2,…
D.Bỏ “abstract” trong các phương thức getNumber(), getHeight(), isEmpty()
Câu hỏi 5: Bổ từ truy cập dùng khai báo giao diện là?
Trang 8Câu hỏi 6: <Bổ từ truy cập> class <tên lớp>: one, two, three, four
Trong số các lớp và giao diện thay thế vào vị trí của “one, two, three, four” thì thay thế nào hợp lệ?
A.interface1, interface2, interface3, Class1
B.Class1, interface1, interface2, interface3
C.interface1, interface2, Class1, Class2
D.Class1, Class2, interface1, interface2
Câu hỏi 7: abstract class Class
{
public abstract void getNumber();
}
class ClassA:Class
{
}
Đoạn chương trình trên có lỗi gì sau đây?
A.Lớp ClassA không định nghĩa phương thức getNumber()
B.Lớp ClassA phải khai báo là abstract
C.Phương thức getNumber() khai báo public là không hợp lệ
D.Tên lớp cơ sở không hợp lệ
Câu hỏi 8 : Phát biểu nào đúng cho việc đặt tên của giao diện?
A.Thường có tiền tố là chữ “I” B.Thường có tiền tố là “interface”
C.Bắt buộc phải có tiền tố là chữ “I” D.Đặt trước từ khoá “interface”
Câu hỏi 9 : Bổ từ truy cập dùng khai báo giao diện là?
A.Bất cứ bổ từ nào B.private
Câu hỏi 10: Để kiểm tra sự thực thi giao diện của đối tượng và thực hiện ngay phép gán thì dùng từ khóa nào?
Trang 9TUẦN 5
Câu hỏi 1: Chọn phương thức khai báo đúng?
A.public void virtual Display(){}
B.public static virtual void Display() { }
C.public virtual void Display(){}
D.public virtual static void Display() { }
Câu hỏi 2: Trong các khai báo sau, khai báo nào đúng khi thực hiện kế thừa lớp cơ sở là lớp student1 và lớp dẫn xuất là lớp student2?
A.public student2:student1 B.student1 public:student2
C.public student1:student2 D.student2 public:student1
Câu hỏi 3: Lớp lồng bên trong một lớp được khai báo với từ khoá nào?
A.private B.internal C.protected D.public
Câu hỏi 4: public class SuperClass
{
public SuperClass (string s) { }
}
public class SubClass: SuperClass
{
public static void Main()
{
SubClass s = new SuperClass ("The");
}
}
Điều gì xảy ra khi biên dịch đoạn mã trên?
C.Báo lỗi dòng 9 D.Báo lỗi dòng 5
Câu hỏi 5: Chọn khai báo đúng để tạo lớp B kế thừa lớp A trong C#?
A.class B:class A B.class A:B
C.class B:A D.class A:class B
Câu hỏi 6: Thứ tự khởi tạo khi tạo một biến đối tượng là gì?
A.Gọi hàm tạo lớp dẫn xuất trước
B.Khởi tạo các biến lớp dẫn xuất sau đó mới gọi hàm tạo
C.Gọi hàm tạo lớp cơ sở trước
D.Gọi hai hàm tạo cùng một lúc
Trang 10Câu hỏi 7: C# cho phép một lớp kế thừa từ mấy lớp?
Câu hỏi 8: Để một luồng bắt đầu thì phải thực hiện thao tác nào?
A.Tạo đối tượng luồng
B.Gọi phương thức suspend của đối tượng luồng
C.Gọi phương thức Start của đối tượng luồng
D.Cho một đối tượng luồng khác dừng
Câu hỏi 9: Trong ngôn ngữ C#, người lập trình có thể quyết định phủ quyết một phương thức ảo bằng cách khai báo tường minh từ khóa?
Câu hỏi 10: Sự đặc biệt hoá thể hiện trong C# thông qua tính chất nào?
A.Hướng đối tượng B.Theo luồng
Câu hỏi 11: Phương thức thể hiện tính đa hình được khai báo trong lớp cơ sở bằng từ khoá nào sau đây?
Câu hỏi 12: Phát biểu nào sau đây về kế thừa trong C# là SAI?
A.Những ngôn ngữ khác trong NET có thể kế thừa từ các lớp của C# tạo ra
B.Trong C#, có thể kế thừa một lớp được viết từ ngôn ngữ khác của NET
C.Một trong những đặc tính của NET là các lớp có thể kế thừa từ các lớp được viết từ ngôn ngữ khác
D.Trong C#, một lớp chỉ kế thừa các lớp của C# tạo ra
Câu hỏi 13: class ClassA:ClassB
Khai báo nào sau đây là SAI?
A.ClassB c1=new ClassB(); B.ClassA c1=new ClassA();
C.ClassA c1=new ClassB(); D.ClassB c1=new ClassA();
Trang 11TUẦN 6
Câu hỏi 1: Dòng lệnh nào sau đây được dùng để khai báo một ArrayList
A.ArrayList al = new ArrayList(); B.ArrayList[] al = new ArrayList(); C.ArrayList[] al = new ArrayList; D.arraylist al = new arraylist();
Câu hỏi 2: Biểu thức quy tắc trong C# được xây dựng từ lớp nào?
A.Lớp Regex của Java B.Lớp Regex của C++
C.Lớp Regex của Perl D.Lớp Regex của C
Câu hỏi 3: Lệnh nào đúng để tạo mảng kiểu bool có ba phần tử?
A.bool[] b={“true,true,true”}; B.bool[3] b=new bool[3]={true,true,true};
C.bool[] b=new bool[3]; D.bool[3] b={true,true,true};
Câu hỏi 4: Trong C# thì xâu ký tự được tạo bởi lớp nào?
C.StringBuilder D.String và StringBuilder
Câu hỏi 5: int @Main;
int[] Static = new int[3];
@Main = 100 * Static[1]; Console.WriteLine(@Main);
Kết quả khi cho chạy đoạn chương trình trên?
Câu hỏi 6: namespace ConsoleApplication9{
public class A{
public static void Main(){
A objA = new A();
Type t1 = objA.GetType();
Console.WriteLine(t1);
Console.Read();}}}
Kết quả khi cho chạy đoạn chương trình trên?
A.Báo lỗi biên dịch B.ConsoleApplication9.A
Câu hỏi 7: Lớp biểu thức quy tắc của C# nằm trong vùng không gian tên nào?
A.System.Text.RegularExpressions B.System.Text
Câu hỏi 8: Cấu trúc nào đúng cho khai báo chỉ mục?
A.protected int this[int var1] B.public int classname[int index] C.public int this(int var1) D.static int this[int var1]
Trang 12Câu hỏi 9: class Test{
static void Main()
{int[] Array1= {3,2,1};
int i=Array.IndexOf(Array1,3);
Console.WriteLine(i);
Console.Read();}}
Kết quả khi cho chạy đoạn chương trình trên?
Câu hỏi 10: Phát biểu nào về phương thức ToString() là SAI?
A.Có thể thực hiện override
B.Có thể thực hiện gọi ngầm định trong một số trường hợp
C.Làm tham số trong phương thức Write() thì nó được gọi ngầm định
D.Luôn luôn phải được gọi tường minh
Câu hỏi 11: Dung lượng ArrayList thay đổi như thế nào khi thành phần đưa vào lớn hơn dung lượng thực tế của nó?
A.Dung lượng tăng gấp 3 B.Dung lượng không thay đổi
Câu hỏi 12: Khai báo đối tượng như sau
Object x = new Object();
Object y = new Object();
Trong các lệnh sau lệnh nào SAI?
Câu hỏi 13 : Trong ngôn ngữ C#, đâu là kiểu dữ liệu hợp lệ?
A.ToString B.String C.string D.String và string
Câu hỏi 14: Cấu trúc dữ liệu Stack nằm trong vùng không gian tên nào?
Câu hỏi 15: Trong C# thì giao diện định nghĩa các phương thức điều khiển tập hợp là gì?
Trang 13TUẦN 7
Câu hỏi 1 : Tham số thứ nhất của trình xử lý sự kiện phải là gì?
A.Đối tượng phát sinh sự kiện
B.Tham số kiểu float
C.Tham số kiểu int
D.Đối tượng thuộc lớp dẫn xuất từ EventArgs
Câu hỏi 2 : Khi thực thi một uỷ nhiệm (delegate) cần quan tâm tới điều gì sau đây?
C.Thuộc tính và kiểu trả về D.Thuộc tính
Câu hỏi 3 : Lớp dẫn xuất từ EventArgs chứa những thông tin về?
Câu hỏi 4: Có delegate xử lý sự kiện như sau: public delegate void HandlerName(object obj, EventArgs arg);
Trong các khai báo sự kiện sau, khai báo nào đúng?
A.public event HandlerName OnEventName;
B.public event OnEventName HandlerName;
C.event public HandlerName OnEventName;
D.public event HandlerName OnEventName();
Câu hỏi 5 : Trong các khai báo delegate “tinhtb” sau, khai báo nào đúng cho phép tính hai số có kiểu trả về là kiểu số nguyên?
A.delegate public int tinhtb(int x,int y); B.int public delegate tinhtb(int x,int y); C.public int delegate tinhtb(int x,int y); D.public delegate int tinhtb(int x,int y);
Câu hỏi 6: Một multicast delegate KHÔNG cho phép nhận toán tử nào sau đây?
Câu hỏi 7 : Một multicast delegate cho phép nhận toán tử nào sau đây?
Câu hỏi 8: Một delegate có thể gọi bao nhiêu phương thức một lúc?
Câu hỏi 9: Tham số thứ hai của trình xử lý sự kiện phải là gì?
A.Đối tượng thuộc lớp dẫn xuất từ EventArgs
B.Tham số kiểu int
C.Đối tượng phát sinh sự kiện
D.Tham số kiểu float
Trang 14Câu hỏi 10: Từ khoá để khai báo sự kiện trong C# là gì?
Câu hỏi 11 : 1 delegate void SimpleDelegate();
2 class Test{
3 static void F() {
4 System.Console.WriteLine(“Test.F”);
5 }
6 static void Main() {
7 SimpleDelegate d = new SimpleDelegate(F);
8 d();
9 }
10 }
Kết quả khi cho biên dịch và chạy đoạn chương trình trên?
A.Biên dịch và chạy thành công kết quả: Test.F
B.Lỗi dòng 2
C.Báo lỗi dòng 8: Không có tham số
D.Lỗi dòng 7