wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

CTDL_5

Total questions: 50

Worksheet time: 50mins

Name
Class
Date
1.

Cho biết sự khác biệt giữa hai lệnh:

gets(hten) ; scanf("%s", hten);

với biến hten được khai báo: char hten[50];

a)

gets(hten) nhập vào chuỗi hten có thể chứa dấu cách, còn lệnh scanf("%s", hten); nhập chuỗi hten nhưng hten không chứa dấu cách

b)

Hai lệnh hoàn toàn giống nhau

c)

scanf("%d", hten) nhập vào chuỗi cho hten có thể chứa dấu cách , còn lệnh gets(hten); thì hten không chứa dấu cách

d)

lệnh gets(hten); hiển thị chuỗi hten, lệnh scanf("%d", hten); nhập chuỗi

2.

Trong ngôn ngữ lập trình C cú pháp sau dùng để khái báo biến gì

char<tên biến>[số kí tự tối đa]

a)

Khai báo mảng số nguyên

b)

Khai báo chuỗi

c)

Khai báo mảng số thực

d)

Khai báo con trỏ kiểu char

3.

Cho biết ý nghĩa của lệnh sau với khai báo int *pa;

pa=(int)*malloc(sizeof(int));

a)

Xóa bộ nhớ đã cấp phát bộ nhớ cho con trỏ số nguyên pa

b)

Xin cấp phát bộ nhớ cho con trỏ số thực pa

c)

Xin cấp phát bộ nhớ cho con trỏ số nguyên pa

d)

Xóa bộ nhớ đã cấp phát cho con trỏ số thực pa

4.

Cho biết ý nghĩa của câu lệnh sau với khai báo int *pa;

free(pa)

a)

Khai báo chuỗi

b)

Thu hồi bộ nhớ con trỏ số nguyên pa

c)

xóa bộ nhớ đã cấp phát cho con trỏ số thực pa

d)

Xin cấp phát bộ nhớ cho con trỏ số thực pa

5.

Hàm sum(n) là hàm tính tổng các bình phương của của n số nguyên dương đầu tiên. Hãy cho biết kết quả của hàm Sum(10)

a)

55

b)

385

c)

100

d)

386

6.

Cho biết ý nghĩa của câu lệnh sau

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

sum+=i*i;

a)

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

b)

Tính tổng n số nguuyeen dương cuối cùng

c)

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

d)

Tính bình phương của số nguyên dương n.

7.

Cho hàm kt(n) và số nguyên m=199. 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)

kt(m) trả về 1

b)

kt(m) trả về 2

c)

kt(m) trả về 22

d)

kt(m) trả về 0

8.

Với giải thuật sau, khi n=10 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)

388

b)

386

c)

387

d)

385

9.

Khi viết hàm T(n) = 1+2+3+...+n, n là số tự nhiên bằng giải thuật đệ quy, lời gọi đệ quy nào được gọi cuối cùng?

a)

T(1)

b)

T(n)

c)

T(n+1)

d)

T(n-1)

10.

Cho biết kết quả khi gọi Tinh(-10) của hàm sau:

float Tinh(float n){

if(n<=0) return 0;

if(n==1) return 0.5

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

}

a)

0.5

b)

1.5

c)

0

d)

1

11.

Cho biết kết quả khi gọi Tinh(1) của hàm sau:

int Tinh(int n){

if(n==0) return 0;

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

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

}

a)

0

b)

1

c)

0.5

d)

5

12.

Cho biết phần cơ sở của hàm sau:

int 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(abs(n)==1) return 1;

c)

if(n==0) return 0;

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

d)

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

13.

Cho khai báo sau:

#define Max 200;

typedef struct {

int data[Max];

int count;

} List;

cho biết phần tử tối đa của mảng

a)

100

b)

200

c)

1

d)

count

14.

Khi khai báo cấu trúc dữ liệu của danh sách đặc lưu trữ các số thực thì danh sách gồm những trường nào?

a)

Danh sách gồm hai trường: Một mảng chứa các số thực, một phần tử lưu số phần tử hiện tại của danh sách

b)

Một mảng chứa các số thực

c)

Một số thực lưu trữ số phần tử hiện tại của danh sách

d)

không có trường hợp nào

15.

Cho khai báo danh sách đặc sau:

typedef struct list{

int data [100];

int Last;

}List ;

List L;

Với điều kiện nào của p thì không xóa được phần tử ở vị trí thứ p ra khỏi danh sách đặc L.

a)

p<=L.Last

b)

p>0

c)

0<p<=L.Last

d)

(p>L.Last) || (p<0)

16.

Cho khai báo cấu trúc dữ cho danh sách đặc như sau:

typedef struct list {

float a[100];

int Last;

}List;

List L;

Lệnh nào được dùng để nhập dữ liệu cho phần tử i trong danh sách đặc L kiểu List

a)

scanf("%d", &L.a[i])

b)

scanf("%f", &L.a[i])

c)

scanf("%f", &L.Last])

d)

gets(a[i])

17.

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

a)

return (L.Count==0)

b)

return (L.Count <>0)

c)

return (L.Count !=0)

d)

return (L.Count ><0)

18.

Cho khai báo cấu trúc dữ liệu 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ì được danh sách rỗng. Ban đầu danh sách L có bao nhiêu phần tử?

a)

L.Last=1;

b)

L.Last=2;

c)

L.Last=3;

d)

L.Last=0;

19.

Đồ thị là đồ thị gì

a)

Đồ thị vô hướng có trọng số

b)

Đồ thị vô hướng không có trọng số

c)

Đồ thị vô có hướng không có trọng số

d)

Đồ thị vô có hướng có trọng số

20.

Đồ thị sau là đồ thị gì?

a)

Đồ thị vô hướng có trọng số

b)

Đồ thị vô hướng không trọng số

c)

Đồ thị có hướng có trọng số

d)

Đồ thị hướng không có trọng số

21.

cho cây sau cho biết kết quả duyệt cây theo thứ tự trước (NLR)

a)

41,20,11,29,32,65,50,91,72,99

b)

99,72,91,50,65,32,29,11,20,41.

c)

32,29,11,20,41,99,72,91,50,65.

d)

50,65,32,29,11,20,41,99,72,91.

22.

cho cây sau cho biết kết quả duyệt cây theo thứ tự sau (LRN)

a)

32,29,11,20,41,99,72,91,50,65

b)

32,29,11,20,41,99,72,91,50,65

c)

11,32,29,20,50,72,99,91,65,41

d)

99,72,91,50,65,32,29,11,20,41.

23.

cho cây sau cho biết kết quả duyệt cây theo thứ tự giữa (LNR)

a)

20,11,29,32,60,50,91,72,99

b)

11,20,29,32,35,50,60,72,91,99

c)

32,29,11,20,35,99,72,91,50,60

d)

35,20,11,29,32,60,50,91,72,99

24.

Cho biểu thức sau tính giá trị của biểu thức trên cây

a)

340000

b)

440000

c)

540000

d)

640000

25.

Trong ngôn ngữ lập trình C , chọn khái báo nguyên mẫu hàm tìm kiếm tuần tự số nguyên x trên mảng số nguyên arr gồm n phần tử, hàm trả về vị trí đầu tiên tìm thấy .

a)

int search( int arr [ ], int x);

b)

int search( int x );

c)

int search( int arr [ ], int n, int x );

d)

int search(int n, int x );

26.

Trong ngôn ngữ lập trình C , chọn khái báo nguyên mẫu hàm tìm kiếm nhị phân số nguyên x trên mảng số nguyên arr gồm n phần tử, hàm trả về vị trí đầu tiên tìm thấy .

a)

int search ( int arr [ ], int n, int x);

b)

int search ( int x);

c)

int Search ( int arr [ ],int x);

d)

int binarySearch ( int arr [ ], int n, int x);

27.

Cho Thuật toán sắp xếp mảng K gồm n số nguyên, thuật toán dưới đây thuộc phương pháp sắp xếp nào?

Bước 1: i=0;

Bước 2: Tìm min sao cho K[min] nhỏ nhất trong dãy K[i]...K[n]

Bước 3: Nếu min khác i thì đổi chỗ K[i] cho K[min]

Bước 4: Nếu i<n-1 thì tăng i thêm 1 vị trí (i=i+1), quay lại Bước 2, ngược lại thì dừng, dãy đã cho đã sắp xếp đúng vị trí

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

c)

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

d)

Phương pháp sắp xếp chọn trực tiếp

28.

Cho giải thuật sắp xếp mảng K gồm n số nguyên, thuật tonas dưới đây thuộc phương pháp sắp xếp nào?

Bước 1: t=K[i]; //Giữ lại giá trị

Bước 2: So sánh t với K[i-1];

nếu t<K[i-1] thì K[i] = K[i-1] ; i=i-1;

Bước 3: Nếu (i>0 && t<K[i]) thì lặp lại bước 2, ngược lại nếu bằng thì dừng

Quá trinhg trên lặp lại n-1 lần và ta giả sử ban đầu dãy chỉ gồm phần tử đã sắp xếp >

a)

Phương pháp sắp xếp nhanh

b)

Phương pháp sắp xếp trèn trực tiếp

c)

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

d)

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

29.

Cho mảng số nguyên, cho kết quả của lần lặp đầu tiên để sắp xếp mảng tăng dần theo phương pháp chọn trực tiếp:

7,6,9,5,3,4,8,2.

a)

2,6,9,5,3,4,8,7

b)

2,3,9,5,6,4,8,7

c)

2,3,,4,5,6,9,8,7

d)

7,6,9,5,3,4,8,2

30.

Cho mảng số nguyên, cho kết quả của lần lặp đầu tiên để sắp xếp mảng tăng dần theo phương pháp chèn trực tiếp:

7,6,9,5,3,12,1,8,10

a)

7,6,9,5,3,12,1,8,10

b)

1,3,9,5,6,12,7,8,10

c)

1,6,9,5,3,12,7,8,10

d)

6,7,9,5,3,12,1,8,10

31.

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

s= 1; p=1;

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

p=p*x/i;

s=s+p;

}

a)

O(n)

b)

O(n2)

c)

O(log2n)

d)

O(n3)

32.

Đánh gia sđộ phức tạp của thuật toán tính s=n*(n-1)/2; n là giá trị đầu vào

a)

O(n3)

b)

O(log2n)

c)

O(1)

d)

O(n2)

33.

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

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

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

a[i,j]= a[j,i]

a)

O(n)

b)

O(n2)

c)

O(log2n)

d)

O(n3)

34.

Ý tưởng "Chừng nào mà số n còn lớn hơn ), ta sẽ tăng giá trị đếm 1 đơn vị, và sau đó chia nguyên n với 10 để bỏ chữ số cuối của nó" là ý tưởng của thuật toán nào

a)

Tính tổng các chữ số của n

b)

Đếm số chữ số của số nguyên dương n.

c)

Kiểm tra số n có chia hết cho 10 không

d)

Đảo ngược số nguyên dương n

35.

Cho biết mô tả đúng nhất của hàm sau:

int DigitCount( int n) {

if(n<0) return -1;

if(n==0) return 0;

return 1+ DigitCount (n/10)

}

a)

Đếm số chữ số của số nguyên dương n.

b)

Kiểm tra số n có chia hết cho 10 không

c)

Tính tổng các chữ số của n

d)

Đảo ngược số nguyên dương n

36.

Cho biết kết quả khi gọi DigitCount (2345) với hàm DigitCount được xây dựng như sau:

int DiagitCount(int n){

if(n<0) return -1;

if( n==0) return 0;

return 1 +DigitCount(n/10);

}

a)

14

b)

0

c)

4

d)

5432

37.

Trong danh sách liên kết đơn L, hàm khởi tạo danh sách L thuộc kiểu List sẽ được xây dựng như thế nào

a)

void Init (Listlink *L) { L =NULL; }

b)

void Init (Listlink *L) { (*L).Head=NULL; (*L).Tail=NULL; }

c)

void Init (Listlink *L) { (*L).Count=0; }

d)

void Init (Listlink *L) { (*L) =NULL; }

38.

Trong danh sách đặc L, hàm khởi tạo danh sách L thuộc kiểu List sẽ được xây dựng như thế nào

a)

void Init (List *L) { (*L).Count=0; //Count so phan tu hien tai cua danh sach }

b)

void Init (Listlnk *L) { (*L)=NULL }

c)

void Init (Listlnk *L) { L=NULL }

d)

void Init (DList *L) { (*L).Head=0 (*L).Tail=NULL; }

39.

Trong danh sách liên kết kép L, hàm khởi tạo danh sách L thuộc kiểu List sẽ được xây dựng như thế nào?

a)

void Init ( List *L) { (*L).Head=NULL; (*L).Tail=NULL; }

b)

void Init ( Listlink *L) { (*L)=NULL; }

c)

void Init ( List *L) { (*L).Count=0; }

d)

void Init ( Listlink *L) { L=NULL; }

40.

Quá trình tìm nút có giá trị bằng 29 trên cây nhị phân tìm kiếm dưới đây phải duyệt qua những nút có giá trị nào

a)

2->11->20->29

b)

45->20 ->29

c)

45->29

d)

45->65->50->20->29

41.

Cây 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 60,20,65,11,2,15,29,32,50,91,72,99 . Cho biết kết quả của phép duyệt trước (NLR) cây vừa xây dựng

a)

2,15,11,32,29,20,50,72,99,91,65,60.

b)

2,11,15,20,29,20,50,72,99,91,65,60.

c)

60,20,11,2,15,29,32,65,50,91,72,99.

d)

2,11,15,20,29,32,50,72,99,91,65,60.

42.

Cho biết cây có kết quả sau khi thêm nút có giá trị bằng 35

a)

Cây có kết quả gióng cây ban đầu

b)

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

c)

Cây kết quả loại bỏ nút có giá trị 35

d)

Cây rỗng

43.

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

int binarySearch (int arr[], int l, int r, int x){

if(r>=l){

int mid=1+(r-1)/2;

if(arr[mid] ==x)

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

if(arr[mid]>x)

return binarySearch (arr,l,mid-1,x);

return binarySearch(arr,mid+1,r,x);

}

a)

return;

b)

return mid;

c)

return x;

d)

return r;

44.

Cho hàm search tìm kiếm x trong mảng arr, hãy điền vào chỗ chấm trong hàm sau:

int search (int arr[], int n, int x){

int i;

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

if(.......................)

return i;

return -1;

}

a)

arr[i]==x

b)

arr[i]=x

c)

arr[i]!=x

d)

arr[i]<>x

45.

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

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

int i ; int j;

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

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

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

if (K [j] <K[min] )

min=j;

}

if( min!=i) swap(&K[i], &K[min] );

}

}

a)

i=min

b)

min=i;

c)

i==min

d)

min==i

46.

Đánh giá độ 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,z là đầu vào.

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

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

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

//lệnh 1

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

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

//lệnh 2

}

a)

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

b)

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

c)

O(max(m,n))

d)

O(max(m,n))

47.

Tìm mô tả đúng nhất của hàm sau:

float T( int x, int y){

if(y==0) return 1;

else

if(y<0) return T(x,y+1)*(float)1/x;

else return x*T(x,y-1);

}

a)

Tính y mũ x

b)

Tính y mũ x+1

c)

Tính x mũ y

d)

Tính x mũ y+1

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 vòng

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 đơn

49.

hàm PreOrder thực hiện chức năng gì?

a)

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

b)

Duyệt câu root theo thứ tự trước

c)

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

d)

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

50.

Trong phương pháp sắp xếp nhanh , trường hợp xấu nhất độ phức tạp của gải thuật là gì?

a)

O(nlog2n)

b)

O(n2)

c)

O(n3)

d)

O(n)