#include
#include
void main() {
int i;
for (i = 2;; i++)
printf(“ % 3 d”, i);
};
Kết quả in ra màn hình của chương trình sau là gì:
A. Vòng lặp vô hạn
B. “ 2”
C. “ 1 2”
D. Kết quả khác
Hướng dẫn
Chọn A là đáp án đúng
#include
void main() {
int i;
for (i = 2;; i++)
printf(“ % 3 d”, i);
};
Kết quả in ra màn hình của chương trình sau là gì:
A. Vòng lặp vô hạn
B. “ 2”
C. “ 1 2”
D. Kết quả khác
Hướng dẫn
Chọn A là đáp án đúng
#include
void main() {
int sum;
sum = 453 + 343
printf(“\Ket qua la: “sum);
};
Tìm lỗi sai trong chương trình sau (in ra kết quả là tổng của 453 và 343):
A. Thiếu dấu chấm phẩy(;)
B. Thiếu dấu phẩy (,)
C. Thiếu kí tự đặc tả
D. Cả 3 ý trên
Hướng dẫn
Chọn D là đáp án đúng
#include
void main() {
int i;
for (i = 2; i <= 4; i += 2)
printf(“ % 3 d”, i);
};
Kết quả in ra màn hình của chương trinh sau là gì:
A. “ 1 2 3 4”
B. “ 2 3 4”
C. “ 2 4”
D. Chương trình không chạy được
Hướng dẫn
Chọn C là đáp án đúng
#include
void main() {
int ch = ’A’;
printf(“ % d”, ch);
}
Kết quả in ra màn hình của chương trình sau:
A. A
B. a
C. 65
D. Kết quả khác
Hướng dẫn
Chọn C là đáp án đúng
#include
void main() {
int i = 98;
printf(“ % c”, i);
};
Kết quả của chương trình sau:
A. 98
B. B
C. b
D. Kết quả khác
Hướng dẫn
Chọn C là đáp án đúng
#include
void main() {
int i = 5, j = 6;
i = i – –j;
printf(“ % d”, i);
};
Kết quả in ra màn hình của chương trình sau
A. 5
B. 6
C. 1
D. 0
Hướng dẫn
Chọn D là đáp án đúng
#include
void main() {
int a, b;
a = 100;
b = 56;
printf(“ % d”, (a < b) ? a : b);
}
Kết quả hiển thị ra màn hình của chương trình sau là gì?
A. 56
B. 100
C. Báo lỗi khi thực hiện xây dựng chương trình
D. Kết quả khác
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
float x[] = {
63.2,
-45.6,
70.1,
3.6,
14.5
};
int n = sizeof(x) / sizeof(float);
void main() {
clrscr();
int i, j;
floar c;
for (i = 0, j = n – 1; i < j; i++, j–); {
c = x;
x = x[j];
x[j] = c;
};
printf(“\nDay ket qua la: \n”);
for (i = 0; i < n; i++)
printf(“ % 8.2 f”, x);
getch();
return;
};
Kết quả của chương trình sau là gì?
A. Dãy kết quả là: 63.20, -45.60, 70.10, 3.60, 14.50
B. Dãy kết quả là : 14.50, 3.60, 70.10, -45.60, 63.20
C. Kết quả khác
D. 1 và 2
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
#include
#define EOL‘\ n’
void main() {
clrscr();
char chu[80];
int tong, dem;
for (dem = 0; dem < tong; dem++);
tong = dem;
for (dem = 0; dem < tong; ++dem)
putchar(toupper(chu[dem]));
getch();
return;
};
Kết quả của chương trình sau là gì?
A. Nhập vào một kí tự thường, sau đó chuyển sang chữ hoa rồi in ra màn hình.
B. Nhập một kí tự hoa, sau đó chuyển sang chữ thường rồi in ra màn hình.
C. 1 và 2
D. Kết quả khác
Hướng dẫn
Chọn D là đáp án đúng
#include
void main() {
int i = 100;
printf(“ % c”, i);
};
Kết quả in ra màn hình của chương trình sau:
A. “d”
B. “D”
C. “100”
D. Kết quả khác
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main() {
clrscr();
int i;
for (i = 1; i <= 24; i++);
printf(“\n % d”, i);
getch();
return;
};
Kết quả của chương trình sau là gì:
A. In ra màn hình các số từ 1 đến 24
B. Lỗi khi xây dựng chương trình
C. Kết quả khác
D. In ra màn hình các số từ 1 đến 24, mỗi số một dòng
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
int main() {
clrscr();
char str[80];
fflush(stdin);
scanf(“ % s”, str);
cprintf(“Dong van ban vua nhap la: % s”, str);
getch();
return 0;
};
Khi nhập vào đòng văn bản: “Chao Cac Ban”. Kết quả của chương trình sau là gì:
A. “Chao Cac Ban”
B. “Chao Cac”
C. “Chao”
D. Không hiện kết quả gì
Hướng dẫn
Chọn C là đáp án đúng
#include
void main() {
int i = 1, k = 0;
for (; i < 5; i++) k++;
printf(“ % d”, k);
}
Kết quả của chương trình sau là gì?
A. 0
B. 4
C. 5
D. Vòng lặp vô hạn
Hướng dẫn
Chọn B là đáp án đúng
#include
void main() {
printf(“ % d”, 3 < 2 || 6);
};
Kết quả của chương trình sau là gì:
A. True
B. 0
C. 1
D. Kết quả khác
Hướng dẫn
Chọn C là đáp án đúng
#include
void main() {
int i, k;
for (i = 1;; i++) k = 5;
printf(“ % d”, i);
};
Kết quả của chương trình sau là gì?
A. 0
B. 5
C. Vòng lặp vô hạn
D. Kết quả khác
Hướng dẫn
Chọn C là đáp án đúng
#include
int change(int a) {
a = 10;
return a;
};
void main() {
int a = 5;
change(i);
printf(“ % d”, i);
};
Kết quả của chương trình sau là gì:
A. 5
B. 10
C. 0
D. Báo lỗi khi thực hiện chương trình
Hướng dẫn
Chọn A là đáp án đúng
#include
int change(int * a) {
* a = 10;
return *a;
};
void main() {
int i = 5;
change( & i);
printf(“ % d”, i);
};
Kết quả của chương trình sau là gì:
A. 5
B. 10
C. 0
D. Báo lỗi khi thực hiện xây dựng chương trình
Hướng dẫn
Chọn B là đáp án đúng
#include
void main() {
int x, * p;
x = 6;
p = & x;
printf(“ % d”, x);
printf(“ % d”, * p);
};
Kết quả của chương trình sau là gì:
A. 69
B. 66
C. Lỗi khi xây dựng chương trình
D. Kết quả khác
Hướng dẫn
Chọn B là đáp án đúng
#include
void main() {
int x, * p;
x = 3;
x = 6;
p = & x;
* p = 9;
printf(“ % d”, x);
printf(“ % d”, * p);
printf(“ % d”, x);
};
Kết quả của chương trình sau là gì:
A. “369”
B. “696”
C. “999”
D. Kết quả khác
Hướng dẫn
Chọn C là đáp án đúng
#include
void main() {
char c;
int n;
scanf(“ % d % c”, & n, & c);
printf(“ % 3 d % c”, n, c);
};
Cho đoạn chương trình sau. Giả sử khi chạy chương trình ta gõ từ bản phím: “29h b”. Kết quả in ra n và c tương ứng sẽ là:
A. “ 29b”
B. “ 29h b”
C. “ 29h”
D. Kết quả khác
Hướng dẫn
Chọn C là đáp án đúng
#include
void main() {
char * s;
s = ”chao cac ban”;
strcpy( & s[5], & s[9]);
printf(“ % s”, s);
};
Kết quả in ra màn hình của chương trình sau:
A. “chao”
B. “chao cac”
C. “chao ban”
D. “chao cac ban”
Hướng dẫn
Chọn C là đáp án đúng
#include
void main() {
int a = 100, b = 6;
double f;
f = (double) a / (double) b;
printf(“ % 2.2 f”, f);
};
Kết quả in ra màn hình của chương trình sau:
A. “16”
B. “16.00”
C. “16.67”
D. Kết quả khác
Hướng dẫn
Chọn C là đáp án đúng
#include
void hoanvi(int * px, int * py) {
int z;
z = * px;
* px = * py;
* py = z;
};
void main() {
int a = 15, b = 21;
hoanvi(a, b);
printf(“ % d % d”, a, b);
};
Kết quả của chương trình sau là gì
A. “15 21”
B. “21 15”
C. Báo lỗi khi thực hiện chương trình
D. Kết quả khác
Hướng dẫn
Chọn B là đáp án đúng
#include
void hoanvi(int px, int py) {
int pz;
pz = px;
px = py;
py = pz;
};
void main() {
int a = 15, b = 21;
hoanvi(a, b);
printf(“ % d % d”, a, b);
};
Kết quả chương trình sau là gì:
A. “21 15”
B. “15 21”
C. Báo lỗi khi thực hiện chương trình
D. Kết quả khác
Hướng dẫn
Chọn B là đáp án đúng
#include
void main() {
int a = 40, b = 4;
while (a != b)
if (a > b) a = a – b;
else b = b – a;
printf(“ % d”, a);
};
Kết quả của chương trình sau là gì
A. 2
B. 16
C. 4
D. Kết quả khác
Hướng dẫn
Chọn C là đáp án đúng
#include
void main() {
int i, j;
for (i = 1; i < 4; i++)
j = i;
printf(“ % 3 d”, j);
};
: Kết quả của chương trình sau là gì :
A. “ 1 2 3 4”
B. “ 4”
C. “ 3”
D. Kết quả khác
Hướng dẫn
Chọn C là đáp án đúng
#include
main() {
int i, ch;
for (i = 0, ch = ’A’; i < 4; i++, ch += 2)
putchar(ch);
};
Tìm kết quả của chương trình sau:
A. “ABCDE”
B. “ABC”
C. “ACEG”
D. Không câu nào đúng
Hướng dẫn
Chọn C là đáp án đúng
#include
main() {
int i, ch;
for (i = 0, ch = ’A’; i < 5; i++, ch++)
putchar(ch);
};
Tìm kết quả của chương trình sau:
A. “ABCDE”
B. “ABC”
C. “ACEG”
D. Không câu nào đúng
Hướng dẫn
Chọn A là đáp án đúng
#include
void main() {
printf(“ % d”, 3 6);
};
Kết quả của chương trình sau là gì?
A. 1
B. 0
C. True
D. Kết quả khác
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main() {
char c;
clrscr();
do c = getchar();
while (c != ’ * ’);
getch();
};
Cho đoạn chương trình sau. Yêu cầu của đoạn chương trình trên là:
A. Nhập vào 1 kí tự cho đến khi gặp kí tự ‘*’
B. Nhập vào các kí tự cho tới khi gặp kí tự ‘*’
C. Nhập các kí tự ‘*’
D. Lỗi khi xây dựng chương trình
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main() {
struct S1 {
float d;
float d1;
float d2;
};
struct S1 m = {
12,
1
};
printf(“ % 0.1 f % 0.1 f % 0.1 f”, m.d, m.d1, m.d2);
};
Chọn kết quả đúng cho chương trình sau:
A. “12.01.00.0”
B. “12.0000001.0000000.000000”
C. Kết quả khác
D. Chương trình bị lỗi
Hướng dẫn
Chọn A là đáp án đúng
#include
void main() {
clrscr();
struct sv {
float d;
char ht[10];
};
struct sv m, * p;
p = & m;
( * p).d = p -> d = 10;
strcpy(m.ht, ”NguyenVanTuan”);
printf(“ % 0.1 f”, m.d);
printf(“ % s”, m.ht);
};
Chọn kết quả đúng cho chương trình sau:
A. “10.000000NguyenVanTuan”
B. “10.0NguyenVanTuan”
C. Chương trình bị lỗi
D. Kết quả khác
Hướng dẫn
Chọn D là đáp án đúng
#include
void main() {
int * px, * py;
int a[] = {
1,
2,
3,
4,
5,
6
};
px = a;
py = & a[5];
printf(“ % d”, ++px – py);
};
Chương trình sau cho kết quả là gì:
A. -4
B. 2
C. 5
D. Không có kết quả đúng
Hướng dẫn
Chọn A là đáp án đúng
#include
void main() {
struct diem; {
float k;
float a;
float l;
};
struct diem m;
m.k = 8;
m.a = 6.5;
m.l = 6;
printf(“ % 0.1 f % 0.1 f % 0.1 f”, m.k, m.a, m.l);
};
Kết quả của chương trình sau là gì:
A. “8.06.56.0”
B. “86.56”.
C. “8.0000006.5000006.000000”
D. “86.5000006”
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
int main() {
printf(“%d\t”, sizeof(6.5));
printf(“%d\t”, sizeof(90000));
printf(“%d”, sizeof(‘A’));
getch();
}
Cho đoạn chương trình sau. Biết kích thước kiểu char: 1 byte, float : 4 byte, int : 4 byte, double : 8 byte, long : 4 byte. Kết quả trả về sẽ là:
A. 8 4 1
B. 8 2 1
C. 4 4 1
D. Kết quả khác
Hướng dẫn
Chọn A là đáp án đúng
#include
int main() {
double num = 5.2;
int
var = 5;
printf(“%d\t”, sizeof(!num));
printf(“%d\t”, sizeof(var = 15 / 2));
printf(“%d”,
var);
return 0;
}
Cho đoạn chương trình sau, kết quả trả về sẽ là:
A. 1 4 5
B. 1 4 7
C. 8 4 7
D. Kết quả khác
Hướng dẫn
Chọn A là đáp án đúng
#include
int main() {
int w = 3;
int x = 31;
int y = 10;
double z = x / y % w;
printf(“%f\n”, z);
return 0;
}
Cho đoạn chương trình sau. Kết quả trả về là:
A. 1
B. 0
C. 0.1
D. 2
Hướng dẫn
Chọn B là đáp án đúng
#include
void main()
{
printf(“laptrinhc++”);
main();
}
How many times the program will print “laptrinhc++”?
A. Infinite times
B. 65535 times
C. Till stack overflows
D. Cannot call main( ) in main( )
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
void main()
{
printf(“%d %d %d”, sizeof(3.14), sizeof(3.14f), sizeof(3.14l));
getch();
}
What will be output of the program?
A. 8 4 8
B. 4 4 8
C. 4 8 10
D. 4 8 12
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
3.14 là hằng số kiểu double
3.14f là hằng số kiểu float
3.14l là hằng số kiểu long double
#include
In which stage the following code. Gets replaced by the contents of the file stdio.h
A. During editing
B. During linking
C. During execution
D. During preprocessing
Hướng dẫn
Chọn D là đáp án đúng
#include
#include
#include
void main()
{
printf(“%f”, sqrt(36.0));
getch();
}
What is output of the program?
A. 6.000000
B. 6
C. Error
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Xem thêm hàm sqrt()
#include
#include
void main()
{
int y = 100;
const int x = y;
printf(“%d”, x);
getch();
}
What is output of the program?
A. 100
B. Garbage value
C. Error
D. 0
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
hằng số x được khởi tạo bằng 100.
#include
#include
void main()
{
float n = 0.7;
if(n < 0.7f)
printf(“LaptrinhC++”);
else
printf(“abc”);
getch();
}
What will be output of program?
A. LaptrinhC++
B. abc
C. Complier error
D. None of these
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
0.7f là hằng số kiểu float. Biểu thức so sánh 0.7 < 0.7f trả về false.
#include
#include
void main()
{
float n = 0.7;
if(n < 0.7)
printf(“LaptrinhC++”);
else
printf(“abc”);
getch();
}
What will be output of program?
A. LaptrinhC++
B. abc
C. Complier error
D. None of these
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
float n = 1.67;
printf(“%e, “, n);
printf(“%f, “, n);
printf(“%g, “, n);
printf(“%lf, “, n);
getch();
}
What will be output of the program?
A. 1.670000e+000, 1.670000, 1.67, 1.670000,
B. Complier Error
C. 1.67e, 1.67000, 1.670, 1.67
D. 1.67e, 1.67, 1.67000, 1.67f
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
%e: in ra kiểu số mũ.
%f: in ra kiểu dấu phẩy động
%g: in ra dạng rút gọn của %f hoặc %e
%lf: in ra kiểu dấu phẩy động.
#include
#include
void main()
{
printf(“%f”, log(1.9));
getch();
}
Which library will you add in the following program to work it correctly?
A. math.h
B. stdlib.h
C. log.h
D. dos.h
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
#include
void main()
{
float n = 1.34;
printf(“%f %f”,ceil(n), floor(n));
getch();
}
What will be the ouput of the program?
A. 1.000000 2.000000
B. 1.500000 1.000000
C. 2.000000 1.000000
D. 1.300000 2.000000
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Xem thêm: hàm ceil() và floor()
#include
void main()
{
extern int a;
printf(“\n a = %d”, a);
}
int a = 20;
In the following program where is the variable a getting defined and where it is getting declared?
A. Extern int a is declaration, int a = 20 is the definition
B. Int a = 20 is declaration, extern int a is the definition
C. Int a = 20 is definition, a is not defined
D. a is declared, a is not defined
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
void v = 0;
printf(“%d”, v);
getch();
}
Point out a error in the following program
A. Error: Declaration syntax error v (or) ‘v’: illegal use of type ‘void’
B. Program terminate abnormally
C. No error
D. None of these
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Dùng kiểu con trỏ void* để trỏ đến kiểu dữ liệu khác.
#include
#include
void main()
{
int i = 5;
for(;scanf(“%d”, &i); printf(“%d”, i));
getch();
}
In the following program how long will the for loop get executed?
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
Hướng dẫn
Chọn D là đáp án đúng
Xem lời giải
Xem lời giải
Hàm scanf() đợi người dùng nhập giá trị vào từ bàn phím. Đồng thời trong đoạn code này, hàm scanf() luôn trả về 1 (vòng lặp vô hạn), hàm printf() in ra giá trị nhập vào.
#include
#include
void main()
{
display();
getch();
}
void display()
{
printf(“vncoding.net”);
}
Point out the error in the following program (if it is compiled with Turbo C complier)
A. No error
B. display( ) is not declared
C. None of these
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
int N = 10;
void main()
{
int N = 20;
printf(“N = %d”, N);
getch();
}
What is output of program?
A. N = 20
B. N = 10
C. Error
D. No Output
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int a[5] = {1, 2};
printf(“%d %d %d”, a[2], a[3], a[4]);
getch();
}
What is output of program?
A. 0 0 0
B. 1 2 2
C. 1 1 1
D. Error
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Đối với mảng tĩnh, nếu khởi tạo thiếu cho các phần tử thì mặc định các phần tử đó được gán bằng 0.
Hay nói cách khác, câu lệnh int a[5] = {1,2}; int a[5] = {1, 2, 0, 0, 0};
#include
#include
void main()
{
extern int func(float);
int a;
a = func(3.14);
printf(“%d”, a);
getch();
}
int func(float a)
{
return (int)++a;
}
What is output of program?
A. 3
B. 4
C. Complier Error
D. 3.14
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Toán tử ++ dùng cho cả số nguyên và số thập phân.
#include
#include
void main()
{
int x = 10, y = 20, z = 5, i;
i = x < y < z;
printf(“i = %d”, i);
getch();
}
What is output of program?
A. i = 0
B. i = 1
C. Error
D. None of these
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Toán tử so sánh có thứ tự ưu tiên từ trái sang phải. x < y 10 < 20 trả về true (1). (x < y) < z 1 < z trả về true (1)
#include
int main()
{
char *url=”c:\tc\bin\rw.c”;
printf(“%s”, url);
return 0;
}
What is output?
A. c:/tc/bin/rw.c
B. c: c inw.c
C. c:cinw.c
D. w.c in
Hướng dẫn
Chọn D là đáp án đúng
Xem lời giải
Xem lời giải
Giải thích: trong chuỗi url, có các kí tự đặc biệt: ‘\t’ : cách 1 tab, ‘\b’ : đưa con trỏ trên màn hình lùi về trước 1 kí tự, ‘\r’ : quay về đầu dòng.
Chương trình sẽ in: c: c, gặp kí tự ‘\b’ đưa con trỏ lùi về 1 kí tự và kết quả tiếp theo: c: in. Khi gặp kí tự ‘\r’, con trỏ sẽ trỏ về vị trí đầu dòng và in đè lên kết quả đã có. Cuối cùng: w.c in
#include
#include
void main()
{
char c = 125;
c = c + 10;
printf(“%d”, c);
getch();
}
What is output?
A. 135
B. 8
C. -121
D. 121
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Giải thích: biến char a = 135 vượt ra khỏi dải (-128 đến 127). Nên a = 135%256 = -121
#include
#include
int main()
{
float a = 0.7;
if(0.7 > a)
printf(“Hi\n”);
else
printf(“Hello\n”);
getch();
}
What is output?
A. Hi
B. Hello
C. None of above
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
int main()
{
char c = 48;
int i, mask = 01;
for(i = 1; i <= 5; i++)
{
printf(“%c”, c|mask);
mask = mask << 1;
}
getch();
}
What is output?
A. 12480
B. 1248@
C. 12500
D. 12522
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Giải thích:
c|mask = 49 -> in ra 1, mask = mask<<1 = 2
c|mask = 50 -> in ra 2, mask = mask<<1 = 4
c|mask = 52 -> in ra 4, mask = mask<<1 = 8
c|mask = 56 -> in ra 8, mask = mask<<1 = 16
c|mask = 48 -> in ra 0, end for()
#include
int main()
{
int x = 5, y = 10, z = 15;
printf(“%d %d %d”);
return 0;
}
What is output?
A. Garbage Garbage Garbage
B. 5 10 15
C. 15 10 5
D. Run time error
Hướng dẫn
Chọn A là đáp án đúng
#include
int main()
{
const int i = 5;
i++;
printf(“%d”, i);
return 0;
}
What is output ?
A. 5
B. 6
C. 0
D. Complier error
Hướng dẫn
Chọn D là đáp án đúng
Xem lời giải
Xem lời giải
Giải thích: chương trình biên dịch sẽ không cho phép thay đổi giá trị của biến const.
#include
#include
int y = 0;
void main()
{
{
int x = 0;
x++;
++y;
}
printf(“%d\t%d”, x, y);
getch();
}
What is output ?
A. 1 1
B. 1 0
C. ‘x’ undeclared identifier
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Biến x là biến cục bộ, nên trình biên dịch sẽ báo lỗi tại lệnh printf().
#include
#include
extern int x = 0;
void main()
{
x++;
printf(“%d”, x);
getch();
}
What is output ?
A. 0
B. Error
C. 1
D. x isn’t defined
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Biến extern int x có thể thay đổi giá trị của nó.
#include
#include
void main()
{
int i = 5,j = 6;
printf(“%d”, i | j);
getch();
}
What is output ?
A. 7
B. 6
C. 5
D. 1
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
i = 5 = 101 (hệ nhị phân), j = 6 = 110 (hệ nhị phân). Phép toán | là phép toán OR bit. i|j = 111 = 7.
#include
#include
extern int x = 0;
void main()
{
{
int x = 1;
}
printf(“%d”, x);
getch();
}
What is output ?
A. 0
B. 1
C. Error Comlier
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Khai báo int x = 1, x ở đây là biến local và chỉ có giá trị trong {}. Hàm printf() ở ngoài {} sẽ dùng giá trị của biến x = 0.
#include
#include
void main()
{
int i = 5, j = 6, k;
k = i & j;
printf(“%d”, k);
getch();
}
What is output ?
A. 4
B. 0
C. 1
D. 5
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
i = 5 = 101 (hệ nhị phân), j = 6 = 110 (hệ nhị phân). Phép toán & là phép toán AND bit. k = i&j = 100 = 4.
#include
int main()
{
char a = 250;
int expr;
expr= a + !a + ~a + ++a;
printf(“%d”, expr);
return 0;
}
What will be output when you will execute following c code?
A. -6
B. 5
C. 4
D. Another
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Biến char a = 250 vượt ra khỏi dải (-128 đến 127). Nên a = 250%256 = -6 (xem thêm: ) Trong các toán tử trong phép toán. Toán tử ! ~ ++ có cùng độ ưu tiên, nhưng trình tự kết hợp từ phải sang trái. Do vậy, ++a = -5 được thực hiện trước. expr = -5 + !(-5) + ~(-5) + (-5) = -5 + 0 + 4 -5 = -6
#include
int main()
{
int w = 3;
int x = 31;
int y = 10;
double z = x / y % w;
printf(“%f\n”, z);
return 0;
}
What value gets printed by the program below?
A. 1
B. 0
C. 0.1
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Toán tử / lấy thương, còn toán tử % lấy phần dư. Cả 2 toán tử này có độ ưu tiên toán tử như nhau. Do vậy, x/y%w = (x/y)%w = (31/10)%3 = 0
#include
int main()
{
int a = -5;
unsigned int b = -5u; // (*)
if(a == b)
printf(“Avatar”);
else
printf(“Alien”);
return 0;
}
What will be output when you will execute following c code?
A. Avatar
B. Alien
C. Error at (*)
D. Another
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int x = 3;
printf(“%d”, x++ + ++x);
getch();
}
What will be output when you will execute following c code?
A. 7
B. 8
C. 9
D. Another
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Phép toán ++x sẽ được thực hiện trước tiên (x = 4), sau đó x++ + x = 4++ + 4 = 8. Sau phép toán,giá trị củax = 5
#include
int main()
{
double num = 5.2;
int var = 5;
printf(“%d\t”, sizeof(!num));
printf(“%d\t”, sizeof(var=15/2));
printf(“%d”, var);
return 0;
}
What will be output when you will execute following c code?
A. 1 4 5
B. 1 4 7
C. 8 4 7
D. Another
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Giải thích: toán tử ! trả về giá trị kiểu bool (0, 1), mà sizeof(kiểu bool) = 1. var = 15/2 = 7, sizeof(var) = 4
#include
#include
void main()
{
int a = 10;
void f();
a = f();
printf(“%d”, a);
getch();
}
void f()
{
printf(“vncoding”);
}
Point out the error in the following program
A. Error: cannot convert ‘void’ to ‘int’
B. Error:
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
int main()
{
printf(“%d\t”, sizeof(6.5));
printf(“%d\t”, sizeof(90000));
printf(“%d”, sizeof(‘A’));
getch();
}
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.
A. 8 4 1
B. 8 2 1
C. 4 4 1
D. Depend on complier
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Toán tử sizeof() trả về kích thước của biến (đơn vị là byte). 6.5 ở đây chương trình hiểu là kiểu double, 90000 là kiểu int, ‘A’ là hằng kí tự kiểu char.
#include
#include
int func(int i, int j)
{
int k, l;
k = i + j;
l = i * j;
return (k, l);
}
void main()
{
int i = 2, j = 3, k, l;
k = func(i, j);
l = func(i, j);
printf(“%d %d”, k, l);
getch();
}
What will be the output of the program?
A. 6 6
B. 5 6
C. Complier error
D. None of above
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
k = i + j = 5
l = i*j = 6
Câu lệnh return(k, l) = return(5, 6) = return(6).
#include
#include
int f1(int);
int f2(int);
void main()
{
extern int i;
int j = 3;
f1(j);
printf(“%d,”, j);
f2(j);
printf(“%d”, j);
getch();
}
int f1(int i)
{
printf(“%d,”,++i);
return 0;
}
int f2(int j)
{
printf(“%d,”, ++j);
return 0;
}
What will be output of the program?
A. 4, 3, 4, 3
B. 4, 4, 5, 5
C. 3, 4, 3, 4
D. None of above
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
int reverse(int);
void main()
{
int n = 5;
reverse(n);
getch();
}
int reverse(int n)
{
if(n == 0)
return 0;
else
printf(“%d”, n);
reverse(n–);
}
What will be the output of the program?
A. 543210
B. 54321
C. 12345
D. Infinite loop
Hướng dẫn
Chọn D là đáp án đúng
Xem lời giải
Xem lời giải
Hàm reverse() là hàm đệ quy.
n = 5, câu lệnh gọi hàm reverse(n–) reverse(5) vì biến n giảm sau khi gọi hàm.
Vì giá trị truyền vào cho hàm reverse ko thay đổi. Do vậy, chương trình đệ qui rơi vào vòng lặp vô hạn.
Để fix chương trình này, thay reverse(n–) bằng reverse(–n).
#include
#include
void main()
{
int func(int);
int i = func(5);
printf(“%d”, –i);
getch();
}
int func(int n)
{
return(n++);
}
What will be the output of the program?
A. 4
B. 5
C. 6
D. Another
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Ngôn ngữ C/C++, cho phép bạn khai báo hàm trong 1 hàm khác.
Hàm func(5) trả về là 5 không phải là 6, vì giá trị n được tăng sau khi thực hiện xong câu lệnh return.
#include
#include
int f(int a)
{
a > 20 ? return(1) : return(0);
}
void main()
{
int f(int);
int b = f(20);
printf(“%d”, b);
getch();
}
Point out the error in the program
A. Error: Prototype declaration
B. No error
C. Error: return statement cannot be used with conditional operators
D. None of above
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Sau toán tử điều kiện phải là biểu thức toán học, không thể là câu lệnh (return).
Câu lệnh “a > 20 ? return(1) : return(0);” nên đổi thành “return (a > 20 ? 1 : 0);”
#include
void main()
{
int a;
a = f(1, 3.14);
}
float f(int a, float b)
{
return ((float)a + b);
}
There is a error in the below program. Which statement will you add to remove it
A. Add prototype: float f(int, float);
B. Add prototype: float f(a, b);
C. Add prototype: float f(float a, int b)
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
printf(“%p”, main());
getch();
}
Which of the following statements are correct about the program?
A. It prints garbage values infinitely
B. Runs infinitely without printing anything
C. Error: main( ) cannot be called inside printf( )
D. No Error and print nothing
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
void main()
{
static int i;
int j;
for(j = 0; j <= 5; j++)
switch(j)
{
case 1:
i++;
break;
case 2:
i+=2;
case 4:
i /= 1;
j += 1;
continue;
default:
–i;
continue;
}
printf (“%d”, i);
getch();
}
What is output?
A. 0
B. 2
C. 3
D. -4
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
void main()
{
int i, j;
for(i = 0, j = 0; i < 5, j < 6; i++, j++)
{
printf(“i = %d \t j = %d\n”, i, j);
}
getch();
}
What is output?
A. print i and j from 0 till 4
B. print i and j from 0 till 5
C. print i from 0 to 4, print j from 0 to 5
D. Complier Error
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
int func(int* i);
void main()
{
int i = 15;
while(func(&i) && i++ > 0);
printf(“%d”, i);
getch();
}
int func(int* i)
{
*i -= 5;
return(*i);
}
What is output?
A. 0
B. -1
C. -2
D. -3
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
int main()
{
int x = 011, i;
for(i = 0; i < x; i += 3)
{
printf(“Start “);
continue;
printf(“End”);
}
getch();
}
What is output?
A. Start End Start End
B. Start Start Start
C. Start Start Start Start
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
011 là số octal = 9. Lệnh printf(“Start”); sẽ thực hiện 3 lần.
#include
#include
void main()
{
int s = 0;
while (s++ < 10)
{
if (s < 4 && s < 9)
continue;
printf(” %d “, s);
}
getch();
}
What is output of the following code?
A. 1 2 3 4 5 6 7 8 9
B. 3 4 5 6 7 8 9
C. 4 5 6 7 8 9
D. 4 5 6 7 8 9 10
Hướng dẫn
Chọn D là đáp án đúng
Xem lời giải
Xem lời giải
Xét biểu thức (s++ < 10). Giá trị của biến s được tăng sau khi so sánh s < 10. Do vậy, giá trị của biến s trong vòng while từ 1 đến 10. Khi s = 1 → 3, biểu thức logic (s < 4 && s < 9) = TRUE, lệnh continue được thực hiện và câu lệnh printf bị bỏ qua. Kết quả: 4 5 6 7 8 9 10 được in ra.
#include
#include
void main()
{
int i = 6;
while(i)
{
if (i > 5)
{
i–;
}
i = i + 5;
if (i > 34)
{
break;
}
}
printf(“%d”, i);
getch();
}
What is output?
A. Infinite loop
B. 35
C. 38
D. 39
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
int print(int i);
void main()
{
int i = 6;
while(print(i) || –i);
getch();
}
int print(int i)
{
printf(“%d, “, i);
return 0;
}
What is output?
A. 6, 5, 4, 3, 2, 1,
B. 6, 5, 4, 3, 2, 1, 0,
C. Complier Error
D. Infinite loop
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
int main()
{
int i = 1024;
for (; i; i >>= 1)
printf(“\nlaptrinhc++”);
getch();
}
How many times will “vncoding” is printed on screen?
A. 10
B. 11
C. Infinite
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Vì i >>=1 -> i = i >> 1 = i/2. Mà 1024 = 2^10 = 1000000000 -> “laptrinhc++” sẽ được in ra 10 lần.
#include
#include
void main()
{
int i = 2, j = 2;
while(i+1? –i : j++)
printf(“%d”, i);
getch();
}
What is output?
A. 1
B. 2
C. Complier Error
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
i+1 = 3 (trong ngôn ngữ C, 3 có nghĩa là TRUE) -> lệnh –i = 1 được thực hiện.
Trong ngôn ngữ C, 1 có nghĩa là TRUE -> in 1 ra màn hình.
#include
#include
void main()
{
int i, j;
i = j = 2;
while(–i&&j++)
printf(“%d %d”, i, j);
getch();
}
What is output?
A. 1 3
B. 1 2
C. Không in ra kí tự nào
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
–i&&j++ = 1&&2 = 1 (TRUE), sau lệnh này i = 1 và j = 3 -> in 1 3 ra màn hình.(chú ý: trong ngôn ngữ C, vớitoán tử && cả hai toán hạng khác không thì kết quả sẽ bằng 1)
–i&&j++ = 0&&3 = 0 (FALSE) -> thoát khỏi vòng lặp
#include
#include
void main()
{
int i = 0;
for(; i <= 2; )
printf(” %d”, ++i);
getch();
}
What is output?
A. 1 2 3
B. 0 1 2 3
C. 0 1 2
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int x;
for(x = 1; x <= 5; x++);
printf(“%d”, x);
getch();
}
What is output ?
A. 12345
B. 123456
C. 6
D. 1234
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
int main()
{
int i = 3;
while (i–)
{
int i = 100;
i–;
printf(“%d “, i);
}
getch();
}
What is output?
A. 99 99 99
B. Complier Error
C. 1
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Nếu chương trình được biên dịch bằng trình biên dịch C, chương trình biên dịch báo lỗi vì biến chỉ được khai báo đầu hàm.
Chương trình được biên dịch C++, không xảy ra lỗi
– Câu lệnh int i = 3 là biến global. Giá trị i trong biểu thức while có giá trị khởi tạo là 3.
– Câu lệnh int i = 100 là biến local. Câu lệnh trong vòng lặp lấy giá trị i = 100.
#include
#include
int main()
{
int i = 0, j = 0;
while (i < 5, j < 10)
{
i++;
j++;
}
printf(“%d, %d\n”, i, j);
getch();
}
What is output ?
A. 5, 5
B. 10, 10
C. Syntax error
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Biểu thức của vòng lặp while có thể là nhiều biểu thức và vòng lặp while sẽ chỉ quan tâm đến biểu thức cuối cùng.
#include
#include
int main()
{
int a = 0, i = 0, b = 0 ;
for (i = 0; i < 5; i++)
{
a++;
continue;
b++;
}
printf(“\n a = %d,b =%d”, a, b);
getch();
}
What is output?
A. a = 5,b = 5
B. a = 4,b = 4
C. a = 5,b = 0
D. Another
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Gặp lệnh continue, complier sẽ bỏ qua các câu lệnh tiếp theo và thực hiện hiện 1 vòng lặp mới. Như vậy, câu lệnh b++ sẽ không bao giờ được thực hiện.
#include
#include
int foo();
void main()
{
int i = 0;
for (foo(); i == 1; i = 2)
printf(“In for loop\n”);
printf(“After loop\n”);
getch();
}
int foo()
{
return 1;
}
What is output?
A. In for loop
B. After loop
C. Complie error
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Biến i = 0, giá trị logic của biểu thức “i == 1” = FALSE → vòng for kết thúc. Lệnh printf(“In for loop\n”) không được thực hiện.
#include
#include
int main()
{
int i = 0;
while (i = 0)
printf(“True\n”);
printf(“False\n”);
getch();
}
What is output?
A. True
B. False
C. Complie Error
D. Another
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Vòng while sẽ kết thúc khi biểu thức trong while là FALSE. Biểu thức i = 0 chỉ là phép gán. Giá trị của biểu thức này là 0 tương đương với FALSE. Lệnh printf(“True\n”) sẽ không được thực hiện.
#include
int main()
{
int i = 0;
for (; ; ; )
printf(“In for loop\n”);
printf(“After loop\n”);
}
What is output?
A. Complie time error
B. Infinite Loop
C. Nothing
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Vòng lặp for() không có biểu thức khởi tạo.
#include
#include
void main()
{
int k;
for (k = -3; k < -5; k++)
printf(“Hello”);
getch();
}
What is output?
A. Hello
B. Nothing
C. Complier Error
D. Run time error
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Ở trên là cách viết tắt của vòng lặp for. Dạng đầy đủ là:
for (k = -3; k < -5; k++){ printf("Hello");}
Với k = -3 ( k > -5) nên các lệnh trong vòng for không được thực hiện.
#include
#include
void main()
{
int i = 3;
i = i++;
printf(“%d”, i);
getch();
}
What is output of the program?
A. 4
B. 3
C. Complier error
D. None of above
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int arr[3] = {3};
int i;
for(i = 0; i <= 2; i++)
printf(“%d, “, arr);
getch();
}
What will be output of the program?
A. 3, 0, 0,
B. 3, 3, 3,
C. 3, garbage, garbage
D. Another
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int k, num = 20;
k = (num>5 ? (num <= 10 ? 10 : 30): 40);
printf(“%d”, k);
getch();
}
What will be output of the program?
A. 20
B. 30
C. 40
D. 10
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
void main()
{
int n = 2;
printf(“%d %d %d”, n = 2);
getch();
}
What will be output of the program?
A. 0 4 1
B. 1 4 1
C. 4 4 1
D. None of these
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Thứ tự thực hiện các phép toán trong printf từ phải sang trái.
(n >= 2) = (2 >= 2) = 1
n = 4
n <= 3 = (4 <= 3) = 0
#include
#include
void main()
{
int n = 2;
printf(“%d %d”, ++n, ++n);
getch();
}
What will be output of the program?
A. 4 4
B. 3 4
C. 2 2
D. 2 3
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int a = 10, b = 19;
int c;
c = (a == 10 || b < 20);
printf(“c = %d”, c);
getch();
}
What will be output of the program?
A. c = 1
B. c = 29
C. c = 10
D. c = 19
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int x = 4, y, z;
y = –x;
z = x–;
printf(“%d %d %d”, x, y, z);
getch();
}
What will be output of the program?
A. 4 3 2
B. 4 3 3
C. 2 3 2
D. 2 3 3
Hướng dẫn
Chọn D là đáp án đúng
#include
#include
void main()
{
int i = 2;
int j = i + (1, 2, 3, 4);
printf(“j = %d”, j);
getch();
}
What will be the output of the program?
A. 6
B. 3
C. 12
D. Complier error
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
j = i + (1, 2, 3, 4) = i + 4 = 6
#include
#include
void main()
{
int i = 3, j = 2, k = -1, m;
m = ++i||++j&&++k;
printf(“%d %d %d %d”, i, j, k, m);
getch();
}
What will be the output of the program?
A. 4 2 -1 1
B. 4 3 0 1
C. 3 2 -1 1
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
m = ++i||++j&&++k = (++i) || (++j&&++k). Vì ++i = 4 != 0 nên (++j&&++k) không được thực hiện.
#include
#include
void main()
{
int i = 3, j = 2, k = -1, m;
m = ++i&&++j&&++k;
printf(“%d %d %d %d”, i, j, k, m);
getch();
}
What is output of the program?
A. 4 3 0 0
B. 3 3 0 1
C. 4 2 0 0
D. None of these
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
m = ++i&&++j&&++k = (++i)&&(++j)&&(++k) = 4 && 3 && 0 = 0
#include
#include
void main()
{
int x = 12, y = 7, z = 2;
z = x != 4 || y == 2;
printf(“z = %d”, z);
getch();
}
What will be the output of the program?
A. z = 0
B. z = 1
C. z = 4
D. z = 3
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
z = x != 4 || y == 2 = (x != 4) || (y == 2) = 1 || 0 = 1
#include
#include
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;
}
What is output?
A. LAPTRINHC++.NET
B. .NETLAPTRINHC++
C. Address of pstr[0] Address of pstr[1]
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
static int a[20];
int i = 0;
a = i;
printf(“%d %d %d”, a[0], a[1], i);
getch();
}
What will be the output of the program?
A. 1 0 1
B. 1 1 1
C. 0 0 0
D. 0 1 0
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Mảng static được tự động khởi tạo với giá trị 0
#include
#include
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();
}
What will be the output of the program?
A. 1 1 1 1
B. 1 0 0 1
C. 1 0 1 1
D. Other
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
int main()
{
int a[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
printf(“%u, %u, %u\n”, a[0]+1, *(a[0]+1), *(*(a+0)+1));
getch();
}
What is output? (assuming that the array begins at the location 1002 and size of an integer is 4 bytes)
A. 1006, 2, 2
B. 1006, 4, 4
C. 1002, 5, 5
D. Error
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
int main()
{
char str[] = “LAPTRINHC++\0\.NET\0”;
printf(“%s\n”, str);
getch();
}
What is output?
A. LAPTRINHC++
B. LAPTRINHC++\0\.NET\0
C. LAPTRINHC++\0\.NET
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
int main()
{
int i = 11;
int const * p = &i;
p++;
printf(“%d”, *p);
getch();
}
What is output?
A. 11
B. 12
C. Garbage value
D. Complier error
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
void main()
{
char arr[8]={‘V’,’I’,’E’,’T’,’N’,’A’,’M’};
char *p;
p=(char *)(arr+2)[2];
printf(“%c”, p);
getch();
}
What is output?
A. I
B. E
C. M
D. N
Hướng dẫn
Chọn D là đáp án đúng
#include
#include
int main()
{
int array[2][2][3]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
printf(“%d”, array[1][0][2]);
getch();
}
What is output?
A. 6
B. 7
C. 8
D. 9
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
void main()
{
char ch[]={‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’};
int *p = (int*)ch;
p++;
printf(“%x”, *p);
getch();
}
What will be output of following program?
A. 37363534
B. 34353637
C. 45673333
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int i = 5;
int *p;
p = &i;
printf(” %u %u”, *&p , &*p);
getch();
}
What will be output of following program?
A. Address of i Address of i
B. Garbage value Garbage value
C. Complier Error
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
*&p = &*p = p = &i
#include
#include
int main()
{
int i = 5, j;
int *p , *q;
p = &i;
q = &j;
j = 5;
printf(“%d %d”, *p, *q);
getch();
}
What will be output of following program?
A. 5 5
B. Complier Error
C. 5 Garbage value
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
int main()
{
int a = 5, b = 10, c;
int *p = &a, *q = &b;
c = p – q;
printf(“%d” , c);
getch();
}
What will be output of following program?
A. 3
B. 4
C. 5
D. 6
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
#include
int main()
{
char *ptr1 = NULL;
char *ptr2 = 0;
printf(“\n%d”, ptr2);
strcpy(ptr1, “c”);
strcpy(ptr2, “questions”);
printf(“\n%s %s”, ptr1, ptr2);
getch();
}
What will be output of following program?
A. printf(“\n%d”, ptr2);
B. strcpy(ptr1, “c”);
C. strcpy(ptr2, “questions”);
D. printf(“\n%s %s”, ptr1, ptr2);
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Chương trình biên dịch (Complier) báo lỗi tại dòng strcpy(ptr1,” c”);. Vì biến ptr1 chưa được cấp phát.
#include
#include
int main()
{
int a = 10;
void *p = &a;
int *ptr = p;
printf(“%u\n”, *ptr);
getch();
}
What will be output of following program?
A. int a = 10;
B. void *p = &a;
C. int *ptr = p;
D. printf(“%u\n”, *ptr);
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Lỗi tại dòng int *ptr = p;
#include
int main()
{
int a = 320;
char *ptr;
ptr = (char*)&a;
printf(“%d “, *ptr);
return 0;
}
What is output of code?
A. 320
B. 64
C. Complier Error
Hướng dẫn
Chọn B là đáp án đúng
#include
int main()
{
int i = 3;
int *j;
int **k;
j = &i;
k = &j;
printf(“%u , %u , %d “, k, *k, **k);
return 0;
}
What will be output of following program?
A. Address of j , Address of i , 3
B. Complier Error
C. 3 , 3 , 3
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
k = &j *k = *&j *k = j **k = *j.
#include
#include
void main()
{
int a = 80;
if(a++ > 80)
printf(“C/C++ %d”, a);
else
printf(“Java %d”, a);
getch();
}
What is output of code?
A. C/C++ 80
B. C/C++ 81
C. Java 80
D. Java 81
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
#include
#include
void myfunc(char** param)
{
++param;
}
void main()
{
char* string = (char*)malloc(64);
strcpy(string, “hello_World”);
myfunc(&string);
myfunc(&string);
printf(“%s\n”, string);
getch();
}
What is output ?
A. hello_World
B. ello_World
C. llo_World
D. lo_World
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Biến string sẽ chứa địa chỉ của chuỗi. &string là địa chỉ của biến con trỏ string (xem hình vẽ).
Khi truyền &string cho hàm myfunc(), thì param = &string (tức là con trỏ 2 chiều param trỏ tới địa chỉ của biến string).
Trong hàm myfunc(), phép toán ++param làm thay đổi vùng nhớ mà param trỏ tới mà không làm thay đổi địa chỉ mà biến string trỏ tới.
#include
#include
void main()
{
int a;
a = 1;
while(a <= 1)
if(a%2)
printf(“%d “, a++);
else
printf(“%d “, ++a);
printf(“%d “, a+10);
getch();
}
What is output of code?
A. 1 12
B. 2 12
C. 2 11
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int i;
i = 2;
DES:
printf(“%d”, i);
i = i + 2;
if(i <= 20)
goto DES;
What is output of code?
A. 2468101214161820
B. 468101214161820
C. nothing is printed
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int i;
i = 0;
if(i = 15, 10, 5)
printf(“C/C++ %d”, i);
else
printf(“Java %d”, i);
getch();
}
What is output of code?
A. C/C++ 15
B. Java 15
C. Java 5
D. Complier error
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
#include
void main()
{
char str1[] = “vncoding”;
char str2[] = “vncoding”;
if (strcmp(str1, str2))
printf(“Equal”);
else
printf(“Unequal”);
getch();
}
What is output of code?
A. Equal
B. Unequal
C. nothing is printed
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
void main()
{
int i;
i = 10;
if(i == 20 || 30)
printf(“True”);
else
printf(“False”);
getch();
}
What is output of code?
A. True
B. False
C. Complier error
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
int i, j, *ptr, *ptr1;
i = 10;
j = 10;
ptr = &i;
ptr1 = &j;
if(ptr == ptr1)
printf(“True”);
else
printf(“False”);
getch();
}
What is output of code?
A. True
B. False
C. Complier error
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
void main()
{
if(1,0)
printf(“True”);
else
printf(“False”);
getch();
}
What is output of code?
A. True
B. False
C. Complier error
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
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();
}
What is output?
A. 3
B. 4
C. 5
D. 6
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Chương trình sẽ nhảy vào case 5 và thực hiện lệnh a = a+1 = 6. Nhưng vì không có lệnh break nên a = a – 1 = 5 sẽ được thực hiện.
#include
#include
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();
}
What is output?
A. ABC
B. BC
C. B
D. Complier Error
Hướng dẫn
Chọn D là đáp án đúng
Xem lời giải
Xem lời giải
Case , biểu thức phải là hằng số nguyên. arr[0], arr[1], arr[2] không phải là hằng số nguyên.
#include
#include
int main()
{
int x = 3;
if (x == 2); x = 0;
if (x == 3) x++;
else x += 2;
printf(“x = %d”, x);
getch();
}
What is output?
A. x = 2
B. x = 6
C. x = 0
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
x = 3, x = 0, x += 2 được thực hiện.
#include
#include
#define A 0
#define B 1
int main()
{
int i = 3;
switch (i & 1)
{
case A: printf(“FALSE”);
break;
case B: printf(“TRUE”);
break;
default: printf(“Default”);
}
getch();
}
What is output?
A. FALSE
B. TRUE
C. Default
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
i&1 = 101&1 = 1.
#include
#include “conio.h”
void main()
{
int i = 3;
switch (i)
{
case 0+1: printf(“A”);
break;
case 1+2: printf(“B”);
break;
default: printf(“ABC”);
}
getch();
}
What is output?
A. A
B. B
C. ABC
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
int main()
{
int i;
if (printf(“0”))
i = 3;
else
i = 5;
printf(“%d”, i);
getch();
}
What is output?
A. 3
B. 5
C. 03
D. 05
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Hàm printf() trả về số lượng kí tự in ra màn hình. printf(“0”) trả về giá trị 1.
#include
#include
void main()
{
int i = 0;
switch (i)
{
case ‘0’: printf(“A”);
break;
case ‘1’: printf(“B”);
break;
default: printf(“ABC”);
}
getch();
}
What is output?
A. A
B. B
C. ABC
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Trong lệnh switch(), biểu thức điều kiện phải là số nguyên, giá trị của kí tự ‘0’ trong bảng mã ASCII là 48, của kí tự ‘1’ là 49.
Do vậy, chương trình sẽ nhảy vào case default.
#include
#include
void foo();
int main()
{
printf(“%d “, 1);
goto l1;
printf(“%d “, 2);
}
void foo()
{
l1: printf(“3 “);
}
What is output?
A. Complie error
B. 3
C. 1
D. 1 3
Hướng dẫn
Chọn A là đáp án đúng
Xem lời giải
Xem lời giải
Lệnh goto chỉ có thể nhảy tới label trong cùng 1 hàm. Chương trình sẽ báo lỗi label l1 chưa được khai báo.
#include
#include
int main()
{
int i = 0, j = 0;
while (i < 2)
{
l1: i++;
while (j < 3)
{
printf(“loop\n”);
goto l1;
}
}
getch();
}
What is output?
A. loop loop loop
B. Infinite loop
C. Complie error
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
Label của lệnh goto không được đặt trong biểu thức điều kiện của vòng lặp.
#include
#include
#define PRINT(i, limit) do \
{ \
if (i++ < limit) \
{ \
printf(“laptrinhc++”); \
continue; \
} \
}while(1)
void main()
{
PRINT(0, 3);
getch();
}
What is output?
A. ‘laptrinhc++’ is printed 3 times
B. ‘laptrinhc++’ is printed 2 times
C. Complier error
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
#define a 10
void main()
{
printf(“%d “, a);
#define a 50
printf(“%d “, a);
getch();
}
What is output?
A. 10 50
B. 10 10
C. 50 50
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
#define MAX 1000
void main()
{
int MAX = 100;
printf(“%d “, MAX);
getch();
}
What is output?
A. 1000
B. 100
C. Complier error
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
#define SQUARE(x) x*x
void main()
{
int x;
x = 36 / SQUARE(6);
printf(“%d”, x);
getch();
}
What is output?
A. 1
B. 36
C. 6
D. 30
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
#define X 3
#if !X
printf(“C/C++”);
#else
printf(“Java”);
#endif
void main()
{
getch();
}
What is output?
A. C/C++
B. Java
C. Complier error
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
#define ISEQUAL(X, Y) X == Y
void main()
{
#if ISEQUAL(X, 0)
printf(“C/C++”);
#else
printf(“Java”);
#endif
getch();
}
What is output?
A. C/C++
B. Java
C. Complier error
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
#if X == 3
#define Y 3
#else
#define Y 5
#endif
void main()
{
printf(“Y = %d”, Y);
getch();
}
What is output?
A. Y = 3
B. Y = 5
C. Garbage value
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
#define x 5+2
void main()
{
int i;
i = x*x*x;
printf(“%d”, i);
getch();
}
What is output?
A. 21
B. 27
C. Complier Error
D. Another
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
#define call(x,y) x##y
void main()
{
int x = 5, y = 10, xy = 20;
printf(“%d”, xy + call(x, y));
getch();
}
What is output?
A. 530
B. 70
C. 40
D. Complier Error
Hướng dẫn
Chọn C là đáp án đúng
#include
#include
typedef struct
{
int x;
static int y;
}st;
void main()
{
printf(“sizeof(st) = %d”, sizeof(st));
getch();
}
What is output?
A. 4
B. Complier error
C. 8
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
struct
{
short s[5];
union
{
float y;
long z;
}u;
} t;
void main()
{
printf(“sizeof(st) = %d”, sizeof(t));
getch();
}
What is output?
A. 16
B. 22
C. 32
D. 18
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
struct birthday
{
int d; // day
int m; // month
int y; // year
};
struct info
{
int ID; // code of staff
birthday b;
};
void main()
{
info a = {1009, 16, 9, 1989};
printf(“\nID=%d, dd/mm/yyyy = %d/%d/%d”, a.ID, a.b.d, a.b.m, a.b.y);
getch();
}
What is output?
A. ID=1009, dd/mm/yyyy = 16/09/1989
B. ID = 1009, dd/mm/yyyy = garbage value/garbage value/garbage value (garbage value: giá trị rác)
C. Error sytax (Lỗi cú pháp)
Hướng dẫn
Chọn A là đáp án đúng
#include
#include
void main()
{
struct site
{
char name[] = “laptrinhc++”;
int year = 2;
};
struct site *ptr;
printf(“%s “, ptr->name);
printf(“%d”, ptr->year);
getch();
}
What is output?
A. laptrinhc++ 2
B. Complier error
C. Runtime error
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Chỉ có member static của struct mới được phép khởi tạo bên trong struct
#include
using namespace std;
int main()
{
int a = 20;
int &n = a;
n = a++;
a = n++;
cout << a << "," << n << endl;
system(“pause”);
}
What is the output of the following code?
A. 20,21
B. 20,20
C. 21, 22
D. none of above
Hướng dẫn
Chọn D là đáp án đúng
Xem lời giải
Xem lời giải
Kết quả: 22,22
#include
#include
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;
}
What is output?
A. LAPTRINHC++.NET
B. .NETLAPTRINHC++
C. Address of pstr[0] Address of pstr[1]
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
typedef struct
{
char c; // 1 byte
float b; // 4 byte
int a; // 4 byte
}A;
void main()
{
printf(“\n Size of struct: %d”, sizeof(A));
getch();
}
What is output? Giả sử dùng VC++ 2008 trên hệ điều hành 32 bit
A. 9
B. 12
C. 16
D. 24
Hướng dẫn
Chọn B là đáp án đúng
#include
#include
typedef struct
{
int a[2]; // 8 byte
char b[5]; // 5 byte
char c[5]; // 5 byte
}A;
void main()
{
printf(“\n Size of struct: %d”,sizeof(A));
getch();
}
What is output?
A. 20
B. 18
C. 32
D. 24
Hướng dẫn
Chọn A là đáp án đúng
#include
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;
}
What is the output of the following code?
A. professor researcher teacher myprofessor
B. researcher professor teacher myprofessor
C. myprofessor teacher researcher professor
D. myprofessor researcher professor teacher
Hướng dẫn
Chọn B là đáp án đúng
#include
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;
}
What is wrong in the following code?
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”
Hướng dẫn
Chọn A là đáp án đúng
#include
class Base
{
public:
Base() {};
virtual ~Base() {};
};
class Derived : protected Base
{
public:
virtual ~Derived() {};
};
int main()
{
Base *pb = new Derived();
return 0;
}
What is wrong in the following code?
A. There is nothing wrong
B. One cannot have a ‘Base’ pointer to ‘Derived’ since it is not derived publicly
C. One need a derived class pointer to point to a derived class
D. One required to code a constructor for Derived
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Class Derived kế thừa class Base kiểu protected, hàm tạo Base() là thành phần protected của class Derived.
#include
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;
}
What is the output of the following code?
A. Parent Parent
B. Parent Child Child Parent
C. Child Parent Parent Child
D. Error
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Class Child kế thừa từ class Parent.
– Khi đối tượng Child được tạo, hàm tạo của class cơ sở sẽ được gọi trước, sau đó mới gọi đến hàm tạo class kế thừa.
– Khi kết thúc chương trình, đối tượng Child bị hủy, hàm hủy của lớp kế thừa được gọi trước, sau đó mới đến hàm hủy lớp cơ sở.
#include
using namespace std;
class Base
{
int static i;
public:
Base() { cout << "Base's constructor"; };
};
class Sub1 : public virtual Base {};
class Sub2 : public Base {};
class Multi : public Sub1, public Sub2 {};
void main()
{
Multi m;
system(“pause”);
}
In the following program, how many times Base’s constructor will be called?
A. 1
B. 2
C. 3
D. error
Hướng dẫn
Chọn B là đáp án đúng
#include
using namespace std;
namespace N1
{
int f(int n) { return n * 2; }
}
namespace N2
{
int f(double n) { return n * 3; }
}
void main()
{
using N1::f;
int i1 = f(1.0);
cout << "i1 = " << i1;
using N2::f;
int i2 = f(1.0);
cout << "i1 = " << i2;
system(“pause”);
}
In the following code what would be the values of i1 and i2
A. i1=2 i2=2
B. i1=2 i2=3
C. i1=3 i2=2
D. Error
Hướng dẫn
Chọn B là đáp án đúng
#include
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;
}
What is the output of the following code?
A. 0
B. 5
C. 6
D. 7
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
có 7 đối tượng A,B,C,D,E,F,G được tạo -> hàm tạo được gọi 7 lần -> count = 7. Tuy nhiên, đối tượng G bị hủy khi ra khỏi dấu }, hàm hủy được gọi -> count = 6
#include
using namespace std;
int main()
{
int main;
main = 100;
cout << main++ << endl;
system(“pause”);
}
What is the output of the following code?
A. 100
B. 101
C. none
D. compile error
Hướng dẫn
Chọn A là đáp án đúng
#include
using namespace std;
int main()
{
int a = 20, b = 100;
int &n = a;
n = a++;
n = &b;
cout << a << "," << n << endl;
system(“pause”);
}
What is the output of the following code?
A. 21,21
B. 20,21
C. 21,22
D. compile error
Hướng dẫn
Chọn D là đáp án đúng
Xem lời giải
Xem lời giải
n = &b; ==> lỗi ‘=’: cannot convert from ‘int *’ to ‘int’