25 câu hỏi
Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau: struct S1{ int info; struct S1 * next;} *head; Biết con trỏ “head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Cho biết mục đích của câu lệnh sau: { head->next->next->info=111;};
Câu lệnh bị lỗi
Giá trị “info” trong phần tử thứ 3 đã bị thay đổi
Giá trị “info” trong phần tử thứ 2 đã bị thay đổi.
Giá trị “info” trong phần tử bất kì đã bị thay đổi.
Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau: struct S1{ int info; struct S1 * next;} *head; Biết con trỏ “head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Cho biết mục đích của câu lệnh sau: {(head->next)=(head->next)->next;};
Loại bỏ phần tử thứ nhất ra khỏi danh sách.
Loại bỏ phần tử thứ 2 ra khỏi danh sách.
Loại bỏ phần tử thứ 3 ra khỏi danh sách.
Câu lệnh bị lỗi.
Một danh sách trong đó tất cả các thao tác chèn thực hiện tại một đầu, thao tác xóa được thực hiện tại đầu kia của danh sách gọi là:
Stack.
Queue;
Cây nhị phân
Cả 3 đáp án trên
Đâu là phát biểu đúng về danh sách móc nối:
Chỉ có thể thêm phần tử mới vào đầu danh sách
Không thể thêm phần tử mới vào cuối danh sách
Có thể thêm phần tử mới vào vị trí bất kì trong danh sách
Không Câu nào đúng
Đâu là phát biểu đúng về danh sách:
Chỉ có thể xóa phần tử đầu tiên trong danh sách
Chỉ có thể xóa phần tử cuối cùng trong danh sách
Có thể xóa một phần tử tại vị trí bất kì trong danh sách
Tất cả đều sai
Hàm dùng để cấp phát bộ nhớ động cho kiểu nhớ động do lập trình viên tự định nghĩa như (union, struct):
calloc();
malloc();
realloc();
Cả 3 đáp án trên
Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau. Biết con trỏ “*head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Nhóm câu lệnh nào sau đây thêm một phần tử vào đầu danh sách: struct S1 { int info; struct S1 * next; }* head;
p->next=head; head=p;
p->next=head; head->p; head=p->next;
head->next=p; p=head;
Không có Câu nào đúng
Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau. Biết con trỏ “*head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Nhóm câu lệnh nào sau đây xóa phần tử đầu tiên ra khỏi danh sách: struct S1 { int info; struct S1 * next; }* head;
head->next=head;
head=head->next;
head=head->next->next;
B và C đều đúng
Đâu là phát biểu sai khi nói về danh sách liên kết:
Mỗi phần tử trong danh sách liên kết phải có ít nhất một trường dùng để lưu địa chỉ.
Sử dụng danh sách liên kết thường tiết kiệm bộ nhớ hơn dùng mảng.
Sử dụng danh sách liên kết thường tốn bộ nhớ hơn dùng mảng.
Tất cả các đáp án đều sai.
Câu nào không nói đến ưu điểm của việc sử dụng cấu trúc:
Bạn có thể xử lí một cách hỗn hợp các kiểu dữ liệu trong một đơn vị.
Bạn có thể lưu dữ xâu kí tự có đọ dài khác nhau vào trong một biến cấu trúc.
Dữ liệu có thể lưu trữ trong một module và dưới dạng phân cấp.
Cần ít nhất một bộ nhớ cho cùng dữ liệu.
Làm thế nào có thể biểu diễn phần tử “hoten” của SV1 struct SV { char hoten[20]; } SV1, * p; p = & SV1;
SV1.hoten;
p->hoten;
&hoten;
A và B đều đúng
Đâu là phát biểu sai:
Có thể truyền tham số là một biến struct cho hàm.
Có thể truyền tham số là một biến con trỏ cho hàm.
Có thể truyền tham số là một biến con trỏ struct cho hàm.
Không thể truyền tham số là phần tử của struct cho hàm.
Cho mảng A gồm các phần tử kiểu struct, phát biểu nào là đúng khi truy cập đến các trường của các phần tử:
A[chỉ số].tên_trường;
A.tên_trường;
&A.tên_trường;
&A[chỉ số].tên_trường;
Không gian nhớ dùng để lưu trữ các node của danh sách liên kết kép:
Lưu trữ rởi rác trong bộ nhớ.
Luôn lưu trữ liên tục trong bộ nhớ
Lưu trữ theo kiểu phân trang.
Lưu trữ theo kiểu phân đoạn
Khi thực hiện việc thêm một node x vào cây nhị phân tìm kiếm ta chỉ cần:
Tìm vị trí thích hợp cho nhánh cây con bên phải.
Tìm vị trí thích hợp cho x trên toàn bộ cây.
Tìm vị trí thích hợp cho nhánh cây con ở bên trái.
Không ý nào đúng.
Dấu hiệu nào dưới đây cho biết node p của một danh sách liên kết đơn là node cuối cùng bên phải:
(p->info!=NULL);
(p->info==NULL);
(p->next!=NULL);
(p->next==NULL);
Khi loại bỏ node x ở cây nhị phân tìm kiếm ta chỉ cần kiểm tra xem:
x có phải là node lá trái của cây nhị phân tìm kiếm hay không.
x có phải là node lá phải của cây nhị phân tìm kiếm hay không.
Sự tồn tại của x trên cây.
Cả 3 phương án a, b, c đều sai.
Cơ chế nào dưới đây được cài đặt cho hàng đợi
FIFO
Round Robin
Tuần tự
FILO
Dấu hiệu nào dưới đây cho biết danh sách liên kết đơn rỗng:
(p->right==NULL);
(p->info==NULL);
(p==NULL);
(p->next==NULL);
Dấu hiệu nào cho biết node phải của p có cây con bên phải:
(p->right!=NULL);
(p->left!=NULL);
(p->right!=NULL)&&(p->right->right==NULL);
(p->right!=NULL)&&(p->right->right!=NULL);
Cơ chế nào dưới đây được cài đặt cho Stack:
FILO
Tuần tự
Round Robin
FIFO
Một cây nhị phân được gọi là đúng nếu:
Node gốc và tất cả các node trung gian đều có 2 node con.
Giá trị khóa của node gốc bao giờ cũng lớn hơn giá trị các khóa của nhánh cây con bên phải.
Giá trị khóa của node gốc bao giờ cũng lớn hơn giá trị các khóa của nhánh cây con bên trái.
Node gốc và các node trung gian đều có 2 node con và các node lá đều có mức giống nhau
Khi thực hiện phép thêm một node lá x vào bên phải node p của cây nhị phân thông thường, ta cần:
Kiểm tra sự tồn tại của p và các lá bên phải p;
Kiểm tra sự tồn tại của node lá bên phải p
Kiểm tra sự tồn tại của node p.
Không cần thực hiện cả 3 điểu kiện nêu trong Câu hỏi.
Cho đoạn chương trình sau. Kết quả là int a, * p, * q; float * t; a = 5; p = & a; p = q; t = p; printf(“ % d % f”, a, t);
5-12
5
Chương trình lỗi.
Kết quả khác.
Số màu có thể biểu diễn trong chế độ đồ họa do yếu tố nào quy định:
Số bít tương ứng với 1 pixel.
Độ phân giải màn hình
Do kích thước màn hình
Không phải 3 yếu tố trên
