Ngân hàng đề thi môn kĩ thuật lập trình
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: a Ngôn ngữ Fortran b Ngôn ngữ Pascal c Ngôn ngữ Cobol d Ngôn ngữ Assembler
Bạn đang xem trước 20 trang tài liệu Ngân hàng đề thi môn kĩ thuật lập trình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Km10 Đường Nguyễn Trãi, Hà Đông-Hà Tây
Tel: (04).5541221; Fax: (04).5540587
Website: E-mail: dhtx@e-ptit.edu.vn
NGÂN HÀNG ĐỀ THI
Môn: KỸ THUẬT LẬP TRÌNH
Số tín chỉ : 3
SỬ DỤNG CHO NGÀNH ĐIỆN TỬ - VIỄN THÔNG
HỆ ĐẠI HỌC TỪ XA
CHƯƠNG I: TỔNG QUAN LẬP TRÌNH CẤU TRÚC
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:
a Ngôn ngữ Fortran
b Ngôn ngữ Pascal
c Ngôn ngữ Cobol
d Ngôn ngữ Assembler
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 hàm main().
b Nó được khai báo bên trong hàm main().
c Nó được khai báo bên ngoài các hàm kể cả hàm main().
d Nó được khai báo bên ngoài tất cả các hàm ngoại trừ hàm main().
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 hàm main().
b Nó được khai báo bên trong các hàm ngoại trừ hàm main().
c Nó được khai báo bên trong các hàm hoặc thủ tục kể cả hàm main().
d Nó được khai báo bên ngoài các hàm kể cả hàm main().
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 không bị thay đổi trong quá trình thực hiện chương trình.
b Miền nhớ dành cho x có thể thay đổi trong quá trình thực hiện chương trình.
c 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().
d Miền nhớ dành cho x chỉ thay đổi bởi những thao tác với x trong hàm main().
5/ Nếu x là một biến toàn cục thì:
a 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().
b Giá trị của x luôn thay đổi trong quá trình thực hiện chương trình.
c 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.
d 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() .
6/ Nếu x là một biến địa phương thì:
a 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().
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 có thể thay đổi trong quá trình thực hiện chương trình.
1
7/ 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:
a Kiểu con trỏ
b Kiểu double
c Kiểu hợp
d Kiểu mảng
8/ Giả sử a và b là hai số thực. Biểu thức nào dưới đây viết không đúng theo cú pháp của ngôn ngữ lập
trình C.
a (a -=b);
b ( a &=b);
c (a += b);
d ( a *=b );
9/ Giả sử a và b là hai số thực. Biểu thức nào dưới đây là không được phép theo cú pháp của ngôn ngữ
lập trình C.
a (a += b);
b ( a>>=b);
c ( a *=b);
d ( a -= b);
10/ Cho a = 3, b =2. Biến c = (a <<=b) sẽ có giá trị nào trong những giá trị dưới đây:
a c = 8
b c = 9
c c = 6
d c = 12
11/ Cho a = 3, b =2. Biến c = (a >>=b) sẽ có giá trị nào trong những giá trị dưới đây:
a c = 1.5
b c = 1
c c = 0
d c = -1
12/ Cho a = 3, b =2. Biến c = (a |=b) sẽ có giá trị nào trong những giá trị dưới đây:
a c = 4
b c = 5
c c = 3
d c = 1
13/ Cho a = 3, b =2. Biến c = (a &= b) sẽ có giá trị nào trong những giá trị dưới đây:
a c = 0
b c = 3
c c = 1
d c = 2
14/ Cho a = 3, b =2. Biến c = (a ^= b) sẽ có giá trị nào trong những giá trị dưới đây:
a c = 3
b c = 2
c c = 1
d c = 0
15/ 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ú pháp của ngôn ngữ lập
trình C.
a (c = a & b );
2
b (c = a | b );
c (c = a && b);
d (c = a<<b );
16/ Cho a =3, b=2, c. Câu lệnh rẽ nhánh nào viết sai theo cú pháp của ngôn ngữ lập trình C.
a if ( (c = a & b )!=0) { …};
b if ( (c = a & b )=0) { …};
c if ( (c = a & b )<=0) { …};
d if ( (c = a & b )>=0) { …};
17/ Xâu định dạng nào dưới đây dùng để in ra một số nguyên ở hệ 16.
a “%d”
b “%u”
c “%x”
d “%i”
18/ Xâu định dạng nào dưới đây dùng để in ra một số nguyên ở hệ 8.
a “%O”
b “%x”
c “%u”
d “%ld”
19/ Xâu định dạng nào dưới đây dùng để in ra một kí tự.
a “%s”
b “%f”
c “%x”
d “%c”
20/ Xâu định dạng nào dưới đây dùng để in ra một xâu kí tự.
a “%f”
b “%x”
c “%c”
d “%s”
21/ Xâu định dạng nào dưới đây dùng để in ra một số nguyên dài.
a “%ld”
b “%x”
c “%o”
d “%d”
22/ Xâu định dạng nào dưới đây dùng để in ra địa chỉ của biến.
a “%o”
b “%p”
c “%u”
d “%e”
23/ Xâu định dạng nào dưới đây dùng để in ra một số nguyên.
a “%d”
b “%e”
c “%p”
d “%u”
24/ Xâu định dạng nào dưới đây dùng để in ra một số thực có độ chính xác kép.
a “%e”
b “%p”
3
c “%u”
d “%o”
25/ Xâu định dạng nào dưới đây dùng để in ra một số thực có độ chính xác đơn.
a “%p”
b “%u”
c “%f”
d “%e”
26/ Hàm nào dưới đây chỉ dùng để đọc một kí tự từ tệp.
a Hàm scanf()
b Hàm fscanf()
c Hàm fgetc()
d Hàm getch()
27/ Hàm nào dưới đây chỉ dùng để nhập dữ liệu từ tệp.
a Hàm scanf()
b Hàm fscanf()
c Hàm getch()
d Hàm fgetc()
28/ Hàm nào dưới đây chỉ dùng để nhập dữ liệu từ bàn phím.
a Hàm scanf()
b Hàm fgetc()
c Hàm getch()
d Hàm fscanf()
29/ Hàm nào dưới đây chỉ dùng để xuất một kí tự ra màn hình.
a Hàm fputs()
b Hàm fputc()
c Hàm putch()
d Hàm puts()
30/ Hàm nào dưới đây chỉ dùng để ghi một kí tự vào tệp.
a Hàm putch()
b Hàm puts()
c Hàm fputs()
d Hàm fputc()
31/ Hàm nào dưới đây chỉ dùng để đưa một xâu kí tự ra màn hình.
a Hàm fputs()
b Hàm puts()
c Hàm fputc()
d Hàm putch()
32/ Hàm nào dưới đây chỉ dùng để ghi một xâu kí tự vào tệp.
a Hàm fputs()
b Hàm putch()
c Hàm puts()
d Hàm fputc()
33/ Hàm nào dưới đây chỉ dùng để đọc một dòng từ tệp.
a Hàm fscanf()
b Hàm fgetc()
4
c Hàm gets()
d Hàm fgets()
34/ Hàm nào dưới đây chỉ dùng để nhập một xâu kí tự bất kì từ bàn phím.
a Hàm scanf()
b Hàm gets()
c Hàm fscanf()
d Hàm fgets()
35/ Hàm nào dưới đây chỉ dùng để đọc một khối dữ liệu trong file.
a Hàm fgets()
b Hàm fwrite()
c Hàm fread()
d Hàm fputs()
36/ Hàm nào dưới đây chỉ dùng để ghi một khối dữ liệu vào file.
a Hàm fputs()
b Hàm fread()
c Hàm fgets()
d Hàm fwrite()
37/ Hãy cho biết giá trị của a và b sau khi thực hiện đoạn chương trình dưới đây.
#include
#include
int a = 5, b = 12;
void swap ( int a, int b) {
int temp = a; a = b; b = temp;
}
void main(void){
swap(a, b); printf(“\n a = %d b = %d”, a , b);
}
a a = 12, b = 5;
b a =12, b = 12;
c a = 5, b=12;
d a = 5; b=5;
38/ Hãy cho biết giá trị của a và b sau khi thực hiện đoạn chương trình dưới đây.
#include
#include
int a = 5, b = 12;
void swap ( int a, int b) {
int temp = a; a = b; b = temp;
}
void main(void){
int a = 3, b = 2;
swap(a, b); printf(“\n a = %d b = %d”, a , b);
}
a a = 12, b = 5;
b a = 3, b=2;
c a =2, b = 3;
d a = 5; b=12;
39/ Hãy cho biết giá trị của a và b sau khi thực hiện đoạn chương trình dưới đây.
#include
5
#include
int a = 5, b = 12;
void swap ( int *a, int *b) {
int temp = *a; *a = *b; *b = temp;
}
void main(void){
swap(&a, &b); printf(“\n a = %d b = %d”, a , b);
}
a a = 5, b=12;
b a = 5; b=5;
c a = 12, b = 5;
d a =12, b = 12;
40/ Hãy cho biết giá trị của a và b sau khi thực hiện đoạn chương trình dưới đây.
#include
#include
int a = 5, b = 12;
void swap ( int *a, int *b) {
int temp = *a; *a = *b; *b = temp;
}
void main(void){
int a = 3, b = 2;
swap(&a, &b); printf(“\n a = %d b = %d”, a , b);
}
a a = 3, b=2;
b a =2, b = 3;
c a = 5; b=12;
d a = 12, b = 5;
41/ Hãy cho biết giá trị của a và b sau khi thực hiện đoạn chương trình dưới đây.
#include
#include
int a = 5, b = 12;
void swap ( int a, int b) {
a = a + b; b = a - b; a = a - b;
}
void main(void){
int a = 3, b = 2;
swap(a, b); printf(“\n a = %d b = %d”, a , b);
}
a a = 17, b = 0;
b a = 5; b=1;
c a = 3, b=2;
d a =2, b = 3;
42/ Hãy cho biết giá trị của a và b sau khi thực hiện đoạn chương trình dưới đây.
#include
#include
int a = 5, b = 12;
void swap ( int *a, int *b) {
= *a + *b; *b = *a - *b; *a = *a - *b;
}
void main(void){
int a = 3, b = 2;
swap(&a, &b); printf(“\n a = %d b = %d”, a , b);
6
}
a a =2, b = 3;
b a = 5; b=1;
c a = 17, b = 0;
d a = 3, b=2;
43/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây.
#include
#include
int Function1(int a, int b){
while(a!=b){
if (a>b) a=a-b; else b=b-a;
}
return(a);
}
void main(void){
int a=12, b=8;
printf("\n Ket qua:%d",Function1(a,b));
}
a Kết quả: 8
b Kết quả: 0
c Kết quả: 4
d Kết quả: 12
44/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây.
#include
#include
int Function1(int a, int b){
if(a<b){ a = a+b; b = a-b; a=a-b;}
while(b!=0){
int r= a%b; a=b; b = r;
}
return(a);
}
void main(void){
int a=12, b=8;
printf("\n Ket qua:%d",Function1(a,b));
}
a Kết quả: 4
b Kết quả: 8
c Kết quả: 0
d Kết quả: 12
45/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây.
#include
#include
int Function1(int a, int b){
int d = a*b;
while(a!=b){
if (a>b) a=a-b; else b=b-a;
}
return(d/a);
}
void main(void){
int a=12, b=8;
7
printf("\n Ket qua:%d",Function1(a,b));
}
a Kết quả: 8
b Kết quả: 4
c Kết quả: 24
d Kết quả: 12
46/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây.
#include
#include
int Function1(int a, int b){
int d=a*b;
if(a<b){ a = a+b; b = a-b; a=a-b;}
while(b!=0){
int r= a%b; a=b; b = r;
}
return(d/a);
}
void main(void){
int a=12, b=8;
printf("\n Ket qua:%d",Function1(a,b));
}
a Kết quả: 4
b Kết quả: 8
c Kết quả: 24
d Kết quả: 12
8
CHƯƠNG II: DUYỆT VÀ ĐỆ QUI
1/ Phương pháp duyệt phải đảm bảo nguyên tắc:
a 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.
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 Xây dựng được một công thức tính nghiệm cho lời giải bài toán.
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 chính nó.
b Phương pháp xác định đối tượng thông qua chính nó.
c Phương pháp xác định đối tượng thông qua các đối tượng khác.
d Phương pháp định nghĩa đối tượng thông qua các đối tượng khác.
3/ Một giải thuật được gọi là đệ qui nếu:
a 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.
b Nó chỉ ra được một phương pháp duyệt tất cả các cấu hình của bài toán .
c Nó xác định được lời giải của bài toán thông qua một số điều kiện ban đầu.
d Nếu nó giải bài toán bằng cách rút gọn đầu vào của bài toán cho đến khi nhận được lời giải của
đấu vào cuối cùng.
4/ Thuật toán sinh chỉ giải quyết được lớp các bài toán:
a 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 .
b Có thể xác định được một thứ tự trên tập các cấu hình. 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ể 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.
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 thuật toán 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.
5/ Số các xâu nhị phân có độ dài n là:
a n2
b n!
c 2n
d n! / k!(n-k)!
6/ Số các tập con của 1, 2, ..,n là:
a n! / k!(n-k)!
b n2
c n!
d 2n
7/ Số các tập con k phần tử của tập n phần tử là:
a n!
b n! / k!(n-k)!
c 2n
d n2
8/ Số các hoán vị của 1, 2, …,n là:
a n2
b n! / k!(n-k)!
c 2n
d n!
9
9/ Xâu nhị phân nào dưới đây là xâu nhị phân kế tiếp của xâu b = 10111.
a 11100
b 11011
c 11000
d 11011
10/ Hoán vị nào dưới đây là hoán vị kế tiếp của hoán vị 2 1 3 4 5 .
a 21453
b 21354
c 21534
d 21543
11/ Cho tập hợp X = {1, 2, 3, 4, 5}. Tập con 3 phần tử nào trong X là tập con kế tiếp của tập con {2,
3, 4}.
a {2, 3, 5}
b {3, 4, 5}
c {3, 4, 5}
d {2, 4, 5}
12/ Cho tập hợp X = {1, 2, 3, 4, 5}. Tập con 3 phần tử nào trong X là tập con kế tiếp của tập con {
2,3, 5}.
a {2, 3, 5}
b {3, 4, 5}
c {3, 4, 5}
d {2, 4, 5}
13/ Hãy cho biết xâu nhị phân kế tiếp của xâu “1011.0111”
a 1011.1001
b 1011.1000
c 1100.1000
d 1100.0000
14/ Hãy cho biết tập con bốn phần tử kế tiếp của tập “2 3 4 5” trong tập các số {1, 2, 3, 4, 5, 6, 7}
a {3, 5, 6, 7}
b { 2, 3, 4, 6}
c {4 ,5 , 6, 7}
d {3, 4, 5, 6}
15/ Hãy cho biết hoán vị kế tiếp của hoán vị : 2 1 3 4 5 6 7
a 2 1 3 4 5 7 6
b 2 1 6 4 5 7 3
c 2 1 3 4 6 5 7
d 2 1 3 5 4 7 6
16/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
#include
int Stop, count=0;
void 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){
10
int i = n;while(i>0 && B[i]){ B[i]=0; i--; }
if(i==0 ) Stop=1; else B[i]=1;
}
void Function2(int *B, int n){
int i;Stop = 0;
while (!Stop) { Result(B,n);Function1(B,n);}
}
void main(void){
int B[]= {0,0,0,0}, n=4;Function2(B,n);
}
a 16 xâu nhị phân độ dài 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 F
d 16 tập con của 1, 2, 3, 4
17/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
int Stop, count=0;
void 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--; }
if(i==0 ) Stop=1; else B[i]=1;
}
void Function2(int *B, int n){
int i;Stop = 0;
while (!Stop) { Result(B,n);Function1(B,n);}
}
void main(void){
int i, B[]= {0,0,0,0,0}, n=5; Function2(B,n);
}
a Xâu nhị phân kế tiếp của “0,0,0,0,0”
b 32 tập con của 1, 2, 3, 4, 5
c 32 xâu nhị phân độ dài 4
d Tập con kế tiếp của tập F
18/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
int 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;
}
}
void main(void){ Function1();Result(); }
11
a Kết quả: 2 3 5
b Kết quả: 2 4 5
c Kết quả: 2 1 3
d Kết quả: 2 4 3
19/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
int P[]={ 3,2,1,4}, n=4;
void Result(void){
printf("\n Ket qua:");
for(int i=0; i<n;i++) printf("%3d",P[i]);
}
void Function1(void){
int j, k, r, s, temp;j = n-2;
while(j>=0 && P[j]>P[j+1]) j--;
if(j>=0){ k=n-1;while(P[j]>P[k]) k--;
temp = P[j]; P[j]=P[k]; P[k]=temp;
r=j+1; s=n-1;
while(r<s){ temp=P[r];P[r]=P[s]; P[s]=temp;r++; s--;}
}
}
void main(void){
Function1();Result();
}
a Kết quả: 3 4 1 2
b Kết quả: 3 4 2 1
c Kết quả: 3 1 4 2
d Kết quả: 3 2 4 1
20/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
#include
int B[]={0,0,0,0}, n=4;
void Result(void){
printf("\n Ket qua:");
for(int i=0; i<n; i++) printf("%3d", B[i]);
}
void Function1(int i){
for(int j=0; j<=1;j++){ B[i]=j;
if(i==n-1) Result();
else Function1(i+1);
}
}
void main(){ Function1(0);}
a Tập con kế tiếp của tập F
b 16 tập con của 1, 2, 3, 4
c 16 xâu nhị phân độ dài 4
d Xâu nhị phân kế tiếp của “0000”
21/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
#include
#define MAX 100
int P[MAX], n=5, k=3;
12
void Result(void){
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 24 hoán vị của 1,2,3,4,5
c 120 hoán vị của 1,2,3,4,5
d 32 xâu nhị phân độ dài 5
22/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
#include
#define MAX 100
int P[MAX],B[MAX]={1,1,1,1,1,1}, n=4;
void Result(void){
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;
}
}
}
void main(void){
clrscr();Try(1);
}
a 120 hoán vị của 1,2,3,4,5
b 10 tập con ba phần tử của 1, 2, 3, 4,5
c 24 hoán vị của 1,2,3,4
d 16 xâu nhị phân độ dài 4
23/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
#include
double function1(float a, int n){
if(n==0) return(1);
else return(a*function1(a,n-1));
}
void main(void){
printf("\n Ket qua: %6.2f",function1(5,2));
}
a Kết quả: 10
b Kết quả: 25
c Kết quả: 3
13
d Kết quả: 7
24/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
#include
int function1(int a, int b){
if(a==0) return(b);
return(function1(b%a,a));
}
void main(void){
printf("\n Ket qua:%d",function1(8,12));
}
a Kết quả: 0
b Kết quả: 12
c Kết quả: 4
d Kết quả: 8
25/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
#include
long function1(int n){
if(n==0) return(1);
return(n*function1(n-1));
}
void main(void){
printf("\n Ket qua:%ld",function1(5));
}
a Kết quả: 24
b Kết quả: 0
c Kết quả: 120
d Kết quả: 5
26/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
#include
int function1(int n){
int f1=1, f2=1, fn,i=2;
while(i<=n){ fn=f1+f2; f1=f2;f2=fn;i++;}
return(fn);
}
void main(void){
printf("\n Ket qua:%d",function1(7));
}
a Kết quả: 13
b Kết quả: 720
c Kết quả: 7
d Kết quả: 8
27/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
#include
int function1(int n){
if(n==1) return(1);
else if(n==2) return(1);
14
return(function1(n-1)+function1(n-2));
}
void main(void){
printf("\n Ket qua:%d",function1(8));
}
a Kết quả: 13
b $Kết quả: 21
c Kết quả: 8
d Kết quả: 24
28/ Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
#include
#include
void Function1(int *B, int n){
printf("\n Ket qua:");
for(int i=0; i<n;i++)
printf("%3d", B[i]);
}
void Function2(int *B, int n){
int i = n-1;
while(i>=0 && B[i]){B[i]=0; i--; }
B[i]=1;Function1(B,n);
}
void main(void){
int B[]={1,1,0,1,0,1}, n=5;Function2(B,n);
}
a Kết quả: 1 1 0 1 0
b Kết quả: 1 1 0 1 1
c Kết quả: 1 1 1 1 1
d Kết quả: 1 1 1 1 0
15
CHƯƠNG III: NGĂN XẾP, HÀNG ĐỢI VÀ DANH SÁCH MÓC NỐI
1/ 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 bên
phải:
a ( p ->infor ==NULL)
b ( p ->infor !=NULL)
c (p -> next !=NULL)
d ( p -> next ==NULL)
2/ 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ối
cùng bên phải:
a (p -> next !=NULL)
b ( p ->infor !=NULL)
c ( p ->infor ==NULL)
d ( p -> next ==NULL)
3/ 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 ==NULL)
b ( p ->right ==NULL)
c ( p ->infor ==NULL)
d (p -> next ==NULL)
4/ 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 trái cho p.
b Ta lấy p làm gốc mới và thiết lập liên kết phải cho p.
c Ta thiết lập cả liên kết phải và liên kết trái cho p.
d Ta chỉ