intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Câu hỏi Trắc nghiệm cơ sở dữ liệu

Chia sẻ: Nguyen Ha | Ngày: | Loại File: PDF | Số trang:50

150
lượt xem
26
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Câu 1: Cho danh sách liên kết đơn có thành phần dữ liêu là data, đoạn mã nào chèn phần tử r vào giữa p và q: A. rB. rC. pD. Không có next=p; next=qnext=r; đáp án nào p- data rđúng. next=r pnext=q; next=rdata Câu 2: Cho đoạn mã sau: newNum=0; number=857; while(number%10=0) { temp=number%10;

Chủ đề:
Lưu

Nội dung Text: Câu hỏi Trắc nghiệm cơ sở dữ liệu

  1. CÂU HỎI TRẮC NGHIỆM Câu 1: Cho danh sách liên kết đơn có thành phần dữ liêu là data, đoạn mã nào chèn phần tử r vào giữa p và q: A. r- B. r- C. p- D. Không có >next=p; >next=q- >next=r; đáp án nào p-> >data r- đúng. next=r p- >next=q; >next=r- >data Câu 2: Cho đoạn mã sau: newNum=0; number=857; while(number%10>=0) { temp=number%10; number=number/10; newNum=newNum*10+temp; } cout
  2. vào Q, sau đó lại chuyển từng phần tử của Q vào S. Cho biết các phần tử của S hiện tại (tính từ đỉnh): A. 10,8,6,4,2. B. 2,10,8,4,6 C. 2,4,6,8,10 D. 10,2,4,6,8. Câu 5: Cho P là một Stack. Cho biết giá trị thực hiện Pop ra sau cùng khi thực hiện các thao tác sau: Push(P,225); Push(P,5); Push(P,2); Pop(P); Pop(P); Push(P,3); Pop(P); A. 3 B. 5 C. 2 D. Không có đáp án đúng. Câu 6: Cho biết kết quả xuất ra: #include int test(int n) { int sum; if (n
  3. Câu 7: Khi nhập vào các giá trị : 5,21,1 vào một danh sách; sau đó muốn in ra: 1,21,5 thì nên chọn cấu trúc dữ liệu nào sau đây: A. Stack B. Queue C. 2 đáp án A,B đúng D. 2 đáp án A,B sai Câu 8: Cho hàm change như sau: void change(int &a,int b) { a = a+7; b=b+3; } Chương trình sử dụng hàm change nói trên như sau: void main() { int x,y; x = 10;y=10; change (x,y); cout
  4. { if (n == 5) return 5; else return 2 * Func(n + 1); } Cho biết kết quả khi gọi hàm Func(2) ? A. 50 B. 2 C. 40 D.10 Câu 11: Cho iptr là con trỏ, trỏ đến phần tử Item. Lệnh nào sau đây dùng để giải phóng bộ nhớ của iptr? A. iptr = NULL; B. delete iptr; C. delete *iptr; D. iptr->~Item(); Câu 12: Cho hàm sau: void wow (int n) { if (n > 1) wow (n/2); cout
  5. A. Cấp phát vùng nhớ động do con trỏ p quản lý B. Thu hồi vùng nhớ đã cấp phát C. Hủy bỏ vùng nhớ do p trỏ tới (quản lý). D. Gán giá trị của địa chỉ của vùng nhớ cho một con trỏ p nào đó. Câu 15: Cho biết kết quả xuất ra của chương trình sau đây trên màn hình là gì? #include void test(int *xp); int main() { int x,y; x = y = 10; y++; //y=11 test(&x); test(&y); printf("%d %d\n",x,y); } void test(int *xp) { int y; y = *xp+5; *xp = y++ * 3; } A. 45 45 B. 22 33 C. 48 45 D. 45 48 Câu 16: Xét hàm guess dưới đây int guess(int n) { 5
  6. if (n == 1) return 1; else return guess(n – 1); } Hãy cho biết giá trị trả về của guess(5)? A. 0 B. 1 C. D. 11 Câu 17: Cho hàm sau: int w(int x,int n) { if (n==1) return x; else return(x*w(x,n-1)); } Cho biết kết quả khi gọi hàm w(4,4)? A. 8 B.16 C. 256 D. 24 Câu 18: Cho mảng sau a[6]={3,2,7,9,1}. Cho biết kết quả minh hoạ nào thực hiện theo phương pháp sắp xếp chọn trực tiếp: A. 3 2 7 B. 3 2 7 9 C. 3 2 7 D. 3 2 7 9 1 6 1 6 9 1 6 9 1 6 1 2 7 9 1 2 7 9 1 2 7 1 2 7 3 6 3 6 9 3 6 9 3 6 1 2 3 9 1 2 3 9 1 2 3 1 2 3 6 7 7 6 9 7 6 9 7 6 1 2 3 6 1 2 3 6 1 2 3 1 2 3 7 9 7 9 6 7 9 6 7 9 Câu 19: Cho các thuật toán sau: Quick Sort(sắp xếp phân hoạch nhanh), Insertion Sort(sắp xếp chọn trực 6
  7. tiếp), Bubble Sort(sắp xếp nổi bọt). Đối với mảng đã có thứ tự, thuật toán nào thực hiện nhanh nhất: A. Quick Sort B. Insertion Sort C. Hai đáp áp trên đều sai D. Bubble Sort Câu 20: Cho biết kết quả in ra: int f(int *p, int x) { ++x; p=x; return p; } int main() { int x=2, y=5; int *p=y; int *q=f(p,x); cout
  8. int *x=a; //x=2 int *y; y=c; //y=4 x=b; //x=3 b--; //b=2 cout
  9. a= new node; a->data=1; b= new node; b->data=2; c= new node; c->data=3;d= new node; d->data=4; e= new node; e->data=5; a->next=c; b->next=NULL; c->next=e; d->next=b; e->next=d; node ptr p=a; while(p!=NULL) { coutnext; } getch(); } 13542 Cho biết kết quả khi in ra: A. 14532 B. 13542 C. 12345 D. 13452 Câu 26: Cho biết kết quả khi gọi hàm recur(5,2): void recur( int i, int j) { if (i>j) { recur(i-1,j); cout
  10. recur(3,2) (4,2) recur(4,4) (5,2) recur(4,4) (5,4) recur(5,6) recur(2,2) (3,2) recur(3,4) (4,2) (5,2) (5,4) (3,2)(4,2)(5,2)(5,4) Câu 27: Cho cấu trúc dữ liệu: struct listnode { int data; listnode* next; }; Gỉa sử danh sách có nhiều hơn 1 phần tử. Cho p là con trỏ, trỏ vào đầu danh sách. Đoạn mã sau dùng để thêm nút trỏ bởi q vào cuối danh sách listnode* temp; temp = p; while (**A**) **B**; tempnext = q; Biểu thức nào sau đây thay cho **A**? A. temp != NULL C. temp next != p B. temp next != D. temp next != q NULL Câu 28: Danh sách liên kết là? A. Là một phương thức C. Dùng trong các loại đa để tổ chức mã lệnh thao tác B. Một kiểu tổ chức lưu D. Là một phương thức trữ dữ liệu tìm kiếm dữ liệu 10
  11. Câu 29: Nếu p là con trỏ, trỏ nút danh sách liên kết đôi (có giá trị là 31), đoạn code nào sau đây dùng để xoá nút p ra khỏi danh sách va giải phóng vùng nhớ của p? A. pprevnext = C. delete p; pnext; pprevnext = delete p; pnext; pnextprev = pnextprev = pprev; pprev; B. pnextprev = D. pnextprev = pprev; pprev; delete p; pprevnext = pprevnext = pnext; pnext; delete p; Câu 30: Với khai báo: struct ListNode { float volume; ListNode* next; }; ListNode* prevPtr; ListNode* tempPtr; Cho danh sách lien kết, đoạn code nào sau đây dùng để xoá và giải phóng vùng nhớ cho *prevPtr? A. tempPtr = C. tempPtr = prevPtrnext; prevPtrnext; prevPtrnext = prevPtr = tempPtrnext; tempPtrnext; delete tempPtr; delete prevPtr; B. tempPtr = prevPtr; D. tempPtr = 11
  12. prevPtrnext = prevPtrnext; tempPtrnext; prevPtr = delete tempPtr; tempPtrnext; delete prevPtrnext; Câu 31: Cho khai báo struct ListNode { float volume; ListNode* next; }; ListNode* ptr; Mệnh đề nào sau đây cho con trỏ ptr trỏ sang nút tiếp theo? A. ptrnext = ptr; C. ptr++; B. ptr = ptrnext; D. *ptr = ptrnext; Câu 32: Cho khai báo sau, mệnh đề nào dùng để cấp phát bộ nhớ cho con trỏ head đầu danh sách? struct Node { int item; Node* link; }; typedef Node* NodePtr; NodePtr head; A. head = new NodePtr; C. head = new int; B. head = new Node; D. headlink=NULL; Câu 33: Đoạn mã sau dùng để tạo danh sách liên kết đơn gồm 2 phần tử có giá trị 18 và 32. Dòng lệnh nào sau 12
  13. đây sẽ được bổ sung vào vị trí còn thiếu của đoạn mã? struct NodeType { int data; NodeType* next; }; NodeType* p; NodeType* q; p = new NodeType; p- data = 18; q = new NodeType; qdata = 32; // Vị trí cần bổ sung ==================== qnext = NULL; A. pnext = q- next; C. pnext = q; B. p = q; D. q = pnext; Câu 34: Thêm các ký tự E, D, C, B, A vào Queue (Theo thứ tự E, D,...) sau đó xoá khỏi Queue. Các ký tự lần lượt được xoá khỏi Queue là? A. E A D B C B. C B D A E B. A B C D E D. E D C B A Câu 35: Cho khai báo hàm nhu sau: void insert( NodePtr afterMe, int num); //PRE: afterMe là con trỏ, trỏ vào nút của danh sách 13
  14. //POST: Thêm nút mới có giá trị num vào sau afterMe. void insert(NodePtr afterMe, int num) { //đoạn mã nào sau đây là của hàm insert? } A. NodePtr tmp=new C. NodePtr Node; tmp=new Node; tmp data = num; tmp data = afterMe  link = tmp; num; tmplink = NULL; afterMe link = tmp; tmplink = afterMe  link; B. afterMelink = new D. NodePtr Node; tmp=new Node; afterMelinkdata = tmp data = num; num; afterMe link tmplink = link=afterMe- link; afterMe  link; afterMe  link = tmp; Câu 36: Con trỏ sẽ chứa được kiểu dữ liệu nào? A. Địa chỉ bộ nhớ B. Số thực B. Số nguyên D. Kiểu ký tự Câu 37: Mô tả nào sau đây về Stack là chính xác nhất? A. First In First C. Last In First Out 14
  15. Out B. Cả Last In First D. Không phải Last In First Out Out và First In First và cũng không phải First In Out First Out Câu 38: Cài đặt Stack bằng danh sách liên kết, hãy cho biết vị trí khi push phần tử X vào Stack? A. Cuối danh sách C. Đầu danh sách B. Sau tất cả các phần tử D. Sau tất cả các phần tử nhỏ hơn X lớn hơn X Câu 39: Cho cấu trúc dữ liệu: struct listnode { int data; listnode* next; }; Gỉa sử danh sách có nhiều hơn 1 phần tử. Cho p là con trỏ, trỏ vào đầu danh sách. Đoạn mã sau dùng để thêm nút trỏ bởi q vào cuối danh sách listnode* temp; temp = p; while (**A**) **B**; tempnext = q; Biểu thức nào sau đây thay cho **B** A. temp++; C. p = pnext; B. temp = temp next; D. temp = temp.next; 15
  16. Câu 40: Với hình vẽ bên (xem hình), hãy cho biết ý nghĩa của đoạn mã sau: Temp = Head while TempLink != null loop Temp = TempLink end loop TempLink = Temp A. Sẽ chuyển thành danh C. Đoạn mã không làm sách liên kết vòng (nút cuối thay đổi danh sách trỏ vào nút đầu của danh sách) B. Nút cuối cùng của danh D. Danh sách trở thành sách sẽ trỏ vào chính nó liên kết vòng với nút cuối cùng có giá trị 5 Câu 41: Cho hàm sau: int kkk(int x) {if ((x%3==0)&&(x>0)) return (1+kkk(4+kkk(x-3))); else if (x%2==0) return x+1; return x+2; } Cho biết giá trị trả về khi gọi hàm kkk(2): 16
  17. A. 10 B. 3 C. 8 D.6 E. Không có đáp án nào đúng Câu 42: Cho biết kết quả xuất ra của đoạn chương trình sau: #include int test(int n) { if (n
  18. r=p; p=q; q=r; Cout
  19. Node Type new Node Type p->next->prev=temp; p->next=p->next; temp->data=96; temp->prev=p; temp-> next =p->next; p->next=temp; temp->prev=p; temp->next- p->next=temp; >prev=temp; temp->data=96; C. NodeType *temp= new A. NodeType *temp= Node Type new Node Type temp->data=96; p->next=temp; temp-> next =p->next; temp->data=96; temp->prev=p; temp-> next =p- p->next->prev=temp; >next; p->next=temp; temp->prev=p; p->next->prev=temp; Câu 49: Cho biết thuật giải sắp xếp sau: B1: i=1 B2: Tìm phần tử nhỏ nhất a[min] trong dãy từ a[i] đến a[n] B3: Hoán vị a[i] và a[min] B4: Nếu i
  20. đổi chỗ cho nhau. Sau mỗi lẫn đi chúng ta đưa được phần tử trồi lên đúng chỗ. Sau N lần đi thì tất cả các phần tử trong mảng M sẽ có thứ tự tăng. B. Đi từ cuối mảng về đầu mảng, trong quá trình đi nếu phần tử ở dưới (đứng phía sau) nhỏ hơn phần tử đứng ngay trên (trước nó) thì hai phần tử này được đổi chỗ cho nhau. Sau mỗi lẫn đi chúng ta đưa được phần tử trồi lên đúng chỗ. Sau N lần đi thì tất cả các phần tử trong mảng M sẽ có thứ tự tăng. C. Đi từ cuối mảng về đầu mảng, trong quá trình đi nếu phần tử ở dưới (đứng phía sau) nhỏ hơn phần tử đứng ngay trên (trước nó) thì hai phần tử này được đổi chỗ cho nhau. Sau mỗi lẫn đi chúng ta đưa được phần tử trồi lên đúng chỗ. Sau N-1 lần đi thì tất cả các phần tử trong mảng M sẽ có thứ tự tăng. D. Cả 3 câu đều sai. Câu 51: Giả sử có 1 dãy các phần tử A={a0,a1,…,an- 1} đã được sắp xếp. Để tìm một phần tử x thuộc dãy A hay không với thời gian chạy là O(logn) thì ta sử dụng thuật toán: A. Thuật toán tìm kiếm tuyến tính B. Thuật toán tìm kiếm nhị phân C. Cả 2 câu đều đúng D. Cả 2 câu đều sai Câu 52: Cấu trúc Danh sách liên kết có ưu điểm gì so với cấu trúc dữ liệu mảng: A. Không lãng phí bộ nhớ B. Truy xuất nhanh các phần tử C. Cả 2 câu đều đúng D. Cả 2 câu đều sai Câu 53: Giả sử mảng A có n phần tử chưa được sắp xếp, để tìm một phần tử x có thuộc A hay không ta có thể dùng thuật toán gì dưới đây: 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2