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:
What is output?
#include <stdio.h> #include <conio.h> #define X 3 #if !X printf("C/C++"); #else printf("Java"); #endif void main() { getch(); }
A. C/C++
B. Java
C. Complier error
-
Câu 2:
What is the output of the following code?
#include <iostream> using namespace std; class Parent { public: Parent() { Status(); } virtual ~Parent() { Status(); } virtual void Status() { cout << "Parent "; } }; class Child : public Parent { public: Child() { Status(); } virtual ~Child() { Status(); } virtual void Status() { cout << "Child "; } }; void main() { Child c; }
A. Parent Parent
B. Parent Child Child Parent
C. Child Parent Parent Child
D. Error
-
Câu 3:
It Is legal to return local variables from a function which returns by reference.
A. TRUE
B. FALSE
-
Câu 4:
Which of the following is a two-dimensional array?
A. array arr[20][20];
B. int arr[20][20];
C. int arr[20, 20];
D. char arr[20];
-
Câu 5:
What will happen if in the C program you assign a value to a array element whose subscript exceeds the size of array?
A. The element will be set to 0.
B. The complier would report an error.
C. The program may crash if some important data gets overwritten
D. The array size would appropriately grow
-
Câu 6:
What is output?
#include <stdio.h> #include <conio.h> int main() { int check = 20, arr[] = {10, 20, 30}; switch (check) { case arr[0]: printf("A "); case arr[1]: printf("B"); case arr[2]: printf("C"); } getch(); }
A. ABC
B. BC
C. B
D. Complier Error
-
Câu 7:
All C++ functions are recursive.
A. TRUE
B. FALSE
-
Câu 8:
Which of the following correctly accesses the seventh element stored in foo, an array with 100 elements?
A. foo[6];
B. foo[7];
C. foo(7);
D. foo;
-
Câu 9:
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 10:
Which properly declares a variable of struct foo?
A. struct foo;
B. struct foo var;
C. foo;
D. int foo;
-
Câu 11:
In case of a copy constructor, which of the following is true?
A. Used to instantiate an object from another existing object
B. To copy one object to another existing object
C. Can be a substitute for a ‘=’ operator
D. All of the above
-
Câu 12:
Global variable are available to all functions. Does there exist a mechanism by way of which it available to some and not to others
A. Yes
B. No
-
Câu 13:
Output of following code?
void main() { int x; { x++; } printf("%d", x); getch(); }
A. 1
B. 0
C. Error
-
Câu 14:
Every operators has an Associativity
A. Yes
B. No
-
Câu 15:
Constructors can be virtual like virtual destructors
A. TRUE
B. FALSE
-
Câu 16:
What will be output of program?
#include <stdio.h> #include <conio.h> void main() { float n = 0.7; if(n < 0.7f) printf("LaptrinhC++"); else printf("abc"); getch(); }
A. LaptrinhC++
B. abc
C. Complier error
D. None of these
-
Câu 17:
What gets printed?
void main() { int i; for(i = 0; i < 20; i++) { switch(i) { case 0:i+=5; case 1:i+=2; case 5:i+=5; default: i+=4; break; } printf("%d,", i); } getch(); }
A. 14,18,
B. 16,20,
C. 16,21,
-
Câu 18:
Operator overloading permits to extend the applicability of existing C++ operators so that they work with new ___ or ___.
A. data types, objects
B. data types, constant
C. data types, pointer
-
Câu 19:
The heap storage is used for local objects.
A. TRUE
B. FALSE
-
Câu 20:
Which of the following gives the memory address of a variable pointed to by pointer a?
A. a;
B. *a;
C. &a;
D. address(a);
-
Câu 21:
What is output?
void main() { int x = 0, y = 0; if(x == 0 || ++y) printf("x=%d", x); printf(" y=%d", y); getch(); }
A. x=0 y=1
B. x=0 y=0
C. Error syntax
-
Câu 22:
In C++ one can define a function within another function.
A. TRUE
B. FALSE
-
Câu 23:
Size of short integer and long integer can be verified using the sizeof( ) operator
A. True
B. False
-
Câu 24:
Để 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 25:
What is output?
#include <stdio.h> #include <conio.h> void swap(char **, char **); int main() { char *pstr[2] = {"LAPTRINHC++", ".NET"}; swap(&pstr[0], &pstr[1]); printf("%s%s", pstr[0], pstr[1]); getch(); } void swap(char **t1, char **t2) { char *t; t=*t1; *t1=*t2; *t2=t; }
A. LAPTRINHC++.NET
B. .NETLAPTRINHC++
C. Address of pstr[0] Address of pstr[1]
-
Câu 26:
Every function must return a value
A. Yes
B. No
-
Câu 27:
Lệnh nào sau đây là SAI?
A. cout << 120;
B. Không có lệnh sai
C. int x; cout << x;
D. int age = 33; cout << “My age is “ << age << “.\n”;
-
Câu 28:
Which of the following reads in a string named x with one hundred characters?
A. fgets(x, 101, stdin);
B. fgets(x, 100, stdin);
C. readline(x, 100, ‘\n’);
D. read(x);
-
Câu 29:
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 30:
One can apply pointer arithmetic with reference variables.
A. TRUE
B. FALSE
-
Câu 31:
Which of the following is a string literal?
A. Static String
B. “Static String”
C. ‘Static String’
D. char string[100];
-
Câu 32:
A operator ___ is called as de-referencing operator.
A. &
B. *
C. &&
-
Câu 33:
A file stream is an extension of a ___ stream.
A. console
B. windows
C. none of above
-
Câu 34:
What is output?
void main() { double k = 0; for (k = 0.0; k < 3.0; k++); printf("%lf", k); getch(); }
A. 012
B. Run time error
C. 3
D. 2
-
Câu 35:
We want to round off x, a float, to an int value, The correct way to do is:
A. y = (int)(x + 0.5)
B. y = int(x + 0.5)
C. y = (int)x + 0.5
D. y = (int)((int)x + 0.5)
-
Câu 36:
What is output?
#include <conio.h> #include <stdio.h> void foo(); int main() { printf("%d ", 1); goto l1; printf("%d ", 2); } void foo() { l1: printf("3 "); }
A. Complie error
B. 3
C. 1
D. 1 3
-
Câu 37:
What is output?
#include <stdio.h> #include <conio.h> int main() { int i = 11; int const * p = &i; p++; printf("%d", *p); getch(); }
A. 11
B. 12
C. Garbage value
D. Complier error
-
Câu 38:
What is output ?
#include <stdio.h> #include <conio.h> int y = 0; void main() { { int x = 0; x++; ++y; } printf("%d\t%d", x, y); getch(); }
A. 1 1
B. 1 0
C. ‘x’ undeclared identifier
-
Câu 39:
What will be output when you will execute following c code?
void main() { char s[] = "man"; int i; for(i = 0; s[i]; i++) printf("%c%c%c%c\t", s[i], *(s+i), *(i+s), i[s]); getch(); }
A. mmmm aaaa nnnn
B. mmm aaa nnn
C. mmmm aaa nnn
D. Another
-
Câu 40:
New operator allocates memory blocks from the ___.
A. Stack
B. Heap
C. Register
-
Câu 41:
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 42:
What will be output of the program?
#include <stdio.h> #include <conio.h> void main() { int n = 2; printf("%d %d %d", n <= 3, n = 4, n >= 2); getch(); }
A. 0 4 1
B. 1 4 1
C. 4 4 1
D. None of these
-
Câu 43:
If the file tobe included does not exist, the preprocessor flashes an error message
A. True
B. False
-
Câu 44:
In a function two return statements should never occur.
A. Yes
B. No
-
Câu 45:
Which of the following gives the value stored at the address pointed to by pointer a?
A. a;
B. val(a);
C. *a;
D. &a;
-
Câu 46:
What will be output of the program?
#include <stdio.h> #include <conio.h> void main() { int a = 10, b = 19; int c; c = (a == 10 || b < 20); printf("c = %d", c); getch(); }
A. c = 1
B. c = 29
C. c = 10
D. c = 19
-
Câu 47:
Which of the following gives the memory address of the first element in array arr, an array with 100 elements?
A. arr[0];
B. arr;
C. &arr;
D. arr[1];
-
Câu 48:
Which of the following is a valid function call (assuming the function exists)?
A. funct;
B. funct x, y;
C. funct();
D. int funct();
-
Câu 49:
A class template may not be used as a base class.
A. TRUE
B. FALSE
-
Câu 50:
What is the output of the following code?
#include <iostream> int count = 0; class obj { public: obj() { count++; } ~obj() { count--; } }; int main() { obj A, B, C, D, E; obj F; { obj G; } std::cout << count; return 0; }
A. 0
B. 5
C. 6
D. 7