Bài tập lập trình hướng đối tượng - Nhập môn lập trình | Trường Đại học CNTT Thành Phố Hồ Chí Minh

Bài tập lập trình hướng đối tượng - 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
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG – UIT
1. Cho khai báo sau:
void Fix(int& , float );
int someInt = 42; float
someFloat = 3.14; Gọi
hàm Fix:
A. Fix(24, 6.85); (Truyền tham số sai cách)
B. Fix(someInt, 6.85);
C. Fix(24, someFloat); (Truyền tham số sai cách)
D. Fix(someInt, someFloat);
E. Fix(someInt + 5, someFloat); (Truyền tham số sai cách)
Cách gọi đúng là:
a) Tất cả
b) Chỉ A và C
c) Chỉ B và D
d) Không có
2. Cho đoạn chương trình sau: void
DoThis(int& Alpha, int Beta) void
main()
{ int Temp = 15; int Ben = -5,
Jerry = 42;
DoThis(Ben, Jerry); (Biến Ben thay đổi vì truyền tham số, biến Jerry giữ nguyên vì truyền tham
trị)
cout << "Ben = " << Ben << endl;
cout << "Jerry = " << Jerry << endl;
cout << "Temp = " << Temp << endl;
}
void DoThis(int& Alpha, int Beta)
{ int Temp;
Alpha = Alpha + 100;
Temp = Beta;
Beta = 999;
Temp = 12;
}
a) Ben = 95, Jerry = 42, Temp = 15
b) Ben = -5, Jerry = 42, Temp = 15
c) Ben = 95, Jerry = 999, Temp = 15
d) Ben = 95, Jerry = 999, Temp = 123. Cho biết kết
quả chương trình sau:
void main()
{
lOMoARcPSD| 40551442
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG – UIT
int n = 19;
int *p = &n; //Con tro p luu dia chi cua n
int &r = *p; //Gan gia tri cua n(bien ma con tro p tro toi) cho r;
cout << "&n = " << &n << ", n = " << n << endl; cout
<< "&r = " << &r << ", r = " << r << endl; cout << "&p
= " << &p << ", p = " << p << endl;
}
a) &n = 0xfff4, n = 19
&r = 0xfff4, r = 19
&p = 0xfff2, *p = 19 (cho rằng 0xfff4 là địa chỉ của ngiá trị 19 và 0xfff2 là địa chỉ của p có giá trị 0xfff4)
b) &n = 0xfff4, n =
19&r = 0xfff4, r = 19
&p = 0xfff4, *p = 19
c) &n = 0xfff4, n =
19&r = 0xfff2, r = 19
&p = 0xfff2, *p = 19
d) &n = 0xfff4, n =
19&r = 0xfff4, r = 19
&p = 0xfff2, *p = 0xfff2
4. Chọn các khai báo đúng:
A. float *pi; pi = new float;
*pi = 3.1415;
B. float *pi =&x; (Chưa khai
báo x)
*pi = 3.1415;
C. const int *p = new
int;delete p;
D. float x = 3.1415;float *pi =
&x;
delete pi; (Đồng nghĩa với delete x,giải phóng vùng nhớ động cho biến không được phân bổ vùng nhớ động)
a) A và B
b) A và C
c) B và D
d) A, B, C
5. Cấp phát bộ nhớ cho mảng 2 chiều:
double** A = (double**)malloc( Row*sizeof(double*));
Hàm giải phóng bộ nhớ mảng A
a) free (**A);
b) free (A);
c) delete **A;
lOMoARcPSD| 40551442
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG – UIT
d) delete A;
6. Cho biết kết quả chương trình sau: int main()
{
int x = 5;
int * p = &x;
cout<<p;
}
a) Giá trị khác (địa chỉ của biến x có giá trị là 5)
b) 5
c) Chương trình báo lỗi
d) Chương trình không in ra gì khác7. Cho biết kết
quả chương trình sau: void cap_phat_bo_nho (int*&a)
{
a = new int[5]; for
(int i=0; i<5; i++)
a[i]=i+1;
}
int main()
{ int n=5; int *a= &n;
cap_phat_bo_nho(a);
cout<<a[0];
}
a) 1
b) 5
c) Chương trình in ra địa chỉ của biến n
d) Chương trình báo lỗi lúc biên dịch
8. Địa chỉ của một biến temp kiểu float là
a) *temp
b) &temp
c) float& temp
d) float temp&
9. Cho chương trình#include<iostream>
using namespace std;
void swap(int m, int n)
{ int x =
m; m = n;
n = x; }
void
main()
lOMoARcPSD| 40551442
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG – UIT
{
int x = 5, y = 3;
swap(x,y);
cout<<x<<" "<<y;
}
a) 3 5
b) 5 3
c) 5 5
d) Lỗi biên dịch (hàm main() ép kiểu int.
https://isocpp.org/wiki/faq/newbie#mainreturns-int. Cho
rằng compiler cho phép void main() thì đáp án là b) 5 3 )
10.Cho đoạn chương trình
#include<iostream>
using namespace std;
main() {
int *p = new int;
delete p; delete
p;
cout<<”Done”;
}
Kết quả chương trình là
a) Done
b) Lỗi biên dịch (Lý do như trên)
c) Lỗi thực thi
d) Tất cả đều sai
| 1/4

Preview text:

lOMoAR cPSD| 40551442
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG – UIT 1. Cho khai báo sau: void Fix(int& , float ); int someInt = 42; float someFloat = 3.14; Gọi hàm Fix:
A. Fix(24, 6.85); (Truyền tham số sai cách) B. Fix(someInt, 6.85);
C. Fix(24, someFloat); (Truyền tham số sai cách) D. Fix(someInt, someFloat);
E. Fix(someInt + 5, someFloat); (Truyền tham số sai cách) Cách gọi đúng là: a) Tất cả b) Chỉ A và C c) Chỉ B và D d) Không có
2. Cho đoạn chương trình sau: void
DoThis(int& Alpha, int Beta) void main()
{ int Temp = 15; int Ben = -5, Jerry = 42;
DoThis(Ben, Jerry); (Biến Ben thay đổi vì truyền tham số, biến Jerry giữ nguyên vì truyền tham trị)
cout << "Ben = " << Ben << endl;
cout << "Jerry = " << Jerry << endl;
cout << "Temp = " << Temp << endl; }
void DoThis(int& Alpha, int Beta) { int Temp; Alpha = Alpha + 100; Temp = Beta; Beta = 999; Temp = 12; } a)
Ben = 95, Jerry = 42, Temp = 15 b)
Ben = -5, Jerry = 42, Temp = 15 c)
Ben = 95, Jerry = 999, Temp = 15 d)
Ben = 95, Jerry = 999, Temp = 123. Cho biết kết quả chương trình sau: void main() { lOMoAR cPSD| 40551442
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG – UIT int n = 19;
int *p = &n; //Con tro p luu dia chi cua n
int &r = *p; //Gan gia tri cua n(bien ma con tro p tro toi) cho r;
cout << "&n = " << &n << ", n = " << n << endl; cout
<< "&r = " << &r << ", r = " << r << endl; cout << "&p
= " << &p << ", p = " << p << endl; } a) &n = 0xfff4, n = 19 &r = 0xfff4, r = 19
&p = 0xfff2, *p = 19 (cho rằng 0xfff4 là địa chỉ của n có giá trị 19 và 0xfff2 là địa chỉ của p có giá trị 0xfff4) b) &n = 0xfff4, n = 19&r = 0xfff4, r = 19 &p = 0xfff4, *p = 19 c) &n = 0xfff4, n = 19&r = 0xfff2, r = 19 &p = 0xfff2, *p = 19 d) &n = 0xfff4, n = 19&r = 0xfff4, r = 19 &p = 0xfff2, *p = 0xfff2
4. Chọn các khai báo đúng: A. float *pi; pi = new float; *pi = 3.1415;
B. float *pi =&x; (Chưa khai báo x) *pi = 3.1415; C. const int *p = new int;delete p;
D. float x = 3.1415;float *pi = &x;
delete pi; (Đồng nghĩa với delete x,giải phóng vùng nhớ động cho biến không được phân bổ vùng nhớ động) a) A và B b) A và C c) B và D d) A, B, C
5. Cấp phát bộ nhớ cho mảng 2 chiều:
double** A = (double**)malloc( Row*sizeof(double*));
Hàm giải phóng bộ nhớ mảng A a) free (**A); b) free (A); c) delete **A; lOMoAR cPSD| 40551442
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG – UIT d) delete A;
6. Cho biết kết quả chương trình sau: int main() { int x = 5; int * p = &x; cout<

} a)
Giá trị khác (địa chỉ của biến x có giá trị là 5) b) 5 c) Chương trình báo lỗi d)
Chương trình không in ra gì khác7. Cho biết kết
quả chương trình sau: void cap_phat_bo_nho (int*&a) { a = new int[5]; for (int i=0; i<5; i++) a[i]=i+1; } int main() { int n=5; int *a= &n; cap_phat_bo_nho(a); cout<} a) 1 b) 5
c) Chương trình in ra địa chỉ của biến n
d) Chương trình báo lỗi lúc biên dịch
8. Địa chỉ của một biến temp kiểu float là a) *temp b) &temp c) float& temp d) float temp&
9. Cho chương trình#include using namespace std; void swap(int m, int n) { int x = m; m = n; n = x; } void main() lOMoAR cPSD| 40551442
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG – UIT { int x = 5, y = 3; swap(x,y); cout<} a) 3 5 b) 5 3 c) 5 5
d) Lỗi biên dịch (hàm main() ép kiểu int.
https://isocpp.org/wiki/faq/newbie#mainreturns-int. Cho
rằng compiler cho phép void main() thì đáp án là b) 5 3 )
10.Cho đoạn chương trình #include using namespace std; main() { int *p = new int; delete p; delete p; cout<<”Done”; }
Kết quả chương trình là a) Done
b) Lỗi biên dịch (Lý do như trên) c) Lỗi thực thi d) Tất cả đều sai