wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

CTDL_4

Total questions: 50

Worksheet time: 50mins

Name
Class
Date
1.

Cho biết ý nghĩa cảu lệnh sau:

for(i=1; i<n;i++)

sum+=arr[i];

a)

Tính tổng các phần tử trong mảng arr.

b)

Tính tổng các bình phương của n số nguyên dương đầu tiên

c)

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

d)

Gán các phần tử trong mảng arr cho sum

2.

Trong ngôn ngữ lập trình C, để nhập số nguyên n từ bàn phím sử dụng lệnh nào?

a)

scanf("%f", &n)

b)

scanf("%d", &n)

c)

scanf("%f", n)

d)

scanf("%f", n)

3.

Trong ngôn ngữ lập trình C, để nhập số thực n từ bàn phím sử dụng lệnh nào?

a)

scanf("%f", n)

b)

scanf("%d", &n)

c)

scanf("%d", n)

d)

scanf("%f", &n)

4.

Trong ngôn ngữ lập trình C, điều kiện kiểm tra n khác 0, ta sử dụng lệnh nào ?

a)

n<>0

b)

n==0

c)

n!=0

d)

n><0

5.

Trong ngôn ngữ lập trình C, "nếu phần tử đầu tiên của mange arr bằng 0 thì trả về giá trị -1" được biểu diễn bằng lệnh nào

a)

if ( arr[0] =0) return -1

b)

if ( arr[0] ==0) return -1

c)

if ( arr[1] =0) return -1

d)

if ( arr[1] ==0) return -1

6.

Cho mảng số nguyên arr và biến sum, trong ngôn ngữ lập trình C sử dụng lệnh nào để gán giá trị đầu tiên của mảng arr cho sum?

a)

sum=arr[1]

b)

sum=arr[0]

c)

arr[0]=sum

d)

arr[1]=sum

7.

Cho biết phần đệ quy của hàm sau:

i nt Tinh (int n){

if(n==0) return 0;

if( abs(n) ==1) return 1;

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

}

a)

if(n==0) return 0;

b)

if(n==0) return 0;

if( abs(n) ==1) return 1;

c)

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

d)

if( abs(n) ==1) return 1;

8.

Cho biết mô hình dưới đây mô tả cách hoạt động của giải thuật nào?

a)

Giải thuật tìm kiếm

b)

Giải thuật đệ quy

c)

Giải thuật sắp xếp mảng số nguyên

d)

Giải thuật gọi hàm tìm kiếm

9.

Trong giải thuật đệ quy tính nào bắt buộc phải có?

a)

Tính an toàn

b)

Tính hiệu quả

c)

Tính dừng

d)

Tính bảo mật

10.

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

int DigitCount(int n){

if(n<0) return -1;

if(n==0) return 0;

return 1+ DigitCount(n/10);

}

a)

if(n<0) return -1;

if(n==0) return 0;

b)

if(n<0) return -1;

c)

if(n==0) return 0;

d)

return 1+ DigitCount(n/10);

11.

Cho biết kết quả khi gọi hàm DigitCount (2345) biết ":

int DigitCount (int n) {

if (n<0) return -1;

if(n==0) return 0;

return 1+ DigitCount(n/10);

}

a)

4

b)

2

c)

3

d)

5

12.

Cho biết phần đệ quy của giải thuật sau:

int DigitCount(int n){

if(n<0) return -1;

if(n==0) return 0;

return 1+ DigitCount(n/10);

}

a)

if(n<0) return -1;

if(n==0) return 0;

b)

if(n<0) return -1;

c)

return 1+ DigitCount(n/10);

d)

if(n==0) return 0;

13.

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

typedef struct list{

int data[200];

int Count;

}List;

a)

200 phần tử

b)

100 phần tử

c)

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

d)

10 phần tử

14.

Điền phần còn thiếu vào chỗ chấm chấm trong phát biểu sau: " Hàng đợi hoạt động theo cơ chế ...., ngăn xếp hoạt động theo cơ chế....."

a)

LIFO, FIFO

b)

LIFO, LIFO

c)

FIFO, FIFO

d)

FIFO, LIFO

15.

Cho khai báo sau :

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

TRong ngon ngữ lập trình C, nguyên mẫu nào được khai báo đúng khi kiểm tra danh sách rỗng?

a)

int Empty( List L);

b)

int Empty( List & L);

c)

int Empty( List *L);

d)

int Empty( L);

16.

Mỗi phần tử trong danh sách liên kết kép gồm mấy trường.

a)

6

b)

6

c)

4

d)

3

17.

Khai báo dưới đây là khai báo cấu trúc dữ liệu cho một phần tử của danh sách nào?

typedef struct node{

item data ; struct node *prev, *next;} Node;

a)

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

b)

Danh sách liên kết kép

c)

Danh sách đặc

d)

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

18.

Khi khai báo cấu trúc dữ liệu cho một phần tử của danh sách liên kết kép có mấy con trỏ ?

a)

3 con trỏ

b)

2 con trỏ

c)

4 con trỏ

d)

5 con trỏ

19.

Chọn biểu thức hiệu tố ứng với cây sau:

a)

11 29 + 50 71 99 + **

b)

11+29-50 * 71 + 91

c)

* + 11 29 * 50 + 71 99

d)

11 29 + * 50 + 71 99 *

20.

Cây sau đây là cây gì ?

a)

Cây nhị phân

b)

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

c)

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

d)

Cây tam phân

21.

Cây nhị phân dưới đây có chiều dài là bao nhiêu

a)

11

b)

12

c)

13

d)

14

22.

Cho biết mức của cây sau:

a)

6

b)

5

c)

4

d)

11

23.

Cho cây nhị phân tìm kiếm chứa các số nguyên, kết quả duyệt trước ( NLR) của cây con trái của nút 45:

a)

45,20,11,2,15,29,32

b)

20, 11,2,15,29,32

c)

20,11,2,15,29,32

d)

2,15,11,32,29,20,45

24.

Cây nhị phân tìm kiếm chứa các số nguyên , kết quả duyệt sau ( LRN) của cây con phải của nút 45 :

a)

50, 72, 99, 91, 65

b)

20,11,2,15,29,32

c)

2,15,11,32,29,20,45

d)

45,20,11,2,15,29,32

25.

Cho biết độ phức tạp của phương pháp sắp xếp chèn trực tiếp mảng số nguyên gồm n phần tử

a)

O(n)

b)

O (log2n)

c)

O (n3)

d)

O (n2)

26.

Cho biết độ phức tạp của phương pháp sắp xếp chọn trực tiếp mảng số nguyên gồm n phần tử

a)

O(n)

b)

O (log2n)

c)

O (n2)

d)

O (n3)

27.

Cho biết độ phức tạp của phương pháp sắp xếp nổi bọt mảng số nguyên gồm n phần tử

a)

O(n)

b)

O (log2n)

c)

O (n3)

d)

O (n2)

28.

Cho biết độ phức tạp của phương pháp sắp xếp trộn mảng số nguyên gồm n phần tử

a)

O (nlog2n)

b)

O(n)

c)

O (n3)

d)

O (log2n)

29.

Cho biết độ phức tạp của phương pháp tìm kiếm tuần tự số nguyên x trên mảng số nguyên gồm n phần tử trong trường hợp tồi nhất

a)

O(n)

b)

O (nlog2n)

c)

O (log2n)

d)

O (n3)

30.

Cho biết độ phức tạp của phương pháp tìm kiếm nhị phân số nguyên x trên mảng số nguyên gồm n phần tử

a)

O (nlog2n)

b)

O(n)

c)

O (log2n)

d)

O (n3)

31.

Đánh giá độ phức tạp của gải thuật sau, " lệnh 1, lệnh 2" là các lệnh có độ phức tạp là O(1) , m, n là đầu vào

for( i=1; i<=n; i++)

//lệnh 1

for(j=1; j<=m; j++)

//lệnh 2

a)

O(min(m,n))

b)

O(max(m,n))

c)

O(1)

d)

O(n)

32.

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

s=0;

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

p=1;

for(j=1;j<=i;j++)

p=p*x/j;

s = s+p;

}

a)

O (n2)

b)

O (log2n)

c)

O (n3)

d)

O(n)

33.

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

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

for( u=1; u<=m; u++)

for( v=1; v<=n; v++)

//lệnh

}

a)

O (n2)

b)

O (log2n)

c)

O (n3)

d)

O (n2 *m)

34.

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

a)

Tìm ước chung lớn nhất của hai số a,b

b)

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

c)

Tính tổng hai số a,b

d)

Kiểm tra a,b có chia hết cho nhau không

35.

Tìm hệ thức truy hồi cho hàm sau:

int T( int n){

if(n==1) return 1;

return 3 *T(n/2) +n;

}

a)

T(n) = 4T(n/3) +n

b)

T(n) = 3T(n/2) +n

c)

T(n) = 4T(n/3) +n2

d)

T(n) = 9T(n/3) +n2

36.

Tìm hệ thức truy hồi cho hàm sau:

int T(int n){

if( n==1) return 1;

return 4*T(n/3) +n;

}

a)

T(n)=4T(n/3) +n;

b)

T(n)=3T(n/2) +n;

c)

T(n)=4T(n/3) +n2;

d)

T(n)=9T(n/3) +n2;

37.

Tìm mô tả đúng nhất cho hàm dưới đây:

Node *Make_Node (item x){

Node *P =(Node*) malloc(sizeof(Node));

if(P!=NULL){

P->data=x; P->next=NULL; P->prev=NULL;

}

return P;

}

a)

Hàm tạo một phần tử trong dánh sách liên kết vòng có nội dung x

b)

Hàm tạo một phần tử trong dánh sách đặc có nội dung x

c)

Hàm tạo một phần tử trong dánh sách liên kết đơn có nội dung x

d)

Hàm tạo một phần tử trong dánh sách liên kết kép có nội dung x

38.

Tìm mô tả đúng nhất cho hàm Len dưới đây, với khai báo:

typedef struct node{ int infor; struct node *next;}Node;

typedef Node *Listlink;

int Len (Listlink L){

Node *p=L;

int i=0;

while (p!=NULL){

i++;

p=p->next;

}

return i;

}

a)

Hàm đếm số phần tử trong danh sách liên kết kép.

b)

Hàm đếm số phần tử trong danh sách liên kết đơn.

c)

Hàm đếm số phần tử trong danh sách liên kết đặc

d)

Hàm đếm số phần tử trong danh sách liên kết vòng.

39.

Tìm mô tả đúng nhất cho hàm search dưới đây, với khai báo:

typedef struct node{

int infor;

struct node *next;

}Node;

typedef Node *Listlink;

Node *search (Listlink L, int x){

Node *p=L;

while (p!=NULL && p->infor !=x)

p=p->next;

return p;

}

a)

Hàm tìm kiếm số nguyên x trong danh sách liên kết đơn

b)

Hàm tìm kiếm số nguyên x trong danh sách liên kết kép

c)

Hàm tìm kiếm số nguyên x trong danh sách liên kết vòng

d)

Hàm tìm kiếm số nguyên x trong danh sách đặc

40.

Cho cấu rú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 dùng để đếm số nút trên cây nhị phân tìm kiếm t là số nguyên chẵn.

a)

(t->key%2!=0)

b)

(t->key%2=0)

c)

(t->key%2==0)

d)

(t%2==0)

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 Root;

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

a)

(Root->key%2=0)

b)

(Root->key%2==0)

c)

(Root %2 =0)

d)

(Root->key%2!=0)

42.

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;

struct node *Right;

}Node;

typedef Node *TREE;

int isEmpty(TREE root){

if(root == NULL)

return 1;

}

Hàm isEmpty thực hiện chức năng gì ?

a)

Hàm đếm số nút trên cây root

b)

KIểm tra cây root có khác rỗng không

c)

Hàm khởi tạo cây root rỗng

d)

Hàm đếm số nút lá trên cây root

43.

Hãy điền vào chỗ chấm chấm trong hàm Interchange:

void Interchange (int K[] , int n){

int i,j;

for ( i=0; i<n -1 ; i++)

for( j=i+1 ; j<n ; j++)

.................................

swap( &K [i] , & K [ j ]);

}

a)

if ( K [i ] == K [ j ])

b)

if ( K [i ] >< K [ j ])

c)

if ( K [i ] > K [ j ])

d)

if ( K [i ] = K [ j ])

44.

Cho kết quả của lần lặp thứ 4 khi sắp xếp mảng số nguyên theo phương pháp nổi bọt của mảng ban đầu : 9, 3, 6, 5, 3, 10, 8, 4

a)

3, 3, 4,5 9, 6 , 8,10

b)

9, 3, 6, 5,, 3, 10 , 8, 4

c)

3, 4 ,5 ,3, 9 , 6, 8, 10

d)

3, 3 , 4 ,5 ,6, 8, 9 ,10

45.

Số lần hoán vị các phần tử trong trường hợp tốt nhất theo phương pháp sắp xếp đổi chỗ trực tiếp

a)

0

b)

1

c)

n* ( n-1) / 2

d)

n*n/2

46.

Đánh gia sđộ phức tạp của giải thuật sau , biết " lệnh 1, lệnh 2" là các lệnh có độ phức tạp là O(1), m, n, x, y là đầu vào.

for( i-1; i<=n;i++)

for ( j= 1; j<=m ;j++){

for ( k=1; k<=x ;k++)

//lệnh 1

for ( h=1; h<=y ; h++)

//lệnh 2

}

a)

O ( n *min (x*m ,x*z))

b)

O ( n* m *max (x ,y))

c)

O( max (m,n))

d)

O( min (m,n))

47.

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

int kt( int n) {

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

if( n%2==0) 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ó là số nguyên tố

c)

Kiểm tra số nguyên n có là số toàn lẻ

d)

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

48.
a)

Hàm loại bỏ phần tử ở vị trí k trong danh sách đặc

b)

Hàm loại bỏ phần tử ở vị trí k trong danh sách liên kết đơn

c)

Hàm loại bỏ phần tử ở vị trí k trong danh sách liên kết kép

d)

Hàm loại bỏ phần tử ở vị trí k trong danh sách liên kết vòng

49.

Hàm Count thực hiện chức năng gì

a)

Duyệt cây root theo thứ tự giữa

b)

Đếm số nút trên cây R

c)

Duyệt cây root theo thứ tự sau

d)

Tìm kiếm nút trên cây

50.

Trong phương pháp sắp xép chọn lọc trực tiếp mảng số nguyên gồm n phần tử, số phép gán tối đa là bao nhiêu

a)

Tối đa (n-1)n/2 lần

b)

Tối đa n*n/2 lần

c)

Tối đa ( n+1)n/2 lần

d)

Tối đa ( n+2)n/2 lần