400 Câu hỏi trắc nghiệm lập trình C/C++ có đáp án và lời giải chi tiết
Tổng hợp câu hỏi trắc nghiệm lập trình C/C++ có đáp án và lời giải đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức. Để ôn tập hiệu quả các bạn có thể ôn theo từng phần trong bộ câu hỏi này bằng cách trả lời các câu hỏi và xem lại đáp án và lời giải chi tiết. Sau đó các bạn hãy chọn tạo ra đề ngẫu nhiên để kiểm tra lại kiến thức đã ôn.
Chọn hình thức trắc nghiệm (50 câu/60 phút)
-
Câu 1:
Cách khai báo hàm nào sau đây là đúng?
A. <Tên hàm> { Khối lệnh }
B. <Kiểu dữ liệu trả về> <Tên hàm> (Tham số 1, Tham số 2,..) { Khối lệnh }
C. <Tên hàm> (Tham số 1, Tham số 2,..) { Khối lệnh }
D. <Kiểu dữ liệu trả về> :<Tên hàm> (Tham số 1, Tham số 2,..) { Khối lệnh }
-
Câu 2:
What is output of following code?
void main() { int ints[] = { 0, 1, 2, 3 }; int* i1 = ints + 1; int* i2 = ints + 2; int a = ++*i1 + *i2++; int b = *++i1 + *i2--; printf("%d#%d", a, b); getch(); }
A. 4#4
B. 4#5
C. 5#6
D. 4#6
-
Câu 3:
What is output?
#include<stdio.h> #include <conio.h> int main() { int a = 5; switch(a) { default: a = 4; case 6: a--; case 5: a = a + 1; case 1: a = a - 1; } printf("%d \n", a); getch(); }
A. 3
B. 4
C. 5
D. 6
-
Câu 4:
A ___ is a set of instance or values.
A. class
B. object
C. function
-
Câu 5:
What is output?
#include <stdio.h> #include <conio.h> void main() { int i = 2, j = 2; while(i+1? --i : j++) printf("%d", i); getch(); }
A. 1
B. 2
C. Complier Error
-
Câu 6:
What is output?
#include <conio.h> #include <stdio.h> int main() { int i = 0; while (i = 0) printf("True\n"); printf("False\n"); getch(); }
A. True
B. False
C. Complie Error
D. Another
-
Câu 7:
If a function contains two return statements successively, the complier will generate warnings. Yes / No?
A. Yes
B. No
-
Câu 8:
A class declaring another class as a friend will:
A. Have wine and cheese with that other friend
B. Allow that class to declare an instance of it in its list of private variables
C. Allow the other class (the one declared as friend) to access to the declaring class’s private variables
D. Allow the class declaring the other as a friend to access the declared class’s private variables
-
Câu 9:
In the following program how long will the for loop get executed?
#include <stdio.h> #include <conio.h> void main() { int i = 5; for(;scanf("%d", &i); printf("%d", i)); getch(); }
A. The for loop would not get executed at all
B. The for loop would get executed only once
C. The for loop would get executed 5 times
D. The for loop would get executed infinite times
-
Câu 10:
What value is returned by function func()?
float func() { int r = 0, d = 0, i = 0; for (i; i < 2; i++) { r += 5 / d; } return r; }
A. 5
B. 0
C. Exception
D. Another
-
Câu 11:
In a function two return statements should never occur.
A. Yes
B. No
-
Câu 12:
A variable that is declared protected:
A. Is visible only in the subclasses (and not in the class it is declared in)
B. Is visible only in the class it is declared in
C. Is visible to all classes, but modifiable only in the class where it is declared
D. Is visible in the class it is declared in, and all of its sub-classes
-
Câu 13:
In the C program, the first statement that will be executed?
A. The first statement of main( )
B. The first statement of program
C. The first statement after the comment /**/
D. The first statement of end function
-
Câu 14:
The STL Container adapters contains the ___ , ___ and ___ STL containers.
A. Stack, Queue, Priority_queue
B. Set, Multiset, Map
C. vectors, lists, deques
-
Câu 15:
What is wrong in the following code?
#include <iostream> using namespace std; class Base { public: virtual void Method() = 0 { n = 1; } private: int n; }; class D1 :Base {}; class D2 :public D1 { int i; void Method() { i = 2; } }; int main() { D2 test; return 0; }
A. There is no error
B. There is a syntax error in the declaration of “Method”
C. Class D2 does not have access to “Method”
D. Class D1 must define “Method”
-
Câu 16:
A class object passed to a function template must overload any operators used on the class object by the template.
A. TRUE
B. FALSE
-
Câu 17:
What is output?
#include <stdio.h> #include <conio.h> #define a 10 void main() { printf("%d ", a); #define a 50 printf("%d ", a); getch(); }
A. 10 50
B. 10 10
C. 50 50
-
Câu 18:
The two types of polymorphism is : ____ & ____ .
A. Run time and compile time
B. Preprocessor, compile time
C. Preprocessor, Linker
-
Câu 19:
What is the output of the following code?
#include <iostream> using namespace std; class professor { public: professor() { cout << "professor "; }; }; class researcher { public: researcher() { cout << "researcher "; }; }; class teacher : public professor { public: teacher() { cout << "teacher "; }; }; class myprofessor : public teacher, public virtual researcher { public: myprofessor() { cout << "myprofessor "; }; }; int main() { myprofessor obj; system("pause"); return 0; }
A. professor researcher teacher myprofessor
B. researcher professor teacher myprofessor
C. myprofessor teacher researcher professor
D. myprofessor researcher professor teacher
-
Câu 20:
Output of following code?
void count() { static int page = 0; printf("%d", page); page++; } void main() { int i; for(i = 0; i < 10; i++) { count(); } getch(); }
A. 0123456789
B. 0000000000
C. 0101010101
-
Câu 21:
What will be output when you will execute following c code?
#include <stdio.h> #include <conio.h> void main() { int x = 3; printf("%d", x++ + ++x); getch(); }
A. 7
B. 8
C. 9
D. Another
-
Câu 22:
There can be only one catch block in a program.
A. TRUE
B. FALSE
-
Câu 23:
What is output of the program?
#include <stdio.h> #include <conio.h> void main() { int i = 3, j = 2, k = -1, m; m = ++i&&++j&&++k; printf("%d %d %d %d", i, j, k, m); getch(); }
A. 4 3 0 0
B. 3 3 0 1
C. 4 2 0 0
D. None of these
-
Câu 24:
What will be output when you will execute following c code? Biết kích thước kiểu char : 1 byte, float : 4 byte, int : 4 byte, double : 8 byte, long : 4 byte.
#include <stdio.h> #include <conio.h> int main() { printf("%d\t", sizeof(6.5)); printf("%d\t", sizeof(90000)); printf("%d", sizeof('A')); getch(); }
A. 8 4 1
B. 8 2 1
C. 4 4 1
D. Depend on complier
-
Câu 25:
Is there any difference in the following declaration?
int func(int arr[]); int func(int arr[20]);
A. Yes
B. No
-
Câu 26:
What is output of program?
#include <stdio.h> #include <conio.h> void main() { int x = 10, y = 20, z = 5, i; i = x < y < z; printf("i = %d", i); getch(); }
A. i = 0
B. i = 1
C. Error
D. None of these
-
Câu 27:
What is output of code?
void main() { int x = 5; const int* p; p = &x; x++; *p = 4; printf("%d", *p); getch(); }
A. 4
B. 5
C. 6
D. Complier Error
-
Câu 28:
What will be the output of the program?
#include<stdio.h> #include<conio.h> int main() { int i = 4, j = -1, k = 0, w, x, y, z; w = i||j||k; x = i&&j&&k; y = i||j&&k; z = i&&j||k; printf("%d %d %d %d", w, x, y, z); getch(); }
A. 1 1 1 1
B. 1 0 0 1
C. 1 0 1 1
D. Other
-
Câu 29:
Point out the error in the program
#include <stdio.h> #include <conio.h> int f(int a) { a > 20 ? return(1) : return(0); } void main() { int f(int); int b = f(20); printf("%d", b); getch(); }
A. Error: Prototype declaration
B. No error
C. Error: return statement cannot be used with conditional operators
D. None of above
-
Câu 30:
What is output?
#include <stdio.h> #include <conio.h> #define SQUARE(x) x*x void main() { int x; x = 36 / SQUARE(6); printf("%d", x); getch(); }
A. 1
B. 36
C. 6
D. 30
-
Câu 31:
Nguyên lý của cấu trúc while là:
A. Chương trình sẽ lặp đi lặp lại khối lệnh cho đến khi biểu thức điều kiện bằng 0.
B. Chương trình sẽ lặp đi lặp lại khối lệnh cho đến khi biểu thức điều kiện sai.
C. Chương trình sẽ lặp đi lặp lại khối lệnh cho đến khi biểu thức điều kiện đúng.
D. Không có đáp án đúng.
-
Câu 32:
What is a base class?
A. An abstract class that is at the top of the inheritance hierarchy.
B. A class with a pure virtual function in it.
C. A class that inherits from another class
D. A class that is inherited by another class, and thus is included in that class.
-
Câu 33:
A function designed as public can be accessible by non-members of a class.
A. TRUE
B. FALSE
-
Câu 34:
What is output?
void main() { int x = 5,y = 6; int* const p = &x; p = &y; printf("%d", (*p)); getch(); }
A. Complier error
B. 6
C. 5
D. Another
-
Câu 35:
What is output ?
#include <stdio.h> #include <conio.h> extern int x = 0; void main() { { int x = 1; } printf("%d", x); getch(); }
A. 0
B. 1
C. Error Comlier
-
Câu 36:
Chuỗi ký tự (string) là gì?
A. Các giá trị không phải là số và có độ dài là 1
B. Các giá trị số lớn hơn 0
C. Các biến có giá trị true hoặc false
D. Các giá trị cả chữ và số, nằm trong 2 dấu nháy “” và kết thúc với ký tự null
-
Câu 37:
Which of the following is a correct comment?
A. */ Comments */
B. ** Comment **
C. /* Comment */
D. { Comment }
-
Câu 38:
What is output?
void main() { int i = 5, k; if (i == 0) goto label; label: printf("%d", i); printf("Hey"); getch(); }
A. Hey
B. 5
C. 5Hey
D. Complie error
-
Câu 39:
Which of the following are unary operators in C?
1. !
2. sizeof
3. ~
4. &&
A. 1, 2
B. 1, 3
C. 2, 4
D. 1, 2, 3
-
Câu 40:
Kết thúc một dòng lệnh trong chương trình C++, ta sử dụng ký hiệu gì?
A. Dấu ,
B. Dấu .
C. Dấu :
D. Dấu ;
-
Câu 41:
The new operator returns the address and size of the memory block that it allocates.
A. TRUE
B. FALSE
-
Câu 42:
A file stream is an extension of a ___ stream.
A. console
B. windows
C. none of above
-
Câu 43:
A ____ is a special member function used to initialize the data members of a class.
A. constructor
B. destructor
C. static method
-
Câu 44:
What character ends all strings?
A. ‘.’
B. ‘ ‘
C. ‘\0’
D. ‘/0’
-
Câu 45:
Which of the following can be virtual?
A. constructors
B. destructors
C. static functions
D. None of the above
-
Câu 46:
Lệnh cout trong C++ có tác dụng gì?
A. Là stream đầu ra chuẩn trong C++.
B. Là lệnh chú thích trong C++
C. Là stream đầu vào chuẩn của C++.
D. Là lệnh khai báo một biến.
-
Câu 47:
What is output of code?
#include <stdio.h> #include <conio.h> void main() { int a; a = 1; while(a <= 1) if(a%2) printf("%d ", a++); else printf("%d ", ++a); printf("%d ", a+10); getch(); }
A. 1 12
B. 2 12
C. 2 11
-
Câu 48:
Để chú thích trên 1 dòng lệnh trong chương trình C++, ta dùng cặp dấu nào?
A. \* và *\
B. <<
C. //
D. >>
-
Câu 49:
What is output?
#include <conio.h> #include <stdio.h> int main() { int i = 0, j = 0; while (i < 2) { l1: i++; while (j < 3) { printf("loop\n"); goto l1; } } getch(); }
A. loop loop loop
B. Infinite loop
C. Complie error
-
Câu 50:
One can apply pointer arithmetic with reference variables.
A. TRUE
B. FALSE