wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

CTDL_3

Total questions: 51

Worksheet time: 51mins

Name
Class
Date
1.

Đối với một giải thuật, ta thường sử dụng những quy tắc nào để đánh giá độ phức tạp của giải thuật?

a)

Quy tắc nhân.

b)

Quy tắc tỏng và quy tắc nhân.

c)

Quy tắc tỏng.

d)

Không dùng quy tắc nào.

2.

Cho biết dộ phức tạp của giải thuật sau:

sum=0;

for(i=0;i<n;i++){

sum=sum+i*i; }

a)

O(n2)

b)

O(n3)

c)

O(n)

d)

O(log2n)

3.

Cho biết độ phức tạp của giải thuật tính tổng các nghịch đảo của n số tự nhiên đầu tiên.

a)

O(n2)

b)

O(n3)

c)

O(log2n)

d)

O(n)

4.

Mối quan hệ giữa cấu trúc dữ liệu và giải thuật có thể minh họa bằng đẳng thức nào dưới đây?

a)

Giải thuật=Chương trình.

b)

CTDL+Chương trình=Giải thuật.

c)

CTDL+Giải thuật=Chương trình.

d)

CTDL=Giải thuật+Chương trình.

5.

Với a được khai báo là số nguyên và giá trị khởi tạo là 1, cho biết kết quả của câu lệnh: printf("%d",a==2? 5:2);

a)

2

b)

5

c)

0

d)

1

6.

Để đánh giá một CTDL chúng ta thường dựa vào những tiêu chí nào?

a)

CTDL phải phản ánh đúng thực tế của bài toán.

b)

CTDL phải dễ dàng trong việc thao tác dữ liệu.

c)

CTDL phải tiết kiệm tài nguyên (bộ nhớ trong).

d)

Cả 3 tiêu chí trên.

7.

Cho chương trình sau:

#include <stdio.h>

float Tinh(float n){ if(n==1) return 0.5;

return Tinh(n-1) + 1/(2*n);}

int main(){ printf("\nkq= %3.2f", Tinh(4); }

Cho biết kết quả hiển thị ra màn hình khi chạy chương trình trên.

a)

1.041667

b)

1.04

c)

3.2

d)

1.041

8.

Cho biết phân cơ sở của giải thuật sau:

int Tinh(int n){ if(n==1) return 1;

return Tinh(n-1) + n;}

a)

if(n==1) return 1;

b)

int Tinh(int n){

c)

return

d)

1

9.

 Cho S(n)=12+34+56++(2n+1)(2n+2)Cho\ S\left(n\right)=\frac{1}{2}+\frac{3}{4}+\frac{5}{6}+\cdot\cdot\cdot+\frac{\left(2n+1\right)}{\left(2n+2\right)}  , n là số nguyên không âm. viết công thức truy hồi cho S(n)

a)

 S(n)=(2n+1)(2n+2)S(n)=\frac{\left(2n+1\right)}{\left(2n+2\right)}  

b)

 S(n)=S(n1)+(2n+1)(2n+2)S(n)=S\left(n-1\right)+\frac{\left(2n+1\right)}{\left(2n+2\right)}  

c)

 S(n)=12S(n)=\frac{1}{2}  

d)

 S(n)=0S(n)=0  

10.

Khi viết giải thuật tính xn với x là số thực, n là số nguyên, ta phải xét những trường hợp nào của n?

a)

n>0

b)

n=0

c)

Cả 3 phương án

d)

n<0

11.

Khi viết chương trình đệ quy tính Fibonacci thứ n, điều kiện nào của n là điều kiện cơ sở, biết F(0)=F(1), F(n)= F(n-1)+F(n-2).

a)

n<2

b)

n=2

c)

n=4

d)

n=3

12.

Khi nào không nên dùng đệ quy?

a)

Mọi trường hợp.

b)

Không trường hợp nào.

c)

Khi chương trình có thể viết dưới dạng lặp hoặc cấu trúc lệnh khác.

d)

Khi chương trình có thể viết dưới dạng cấu trúc điều kiên.

13.

Để nhập một dãy gồm n số nguyên ta dùng lệnh nào dưới đay?

a)

Lệch switch và scanf.

b)

Lệnh printf.

c)

Lệnh if và scanf.

d)

Kết hợp giữa lệnh lặp và lệnh scanf.

14.

Cho danh sách đặc L có kiểu dữ liệu là cấu trúc List, Count là biến số nguyên lưu trữ số phần tử hiện tại của L, Lệnh nào trong các lệnh sau đay được sử dụng trong hàm kiểm tra danh sách rỗng?

a)

return (L.Count==0);

b)

return (L.Count==1);

c)

return (L.Count=0);

d)

return (L.Count=1);

15.

Cho khai báo CTDL cho danh sách đặc như sau:

typedef struct list{ int a[100]; int Last;} List;

List L;

Khi xóa một phần tử ra khỏi L thì giá trị của biến Last thay đổi ntn?

a)

Last++

b)

Last =0

c)

Last--

d)

Last=1

16.

Với khai báo, danh sách L kiểu List có tối đa bao nhiêu phần tử?

typedef struct list{ int a[100]; int Last;}List;

a)

Không giới hạn phần tử

b)

100 phần tử.

c)

200 phần tử

d)

10 phần tử

17.

Điền phần còn thiếu vào chỗ chống trong phát biểu sau: "Hàng đợi (queue) là một cấu trúc dữ liệu dùng để chứa các đối tượng làm việc theo cơ chế ............."

a)

FIFO

b)

FILO

c)

ILOL

d)

LIFO

18.

Điền phần còn thiếu vào chỗ chống trong phát biểu sau: "Ngăn xếp (Stack) là một cấu trúc dữ liệu dùng để chứa các đối tượng làm việc theo cơ chế ............."

a)

ILOL

b)

FIFO

c)

LIFO

d)

IFLO

19.
a)

10 * 25 40 + 60/30-

b)

10*25+40-60 30/

c)

-* 10 * 25 40 / 60 30

d)

10 25 40+ * 60 30 / -

20.

a)

120

b)

1200

c)

100

d)

1300

21.

a)

655

b)

650

c)

648

d)

600

22.

Phát biểu nà sau đây đúng với nút gốc của một cây nhị phân?

a)

Nút gốc của cây nhị phân luôn con và có cha.

b)

Nút gốc của cây nhị phân chỉ có con mà không có cha.

c)

Nút gốc của cây nhị phân không có con mà chỉ có cha.

d)

Nút gốc của cây nhị phân không có con và không có cha.

23.
a)

10, 25, 40, 60

b)

20, 50.

c)

30, 20, 50.

d)

30, 20, 50, 10, 25, 40, 60.

24.

a)

4

b)

3

c)

5

d)

6

25.

Phát biểu nào sau đây đúng với tính chất của cây VUN ĐỐNG?

a)

Bút con trái có khóa lớn hơn khóa của nút con phải.

b)

Nút con trái có khóa lớn hơn nút cha

c)

Khó của nút cha bao giờ cũng lớn hơn khóa của nút con.

d)

Khóa của các nút lớn hơn khóa của nút cha.

26.

Nhược điểm điểm lớn nhất của giải thuật tìm kiếm nhị phân là gì?

a)

Luôn duyệt hết dãy.

b)

Số phép so sánh nhiều.

c)

Số lần lặp ( hoặc gọi đệ quy ) nhiều.

d)

Dãy cần tìm phải được sắp xếp theo thứ tự nhất định.

27.

Phương pháp sắp xếp nào phải chọn khóa "chốt"?

a)

Phương pháp sắp xếp kiểu chèn trục tiếp.

b)

Phương pháp sắp xếp phân đoạn( sắp xếp nhanh ).

c)

Phương pháp sắp xếp kiểu đổi chỗ.

d)

Phương pháp sắp xếp trộn.

28.

Tư tưởng: "Tách mảng M thành các mảng con theo các đường chạy (run) rồi sau đó tiến hành nhập các mảng này lại the từng cặp dường chạy để tạo thành các đường chạy mới có chiều dài lớn hơn đường chạy cũ. Sau một số lần tách/nhập thì cuối cùng mảng M chỉ còn lại 1 đường chạy, lúc đó thì các phần tử trên mảng M sẽ trở nên có thứ tự."

Tư tưởng trên thược phương pháp sắp xếp nào?

a)

Săp xếp trộn ( hòa nhập )

b)

Sắp xếp nhanh ( phân đoạn )

c)

Sắp xếp vun đống

d)

Sắp xếp nổi bọt

29.

Phương pháp sắp xếp ngoại dữ liệu cần sắp xếp được lưu trữ ở đâu?

a)

Thanh ghi

b)

ROM

c)

Bộ nhớ ngoài

d)

RAM

30.

Phương án nào sau đây cho phép hóa vị hai phần tử kề nhau trong mảng A?

a)

tg = A[j];

b)

{ tg = A[j-1], A[j-1]=A[j]; A[j] = tg; }

c)

tg = A[j-1];

d)

A[j] = tg;

31.

Cho độ phức tạp của đoạn trương trình sau:

for(i=0;i<n;i++){ s=1;

for(j=0;j<n;j++){

s/=(j+1); }

a)

n3

b)

n2

c)

n

d)

nlog2n

32.

Cho biết hàm sau thực hiện chứa năng gì?

int Cop(int M[], int Len, int CM[]){

for(int i=0; i<Len;i++) CM[i]=M[i];

return (Len);}

a)

Hàm thực hiện việc sao chép nội dung mảng M có chiều dài Len-1 về mảng CM có cùng chiều dài. Hàm trả về chiều dài của mảng CM sau khi sao chép.

b)

Hàm thực hiện việc sao chép nội dung mảng CM có chiều dài Len-1 về mảng M có cùng chiều dài. Hàm trả về chiều dài của mảng M sau khi sao chép.

c)

Hàm thực hiện việc sao chép nội dung mảng CM có chiều dài Len về mảng CM có cùng chiều dài. Hàm trả về chiều dài của mảng M sau khi sao chép.

d)

Hàm thực hiện việc sao chép nội dung mảng M có chiều dài Len về mảng CM có cùng chiều dài. Hàm trả về chiều dài của mảng CM sau khi sao chép.

33.

CTDL khai báo kiểu dữ liệu sinh viên như sau:

typedef struct tagSV{ char MSSV[8]; char Ten[30];

char ngaysinh[11]; float DTB;} SV;

SV sv1, *sv2;

Lựa chọn đúng nhất để nhập mã sinh viên của hai biến sv1, sv2?

a)

gets(sv1->MSSV); gets(sv2->MSSV);

b)

gets(sv1.MSSV); gets(sv2->MSSV);

c)

gets(sv1.MSSV); gets(sv2.MSSV);

d)

gets(sv1->MSSV); gets(sv2.MSSV);

34.

Cho hàm sau đây, đâu là phần cơ sở của hàm kt(n)?

int kt(int n) { if(n==0) return 1;

if(n%2==1) return 0;

if(n%2==0) return kt(n/10);}

a)

if(n==0) return 1; if(n%2==1) return 0;

b)

if(n==0) return 1;

c)

if(n%2==1) return 0;

d)

if(n%2==0) return kt(n/10);

35.

Phương án nào không phải là nhược điểm của giải thuạt đệ quy?

a)

Việc chuyển giao điều khiển từ các thủ tục cũng cần được lưu trữ các thông số dùng cho việc trả lại điều khiển cho thủ tực ban đầu.

b)

Giải thuật đệ quy ngắn ngọn, dễ viết chương trình.

c)

Việc sử dụng đệ quy đôi khi tạo ra các tính toán thừa, không cần thiết cho tính tự động gọi thực hiện thủ tục khi chưa gặp điều kiện dừng đệ quy.

d)

Khi một thủ tục đệ quy gọi chính nó, tập các đối tượng được sử dụng trong thủ tục này như biến, hằng, ... sẽ được tạo ra.

36.


 Vie^ˊt co^ng thc gim kıˊch thưc cho baˋi toaˊn an. an={1 ne^ˊu n=0, (a(n2))2 ne^ˊu n cha˘~n, a×(a(n2))2 ne^ˊu n l}Viết\ công\ thức\ giảm\ kích\ thước\ cho\ bài\ toán\ a^n.\ a^n=\left\{1\ nếu\ n=0,\ \left(a^{\left(\frac{n}{2}\right)}\right)^2\ nếu\ n\ chẵn,\ a\times\left(a^{\left(\frac{n}{2}\right)}\right)^2\ nếu\ n\ lẻ\right\}  

a)

a

b)

chưa bt

c)

a*a

d)

 a×(a(n2))2a\times\left(a^{\left(\frac{n}{2}\right)}\right)^2  

37.

Cho khai báo: typedef struct tagNode{

int Data;

struct tagNode *next; }OneNode;

typedef Node *List;

Lệnh nào dưới đây thể hiện q là con rỏ kế tiếp của p?

a)

q->next=p;

b)

q=p;

c)

p=q;

d)

p->next=q;

38.

Cho khai báo sau:

typedef struct Node{ int Data; struct Node *Left;

struct Node *Right; }DNode;

DNode *p;

Trong ngôn ngữ lập trình C, lệnh nào dùng để xin giải phóng bộ nhớ cho con troe p?

a)

p=NULL;

b)

free(p);

c)

p=NIL;

d)

p=(DNode *) malloc (sizeof(DNode));

39.

Tổ chức CTDL cho danh sách liên kết đơn:

typedef struct ds{ int Data; struct ds *next; }Node;

Node *p, *q;

Để nố nút kế sau p vào sau nút q, ta dùng lệnh nào?

a)

p=q->next;

b)

q->next=p->next;

c)

q=p->next;

d)

p->next=q;

40.

Khi tìm một phần tử có giái trị x trên cây Root khác rỗng, phải so sách giá trị x với nội dung nào trên cây đầu tiên?

a)

So sánh với nội dung của nút nhỏ nhất ở cây con trái của nút gốc.

b)

So sánh x với nội dung của nút gốc.

c)

So sánh với nội dung của nút trái của gốc.

d)

So sánh với nội dung của nút phải của gốc.

41.

Giá trị lớn nhất trên cây nhị phân tìm kiếm khác rỗng nằm ở vị trí nào?

a)

Nút phải nhất

b)

Nút trái nhất

c)

Nút gốc

d)

Nút bất kì

42.
a)

Cây kết quả khong có nút có giá trị 60.

b)

Cây rỗng.

c)

Cây cho kết quả giống cây bên đầu.

d)

Cây kết quả có 2 nút có giá trị bằng 60.

43.

Số lượng nút tối đa các nút trên một cây nhị phân có chiều cao h là:

a)

2h-1 +1(h>0)

b)

2h-1 (h>0)

c)

2h + 1 (h>0)

d)

2h-1 -1(h>0)

44.

Trong các thuật toán sắp xếp, phép toán nào được sử dụng nhiều nhất?

a)

Phép gán.

b)

Phép tăng các giá trị.

c)

Phép so sánh.

d)

Phép cộng.

45.

Khi thêm một phần tử có nội dung x vào tại vị trí k (0<k<Last+2) của danh sách đặc L, Last là độ dài hiện tại của danh sách, giải thuật được thực hiện:

a)

+Độ dài danh sách tăng 1.

+Dời các phần tử từ vị trí p đến cuối danh sách ra sau ( bên phải ) 1 vị trí.

+Đưa phần tử mới vào vị trí p.

b)

+Dời các phần tử từ vị trí p đến cuối danh sách ra sau ( bên phải ) 1 vị trí.

+Độ dài danh sách tăng 1.

+Đưa phần tử mới vào vị trí p.

c)

+Đưa phần tử mới vào vị trí p.

+Độ dài danh sách tăng 1.

+Dời các phần tử từ vị trí p đến cuối danh sách ra sau ( bên phải ) 1 vị trí.

d)

+Độ dài danh sách tăng 1.

+Đưa phần tử mới vào vị trí p.

+Dời các phần tử từ vị trí p đến cuối danh sách ra sau ( bên phải ) 1 vị trí.

46.

Cho ý tưởng: "Dựa vào tư tương chia để trị, chia dãy đầu k1,...,kn thành 2 dãy con k1,...,ki và dãy con ki+1 sao cho khóa kj, i=[1...m]; j=[m+1...n]. sau đó lần lượt sắp xếp 2 dãy con cũng vớ phương pháp trên ta thu được dãy ban đầu đã sắp xếp."

Ý tưởng trên thuộc phương pháp sắp xếp nào?

a)

Phương pháp sắp xếp đổi chỗ trực tiếp.

b)

Phương pháp sắp xếp nhanh ( phân đoạn).

c)

Phương pháp sắp xếp trộn ( hòa nhập ).

d)

Phương pháp sắp xếp chèn.

47.

Giải thuạt trộn 2 dãy k1,.....,ki và ki+1,.....,kn đã sắp xếp thành một dãy mới cũng được sắp xếp, ta phải sử dụng mấy để trộn hai dãy trên được thuật lợi, đó là những chỉ số nào?

a)

Không cần chỉ số nào.

b)

hai chỉ số dùng cho hai dãy k1,.....,ki và ki+1,.....,kn

c)

Ba chỉ số dùng cho hai dãy cần trộn và dãy kết quả.

d)

Một chỉ số dùng cho dãy kết quả.

48.

Trong phương pháp sắp xếp chọn trực tiếp một mảng các số nguyên, lệnh nào thường dùng trong vòng lặp thứ hai của giải thuật dùng biến đếm j để ghi nhận vị trí của phần tử nhỏ nhất trong đoạn đang sắp xếp cho biến min.

a)

min =1

b)

min = j

c)

min = j + 1

d)

min = n

49.

Phát biểu nào sau đây đúng với khử đệ quy ?

a)

Khủ đệ quy là biến một thủ tục đệ quy thành một thủ không chứa vòng lặp và không ảnh hưởng gì đến các yếu tố khác

b)

Khử đệ quy là biến một thủ tục đệ quy thành một thủ tục chỉ chứa câu lệnh điều kiện mà không ảnh hưởng gì đến các yếu tố khác.

c)

Khử đệ quy là biến một thủ tục đệ quy thành một thủ tục chỉ chứa vòng lặp mà không ảnh hưởng gì đến các yếu tố khác.

d)

Khử đệ quy là biến một thủ tục đệ quy thành một thủ tục Không chứa các vòng lặp và ảnh hưởng đến các yếu tố khác.

50.

Trong giải thuật tìm giá trị lớn nhất trong một mảng số nguyên bất kì, độ phức tạp của giải thuật trong th tốt nhất và th xấu nhất là bao nhiêu?

a)

Tốt nhất: O(n)-Tồi nhất: O(n).

b)

Tốt nhất: O(n)-Tồi nhất: O(n2).

c)

Tốt nhất: O(1)-Tồi nhất: O(1).

d)

Tốt nhất: O(log2n)-Tồi nhất: O(n).

51.

Đứa nào lười nhất và khôn nhất trong nhóm?

a)

Hiệp

b)

Đại mõm chứ ai.

c)

Ly

d)

con ăn ko ở đợ