1. Trang chủ
  2. » Công Nghệ Thông Tin

Trắc nghiệm Lập trình có cấu trúc C++ hay có đáp án

52 2,6K 11

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 95,21 KB

Nội dung

Trắc nghiệm Lập trình có cấu trúc C++ hay có đáp án là bộ tài liệu hay và rất hữu ích cho các bạn sinh viên và quý bạn đọc quan tâm. Đây là tài liệu hay trong Bộ tài liệu sưu tập gồm nhiều Bài tập THCS, THPT, luyện thi THPT Quốc gia, Giáo án, Luận văn, Khoá luận, Tiểu luận…và nhiều Giáo trình Đại học, cao đẳng của nhiều lĩnh vực: Toán, Lý, Hoá, Sinh…. Đây là nguồn tài liệu quý giá đầy đủ và rất cần thiết đối với các bạn sinh viên, học sinh, quý phụ huynh, quý đồng nghiệp và các giáo sinh tham khảo học tập. Xuất phát từ quá trình tìm tòi, trao đổi tài liệu, chúng tôi nhận thấy rằng để có được tài liệu mình cần và đủ là một điều không dễ, tốn nhiều thời gian, vì vậy, với mong muốn giúp bạn, giúp mình tôi tổng hợp và chuyển tải lên để quý vị tham khảo. Qua đây cũng gởi lời cảm ơn đến tác giả các bài viết liên quan đã tạo điều kiện cho chúng tôi có bộ sưu tập này. Trên tinh thần tôn trọng tác giả, chúng tôi vẫn giữ nguyên bản gốc. Trân trọng. ĐỊA CHỈ DANH MỤC TẠI LIỆU CẦN THAM KHẢO http:123doc.vntrangcanhan348169nguyenductrung.htm hoặc Đường dẫn: google > 123doc > Nguyễn Đức Trung > Tất cả (chọn mục Thành viên)

BỘ CÂU HỎI TRẮC NGHIỆM MÔN: LẬP TRÌNH CẤU TRÚC (Trình Test: Turbo C++ 3.0) ĐÁP ÁN Câu 1: Ngôn ngữ lập trình C Dennish phát triển dựa ngôn ngữ lập trình nào: a) Ngôn ngữ B b) Ngôn ngữ BCPL c) Ngôn ngữ DEC PDP d) Ngôn ngữ B BCPL Câu 2: Ngôn ngữ lập trình Dennish đưa vào năm nào? a) 1967 b) 1972 c) 1970 d) 1976 Câu 3: Ngôn ngữ lập trình ngôn ngữ lập trình cấu trúc? a) Ngôn ngữ Assembler b) Ngôn ngữ C Pascal c) Ngôn ngữ Cobol d) a, b c Câu 4:Những tên biến viết theo quy tắc đặt tên ngôn ngữ lập trình C? a) diem toan b) 3diemtoan c) _diemtoan d) -diemtoan Câu 5: Một biến gọi biến toàn cục nếu: a) Nó khai báo tất hàm, ngoại trừ hàm main() b) Nó khai báo tất hàm kể hàm main() c) Nó khai báo bên hàm main() d) Nó khai báo bên hàm main() Câu 6: Một biến gọi biến địa phương nếu: a) Nó khai báo bên hàm thủ tục, kể hàm main() b) Nó đươc khai báo bên hàm ngoại trừ hàm main() c) Nó khai báo bên hàm main() d) Nó khai báo bên hàm kể hàm main() Câu 7: Nếu x biến toàn cục x trỏ thì: a) Miền nhớ dành cho x thay đổi trình thực chương trình b) Miền nhớ dành cho x thay đổi thao tác với x bên hàm main() c) Miền nhớ dành cho x thay đổi thao tác với x tất hàm, kể hàm main() d) Miền nhớ giành cho x không bị thay đổi trình thực chương trình Câu 8: Kiểu liệu coi kiểu liệu ngôn ngữ lập trình C: a) Kiểu double b) Kiểu trỏ c) Kiểu hợp d) Kiểu mảng Câu 9: Giả sử a, b hai số thực Biểu thức viết không theo cú pháp ngôn ngữ lập trình C: a) (a+=b) b) (a*=b) c) (a=b) d) (a&=b) Câu 10: Giả sử a b hai số thực Biểu thức không phép theo cú pháp ngôn ngữ lập trình C: a) (a b) b) (a-=b) c) (a>>=b) d) (a*=b) Câu 11:Xâu định dạng dùng để in số nguyên hệ 16: a) “%d” b) “%x” c) “%i” d) “%u” Câu 12: Xâu định dạng dùng để in số nguyên hệ 8: a) “%ld” b) “%x” c) “%o” d) “%u” Câu 13:Xâu định dạng dùng để in kí tự: a) b) c) d) “%f” “%x” “%s” “%c” Câu 14: Xâu định dạng dùng để in xâu kí tự: a) “%f” b) “%x” c) “%s” d) “%c” Câu 15: Xâu định dạng dùng để in số nguyên dài: a) “%ld” b) “%x” c) “%d” d) “%o” Câu 16:Xâu định dạng dùng để in địa biến: a) “%u” b) “%e” c) “%o” d) “%p” Câu 17: Xâu định dạng dùng để in số nguyên: a) “%u” b) “%e” c) “%d” d) “%p” Câu 18:Xâu định dạng dùng để in số thực độ xác kép: a) “%u” b) “%e” c) “%o” d) “%p” Câu 19:Xâu định dạng sau dùng để in số thực độ xác đơn: a) “%u” b) “%e” c) “%f” d) “%o” Câu 20: Kiểu liệu int( kiểu số nguyên) xử lí số nguyên nằm khoảng nào: a) b) c) d) 0…255 -32768…32767 -128…127 0…65535 Câu 20:Cho a=3, b=2 c biến nguyên Biểu thức sau viết sai cú pháp ngôn ngữ lập trình C: a) (c=a & b) b) (c=a && b) c) (c= a/b) d) (c= a=b) d) (a*=b) Câu 22 :Cho a=3, b=2 Biến c=(aSV4->…); Đổi (…->SV1->SV2->…->SV3->SV4->…); Đổi SV2 cho SV4: SV2 cho SV4: { P=SV1->tiep; Cách 1: tương tự khai báo 1; SV1->tiep = SV3->tiep; SV3->tiep = P; Cách 2: /* -*/ { P=P->tiep; P = SV2->thongtin; SV3->tiep->tiep = SV1->tiep->tiep; SV2->thongtin = SV4->thongtin; SV1->tiep-tiep = P; SV4->thongtin = P; }; }; { While(P != NULL) {visit(P->thongtin); P = P->tiep;}; }; Câu 179: Cho đoạn chương trình: char S[] = “Helen”; char *p = S; char c = *(p+3); Giá trị c là: a) ‘H’ b) ‘e’ c) ‘l’ d) ‘n’ Câu 180: Chọn câu đúng: a) “struct” kiểu liệu người dùng định nghĩa bao gồm nhiều thành phần kiểu khác b) “struct” kết hợp nhiều thành phần thể kiểu khác c) Cả ý đểu d) Cả hai ý sai Câu 181:Toán tử sau truy xuất thành phần trỏ cấu trúc: a) “.”(Toán tử chấm) b) “->”(Toán tử mũi tên) c) Cả hai d) Cả hai sai Câu 182:Xem đoạn code sau: typedef struct ST{ int d1,d2,d3;}; ST v= {5, 6, 7}; ST* p=&v; p.d1++; 39 Giá trị biến v là: a) {6, 6, 7}; b) {5, 6, 7}; c) Nhóm trị khác d) Đoạn code gây lỗi ((*p).d1++;)/ Câu 183: Xem đoạn code sau: typedef struct STUDENT{ int d1, d2, d3;}; STUDENT v= {2, 3, 4}; v.d1++; Giá trị trung bình trường biến v gì: a) 3.0 b) 4.0 c) Giá trị khác d) lỗi đoạn code Câu 184: Hãy khai báo cấu trúc mô tả sinh viên, thông tin sinh viên bao gồm: tên, điểm môn học Khai báo sau đúng: a) structure STUDENT {char Name[]; int s1,s2,s3;}; b) struct STUDENT {char Name[]; int s1, s2, s3;}; c) typedef struct STUDENT {char Name[]; float s1,s2,s3;}; d) typedef STUDENT { char Name[]; int s1, s2,s3;}; Câu 185:Biến trỏ chứa: a) Địa vùng nhớ biến khác b) Giá trị biến khác c) Cả a b d) Cả a b sai Câu 186: Kết chương trình sau gì: #include void main() { struct diem; { float k; float a; float l; }; struct diem m; m.k = 8; m.a = 6.5; 40 m.l = 6; printf(“%0.1f%0.1f%0.1f”, m.k, m.a, m.l); }; a) b) c) d) “8.06.56.0” “86.56” “8.0000006.5000006.000000” “86.5000006” Câu 187:Kiểu liệu chứa nhiều thành phần liệu kiểu liệu khác thành nhóm nhất: a) Mảng b) Con trỏ c) Tập tin d) Cấu trúc(struct) Câu 188: Chọn kết hợp lí cho chương trình sau: void main() { struct sv { float d; char ht[10]; }; struct sv m, *p; p=&m; printf(“%p”,&m); printf(“%p”,p); }; a) “FFE6FFE6” b) “FFE6FFE7” c) “FFE66EFF” d) Kết khác (“FFE4FFE4”)/ Câu 189: Chọn kết cho chương trình sau: #include void main() { clrscr(); struct sv { float d; char ht[10]; 41 }; struct sv m, *p; p=&m; (*p).d=p->d=10; strcpy(m.ht,”NguyenVanTuan”); printf(“%0.1f”,m.d); printf(“%s”,m.ht); }; a) b) c) d) “10.000000NguyenVanTuan” “10.0NguyenVanTuan” Kết khác (“NguyenVanTuan”)// ht[10] – Kết máy Chương trình bị lỗi Câu 190: Chọn kết cho chương trình sau: #include #include void main() { struct S1 { float d; float d1; float d2; }; struct S1 m={12, 1}; printf(“%0.1f%0.1f%0.1f”,m.d, m.d1, m.d2); }; a) “12.01.00.0” b) “12.0000001.0000000.000000” c) Kết khác d) Chương trình bị lỗi Câu 191: Chương trình sau cho kết gì: #include void main() { int *px, *py; int a[]={1,2,3,4,5,6}; px=a; py=&a[5]; printf(“%d”,++px-py); }; 42 a) -4 b) c) d) Không kết Câu 192: cách khai báo biến cấu trúc: a) b) (Có đặt tên cấu trúc không đặt tên cấu trúc)/ c) d) Câu 193:Khi sử dụng từ khóa typedef trước định nghĩa cấu trúc thì: a) Khai báo biến cho cấu trúc ta không cần sử dụng từ khóa “struct” b) Khai báo biến cho loại cấu trúc ta cần sử dụng từ khóa “struct” c) Không thể khai báo thêm biến cấu trúc - Lưu ý: Test Turbo C++ 3.0 không thấy khác biệt Câu 194:Cho khai báo sau: struct Date { unsigned int ngay:5; unsigned int thang; unsigned int nam: 11; } sn1; Số lượng bít sử dụng biến cấu trúc bao nhiêu: a) 16 b) 20 c) 32 d) 48 Câu 195:Chọn đáp án sử dụng trường kiểu bit: a) Độ dài trường không vượt 16 bít b) Áp dụng cho trường kiểu số nguyên số thực c) Cho phép lấy địa trường kiểu nhóm bít d) Xây dựng mảng kiểu nhóm bít Câu 196: Đâu định nghĩa cấu trúc tự trỏ: a) Là cấu trúc trường trỏ chứa địa biến cấu trúc b) Là dạng cấu trúc trường trỏ chứa địa biến cấu trúc dạng liệu giống c) Là dạng cấu trúc trường kiểu liệu giống d) Tất ý 43 Câu 197: Trong khai báo sau, khai báo không đúng: a) struct Date{int ngay, thang, nam;}; b) struct { int ngay, thang, nam;} D1,D2; c) typedef struct { int ngay, thang, nam;} Date; d) struct Date { long int ngay:7; longint thang:6; long int nam:5; }; Câu 198: Đâu phát biểu dúng danh sach moc nối: a) Độ dài danh sách thay đổi b) Các phần tử lưu trữ rải rác nhớ RAM (?) c) Để cài đặt danh sách móc nối phải sử dụng đến cấu trúc tự trỏ d) Chỉ xóa phần tử danh sách Câu 199: Phát biểu không onion: a) Tất trường dùng chung vùng nhớ, kích thước union kích thước trường lớn b) Các trường nằm rải rác nhớ RAM kích thước trường tổng kích thước trường c) thể khai báo biến union nhiều kiểu khác d) Tại thời điểm ta chứa liệu tất thành phần biến union Câu 200: Cho đoạn chương trình: struct ng { unsigned ngay; unsigned thang; unsigned nam; }; struct diachi { int sonha; char tenpho[20]; }; union u { struct ng date; 44 struct diachi address; } diachi_ngaysinh; Kích thước biến u byte: a) 20 b) 22 c) 28 d) Đáp án khác Câu 201: Cho danh sách móc nối với phần tử danh sách kiểu S1 định nghĩa sau: struct S1{ int info; struct S1 * next;} *head; Biết trỏ “head” lưu địa phần tử danh sách Cho biết mục đích câu lệnh sau: { head->next->next->info=111;}; a) Câu lệnh bị lỗi b) Giá trị “info” phần tử thứ bị thay đổi c) Giá trị “info” phần tử thứ bị thay đổi d) Giá trị “info” phần tử bị thay đổi Câu 202: Cho danh sách móc nối với phần tử danh sách kiểu S1 định nghĩa sau: struct S1{ int info; struct S1 * next;} *head; Biết trỏ “head” lưu địa phần tử danh sách Cho biết mục đích câu lệnh sau: {(head->next)=(head->next)->next;}; a) Loại bỏ phần tử thứ khỏi danh sách b) Loại bỏ phần tử thứ khỏi danh sách c) Loại bỏ phần tử thứ khỏi danh sách d) Câu lệnh bị lỗi Câu 203:Một danh sách tất thao tác chèn thực đầu, thao tác xóa thực đầu danh sách gọi là: a) Stack b) Queue; c) Cây nhị phân d) Cả đáp án Câu 204: Đâu phát biểu danh sách móc nối: a) Chỉ thêm phần tử vào đầu danh sách b) Không thể thêm phần tử vào cuối danh sách c) thể thêm phần tử vào vị trí danh sách d) Không câu 45 Câu 205: Đâu phát biểu danh sach: a) Chỉ xóa phần tử danh sách b) Chỉ xóa phần tử cuối danh sách c) thể xóa phần tử vị trí danh sách d) Tất sai Câu 206: Hàm dùng để cấp phát nhớ động cho kiểu nhớ động lập trình viên tự định nghĩa (union, struct): a) calloc(); b) malloc(); c) realloc(); d) Cả đáp án Câu 207: Cho danh sách móc nối với phần tử danh sách kiểu S1 định nghĩa sau: struct S1{int info; struct S1 *next;} *head; Biết trỏ “*head” lưu địa phần tử danh sách Nhóm câu lệnh sau thêm phần tử vào đầu danh sách: a) p->next=head; head=p; b) p->next=head; head->p; head=p->next; c) head->next=p; p=head; d) Không câu Câu 208:Cho danh sách móc nối với phần tử danh sách kiểu S1 định nghĩa sau: struct S1{int info; struct S1 *next;} *head; Biết trỏ “*head” lưu địa phần tử danh sách Nhóm câu lệnh sau xóa phần tử khỏi danh sách: a) head->next=head; b) head=head->next; c) head=head->next->next; d) 2,3 Câu 209:Đâu phát biểu sai nói danh sách liên kết: a) Mỗi phần tử danh sách liên kết phải trường dùng để lưu địa b) Sử dụng danh sách liên kết thường tiết kiệm nhớ dùng mảng c) Sử dụng danh sách liên kết thường tốn nhớ dùng mảng d) Tất đáp án sai Câu 210: Câu không nói đến ưu điểm việc sử dụng cấu trúc: 46 a) Bạn xử lí cách hỗn hợp kiểu liệu đơn vị b) Bạn lưu xâu kí tự đọ dài khác vào biến cấu trúc c) Dữ liệu lưu trữ module dạng phân cấp d) Cần nhớ cho liệu Câu 211: Làm biểu diễn phần tử “hoten” SV1: struct SV { char hoten[20]; } SV1, *p; p=&SV1; a) SV1.hoten; b) p->hoten; c) &hoten; d) Câu 212: Đâu phát biểu sai: a) thể truyền tham số biến struct cho hàm b) thể truyền tham số biến trỏ cho hàm c) thể truyền tham số biến trỏ struct cho hàm d) Không thể truyền tham số phần tử struct cho hàm Câu 213: Cho mảng A gồm phần tử kiểu struct, phát biểu truy cập đến trường phần tử: a) A[chỉ số].tên_trường; b) A.tên_trường; c) &A.tên_trường; d) &A[chỉ số].tên_trường; Câu 214: Không gian nhớ dùng để lưu trữ node danh sách liên kết kép: a) Lưu trữ rởi rác nhớ b) Luôn lưu trữ liên tục nhớ c) Lưu trữ theo kiểu phân trang d) Lưu trữ theo kiểu phân đoạn Câu 215: Khi thực việc thêm node x vào nhị phân tìm kiếm ta cần: a) Tìm vị trí thích hợp cho nhánh bên phải b) Tìm vị trí thích hợp cho x toàn c) Tìm vị trí thích hợp cho nhánh bên trái d) Không ý Câu 216:Dấu hiệu cho biết node p danh sách liên kết đơn node cuối bên phải: 47 a) (p->info!=NULL); b) (p->info==NULL); c) (p->next!=NULL); d) (p->next==NULL); Câu 217: Khi loại bỏ node x nhị phân tìm kiếm ta cần kiểm tra xem: a) x phải node trái nhị phân tìm kiếm hay không b) x phải node phải nhị phân tìm kiếm hay không c) Sự tồn x d) Cả phương án a, b, c sai Câu 218: chế cài đặt cho hàng đợi: a) FIFO b) Round Robin c) Tuần tự d) FILO Câu 219: Dấu hiệu cho biết danh sách liên kết đơn rỗng: a) (p->right==NULL); b) (p->info==NULL); c) (p==NULL); d) (p->next==NULL); Câu 220: Dấu hiệu cho biết node phải p bên phải: a) (p->right!=NULL); b) (p->left!=NULL); c) (p->right!=NULL)&&(p->right->right==NULL); d) (p->right!=NULL)&&(p->right->right!=NULL); Câu 221: chế cài đặt cho Stack: a) FILO b) Tuần tự c) Round Robin d) FIFO Câu 222: Một nhị phân gọi nếu: a) node gốc tất node trung gian node b) Giá trị khóa node gốc lớn giá trị khóa nhánh bên phải c) Giá trị khóa node gốc lớn giá trị khóa nhánh bên trái d) Node gốc node trung gian node node mức giống 48 Câu 223: Khi thực phép thêm node x vào bên phải node p nhị phân thông thường, ta cần: a) Kiểm tra tồn p bên phải p; b) Kiểm tra tồn node bên phải p c) Kiểm tra tồn node p d) Không cần thực điểu kiện nêu câu hỏi Câu 224: Cho đoạn chương trình sau: int a, *p, *q; float *t; a=5; p=&a; p=q; t=p; printf(“%d%f”,a,t); Kết quả: a) 5-12 b) c) Chương trình lỗi (Can’t convert int* to float*)/ d) Kết khác Câu 225:Số màu biểu diễn chế độ đồ họa yếu tố quy định: a) Số bít tương ứng với pixel b) Độ phân giải hình c) Do kích thước hình d) Không phải yếu tố Câu 226: Trong chế độ 256 màu, số bít cho pixel là: a) b) c) d) Câu 227: Các file tối thiểu cần cho việc vẽ đồ họa: a) GRAPH.H, *.BGI, *.CHR b) GRAPH.H, *.TXT, *.DOC c) *.BGI, *.TXT, *.DOC d) *.CHR, *.TXT, *.DOC Câu 228: Một chương trình đồ họa gồm đoạn: a) b) (Khởi tạo, detect, link)/ 49 c) d) Câu 229: Trong chế độ graphic, gốc tọa độ là: a) Góc bên trái b) Góc bên phải c) Góc bên trái d) Góc bên phải Câu 230: Ba màu máy tính là: a) RED, GREEN, BLUE b) RED, YELLOW, BLUE c) BLUE, YELLOW, BLUE d) GREEN, RED, PING Câu 231: Hàm getpixel(int x, int y) dùng để làm gì: a) Vẽ điểm tọa độ (x,y); b) Lấy giá trị màu điểm tọa độ (x,y); c) Vẽ điểm vị trí trỏ d) Cả phương án sai Câu 232:Sau hàm setwiewport(int x1, int y1, int x2, int y2, int clip); thực tọa độ (0,0) tất hàm vẽ là: a) Góc phải hình b) Góc phải viewport c) Góc trái hình d) Góc trái viewport Câu 233: Trong chế độ đồ họa, hàm thường dùng để nội dung xâu: a) printf(); b) outtext(char far * textstring); c) outtextxy(int x, int y, char far *textstring); d) putchar(); Câu 234: Trong bước khởi tạo đồ họa ta cần: a) Xác định vi mạch b) Chọn chế độ đồ họa c) Cả phương án sai d) Cả phương án Câu 235: Khẳng định sai: 50 a) Hàm moveto(int x, int y) di chuyển vị trí hình đồ họa tới điểm tọa độ (x,y); b) lineto(int x, int y) hàm vẽ đường thẳng từ vị trí trỏ đồ họa tới điểm tọa độ (x,y) c) linerel(int x, int y) vẽ đường thẳng tử gốc tọa độ tới điểm tọa độ (x,y); d) line(int x1, int y1, int x2, int y2) vẽ đường thẳng nối liền điểm tọa độ (x1,y1) (x2,y2); Câu 236:Hàm putpixel(int x, int y) dùng để làm gì: a) Vẽ điểm tọa độ (x,y); b) Lấy màu điểm tọa độ (x,y); c) Vẽ điểm vị trí trỏ d) Cả phương án sai Câu 237:Lệnh dùng để đóng chế độ đồ họa: a) getch(); b) closegraph(); c) Cả phương án sai d) Cả phương án đúng; Câu 238: Hàm closegraph() dùng để làm gì: a) Sẽ giải phóng hết vùng nhớ giành cho đồ họa b) Dùng để dừng hình c) Dùng để xóa hình d) Cả phương án sai Câu 239: Phát biểu nói hàm: rectangle(int x1, int y1, int x2, int y2) bar(int x1, int y1, int x2, int y2): a) Cả hàm vẽ hình chữ nhật b) Hàm thứ vẽ đường viền hình chữ nhật, không tô màu bên hàm thứ tô màu bên c) Hàm thứ vẽ đường viền hình chữ nhật, không tô màu bên hàm thứ tô màu bên d) Cả hai hàm vẽ hình chữ nhật tô màu bên Câu 240: Chế độ đồ họa bao gồm vấn đề: a) Bao nhiêu màu b) Gồm màu c) Độ phân giải hình d) Cả phương án Câu 241: Hàm setcolor(int color) làm nhiệm vụ gì: 51 a) Thiết lập màu b) Đặt màu vẽ c) Cả ý d) Cả hai ý sai Câu 242: Tham số clip hàm setviewport(int x1, int y1, int x2, int y2, int clip); qui định vấn đề gì: a) Cho phép hiển thị hay không hiển thị nét vẽ bên viewport b) Cho phép hiển thị hay không hiển thị nét vẽ bên viewport c) Cả d) Cả sai Câu 243: Điểu nói hàm floodfill(int x, int y, int Border); a) Dùng để tô màu hình tròn chứa điểm (x,y) b) Dùng để tô màu hình chữ nhật chứa điểm (x,y) c) Dùng để tô màu đa giác chứa điểm (x,y); d) Dùng để tô màu miền kín chứa điểm (x,y); Câu 244: Trong chế độ đồ họa, hàm sau xác lập kiểu chữ, cỡ chữ: a) outtextxy(int x, int y, char far * textstring); b) outtext(char far *textstring); c) settextstyle(int font, int direction, int charsize); d) Cả phương án HẾT 52 ... a) getch(); b) getche(); c) macro getchar(); d) gets(str); C u 100: Cho đoạn chương trình sau: #include #include void main() { char c; clrscr(); c= getchar(); while (c! =’*’);... #include main() { int i,ch; for (i=0,ch=’A’; i

Ngày đăng: 22/04/2017, 21:55

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w