wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

CTDL_2

Total questions: 50

Worksheet time: 50mins

Name
Class
Date
1.

Lệnh "return (a>b) ? a:b; " tương đương với lệnh nào sau đây?

a)

if(a>b) return a; else return b;

b)

if(a<b) return a; else return b;

c)

if(a==b) return a; return b;

d)

if(a>=b) return a; else return b;

2.

Độ phức tạp của giải thuật không đệ quy tính n! ( n giai thừa) là bao nhiêu?

a)

O(log2n)

b)

O(n)

c)

O(n2)

d)

O(n3)

3.

Cho phát biểu sau: "Nếu T1(n),T2(n),....,Tk(n) lần lượt là thời gian thực hiện các đoạn chương rình liên tiếp nhau và có độ phức tạp tương ứng là O(g1),O(g2),...,O(gk) thì toàn bộ độ phức tạp của chương trình này sẽ là:

T(n)=T1(n)+T2(n)+....+Tk(n)=O(max{g1,g2,.....,gn })".

Phát biểu trên là nội dung quy tắc nào?

a)

Quy tắc tổng.

b)

Quy tắc nhân

c)

Quy tắc hằng

d)

Quya tắc biến.

4.

Nếu thời gian thực hiện lần lượt của hai đoạn chương trình P1 và P2 là: T1(n) =O(n), T2(n)=O(n) thì thời gian thực hiện P1 và P2 lồng nhau sẽ là T(n). Chọn phương án đúng với T(n).

a)

O(log2n)

b)

O(n)

c)

O(n2)

d)

O(n3)

5.

Đánh giá độ phức tạp của thuật toán sau:

int KiemTra(int n){ int i;

for(i=2;i<n;i++) if(n%i==0) return 0;

return1;}

a)

O(n2)

b)

O(n3)

c)

O(log2n)

d)

O(n)

6.

Cho đoạn mã sau: x=6; y=x-2;

f=5*x+7*y; x=f;

printf("kq x= %d",x);

Cho biết kết quả của lệnh printf();

a)

kq x=7

b)

kq x=72

c)

kq x=86

d)

85

7.

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

a)

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

b)

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

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)

Mọi trường hợp

8.

Kiểu dữ liệu của hàm sau trả về là gì?

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

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

a)

Kiểu số nguyên

b)

Kiểu số thực

c)

Kiểu logic

d)

kiểu ký tự

9.

Tìm mô tả đúng nhất cho hàm giải thuật sau:

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

return Tinh(n-1) +1/n;

a)

Không đệ quy

b)

Đệ quy tính tổng các nghịch đảo của n số đầu.

c)

Đệ quy

d)

Tính tổng số nguyên dương đầu tiên

10.

Hàm sau tính tổng nào dưới đây?

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

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

a)

S(n)=12+34+56+...+(2n+1)(2n+2)S\left(n\right)=\frac{1}{2}+\frac{3}{4}+\frac{5}{6}+...+\frac{\left(2n+1\right)}{\left(2n+2\right)}

b)

S(n)=1+2+3+...+nS\left(n\right)=1+2+3+...+n

c)

12+22+...+n21^2+2^2+...+n^2

d)

1×2+2×3+...+(n1)×n1\times2+2\times3+...+\left(n-1\right)\times n

11.

Cho hàm kt(n) và số nguyên m=222. Cho biết kết quả khi gọi kt(m)?

int kt(int n){

if(n==0) return 1;

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

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

a)

Trả về 22

b)

Trả về 0

c)

Trả về 1

d)

Trả về 2

12.

Với giải thuật sau, khi n=5 sẽ cho kết quả bằng bao nhiêu?

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

return Tinh(n-1) +n*n;

a)

58

b)

57

c)

56

d)

55

13.

Phát biểu nào sau đây đúng với danh sách đặc?

a)

Danh sách đặc có thể thêm vô số phần tử.

b)

Danh sách đặc có số phần tử hữu hạn.

c)

Danh sách đặc chỉ thêm phần tử vào đầu danh sách.

d)

Danh sách đặc chỉ thêm vào cuối danh sách.

14.

Khai báo sau dùng cho khai bái danh sách loại nào?

typedef struct ds{ int Data[1000]; int rear, front;}Queue;

a)

Danh sách Liên kết vòng.

b)

Danh sách liên kết đơn.

c)

Danh sách đặc kiểu hàng đợi.

d)

Danh sách đặc kiểu ngăn xếp.

15.

Cho khai báo sau:

typedef struct ds{ int Data[1000]; int Count; }List;

Trong ngôn ngữ C, nguyên mẫu nào được khai báo đúng khi khởi tạo danh sách rỗng?

a)

void Init(List &L);

b)

void Init(List L);

c)

void Init(List *L);

d)

void Init(*L);

16.

Cho danh sách khai báo như sau:

typedef struct ds{ DataT Data[100]; int Count;}List;

Lệnh sau có tác dụng gì?

for(i=L.Count;i>k;i--) L.Data[i]=L.Data[i-1];

a)

Gán dữ liệu ở vị trí i bằng dữ liệu ở vị trí i-1.

b)

Dịch chuyển các phần tử ở vị trí k sang bên phải (về cuối ) 1 vị trí.

c)

Thêm phần tử vào vị trí Count trong danh sách.

d)

Loại bổ phần tử ở vị trí i.

17.

Phát biểu nào sau dây phù hợp nhất với danh sách đơn?

a)

Danh sách liên kết là cấu trúc dữ liệu dạng cây.

b)

Danh sách liên kết là tập hợp các phần tử mà giữa chúng có một sự kết nối với nhau thông qua vùng liên kết của chúng.

c)

Danh sách liên kết là cấu trú tự định nghĩa.

d)

Danh sách liên kết là tập hợp các phần tử mà đặt kề cận với nhau trong vùng nhớ.

18.

Mỗi phần tử trong danh sách đơn gồm mấy phần?

a)

1

b)

4

c)

3

d)

2

19.
a)

((25+40*10)-60)/30

b)

(10+25*40-60/30)

c)

(10*(25+40)-(60/30))

d)

((10*25+40)-(60/30))

20.

a)

10

b)

11

c)

12

d)

13

21.

Nếu cha của một nút trên cây có mức i thì nút con (nếu có) của nó là mức la:

a)

i/2

b)

i*2

c)

i+1

d)

i-1

22.
a)

(5*(2+25)+45)

b)

(25*(2+5)+45)

c)

(25*2+(5+15))

d)

(25*(2+(5+45)))

23.

a)

A,J,I,T,K,H,B,E,F,D

b)

B,A,E,F,D,J,I,T,K,H

c)

H,K,T,B,A,E,F,D,J,I

d)

H,D,B,A,E,F,J,I,T,K,

24.

a)

Cây tam phân

b)

Câu nhị phân tìm kiếm

c)

Cây tam phân tìm kiếm

d)

Cây nhị phân

25.

Giải thuật sắp xếp mảng các số nguyên theo phương pháp ĐỔI CHỖ TRỰC TIẾP sử dụng mấy vòng lặp lồng nhau?

a)

1

b)

4

c)

3

d)

2

26.

Trong phương pháp sắp xếp NỔI BỌT, số lần hóa vị trong trường hợp tốt nhất là bao nhiêu?

a)

1

b)

2

c)

0

d)

3

27.

Sắp xếp theo phương pháp VUN ĐỐNG mảng số nguyên chia làm mấy giai đoạn?

a)

2

b)

3

c)

4

d)

5

28.

Trông giải thuật sắp xếp một mảng số nguyên theo phương pháp SẮP XẾP NHANH(QuickSort) đệ quy có mấy lời gọi đệ quy sắp xếp nhanh?

a)

5

b)

4

c)

2

d)

3

29.

Phát biểu nào dưới đây sai?

a)

Sắp xếp nội, kích thước dữ liệu cần sắp xếp thường rất lớn.

b)

Sắp xếp là cách bố trí lại các phần tử của một tập đối tượng đó, theo một trật tự nhất định, có thể theo thứ tự tăng dần hoặc giảm dần.

c)

Sắp xếp nội thì toan bộ dữ liệu cần sắp xếp được đưa vào RAM.

d)

Sắp xếp nội, kích thước dữ liệu cần sắp xếp thường không lớn.

30.

Trong hương pháp sắp xếp TRỘN (hòa nhập), dãy được phân chia có độ dài nhỏ nhất là bao nhiêu phần tử?

a)

4

b)

3

c)

2

d)

1

31.

Khi viết chương trình tìm kiếm tất cả các số nguyên có 3 chữ số abc thoae mãn tổng các lập phương của 3 chữ số đó bằng chính số đó. Điều kiện đó được viết như thế nào?

a)

a*a+b*b*b+c*c==abc

b)

a*a*a+b*b*b+c*c*c==abc

c)

a*a*a+b*b*b+c*c*c==a*100+b*10+c

d)

a==a*100+b*10+c

32.

Phát biểu nào sau đây KHÔNG ĐÚNG với tác dụng của chỉ thị break?

a)

Khi có nhiều chu trình lồng nhau, câu lệnh break sẽ kết thúc câu lệnh điều khiển đang sử dụng và ra khỏi bên trong nhất chứa nó không cần điều kiện gì.

b)

Mọi câu lệnh break có thể thay bằng câu lệnh goto với nhãn thích hợp.

c)

break không có tác dụng gì.

d)

câu lệnh break cho phép ra khỏi các chu trình vói các toán tử for, while và switch.

33.

Độ phức tạp của bài toán tháp hà nội giải bằng phương pháp đệ quy là bao nhiêu?

a)

n

b)

n2

c)

2n

d)

n3

34.

Tìm mô tả đúng nhất cho hàm sau:

int KQ(unsigned int a, unsigned int b){ if(a==0 && b!=) return b;

if(a!=0&&b==0) return a;

if(a==b) return a;

if(a>b) return KQ(a-b,b);

return KQ(a,b-a)

a)

Tìm ước chung của 2 số nguyên a và b.

b)

Tìm ước chung lớn nhất của 2 số nguyên không âm của a và b.

c)

Tìm bội số chung nhỏ nhất của a và b.

d)

Kiểm tra a và b có bằng nhau hay không.

35.

Tìm mô tả đúng cho giải thuật sau:

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

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

a)

Hàm tính tổng các bình phương của n số tự nhiên đầu tiên.

b)

Hàm tính tổng của n số tự nhiên đầu tiên.

c)

Hàm tính tổng của n-1 và n.

d)

Hàm tính n2.

36.

Tìm mô tả đúng nhất cho hàm Tinh(float n) sau:

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

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

a)

S(n)=1

b)

S(n)=11+13++12×n+1, vi n cho trưc.S\left(n\right)=\frac{1}{1}+\frac{1}{3}+\cdot\cdot\cdot\cdot+\frac{1}{2\times n+1},\ với\ n\ cho\ trước.

c)

S(n)=0

d)

S(n)=12+22+32++n2, vi n cho trưc.S\left(n\right)=1^2+2^2+3^2+\cdot\cdot\cdot+n^2,\ với\ n\ cho\ trước.

37.

Cho khai báo: typydef struct Node{ int Data; struct Node*pNext;}List;

List *L,*p;

Khi thêm p vào đầu danh sách ta luôn có lệnh:

a)

p-pNext=L;

b)

p=0;

c)

p=L;

d)

p=NULL;

38.

Tooe chức cấu trúc dữ liệu của danh sách liên kết kép như sau:

typedef struct Node { int Data; struc Node *Left,*Right;}Dnode;

typedef struct List{ Dnode*Head,*Tail; }DList;

Dlist L; Dnode *p;

Với khai báo trên, lệnh nào dưới đây cho con trỏ p trỏ đến phần tử cuối cùng?

a)

L.Tail=NULL;

b)

L->Tail=p;

c)

L.Head=NULL;

d)

p=L.Tail

39.

Cho khai báo và hàm KT_List như sau:

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

int KT_List(List L){ return L.Last==0;}

Tìm mo tả đúng cho hàm KT_List:

a)

Hàm kiểm tra danh sách đầy.

b)

Hàm kiểm tra danh sách có đúng 1 phần tử.

c)

Hàm kiểm tra danh sách rỗng.

d)

Hàm kiểm tra danh sách có đúng 2 phần tử.

40.

Câu nhị phân tìm kiếm được xây dựng bằng cách lần lượt thêm các số nguyên: 50, 30, 70, 90, 60, 20, 40. Cho biết kết quả của phép duyệt trước (NLR) cây vừa xây dựng.

a)

50, 30, 70, 90, 60, 20, 40

b)

50, 30, 20, 40, 70, 60, 90

c)

50, 70, 90, 60, 30, 40, 20

d)

20, 30, 40, 50, 70, 60, 90

41.

Cho cấu trúc lưu trữ dữ liệu cho cây nhị phân tìm kiếm:

typedef struct node{ int key, struct node *Left,*Right;} NODE;

typedef NODE*TREE;

TREE t;

Điều kiện nào sau đây dùng để đếm số nút lá trên cây nhị phân tìm kiếm t?

a)

(t->Left==NULL)

b)

((t->Left==NULL)&&(t->Right==NULL))

c)

(t->Right==NULL)

d)

(t->Right!=NULL)

42.

a)

50->60->55->52

b)

50->40->45->55->52

c)

50->70->60->55->58->52

d)

70->60->58->55->52

43.

Cho ý tưởng: "Giả sử dãy gồm đoạn [K1,Ki-1] đã được sắp xếp cần chèn Ki vào dãy trên để được dãy sắp xếp. Quá trình lặp lại cho đến khi chèn phần tử thứ Kn vào dãy thì thu được dãy sắp xếp". Ý tưởng trên ứng với phương pháp sắp xếp nào?

a)

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

b)

Sắp xếp đổi chỗ.

c)

Sắp xếp chèn trực tiếp.

d)

Sắp xếp trộn.

44.

Mảng a gồm các phần tử: 12, 2, 8, 5, 1, 6, 4, 15. Cho biết kết quả của lần lặp thứ 3 khi sắp xếp dãy tăng dần theo phương pháp chọn trực tiếp.

a)

1, 2, 4, 5, 12, 6, 8, 15.

b)

1, 2, 8, 5, 12, 6, 4, 15.

c)

1, 2, 8, 5, 12,, 6,15, 4.

d)

1, 2, 4, 5, 12, 8, 15, 6.

45.

Cho dãy sau: a1,a2,..., an và giá trị x. Hãy nhận xét độ phức tạp của giải thuật tìm kiếm tuần tự và giải thuật tìm kiếm nhị phân trong trường hợp xấu nhất.

a)

Cả hai cùng có độ phức tạp là O(1).

b)

Cả hai cùng có độ phức tạp là O(n).

c)

Tìm kiếm tuần tự có độ phức tạp là O(1), tìm kiếm nhị phân có độ phức tạp O(log2n).

d)

Tìm kiếm tuần tự có độ phức tạp là O(n), tìm kiếm nhị phân có độ phức tạp O(log2n).

46.

Hàm sau với n là số nguyên dương, cho biết hàm đó thực hiện chức năng gì?

int cs(int n) { if(n>=0 && n<=9) return n;

else return n%10;}

a)

Tách các chữ số của số nguyên n.

b)

Hàm trả về chữ số tận cụng của số nguyên n.

c)

Hàm trả về giá trị của số nguyên n.

d)

Kiểm tra số nguyên n chia hết cho 2.

47.

Cho khai báo: typedef struct ds{ int info; struct ds *next;}Node;

typedef Node *List;

và hàm tạo một nút mới chứa thông tin x, lệnh nào gán x cho thông tin con trỏ p?

a)

p->info=x;

b)

x=p->info;

c)

x=p->next;

d)

p->next=x;

48.

Cho biết chức năng của hàm kt(n) dưới đây:

int kt(int n){ if(n%2==0 && n!=0) return 0;

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

a)

Kiểm tra số nguyên n chia hết cho 2.

b)

Kiểm tra số nguyên n có phải là số toàn chẵn.

c)

Kiểm tra số nguyên n có phải là số toàn lẻ.

d)

Kiểm tra số nguyên n có phải là số nguyên tố.

49.
a)

30, 12, 52, 21, 5, 25, 27, 95, 45, 80, 1, 3, 60, 35, 70, 40.

b)

30, 12, 5, 1, 3, 25, 27, 60, 40, 35, 52, 95, 21, 45, 70, 80

c)

30, 12, 5, 25, 27, 1, 3, 60, 35, 40, 52, 95, 21, 45, 80, 70

d)

1, 5, 3, 25, 12, 40, 60, 35, 27, 95, 52, 70, 45, 80, 21, 30

50.

Đối với phương pháp sắp xếp chọn một mảng số nguyên theo thứ tự không giảm dần có tối đa .................. lần tráo đổi. Chọn phương án điền vào chỗ chống.

a)

n+1

b)

n

c)

n-1

d)

n(n-1)