Đi từ cái riêng đến cái chung, từ các đối tượng thành phần ở mức cao đến các đối tượng thành phần ở mức thấp, từ mức đơn vị chương trình đến mức tổng thể, từ những đơn vị chương trình đ
Trang 1BỘ CÂU HỎI TRẮC NGHIỆM MÔN HỌC
KỸ THUẬT LẬP TRÌNH CHƯƠNG I TỔNG QUAN LẬP TRÌNH CẤU TRÚC
Câu loại 1
1. Ngôn ngữ lập trình nào dưới đây là ngôn ngữ lập trình cấu trúc:
2. Một biến được gọi là biến toàn cục nếu:
A Nó được khai báo bên ngoài tất cả
3. Một biến được gọi là biến địa phương nếu:
A Nó được khai báo bên trong các
4 Nếu x là một biến toàn cục và x không phải là một con trỏ thì:
A Miền nhớ dành cho x có thể thay
đổi trong quá trình thực hiện chương
trình.
B Miền nhớ dành cho x không bị thay đổi trong quá trình thực hiện chương trình.
C Miền nhớ dành cho x chỉ thay đổi
bởi những thao tác với x trong hàm
main().
D Miền nhớ dành cho x sẽ thay đổi bởi những thao tác với x trong tất cả các hàm kể cả hàm main().
5 Nếu x là một biến toàn cục thì:
A Giá trị của x luôn thay đổi trong
quá trình thực hiện chương trình.
B Giá trị của x chỉ bị thay đổi nếu có thao tác thay đổi nội dung của x trong hàm main()
C Giá trị của x sẽ thay đổi nếu có
thao tác thay đổi nội dung của x trong
bất kỳ hàm nào kể cả hàm main()
D.Giá trị của x không bị thay đổi bởi những thao tác trên x trong các hàm.
6 Nếu x là một biến địa phương thì:
A Miền nhớ dành cho x có thể thay
đổi trong quá trình thực hiện chương
trình.
B Miền nhớ dành cho x không bị thay đổi trong quá trình thực hiện chương trình.
C Miền nhớ dành cho x chỉ thay đổi
bởi những thao tác với x trong hàm
main().
D Miền nhớ dành cho x sẽ thay đổi bởi những thao tác với x trong tất cả các hàm kể cả hàm main().
Trang 27. Hãy cho biết đâu là nội dung của nguyên lý nhất quán:
A Quá trình phân rã vấn đề được
thực hiện từ chung nhất đến mức cụ
thể nhất Từ mức trừu tượng mang
tính tổng quan đến mức đơn giản nhất
là mức đơn vị chương trình.
B Đi từ cái riêng đến cái chung, từ
các đối tượng thành phần ở mức cao đến các đối tượng thành phần ở mức thấp, từ mức đơn vị chương trình đến mức tổng thể, từ những đơn vị chương trình đã biết lắp đặt thành những đơn
vị chương trình mới
C Dữ liệu thế nào thì thao tác đó
Cần sớm phát hiện những mâu thuẫn
giữa cấu trúc dữ liệu và thao tác trên
nó để kịp thời khắc phục.
D Mọi lỗi dù là nhỏ nhất cũng cần được phát hiện tại một bước nào đó của chương trình Quá trình kiểm tra
và phát hiện lỗi phải được khắc phục trước khi lỗi đó hoành hành.
8. Hãy cho biết đâu là nội dung của nguyên lý an toàn:
A Quá trình phân rã vấn đề được
thực hiện từ chung nhất đến mức cụ
thể nhất Từ mức trừu tượng mang
tính tổng quan đến mức đơn giản nhất
là mức đơn vị chương trình.
B Đi từ cái riêng đến cái chung, từ
các đối tượng thành phần ở mức cao đến các đối tượng thành phần ở mức thấp, từ mức đơn vị chương trình đến mức tổng thể, từ những đơn vị chương trình đã biết lắp đặt thành những đơn
vị chương trình mới
C Dữ liệu thế nào thì thao tác đó
Cần sớm phát hiện những mâu thuẫn
giữa cấu trúc dữ liệu và thao tác trên
nó để kịp thời khắc phục.
D Mọi lỗi dù là nhỏ nhất cũng cần được phát hiện tại một bước nào đó của chương trình Quá trình kiểm tra
và phát hiện lỗi phải được khắc phục trước khi lỗi đó hoành hành.
9. Hãy cho biết đâu là nội dung của nguyên lý Top-Down:
A Quá trình phân rã vấn đề được
thực hiện từ chung nhất đến mức cụ
thể nhất Từ mức trừu tượng mang
tính tổng quan đến mức đơn giản nhất
là mức đơn vị chương trình.
B Đi từ cái riêng đến cái chung, từ
các đối tượng thành phần ở mức cao đến các đối tượng thành phần ở mức thấp, từ mức đơn vị chương trình đến mức tổng thể, từ những đơn vị chương trình đã biết lắp đặt thành những đơn
vị chương trình mới
C Dữ liệu thế nào thì thao tác đó
Cần sớm phát hiện những mâu thuẫn
giữa cấu trúc dữ liệu và thao tác trên
nó để kịp thời khắc phục.
D Mọi lỗi dù là nhỏ nhất cũng cần được phát hiện tại một bước nào đó của chương trình Quá trình kiểm tra
và phát hiện lỗi phải được khắc phục trước khi lỗi đó hoành hành.
10.Hãy cho biết đâu là nội dung của nguyên lý Botton-Up:
A Quá trình phân rã vấn đề được
thực hiện từ chung nhất đến mức cụ
B Đi từ cái riêng đến cái chung, từ các đối tượng thành phần ở mức cao đến
Trang 3thể nhất Từ mức trừu tượng mang
tính tổng quan đến mức đơn giản nhất
là mức đơn vị chương trình.
các đối tượng thành phần ở mức thấp,
từ mức đơn vị chương trình đến mức tổng thể, từ những đơn vị chương trình
đã biết lắp đặt thành những đơn vị chương trình mới
C Dữ liệu thế nào thì thao tác đó
Cần sớm phát hiện những mâu thuẫn
giữa cấu trúc dữ liệu và thao tác trên
nó để kịp thời khắc phục.
D Mọi lỗi dù là nhỏ nhất cũng cần được phát hiện tại một bước nào đó của chương trình Quá trình kiểm tra
và phát hiện lỗi phải được khắc phục trước khi lỗi đó hoành hành.
11.Kiểu dữ liệu nào dưới đây được coi là kiểu dữ liệu cơ bản trong ngôn ngữ lập trình C:
Trang 419.Cho a = 3, b =2 và c là ba biến nguyên Biểu thức nào dưới đây viết sai cú
Trang 527.Xâu định dạng nào dưới đây dùng để in ra một số nguyên
Trang 6void swap ( int a, int b) {
int temp = a; a = b; b = temp;
void swap ( int a, int b) {
int temp = a; a = b; b = temp;
Trang 7#include <conio.h>
int a = 5, b = 12;
void swap ( int *a, int *b) {
int temp = *a; *a = *b; *b = temp;
void swap ( int *a, int *b) {
int temp = *a; *a = *b; *b = temp;
Trang 8int Function1(int a, int b){
if(a<b){ a = a+b; b = a-b; a=a-b;}
Trang 10CHƯƠNG 2 DUYỆT VÀ ĐỆ QUI
Câu loại 1
Câu 1 Phương pháp duyệt phải đảm bảo nguyên tắc:
A Xây dựng được một công thức tính
nghiệm cho lời giải bài toán.
B Không lặp lại các cấu hình đã duyệt trước đó.
C Từ một nghiệm đã biết ta phải có
phương pháp sinh ra nghiệm kế tiếp
của bài toán.
D Không lặp lại các cấu hình đã duyệt
và không bỏ xót bất kỳ một cấu hình nào.
Câu 2 Phương pháp định nghĩa bằng đệ qui là:
A Phương pháp định nghĩa đối tượng
thông qua các đối tượng khác.
B Phương pháp xác định đối tượng thông qua các đối tượng khác.
C Phương pháp định nghĩa đối tượng
thông qua chính nó.
D Phương pháp xác định đối tượng thông qua chính nó.
Câu 3 Một giải thuật được gọi là đệ qui nếu:
A Nếu nó giải bài toán bằng cách rút
gọn bài toán ban đầu thành chính nó
cho đến khi nhận được lời giải cuối
cùng.
B Nếu ta xây dựng được một phương pháp sinh ra cấu hình kế tiếp từ cấu hình chưa phải là cuối cùng.
Câu 4 Thuật toán sinh chỉ giải quyết được lớp các bài toán:
A Có thể rút gọn bài toán ban đầu
thành chính nó cho đến khi nhận được
lời giải cuối cùng.
B Có thể xác định được một thứ tự trên tập các cấu hình cần liệt kê Biết cấu hình ban đầu và cấu hình cuối cùng của bài toán.
C Có thể dùng một phương pháp vét
cạn tất cả các cấu hình của bài toán
D Xác định được thứ tự các cấu hình, biết cấu hình ban đầu và cấu hình kết thúc đồng thời xây dựng được một cách tìm ra cấu hình kế tiếp từ một cấu hình chưa phải là cuối cùng.
Câu 5 Số các xâu nhị phân có độ dài n là:
Trang 11Câu 7 Số các tập con k phần tử của tập n phần tử là:
Trang 12void main(void){
Trang 13printf("\n Ket qua:%d",function1(7));
void Function1(int *B, int n){
printf("\n Ket qua:");
for(int i=0; i<n;i++)
Câu loại 3 (câu suy luận)
Câu 22. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include <stdio.h>
#include <conio.h>
int Stop, count=0;
Trang 14void Result(int *B, int n){
int i;count++; printf("\n Ket qua
%d:",count);
for(i=1; i<=n;i++) printf("%3d", B[i]);
}
void Function1(int *B, int n){
int i = n;while(i>0 && B[i]){ B[i]=0; i ; }
A 16 tập con của 1, 2, 3, 4 B Xâu nhị phân kế tiếp của “0,0,0,0”
C Tập con kế tiếp của tập D 16 xâu nhị phân độ dài 4.
Câu 23. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include <stdio.h>
int Stop, count=0;
void Result(int *B, int n){
int i;count++; printf("\n Ket qua
while(i>0 && B[i]){ B[i]=0; i ; }
C Tập con kế tiếp của tập D 32 tập con của 1, 2, 3, 4, 5
Câu 24. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include <stdio.h>
Trang 15int n=5, k=3, count, C[]={0,2,3,4};
void Result(void){
printf("\n Ket qua:");
for(int i=1; i<=k; i++) printf("%3d", C[i]);}
void Function1(void){
int i,j; i = k;
while(i>0 && C[i]==n-k+i) i ;
if(i>0) { C[i]= C[i]+1;
for(j=i+1; j<=k; j++) C[j] = C[i]+j-i;}
printf("\n Ket qua:");
for(int i=0; i<n;i++) printf("%3d",P[i]);
printf("\n Ket qua:");
for(int i=0; i<n; i++) printf("%3d", B[i]);
Trang 16void main(){ Function1(0);}
A 16 tập con của 1, 2, 3, 4 B Xâu nhị phân kế tiếp của “0000”
C Tập con kế tiếp của tập D 16 xâu nhị phân độ dài 4
Câu 27. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
printf("\n Ket qua:");
for(int i=1; i<=k; i++) printf("%3d", P[i]); }
void Function1(int i){
for(int j=P[i-1]+1;j<=(n-k+i); j++){ P[i]=j;
if(i==k) Result();
else Function1(i+1);
} }
void main(void){Function1(1);}
A 10 tập con ba phần tử của 1, 2, 3,
4,5
B 120 hoán vị của 1,2,3,4,5
C 24 hoán vị của 1,2,3,4,5 D 32 xâu nhị phân độ dài 5
Câu 28. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
printf("\n Ket qua:");
for (int i=1; i<=n; i++) printf("%3d",P[i]); }
void Try(int i){
for(int j=1; j<=n;j++){
if(B[j]) { P[i]=j; B[j]=0;
if(i==n) Result();
else Try(i+1); B[j]=1;
Trang 17} }
Trang 18CHƯƠNG III NGĂN XẾP, HÀNG ĐỢI VÀ DANH SÁCH MÓC NỐI
Câu loại 1
1 Thao tác nào dưới đây thực hiện trên stack:
A Thêm phần tử vào vị trí bất kỳ B Thêm phần tử luôn thực hiện tại vị
trí đầu tiên.
C Loại bỏ phần tử tại vị trí bất kỳ D. Thêm và loại bỏ phần tử luôn thực
hiện tại một đầu
2 Thao tác nào dưới đây thực hiện trên hang đợi (queue):
A Thêm phần tử vào vị trí bất kỳ B Loại bỏ phần tử tại vị trí bất kỳ.
C Thêm phần tử luôn thực hiện tại
đỉnh vào
D Thêm và loại bỏ phần tử luôn thực
hiện tại đỉnh vào.
3 Thao tác nào dưới đây thực hiện trên hang đợi (queue):
A Thêm phần tử vào vị trí bất kỳ B Thêm phần tử luôn thực hiện tại vị
trí đầu tiên.
C Loại bỏ phần tử luôn thực hiện tại
đỉnh ra của hang đợi.
D Thêm và loại bỏ phần tử luôn thực
hiện tại đỉnh top của stack.
4 Cơ chế nào dưới đây được cài đặt cho hàng đợi:
C Cơ chế vào truớc ra trước (FIFO) D Cơ chế vào trước ra sau (FILO).
5 Cơ chế nào dưới đây được cài đặt cho stack:
vòng).
C Cơ chế vào truớc ra trước (FIFO). D Cơ chế vào trước ra sau (FILO).
6 Cho stack Q và trạng thái stack sau khi thực hiện liên tiếp các thao tácPush(Q,0), Push(Q,1), Push(Q,2) như trong hình S Hãy cho biết trạng thái kếtiếp của stack khi ta thực hiện thao tác Pop(Q)
1 0
Trang 197 Cho stack Q và trạng thái stack sau khi thực hiện liên tiếp các thao tácPush(Q,0), Push(Q,1), Push(Q,2) như trong hình S Hãy cho biết trạng thái kếtiếp của stack khi ta thực hiện thao tác Pop(Q).
8 Cho hàng đợi Q và trạng thái hiện tại S của hàng đợi sau khi thực hiện liên tiếpcác thao tác Push(Q,0), Push(Q,1), Push(Q,2), Push(Q,3), Push(Q,4), Hãy chobiết trạng thái mới của hàng đợi nếu ta thực hiện thao tác Pop(Q);
9 Cho hàng đợi Q và trạng thái hiện tại S của hàng đợi sau khi thực hiện liên tiếpcác thao tác Push(Q,0), Push(Q,1), Push(Q,2), Push(Q,3), Push(Q,4), Hãy chobiết trạng thái mới của hàng đợi nếu ta thực hiện thao tác Pop(Q);
10.Cho hàng đợi Q và trạng thái hiện tại S của hàng đợi sau khi thực hiện liên tiếpcác thao tác Push(Q,0), Push(Q,1), Push(Q,2), Push(Q,3), Push(Q,4), Hãy chobiết trạng thái mới của hàng đợi nếu ta thực hiện thao tác Push(Q,5);
1 2
1 2 3 4
0 1 2 3
0 1 2 3
4 3 2 1
0 1 2 3
4 3 2 1
5 4 3 2 1 0
0 1 2 3 4 5
5 4 3 2 1 0
Trang 2011.Cho hàng đợi Q và trạng thái hiện tại S của hàng đợi sau khi thực hiện liên tiếpcác thao tác Push(Q,0), Push(Q,1), Push(Q,2), Push(Q,3), Push(Q,4), Push(Q,5).Hãy cho biết trạng thái mới của hàng đợi nếu ta thực hiện thao tác Pop(Q);
12.Kh ông gian nhớ dùng để lưu trữ các node của danh sách liên kết đơn:
A Luôn lưu trữ liên tục trong bộ nhớ B Lưu trữ theo kiểu phân đoạn.
C Lưu trữ rời rạc trong bộ nhớ D Lưu trữ theo kiểu phân trang.
13.Không gian nhớ dùng để lưu trữ các node của danh sách liên kết kép:
A Luôn lưu trữ liên tục trong bộ nhớ B Lưu trữ theo kiểu phân đoạn.
C Lưu trữ rời rạc trong bộ nhớ D Lưu trữ theo kiểu phân trang.
14.Từ một đỉnh bất kỳ của danh sách liên kết đơn:
C Ta duyệt được các node bên phải
và bên trái danh sách.
D Ta không duyệt được các node bên
phải và bên trái danh sách.
Câu loại 2
15.Dấu hiệu nào dưới đây cho biết node p của một danh sách liên kết đơn là node cuối cùng:
A (p -> next !=NULL) B ( p ->infor !=NULL)
C ( p -> next ==NULL) D ( p ->infor ==NULL)
16.Dấu hiệu nào dưới đây cho biết node p của một danh sách liên kết đơn chưa phải là node cuốicùng bên phải:
A (p -> next !=NULL) B ( p ->infor !=NULL)
C ( p -> next ==NULL) D ( p ->infor ==NULL)
17.Dấu hiệu nào dưới đây cho biết danh sách liên kết đơn p là rỗng:
A (p -> next ==NULL) B ( p ->infor ==NULL)
C ( p ==NULL) D ( p ->right ==NULL)
18.Khi thêm một node p vào đầu danh sách liên kết đơn thì:
A Ta chỉ cần thiết lập liên kết phải
4 3 2 1 0
0 1 2 3 4
4 3 2 1 5
Trang 2119.Khi loại bỏ node p của danh sách liên kết đơn thì:
A Ta phải dịch chuyển về node gốc
20.Từ một đỉnh bất kỳ của danh sách liên kết kép:
A Ta chỉ duyệt được các node bên
phải danh sách.
B Ta chỉ duyệt được các node bên
trái danh sách.
C Ta duyệt được cả các node bên
phải và bên trái danh sách.
D Ta không duyệt được các node bên
phải và bên trái danh sách.
21.Dấu hiệu nào dưới đây cho biết node p của một danh sách liên kết kép là node cuối cùng bên trái:
A (p -> left !=NULL) B ( p ->infor !=NULL)
C ( p ->left ==NULL) D ( p ->infor ==NULL)
Câu loại 3
22.Dấu hiệu nào dưới đây cho biết node p của một danh sách liên kết kép là node gốc:
A.
(p -> left ==NULL) B ( p ->left) ->left ==NULL)
C ( p ->right ==NULL) D ( p ->right) ->left ==NULL)
23.Dấu hiệu nào dưới đây cho biết p là node duy nhất của danh sách liên kết kép:
A (p!= NULL) && (p -> left
==NULL)
B (p!= NULL) && (p -> left
==NULL) &&( p ->right ==NULL)
C (p!= NULL) &&( p ->right
==NULL)
D ( p ->right) ->left ==NULL)
24.Dấu hiệu nào dưới đây cho biết node p của một danh sách liên kết kép chưa phải là node cuối cùng bên phải:
A (p -> left ==NULL) B. ( p ->right !=NULL)
C ( p ->right ==NULL) D (p -> left !=NULL)
25.Dấu hiệu nào dưới đây cho biết node p của một danh sách liên kết kép là node cuối cùng bên phải:
A (p -> left ==NULL) B ( p ->right !=NULL)
C.
( p ->right ==NULL) D (p -> left !=NULL)
26.Khi thêm node p vào đầu danh sách liên kết kép L Ta cần phải:
Trang 22L cùng với liên kết trái cho L.
27.Thuật toán BFS duyệt các đỉnh của đồ thị được xây dựng dựa trên cấu trúc dữ liệu:
C Danh sách móc nối đơn D Danh sách móc nối kép
28.Thuật toán BFS duyệt các đỉnh của đồ thị được xây dựng dựa trên cấu trúc dữ liệu:
C Danh sách móc nối đơn D Danh sách móc nối kép
29.Thuật toán tìm một chu trình Euler của đồ thị được xây dựng dựa trên dữ liệu:
C Danh sách móc nối đơn D Danh sách móc nối kép
30.Thuật toán tìm một chu trình Euler của đồ thị được xây dựng dựa trên dữ liệu:
C Danh sách móc nối đơn D Danh sách móc nối kép