Show
Với 10 câu hỏi trắc nghiệm Tin học 11 Bài 11: Kiểu mảng có đáp án chi tiết đầy đủ các mức độ giúp học sinh ôn luyện trắc nghiệm Tin 11 đạt kết quả cao. Quảng cáo Câu 1: Phát biểu nào dưới đây về kiểu mảng một chiều là phù hợp? A. Là một tập hợp các số nguyên B. Độ dài tối đa của mảng là 255 C. Là một dãy hữu hạn các phần tử cùng kiểu D. Mảng không thể chứa kí tự
Trả lời: Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử của nó có một chỉ số. Để mô tả ta cần xác định kiểu của các phần tử và cách đánh số các phần tử của nó. Đáp án: C Câu 2: Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần: A. khai báo một hằng số là số phần tử của mảng B. khai báo chỉ số bắt đầu và kết thúc của mảng C. khai báo chỉ số kết thúc của mảng D. không cần khai báo gì, hệ thống sẽ tự xác định
Trả lời: Để khai báo số phần tử của mảng trong PASCAL ( kiểu chỉ số), người lập trình cần khai báo chỉ số bắt đầu và kết thúc của mảng. Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và cuối (n1 ≤ n2). Đáp án: B Quảng cáo Câu 3: Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất? A. Dùng để truy cập đến một phần tử bất kì trong mảng B. Dùng để quản lí kích thước của mảng C. Dùng trong vòng lặp với mảng D. Dùng trong vòng lặp với mảng để quản lí kích thước của mảng
Trả lời: Chỉ số của mảng dùng để tham chiếu (truy cập) đến một phần tử bất kì trong mảng. Cú pháp: <Tên mảng>[chỉ số]; Đáp án: A Câu 4: Phát biểu nào sau đây về mảng là không chính xác? A. Chỉ số của mảng không nhất thiết bắt đầu từ 1 B. Có thể xây dựng mảng nhiều chiều C. Xâu kí tự cũng có thể xem như là một loại mảng D. Độ dài tối đa của mảng là 255
Trả lời: Chỉ số của mảng không nhất thiết bắt đầu từ 1 tùy theo người lập trình. Xâu kí tự cũng có thể xem như mảng một chiều, mỗi phần tử là một kí tự. Trong lập trình có thể xây dựng mảng nhiều chiều. Và không có giới hạn cụ thể về độ dài của mảng. Đáp án: D Câu 5: Thế nào là khai báo biến mảng gián tiếp? A. Khai báo mảng của các bản ghi B. Khai báo mảng xâu kí tự C. Khai báo mảng hai chiều D. Khai báo thông qua kiểu mảng đã có
Trả lời: Khai báo biến mảng gián tiếp là khai báo thông qua kiểu mảng đã có. Cấu trúc khai báo mảng gián tiếp: Type < tên kiểu mảng> = array [kiểu chỉ số] of <kiểu phần tử>; Var <tên biến mảng> : < tên kiểu mảng>; Đáp án:D Quảng cáo Câu 6: Phương án nào dưới đây là khai báo mảng hợp lệ? A. Var mang : ARRAY[0..10] OF INTEGER; B. Var mang : ARRAY[0..10] : INTEGER; C. Var mang : INTEGER OF ARRAY[0..10]; D. Var mang : ARRAY(0..10) : INTEGER;
Trả lời: Cấu trúc khai báo mảng trực tiếp: Var <tên biến mảng> : array [kiểu chỉ số] of <kiểu phần tử>; Trong đó: + Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và cuối (n1 ≤ n2). + Kiểu phần tử là kiểu của các phần tử trong mảng. Đáp án: A Câu 7: Cho khai báo mảng và đoạn chương trình như sau: Var a : array[0..50] of real ; k := 0 ; for i := 1 to 50 do if a[i] > a[k] then k := i ; Đoạn chương trình trên thực hiện công việc gì dưới đây? A. Tìm phần tử nhỏ nhất trong mảng; B. Tìm phần tử lớn nhất trong mảng; C. Tìm chỉ số của phần tử lớn nhất trong mảng D. Tìm chỉ số của phần tử nhỏ nhất trong mảng
Trả lời: ý nghĩa của câu lệnh Var a : array[0..50] of real ; {khai báo mảng a} k := 0 ; {gán chỉ số 0 cho k} for i := 1 to 50 do { vòng lặp chạy từ 1 đến 50} if a[i] > a[k] then k := i ; { kiểm tra từ phần tử thứ 2 đến phần tử 50 so sánh với phần tử đầu và đưa ra chỉ số lớn nhât} Đáp án:C Câu 8: Cho khai báo mảng như sau: Var a : array[0..10] of integer ; Phương án nào dưới đây chỉ phần tử thứ 10 của mảng? A. a[10]; B. a(10); C. a[9]; D. a(9);
Trả lời: Tham chiếu (truy cập) đến một phần tử bất kì trong mảng. Cú pháp: Tên mảng[chỉ số]; Đáp án: A Quảng cáo Câu 9: Khai báo mảng hai chiều nào sau đây là sai? A. var m : array[1..10] of array[0..9] of integer; B. var m : array[1..20,1..40] of real; C. var m : array[1..9;1..9] of integer; D. var m : array[0..10,0..10] of char;
Trả lời: Khai báo mảng hai chiều: + Cách 1: trực tiếp Var <tên biến mảng> : array [kiểu chỉ số hàng, kiểu chỉ số cột] of < kiểu phần tử>; + Cách 2: gián tiếp Type <tên kiểu mảng> : array [kiểu chỉ số hàng, kiểu chỉ số cột] of < kiểu phần tử>; Var <tên biến mảng>: < tên kiểu mảng>; Đáp án: B Câu 10: Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận tiện cho: A. chèn thêm phần tử B. truy cập đến phần tử bất kì C. xóa một phần tử D. chèn thêm phần tử và xóa phần tử
Trả lời: Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận tiện cho truy cập đến phần tử bất kì. Theo cú pháp Tên mảng[chỉ số]; Đáp án: B Xem thêm các bài Câu hỏi trắc nghiệm Tin học 11 chọn lọc, có đáp án khác:
Giới thiệu kênh Youtube VietJack
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Nhóm học tập facebook miễn phí cho teen 2k5: fb.com/groups/hoctap2k5/ Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Nếu thấy hay, hãy động viên và chia sẻ nhé! Các bình luận không phù hợp với nội quy bình luận trang web sẽ bị cấm bình luận vĩnh viễn.
Ở các bài học trước, chúng ta đã cùng nhau tìm hiểu về TỔNG QUAN VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG. Hôm nay chúng ta sẽ cùng tìm hiểu về Class trong C#. Nội dungĐể đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về các phần: Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề:
Class trong C# là gì?Class trong C# chính là cách thể hiện khái niệm về lớp trong lập trình hướng đối tượng. Một class trong C# có các thành phần như:
Class trong C# thực chất là một kiểu dữ liệu mới do người dùng tự định nghĩa. Khai báo, khởi tạo và sử dụng class trong C#Cú pháp:
Trong đó:
Ví dụ: class Animal { public double Weight; public double Height; public void Run() { Console.WriteLine(" Animal is running. . ."); } }
Khởi tạo:Bạn có thể khởi tạo 1 đối tượng thuộc lớp thông qua toán tử new. Ví dụ: Animal Dog = new Animal();Class là kiểu dữ liệu tham chiếu vì thế đối tượng dữ liệu thực sự được lưu trên heap. Sử dụng:Về cơ bản thì class được sử dụng tương tự như struct. Các bạn có thể tham khảo ví dụ ở bài STRUCT TRONG C#. Để gọi đến các thuộc tính bên trong lớp:
Để gọi đến các phương thức bên trong lớp:
Ở đây mình muốn tập trung vào cách bạn khai báo và sử dụng phương thức bên trong lớp như thế nào. Xét bài toán đơn giản sau: Khởi tạo các đối tượng thuộc lớp Animal lần lượt gọi phương thức in ra chiều cao và cân nặng của các loài động vật. class Animal { public double Weight; public double Height; public void Info() { /* Các phương thức bên trong lớp có thể gọi đến các thành phần khác (bao gồm thuộc tính và phương thức) trong lớp đó. Giá trị của các thuộc tính này có thể được khởi tạo đâu đó trong lớp hoặc từ bên ngoài truyền vào. */ Console.WriteLine(" Height: " + Height + " Weight: " + Weight); } }Trong hàm main: /* Khởi tạo 2 đối tượng thuộc lớp Animal là: + Dog có chiều cao 50cm và cân nặng 2kg. + Cat có chiều cao 30cm và cân nặng 1kg. */ Animal Dog = new Animal(); Dog.Weight = 2; // gán giá trị cho các thuộc tính của đối tượng Dog.Height = 50; Animal Cat = new Animal(); Cat.Weight = 1; Cat.Height = 30; Dog.Info(); // gọi phương thức của đối tượng Cat.Info();Kết quả khi chạy đoạn code trên:
Phương thức khởi tạo, phương thức huỷ bỏTrong thế giới thực khi 1 sự vật nào đó được sinh ra thì nó sẽ mang sẵn trong mình những đặc điểm nhất định và mọi sự vật cùng loài với nó đều như vậy. Vì lập trình hướng đối tượng là phương pháp giúp ánh xạ thế giới thực vào thế giới lập trình một cách dễ dàng nên từ đó đã xuất hiện 2 khái niệm phương thức khởi tạo và phương thức huỷ bỏ để thể hiện ý trên. Phương thức khởi tạoPhương thức khởi tạo (Constructor) là những phương thức đặc biệt được gọi đến ngay khi khởi tạo 1 đối tượng nào đó. Đặc điểm
Có 2 loại phương thức khởi tạo:
Ví dụTa có khai báo lớp như sau: class Cat { public double Weight; public double Height; /* Constructor không có tham số */ public Cat() { Weight = 800; Height = 10; } /* Constructor có tham số */ public Cat(int w, int h) { Weight = w; Height = h; } public void Info() { Console.WriteLine(" Height: " + Height + " Weight: " + Weight); } }Trong hàm main: /* Để ý khi bạn new Cat bạn không truyền tham số vào thì constructor mặc định (constructor không tham số) sẽ tự động được gọi để khởi tạo các giá trị mặc định cho các thuộc tính của đối tượng BlackCat. */ Cat BlackCat = new Cat(); BlackCat.Info(); // In ra thông tin Weight, Height có thực sự được khởi tạo giá trị chưa. /* Lần này ta khởi tạo đối tượng và có truyền 2 tham số như vậy constructor có tham số sẽ được gọi. Như vậy các thuộc tính Weight, Height sẽ không mang giá trị mặc định nữa mà sẽ được gán theo giá trị mà người dùng truyền vào. */ Cat WhiteCat = new Cat(1200, 30); WhiteCat.Info(); // In ra thông tin Weight, Height để xem có theo mong muốn chưa.Kết quả khi chạy đoạn code trên: Lưu ýKhi 1 đối tượng được khởi tạo chỉ có 1 constructor phù hợp nhất được gọi cho dù trong lớp có nhiều constructor. Qua ví dụ bạn có thể thấy cách ta truyền tham số khi khởi tạo đối tượng sẽ gian tiếp ám chỉ constructor nào được gọi vì thế bạn cần truyền đúng và truyền đủ các tham số để C# có thể gọi đúng constructor như ý muốn. Các tham số của constructor thường sẽ mang các giá trị tương ứng cho các thuộc tính bên trong lớp vì thế bạn nên:
Phương thức huỷ bỏPhương thức huỷ bỏ (destructor) là phương thức đặc biệt được gọi đến trước khi 1 đối tượng bị thu hồi. Đặc điểm
Vì bộ GC của C# có cơ chế tự động phát hiện đối tượng không còn được sử dụng nữa và thực hiện thu hồi vùng nhớ của nó nên bạn không cần phải viết tường minh việc huỷ vùng nhớ của nó. Việc bạn có thể làm viết những thứ bạn muốn làm khi đối tượng bị huỷ vào đây thôi! So sánh giữa Struct và ClassNhìn chung struct và class có khá nhiều điểm chung nhưng class có phần mạnh hơn. Hãy còn xem tại sao class lại mạnh hơn và mạnh hơn ở điểm nào nhé! Ngoài ra nếu 1 class là tham số truyền vào thì mọi thay đổi bên trong hàm sẽ tự động cập nhật ra bên ngoài cho dù không có từ khoá out hoặc ref (xem lại bài TỪ KHÓA REF VÀ OUT) còn struct thì không. Kết luậnNội dung bài này giúp các bạn nắm được:
Bài sau chúng ta sẽ tìm hiểu về CÁC LOẠI PHẠM VI TRUY CẬP TRONG C#. Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”. Thảo luậnNếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng. |