Tổng hợp câu hỏi trắc nghiệm lập trình hướng đối tượng | Trường Đại học Sư phạm Kỹ thuật Hưng Yên

Tổng hợp câu hỏi trắc nghiệm lập trình hướng đối tượng | Trường Đại học Sư phạm Kỹ thuật Hưng Yên. Tài liệu gồm 3 trang, giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

Giải Đề Thi Trắc Nghiệm Môn lập trình hướng đối tượng
Pnminh.it@gmail.com
Mã s sv: ……………………………………...
Htên sv: …………………………………………………..
TRC NGHIỆM LẬP TRÌNH HƯỚNG ðI TƯỢNG C++
1. Hãy xem xét đon mã sau:
class A{ protected:int a,b; E. objA và objB ch truy cập Được các biến a, b.
public:float F1,F2;};
class B:public A{...} 5. Gi sử có Đon mã code Được viết n sau:
Hỏi: B sử dụng Được các biến thành viên nào ca A class Lop1 {
A. a, b, F1, F2 public:int a,b;
B. F1, F2 void nhap( ){
C. a, b cout<<”\n\t a = “;cin>>a;
D. Không s dụng Được biến thành viên nào cout<<”\n\t b =”;cin>>b;} };
class Lop2: public Lop1{};
2. Để khai báo mảng số thực động thì dùng đoạn mã nào Khi khai báo Đốing objLop2 cho Lop2 thì nó th
Sau đây truy xut thủ tục nhập của lớp 1 bằng pháp nào sau
A. float *M;int n;cout<<”\n\tNhập số phần tử mảng: ĐâyĐúng nht
“;cin>>n; A. objLop2.nhap()
M = new float [n]; B. objLop2->nhap()
B. int n;cout<<”\n\t Nhap s phần tử mng: “;cin>>n; C. objLop2.p ->nhap( )objLop2.nhap()
float M[n];
D. Tt cả Đều sai
C. intn;floatM[n];
D. float M[int n]; 6. Tkhoá protected trong mt lớp ý nghĩa:
A. Khai báo các thành viên ca lớp chỉ Được thừa kế ;
3. Hãy xem xét đon mã sau có li ở dòng nào: B. Khai báo các thành viên Đưc bảo vệ;
1.class Lop1 C. Khai báoc thành viên ca lớp Được dùng riêng
2.{
3.private: 7. Gi smột lớp với các hàm dựng Được khai báo như
4. int a,b; sau:
5. friend void Nhap( ); class Lop{private : int a,b;
6.}; public:
7.class Lop2 lop ( ) // Hàm dng 1
8.{ {a = b = 5;}
9.private: lop (int m, int n) // Hàm dng 2
10. float x,y; {a = m; b =n;}};
11. friend void Nhap( ); Khi to một Đối tượng bằng cú pháp LopobjLop(4,5); Thì
12.}; m dng nào s Được gọi.
13.void nhap( )
A. Hàm dng 2
14.{ B. Hàm dng 1
15. Lop1 obj1; Lop2 obj2; C. C 2 hàm dựng Đều Được gọi
16. cout<<”\n\t Nhap a =”; cin>>a; D. Không hàm dựng nào Được gọi.
17. cout<<”\n\t Nhap x =”; cin>>x;
18.} 8. Hãy xem xét Đoạn mã dưi Đây:
A. Lỗi tại dòng 16, 17 class Lop1 {
B. Không li dòng nào private:
C. Lỗi tại dòng 15. int a,b;
D. Lỗi tại dòng 13 friend class Lop2; };
E. Lỗi tại dòng 5 và 11 class Lop2 {
public:
4. Có 3 lp khai báo như sau: Lop1obj1;
class Lop1{ void nhap() {
private: inta,b; cout<<"\n\t a, b = "; cin>>obj1.a>>obj1.b;
public: floatx,y; }; };
friend class Lop2;}; void main()
class Lop2{Lop1objA;}; { Lop2obj; obj.nhap(); }
class Lop3{Lop1objB;}; Hỏi: Khi chạy Đoạn chương trình trên s xảy ra hiện
Các Đối tượng objA và objB truy cập Đượcc biến nào tượng gì?
của lớp Lop1: A.Hoàn toàn bình thường. Không lỗi.
A. objA truy cập Được tất ccác biến. objB truy cập B.Báo li kng truy cập Được vào biến a,b của lớp
Giải Đề Thi Trắc Nghiệm Môn lập trình hướng đối tượng
Pnminh.it@gmail.com
Được các biến x,y. Lop1 do nm phạm viprivate.
B. objA và objB truy cp Được tất cả các biến.
C.đối tượng obj kng gọi Được hàm nhập.
C.objA objB ch truy cập Đưc các biến x,y. D.Lỗi do không khai báo kế thừa Lop1 của Lop2.
D. objA truy cập Được tất cảc biến. objB truy cập
Được các biến a,b. 9. Hãy xem xét Đoạn mã dưi Đây:
Giải Đề Thi Trắc Nghiệm Môn lập trình hướng đối tượng
Pnminh.it@gmail.com
class Lop1 { private:int a,b; }; 15. Để Đưa con trỏ về Đầu dòng dưới, hai lệnh cout<< endl
class Lop2 { cout<<”n” tương Đương.
public: Lop1obj1;
A.Đúng
void nhap() B.sai
{cout<<"\n\t a, b = ";
cin>>obj1.a>>obj1.b; };}; 16. Cho biết kết quả của Đoạn cơng trình sau:
void main() { Lop2obj; obj.nhap(); } int a=241; cout<<(a%100)/10;
Hỏi: Khi chạy Đon chương trình trên s xảy ra hiện A. 0
tượng gì? B. 1
A. Báo lỗi không truy cập Được vào biến a,b của lớp C. 2
Lop1 do nm ở phạm viprivate. D. 4
B. Hoàn toàn bình thưng. Kng có lỗi.
C. Đối tượng obj không gọi Được hàm nhập. 17. một hàm dùng Để Đổi chỗ 2 số viết nsau
D. Lỗi do không khai báo kế thừa Lop1 của Lop2. Void change(int *s1, int *s2)
{
10. Từ khoá virtual khi Đứng trước một hàm nào Đó thì có ý int *TG;
nghĩa gì? TG = s1;
A. Xác Định hàm Đó s chuyển thành dng Đa hình. s1 = s2;
B. Xác Định là hàm o. s2 = TG;
C. Xác Định hàm s Được kế thừa. }
D. Xác Định hàm ảo chỉ Được sử dụng trong lớp. Nếu sử dụng trong chương trình sau thì kết quả sẽ n
thế nào?
11. Để khai báo một mảng Động cho phép nhập mt chuỗi void main()
văn bản ta dùng cấu lệnhnào sau Đây: { int x = 10, y =20;
A. char*Str; change(&x,&y); }
B. charStr; A. x = 10, y =20
C. charStr[]; B. x = 20, y = 10
D. char*Str[]; C. x = 10, y = 0
E. StringStr;
D. Hàm viết lỗi
E. Lỗi tham sĐầu vào
12. Cho chương trình sau
#include <stdio.h> 18. Một biến sau khi Được khai báo, cấp vùng nhớ, nhưng
void f() { chưa Đặt giá trị ban Đầu thì bản thân nó sẽ giá tr là
static int x = 9; A. Khoảng trắng
x+=10; B. 0
printf(“\t%d”,x); }
C. giá trị rác (không biết trước)
void main(){ D. giá trị rỗng
int x=1;
f(); 19. Khi thực hiện Đoạn chương trình sau.
printf(“\t%d”,x); void main( ) {
f(); } int a = 10;
Kết quin lên khi chạy cơng trình là: if (a>=10) {
A. 19 1 19 int b = 5;
B. 19 1 29 b++; };
C. 19 19 19 else {
D. 11 1 11 int b = 10;
c--; }
13. Biu thức nào sau Đây có g trị bằng 0 : int S = a + b; }
A. ( 10>7 ) && ('a' < 'A' ) Kết quả sẽ như thế nào?
B. (3 + 2 <= 5) || (2 < 4 % 2) A. S = 15.
C. (4 + 2 > 5) && (2 < 4 / 2) B. S = 14.
D. 3 * (2+ 1) >= 10 % 4* 2 C. S =19.
D. S = 20.
14. Cho x,y là 2 s nguyên, lệnh nào sau Đây Để in giá trị
E. Lỗi do biến khai báo cục bộ.
của 2 số a, b ra màn hình :
A. cout<< " Hai so la : a, b" ; 20. Trong C++ 5/2 =
B. cout<< "Hai so la : "<< a + b; A. 2.
C. cout<< " Hai so la : " << a, b; B. 2.5.
D. cout<< "Hai so la : "<< a << b; C. 3.
D. Giá tr kc.
| 1/3

Preview text:

Giải Đề Thi Trắc Nghiệm Môn lập trình hướng đối tượng
Mã số sv: …………………………………………………..
Họ tên sv: …………………………………………………..
TRẮC NGHIỆM LẬP TRÌNH HƯỚNG ðỔI TƯỢNG C++
1. Hãy xem xét đoạn mã sau: class A{ protected:int a,b;
E. objA và objB chỉ truy cập Được các biến a, b. public:float F1,F2;}; class B:public A{...}
5. Giả sử có Đoạn mã code Được viết như sau:
Hỏi: B sử dụng Được các biến thành viên nào của A class Lop1 { A. a, b, F1, F2 public:int a,b; B. F1, F2 void nhap( ){ C. a, b
cout<<”\n\t a = “;cin>>a;
D. Không sử dụng Được biến thành viên nào
cout<<”\n\t b =”;cin>>b;} }; class Lop2: public Lop1{};
2. Để khai báo mảng số thực động thì dùng đoạn mã nào
Khi khai báo Đối tượng objLop2 cho Lop2 thì nó có thể Sau đây
truy xuất thủ tục nhập của lớp 1 bằng cú pháp nào sau
A. float *M;int n;cout<<”\n\tNhập số phần tử mảng: Đây là Đúng nhất “;cin>>n; A. objLop2.nhap() M = new float [n]; B. objLop2->nhap()
B. int n;cout<<”\n\t Nhap số phần tử mảng: “;cin>>n;
C. objLop2.p ->nhap( )objLop2.nhap() float M[n]; D. Tất cả Đều sai C. intn;floatM[n]; D. float M[int n];
6. Từ khoá protected trong một lớp có ý nghĩa:
A. Khai báo các thành viên của lớp chỉ Được thừa kế ; 3.
Hãy xem xét đoạn mã sau có lỗi ở dòng nào:
B. Khai báo các thành viên Được bảo vệ; 1.class Lop1
C. Khai báo các thành viên của lớp Được dùng riêng 2.{ 3.private:
7. Giả sử một lớp với các hàm dựng Được khai báo như 4. int a,b; sau: 5. friend void Nhap( ); class Lop{private : int a,b; 6.}; public: 7.class Lop2 lop ( ) // Hàm dựng 1 8.{ {a = b = 5;} 9.private:
lop (int m, int n) // Hàm dựng 2 10. float x,y; {a = m; b =n;}}; 11. friend void Nhap( );
Khi tạo một Đối tượng bằng cú pháp LopobjLop(4,5); Thì 12.};
hàm dựng nào sẽ Được gọi. 13.void nhap( ) A. Hàm dựng 2 14.{ B. Hàm dựng 1 15. Lop1 obj1; Lop2 obj2;
C. Cả 2 hàm dựng Đều Được gọi 16.
cout<<”\n\t Nhap a =”; cin>>a;
D. Không hàm dựng nào Được gọi. 17.
cout<<”\n\t Nhap x =”; cin>>x; 18.}
8. Hãy xem xét Đoạn mã dưới Đây: A. Lỗi tại dòng 16, 17 class Lop1 {
B. Không lỗi ở dòng nào private: C. Lỗi tại dòng 15. int a,b; D. Lỗi tại dòng 13 friend class Lop2; }; E. Lỗi tại dòng 5 và 11 class Lop2 { public: 4.
Có 3 lớp khai báo như sau: Lop1obj1; class Lop1{ void nhap() { private: inta,b;
cout<<"\n\t a, b = "; cin>>obj1.a>>obj1.b; public: floatx,y; }; }; friend class Lop2;}; void main() class Lop2{Lop1objA;}; { Lop2obj; obj.nhap(); } class Lop3{Lop1objB;};
Hỏi: Khi chạy Đoạn chương trình trên sẽ xảy ra hiện
Các Đối tượng objA và objB truy cập Được các biến nào tượng gì? của lớp Lop1:
A.Hoàn toàn bình thường. Không có lỗi.
A. objA truy cập Được tất cả các biến. objB truy cập
B.Báo lỗi không truy cập Được vào biến a,b của lớp Pnminh.it@gmail.com
Giải Đề Thi Trắc Nghiệm Môn lập trình hướng đối tượng Được các biến x,y.
Lop1 do nằm ở phạm viprivate.
B. objA và objB truy cập Được tất cả các biến.
C.đối tượng obj không gọi Được hàm nhập.
C.objA và objB chỉ truy cập Được các biến x,y.
D.Lỗi do không khai báo kế thừa Lop1 của Lop2.
D. objA truy cập Được tất cả các biến. objB truy cập Được các biến a,b.
9. Hãy xem xét Đoạn mã dưới Đây: Pnminh.it@gmail.com
Giải Đề Thi Trắc Nghiệm Môn lập trình hướng đối tượng class Lop1 { private:int a,b; };
15. Để Đưa con trỏ về Đầu dòng dưới, hai lệnh cout<< endl class Lop2 {
và cout<<”n” là tương Đương. public: Lop1obj1; A.Đúng void nhap() B.sai {cout<<"\n\t a, b = ";
cin>>obj1.a>>obj1.b; };};
16. Cho biết kết quả của Đoạn chương trình sau: void main() { Lop2obj; obj.nhap(); }
int a=241; cout<<(a%100)/10;
Hỏi: Khi chạy Đoạn chương trình trên sẽ xảy ra hiện A. 0 tượng gì? B. 1
A. Báo lỗi không truy cập Được vào biến a,b của lớp C. 2
Lop1 do nằm ở phạm viprivate. D. 4
B. Hoàn toàn bình thường. Không có lỗi.
C. Đối tượng obj không gọi Được hàm nhập.
17. Có một hàm dùng Để Đổi chỗ 2 số viết như sau
D. Lỗi do không khai báo kế thừa Lop1 của Lop2. Void change(int *s1, int *s2) {
10. Từ khoá virtual khi Đứng trước một hàm nào Đó thì có ý int *TG; nghĩa gì? TG = s1;
A. Xác Định hàm Đó sẽ chuyển thành dạng Đa hình. s1 = s2;
B. Xác Định là hàm ảo. s2 = TG;
C. Xác Định hàm sẽ Được kế thừa. }
D. Xác Định hàm ảo chỉ Được sử dụng trong lớp.
Nếu sử dụng trong chương trình sau thì kết quả sẽ như thế nào?
11. Để khai báo một mảng Động cho phép nhập một chuỗi void main()
văn bản ta dùng cấu lệnhnào sau Đây: { int x = 10, y =20; A. char*Str; change(&x,&y); } B. charStr; A. x = 10, y =20 C. charStr[]; B. x = 20, y = 10 D. char*Str[]; C. x = 10, y = 0 E. StringStr; D. Hàm viết lỗi
E. Lỗi tham số Đầu vào 12. Cho chương trình sau #include
18. Một biến sau khi Được khai báo, cấp vùng nhớ, nhưng void f() {
chưa Đặt giá trị ban Đầu thì bản thân nó sẽ có giá trị là static int x = 9; A. Khoảng trắng x+=10; B. 0 printf(“\t%d”,x); }
C. giá trị rác (không biết trước) void main(){ D. giá trị rỗng int x=1; f();
19. Khi thực hiện Đoạn chương trình sau. printf(“\t%d”,x); void main( ) { f(); } int a = 10;
Kết quả in lên khi chạy chương trình là: if (a>=10) { A. 19 1 19 int b = 5; B. 19 1 29 b++; }; C. 19 19 19 else { D. 11 1 11 int b = 10; c--; }
13. Biểu thức nào sau Đây có giá trị bằng 0 : int S = a + b; }
A. ( 10>7 ) && ('a' < 'A' )
Kết quả sẽ như thế nào?
B. (3 + 2 <= 5) || (2 < 4 % 2) A. S = 15.
C. (4 + 2 > 5) && (2 < 4 / 2) B. S = 14. D. 3 * (2+ 1) >= 10 % 4* 2 C. S =19. D. S = 20.
14. Cho x,y là 2 số nguyên, lệnh nào sau Đây Để in giá trị
E. Lỗi do biến khai báo cục bộ.
của 2 số a, b ra màn hình :
A. cout<< " Hai so la : a, b" ; 20. Trong C++ 5/2 =
B. cout<< "Hai so la : "<< a + b; A. 2.
C. cout<< " Hai so la : " << a, b; B. 2.5.
D. cout<< "Hai so la : "<< a << b; C. 3. D. Giá trị khác. Pnminh.it@gmail.com