Đề kiểm tra lần II giữa kỳ 1 - Nhập môn lập trình | Trường Đại học CNTT Thành Phố Hồ Chí Minh

Đề kiểm tra lần II giữa kỳ 1 - Nhập môn lập trình | Trường Đại học CNTT Thành Phố Hồ Chí Minh được được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

lOMoARcPSD| 40551442
KIỂM TRA LẦN II GIỮA KỲ
NHẬP MÔN LẬP TRÌNH HKI 2020 - 2021
Câu 1: Cho oạn chương trình sau: double myList[] = {1, 5, 5, 5,
5, 1}; double max = myList[0]; int indexOfMax = 0;
for (int i = 1; i < 6; i++)
{ if (myList[i] > max)
{ max = myList[i];
indexOfMax = i;
}
}
cout << indexOfMax << endl;
Kết quả của oạn chương trình này là:……
Câu 2: Cho chương trình sau:
#include <iostream>
using namespace std; int
main()
{ int x[5];
int i;
for (i = 0; i < 5; i++) x[i] = i;
cout << x[i] << " ";
return 0;
}
Những phát biểu nào sau ây là úng:
A. Chương trình in ra màn hình các số: 0 1 2 3 4.
B. Chương trình in ra màn hình các số: 4.
C. Chương trình bị lỗi thực thi (runtime error) do giá trị i trong dòng lệnh “cout <<
x[i] << " ";” vượt quá giới hạn chỉ số của mảng x.
lOMoARcPSD| 40551442
D. Chương trình bị lỗi biên dịch (compile error) do biến i không ược ịnh nghĩa
trong câu lệnh “cout << x[i] << " ";”.
Câu 3: Cho chương trình sau:
#include <iostream>
using namespace std; int
main()
{ int values[2][4] = {{3, 4, 5, 1}, {33, 6, 1, 2}};
int v = values[0][0]; for (int row = 0; row < 2;
row++)
for (int column = 0; column < 4; column++)
if (v < values[row][column]) v
= values[row][column];
cout << v << endl; return 0;
}
Kết quả chương trình là: …..
Câu 4: Cho chương trình chưa hoàn thiện như sau:
#include <iostream> using
namespace std; const int
MAX=50; void NhapMang(int
a[], int &n)
{ do
{ cout<<"Nhap so phan tu n=";
cin>>n;
}while(n<1 || n>MAX);
for(int i=0; i<n; i++)
lOMoARcPSD| 40551442
{ cout<<"Nhap a["<<i<<"]= ";
cin>>a[i];
}
}
Yêu cầu sinh viên viết tiếp các hàm sau:
a) Hàm kiểm tra mảng số nguyên 1 chiều có ối xứng hay không. Kết quả ca
hàm là true (hoặc 1) nếu mảng ối xứng, ngược lại, kết quả của hàm là false (hoặc
0) nếu mảng không ối xứng.
b) Hàm ếm số mảng con tăng dần có trong mảng số nguyên 1 chiều. Kết quả
của hàm là số lượng mảng con tăng có trong mảng.
( VD1: mảng a[] = {1 , 2 , 3} có 1 mảng con tăng;
VD2: mảng a[] = {5, 3, 7, 2} có 3 mảng con tăng; )
c) Hãy hoàn thiện hàm main trên bằng cách viết các dòng lệnh ể gọi các hàm
trong câu a và b nhằm ưa kết quả ra màn hình.
Câu 5: Cho oạn chương trình sau (0.5 iểm):
#include <iostream>
using namespace std; void
hamf(int x, int &y)
{ x = x+y;
y = x-y; x
= x-y;
} int
main()
{ int a=1,b=2; hamf(a,b);
cout<<"a = "<<a<<endl;
cout<<"b = "<<b;
return 0;
}
Sau khi thực hiện xong chương trình. Kết quả in ra : a = ….….b =….
Câu 6:
Cho oạn chương trình sau ể kiểm tra mảng một chiều có ối xứng hay không:
lOMoARcPSD| 40551442
#include <iostream> using
namespace std;
int kiemtradoixung(int a[], int n)
{ for(int i=0; i<n/2; i++)
{ if( a[i]!=a[n-i-1]) return 0; else
return 1;
}
} int
main()
{ int a[5] = {3, 2, 1, 5, 3}; int
n=5;
if(kiemtradoixung(a,n)==1) cout<<"Mang
doi xung";
else cout<<"Mang khong doi xung";
}
Hãy cho biết khi chạy chương trình trên, nếu úng in ra màn hình kết quả, nếu sai
thì chỉnh sửa lại cho úng ?
Câu 7:
Cho mảng 02 chiều a có r dòng và c cột. Các giá trị trong mảng ược cho ở bảng
bên dưới
1
2
3
4
5
6
7
8
9
8
7
6
5
4
3
2
1
2
3
4
Hãy cho biết các giá tri trong mảng sau khi thực hiện oạn chương trình sau:
for(int i = 0; i < r; i++) for(int j = 0;
j < c/2; j++) swap(a[i][j],
a[i][c-1-j]);
Trong ó swap là hàm chuẩn trong thư viện cstdlib, có chức năng ổi chổ giá trị của
hai tham số.
Câu 8:
Cho một mảng hai chiều beta[3][3] và oạn mã như sau:
for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) beta[i][j] = 2
* (i + j) % 4;
lOMoARcPSD| 40551442
Hãy cho biết giá trị của các phần tử của mảng beta sau khi thực hiện oạn mã trên?
( iền kết quả vào hình bên dưới)
Câu 9:
Cho hàm main sau (ược 2.5 iểm): int
main()
{ int a[50], n=0; int S,
k,maxvalue;
Nhapmang(a,n); S=
TinhTongSNT(a,n);
do
{ cout<<"Nhap gia tri k=";
cin>>k; }while(k<1 || k >n);
maxvalue = GiaTriLonThuK(a,n,k); cout<<"Gia
tri lon thu"<<k<<" la:" << maxvalue; return 0;
}
Yêu cầu sinh viên viết các hàm sau:
a. Viết hàm nhập mảng: Nhapmang(a,n).
b. Viết hàm tính tổng các số nguyên tố có trong mảng a: TinhTongSNT(a,n).
c. Giả sử các phần tử của mảng ều khác nhau. Hãy viết hàm tìm giá trị lớn thứ k
(1<=k<=n) trong mảng: GiaTriLonThuK(a,n,k) (0.5 iểm)
Ví dụ: Cho mảng a = {3, 7, 9, 6, 1, 5, 2}, -
giá trị lớn thứ 2 trong mảng là 7,
- giá trị lớn thứ 4 trong mảng là 5.
Câu 10: Cho oạn chương trình sau: (1.25 iểm)
#include <iostream> using
namespace std; void find(int
&a, int& b, int c)
{ int temp;
c = a + b;
temp = a; a
= b; b = 2 *
temp;
}
lOMoARcPSD| 40551442
int main()
{ int one, two, three;
one = 1; two = 3;
three = 5; find(one,
two, three);
cout << one << ", " << two << ", " << three << endl; return
0;
}
Sau khi thực hiện xong chương trình. Kết quả in ra màn hình là: ………
----------------- Hết -----------------
| 1/6

Preview text:

lOMoAR cPSD| 40551442
KIỂM TRA LẦN II GIỮA KỲ
NHẬP MÔN LẬP TRÌNH HKI 2020 - 2021
Câu 1: Cho oạn chương trình sau: double myList[] = {1, 5, 5, 5,
5, 1}; double max = myList[0]; int indexOfMax = 0;
for (int i = 1; i < 6; i++) { if (myList[i] > max) { max = myList[i]; indexOfMax = i; } }
cout << indexOfMax << endl;
Kết quả của oạn chương trình này là:……
Câu 2: Cho chương trình sau: #include using namespace std; int main() { int x[5]; int i;
for (i = 0; i < 5; i++) x[i] = i;
cout << x[i] << " "; return 0; }
Những phát biểu nào sau ây là úng:
A. Chương trình in ra màn hình các số: 0 1 2 3 4.
B. Chương trình in ra màn hình các số: 4.
C. Chương trình bị lỗi thực thi (runtime error) do giá trị i trong dòng lệnh “cout <<
x[i] << " ";” vượt quá giới hạn chỉ số của mảng x. lOMoAR cPSD| 40551442
D. Chương trình bị lỗi biên dịch (compile error) do biến i không ược ịnh nghĩa
trong câu lệnh “cout << x[i] << " ";”.
Câu 3: Cho chương trình sau: #include using namespace std; int main() {
int values[2][4] = {{3, 4, 5, 1}, {33, 6, 1, 2}};
int v = values[0][0]; for (int row = 0; row < 2; row++)
for (int column = 0; column < 4; column++)
if (v < values[row][column]) v = values[row][column];
cout << v << endl; return 0; }
Kết quả chương trình là: …..
Câu 4: Cho chương trình chưa hoàn thiện như sau: #include using namespace std; const int MAX=50; void NhapMang(int a[], int &n) { do {
cout<<"Nhap so phan tu n="; cin>>n; }while(n<1 || n>MAX); for(int i=0; i lOMoAR cPSD| 40551442 { cout<<"Nhap a["< cin>>a[i]; } }
Yêu cầu sinh viên viết tiếp các hàm sau: a)
Hàm kiểm tra mảng số nguyên 1 chiều có ối xứng hay không. Kết quả của
hàm là true (hoặc 1) nếu mảng ối xứng, ngược lại, kết quả của hàm là false (hoặc
0) nếu mảng không ối xứng. b)
Hàm ếm số mảng con tăng dần có trong mảng số nguyên 1 chiều. Kết quả
của hàm là số lượng mảng con tăng có trong mảng.
( VD1: mảng a[] = {1 , 2 , 3} có 1 mảng con tăng;
VD2: mảng a[] = {5, 3, 7, 2} có 3 mảng con tăng; ) c)
Hãy hoàn thiện hàm main trên bằng cách viết các dòng lệnh ể gọi các hàm
trong câu a và b nhằm ưa kết quả ra màn hình.
Câu 5: Cho oạn chương trình sau (0.5 iểm): #include using namespace std; void hamf(int x, int &y) { x = x+y; y = x-y; x = x-y; } int main() { int a=1,b=2; hamf(a,b);
cout<<"a = "<cout<<"b = "<return 0; }
Sau khi thực hiện xong chương trình. Kết quả in ra : a = ….….b =…. Câu 6:
Cho oạn chương trình sau ể kiểm tra mảng một chiều có ối xứng hay không: lOMoAR cPSD| 40551442 #include using namespace std;
int kiemtradoixung(int a[], int n) { for(int i=0; i{
if( a[i]!=a[n-i-1]) return 0; else return 1; } } int main() {
int a[5] = {3, 2, 1, 5, 3}; int n=5;
if(kiemtradoixung(a,n)==1) cout<<"Mang doi xung";
else cout<<"Mang khong doi xung"; }
Hãy cho biết khi chạy chương trình trên, nếu úng in ra màn hình kết quả, nếu sai
thì chỉnh sửa lại cho úng ? Câu 7:
Cho mảng 02 chiều a có r dòng và c cột. Các giá trị trong mảng ược cho ở bảng bên dưới 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 2 3 4
Hãy cho biết các giá tri trong mảng sau khi thực hiện oạn chương trình sau:
for(int i = 0; i < r; i++) for(int j = 0;
j < c/2; j++) swap(a[i][j], a[i][c-1-j]);
Trong ó swap là hàm chuẩn trong thư viện cstdlib, có chức năng ổi chổ giá trị của hai tham số. Câu 8:
Cho một mảng hai chiều beta[3][3] và oạn mã như sau:
for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) beta[i][j] = 2 * (i + j) % 4; lOMoAR cPSD| 40551442
Hãy cho biết giá trị của các phần tử của mảng beta sau khi thực hiện oạn mã trên?
( iền kết quả vào hình bên dưới) Câu 9:
Cho hàm main sau (ược 2.5 iểm): int main() { int a[50], n=0; int S, k,maxvalue; Nhapmang(a,n); S= TinhTongSNT(a,n); do {
cout<<"Nhap gia tri k=";
cin>>k; }while(k<1 || k >n);
maxvalue = GiaTriLonThuK(a,n,k); cout<<"Gia tri lon thu"<}
Yêu cầu sinh viên viết các hàm sau:
a. Viết hàm nhập mảng: Nhapmang(a,n).
b. Viết hàm tính tổng các số nguyên tố có trong mảng a: TinhTongSNT(a,n).
c. Giả sử các phần tử của mảng ều khác nhau. Hãy viết hàm tìm giá trị lớn thứ k
(1<=k<=n) trong mảng: GiaTriLonThuK(a,n,k) (0.5 iểm)
Ví dụ: Cho mảng a = {3, 7, 9, 6, 1, 5, 2}, -
giá trị lớn thứ 2 trong mảng là 7,
- giá trị lớn thứ 4 trong mảng là 5.
Câu 10: Cho oạn chương trình sau: (1.25 iểm) #include using namespace std; void find(int &a, int& b, int c) { int temp; c = a + b; temp = a; a = b; b = 2 * temp; } lOMoAR cPSD| 40551442 int main() { int one, two, three; one = 1; two = 3; three = 5; find(one, two, three);
cout << one << ", " << two << ", " << three << endl; return 0; }
Sau khi thực hiện xong chương trình. Kết quả in ra màn hình là: ………
----------------- Hết -----------------