Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 32

ĐỀ CƯƠNG ÔN TẬP MÔN TIN HỌC LỚP 11

1. Khái niệm lập trình và ngôn ngữ lập trình.


 Khái niệm lập trình.
 Các loại NNLT: Ngôn ngữ máy, hợp ngữ, NNLT bậc cao
 Trình Hợp dịch, Biên dịch, Thông dịch
2. Các thành phần của NNLT
 Các thành phần cơ bản: bảng chữ cái, cú pháp, ngữ nghĩa
 Khái niệm: từ khóa, tên chuẩn, tên dành riêng – cách đặt tên
 Khái niệm hằng, biến.
 Có 4 loại hằng: hằng số nguyên, hằng số thực, hằng kí tự/xâu kí tự, hằng logic.
 Khái niệm chú thích, các cách đặt chú thích: //dòng chú thích, /* đoạn chú thích*/
3. Cấu trúc chương trình
 Cấu trúc chung: có 2 phần gồm phần khai báo và phần thân chương trình
 Phần thân chương trình bắt đầu bằng hàm main:
int main()
{
các câu lệnh;
return 0;
}

 Phần khai báo:


 Khai báo thư viện: #include <Tên thư viện>
 Lưu ý thêm các hàm định dạng in dữ liệu khác trong thư viện iomanip
Để sử dụng các hàm này cần khai báo tệp tiêu đề #include <iomanip>
setw(n) // tương tự cout.width(n)
setprecision(n) // tương tự cout.precision(n)

Ví dụ:
Làm tròn số thập phân trong C++:
Cấu trúc:
cout<<setprecisison(n)<<fixed<<tên biến;
trong đó n là số phần thập phân cần làm tròn. Nếu bỏ qua lệnh fixed thì khi làm tròn sẽ
không làm tròn đến phần thập phân không còn giá trị.
#include<bits/stdc++.h> // cau lenh goi tat ca thu vien trong C/C++
using namespace std;
int main(){
float n, m, a;
cout<<"Nhap n: ";
cin>>n;
cout<<"Nhap m: ";
cin>>m;
a=n/m;
cout<<"\n Ket qua la: "<<setprecision(2)<<fixed<<a;
return 0;
}
 Khai báo hằng: <#define> tên_hằng giá_trị_hằng ;
hoặc: <const> kiểu_dữ_liệu tên_hằng = giá_trị_hằng ;
Ví dụ: #define sohs 50 ;
const int sohs = 50 ;
const int CHIEUDAI = 10;
const int CHIEURONG = 5;
 Khai báo biến:
 a. Khai báo không khởi tạo
<tên_kiểu> tên_biến_1 ;
<tên_kiểu> tên_biến_2 ;
<tên_kiểu> tên_biến_3 ;
Nhiều biến cùng kiểu có thể được khai báo trên cùng một dòng:
<tên_kiểu> tên_biến_1, tên_biến_2, tên_biến_3 ;
 b. Khai báo có khởi tạo
Trong câu lệnh khai báo, các biến có thể được gán ngay giá trị ban đầu bởi phép toán
gán (=) theo cú pháp:
<tên_kiểu> tên_biến_1 = gt_1, tên_biến_2 = gt_2, tên_biến_3 = gt_3;
trong đó các giá trị gt_1, gt_2, gt_3 có thể là các hằng, biến hoặc biểu thức.
Ví dụ:
const int n = 10 ;
int main()
{
// khai báo biến nguyên I, j, k và khởi tạo I bằng 2, k bằng 15
int I = 2, j , k = n + 5;
// khai báo biến thực eps và khởi tạo bằng 10-6
float eps = 1.0e-6 ;
// khai báo biến kí tự c và khởi tạo bằng ‘Z’
char c = ‘Z’;
// khai báo xâu kí tự d và khởi tạo d bằng “Tin học”
char d[100] = “Tin học”;
}
 c. Phạm vi hiệu lực của biến
Như đã biết chương trình là một tập hợp các hàm, các câu lệnh cũng như các khai báo.
Phạm vi hiệu lực của một biến là nơi mà biến có tác dụng. Tức là biến thuộc hàm hay khối
lệnh nào? Câu lệnh nào được phép sử dụng biến đó? Một biến xuất hiện trong chương trình
có thể được sử dụng bởi hàm này nhưng không sử dụng được bởi hàm khác hoặc có thể sử
dụng bởi cả hai, điều này phụ thuộc chặt chẽ vào vị trí nơi biến được khai báo. Một nguyên
tắc đầu tiên là biến sẽ có tác dụng kể từ vị trí nó được khai báo cho đến hết khối lệnh chứa
nó.
d. Gán giá trị cho biến
Trong các ví dụ trước chúng ta đã sử dụng phép gán dù nó chưa được trình bày, đơn
giản một phép gán mang ý nghĩa tạo giá trị mới cho một biến.
Khi biến được gán giá trị mới, giá trị cũ sẽ được tự động xoá đi bất kể trước đó nó
chứa giá trị nào (hoặc chưa có giá trị). Cú pháp của phép gán như sau:
<tên_biến> = <biểu thức>;
Khi gặp phép gán chương trình sẽ tính toán giá trị của biểu thức bên vế phải và gán
giá trị này cho biến ở vế trái.
Ví dụ:
int n, I = 3; // khởi tạo I bằng 3
n = 10; // gán cho n giá trị 10
cout << n <<”, “ << I << endl; // in ra: 10, 3
I = n / 2; // gán lại giá trị của I bằng n/2 = 5
cout << n <<”, “ << I << endl; // in ra: 10, 5

Lưu ý: Với ý nghĩa thông thường của phép toán (nghĩa là tính toán và cho lại một giá
trị) thì phép toán gán còn một nhiệm vụ nữa là trả lại một giá trị. Giá trị trả lại của phép toán
gán chính là giá trị của biểu thức bên phải dấu gán. Lợi dụng điều này C++ cho phép chúng
ta gán “kép” cho nhiều biến nhận cùng một giá trị bởi cú pháp:
biến_1 = biến_2 = … = biến_n = gt ;
với cách gán này tất cả các biến sẽ nhận cùng giá trị gt.
Ví dụ:
int I, j, k ;
I = j = k = 1;
Ngoài việc gán kép như trên, phép toán gán còn được phép xuất hiện trong bất kỳ biểu
thức nào, điều này cho phép một biểu thức chứa phép gán, nó không chỉ tính toán mà còn
gán giá trị cho các biến, ví dụ n = 3 + (I = 2) sẽ cho ta I = 2 và n = 5. Việc sử dụng nhiều
chức năng gộp trong một câu lệnh làm cho chương trình gọn gàng hơn (trong một số trường
hợp) nhưng cũng trở nên khó đọc, chẳng hạn câu lệnh trên có thể viết tách thành 2 câu lệnh:
I = 2; n = 3 + I; sẽ dễ đọc hơn ít nhất đối với các bạn mới bắt đầu tìm hiểu về lập trình.
4. Một số kiểu dữ liệu chuẩn
Một biến trong chương trình là một số ô nhớ liên tiếp nào đó trong bộ nhớ dùng để lưu trữ dữ
liệu (vào, ra hay kết quả trung gian) trong quá trình hoạt động của chương trình và được gắn với
một tên do NSD khai báo. Để sử dụng biến, NSD khai báo: tên biến và kiểu của dữ liệu chứa trong
biến. Nguyên tắc: chỉ có các dữ liệu cùng kiểu với nhau mới được phép làm toán với nhau. Do đó,
khi đề cập đến một kiểu dữ liệu chuẩn, ta sẽ xét đến các yếu tố sau:
 Tên kiểu: là một từ dành riêng để chỉ định kiểu của dữ liệu.
 Số byte lưu trữ trong bộ nhớ: Thông thường số byte này phụ thuộc vào các trình biên dịch và hệ
thống máy khác nhau, ở đây ta chỉ xét đến hệ thống máy PC thông dụng hiện nay.
 Miền giá trị của kiểu: Quy định một đơn vị dữ liệu thuộc kiểu này sẽ có thể chứa giá trị trong
pham vi nào. NSD cần nhớ đến miền giá trị này để khai báo kiểu cho các biến cần sử dụng một
cách thích hợp.
Một số kiểu thường dùng:
Kiểu dữ liệu Tên kiểu Kích thước/ precision
Ký tự char 1 byte
số nguyên int 4 byte
Số thực (dấu float 4 byte (1.2E-38 -> 3.4E+38), 6 chữ số thập phân
chấm động) double 8 byte (2.3E-308 -> 1.7E+308), 15 chữ số thập phân
Lôgic bool 1 byte

5. Phép toán, biểu thức


C++ có rất nhiều phép toán loại 1 ngôi, 2 ngôi và thậm chí 3 ngôi.
Các thành phần tên gọi tham gia trong phép toán được gọi là hạng thức hoặc toán hạng, các
kí hiệu phép toán được gọi là toán tử.
 a. Các phép toán số học: + , - , * , / , %
 Các phép toán + (cộng), - (trừ), * (nhân)
 Phép toán a / b (chia) được thực hiện theo kiểu của các toán hạng, tức nếu cả hai toán
hạng là số nguyên thì kết quả của phép chia chỉ lấy phần nguyên, ngược lại nếu 1 trong 2
toán hạng là thực thì kết quả là số thực.
Ví dụ:
13/5 = 2 // do 13 và 5 là 2 số nguyên
13.0/5 = 13/5.0 = 13.0/5.0 = 2.6 // có ít nhất 1 toán hạng là thực
 Phép toán a % b (lấy phần dư) trả lại phần dư của phép chia a/b, trong đó a và b là 2 số
nguyên.
Ví dụ:
13%5 = 3 ; // phần dư của 13/5
5%13 = 5 ; // phần dư của 5/13

 b. Các phép toán tự tăng, giảm: i++ , ++i , i-- , --i


 Phép toán ++i và i++ sẽ cùng tăng i lên 1 đơn vị tức tương đương với câu lệnh i = i+1.
Tuy nhiên nếu 2 phép toán này nằm trong câu lệnh hoặc biểu thức thì ++ i khác với i++.
Cụ thể ++i sẽ tăng i, sau đó i mới được tham gia vào tính toán trong biểu thức. Ngược lại
i++ sẽ tăng i sau khi biểu thức được tính toán xong (với giá trị i cũ). Điểm khác biệt này
được minh hoạ thông qua ví dụ sau, giả sử i = 3, j = 15.
Phép toán Tương đương Kết quả
i = ++j ; // tăng trước j = j + 1; i = j ; i = 16 , j = 16
i = j++ ; // tăng sau i = j ; j = j + 1 ; i = 15 , j = 16
j = ++i + 5 ; i = i + 1 ; j = i + 5 ; i = 4, j = 9
j = i++ + 5 ; j = i + 5; i = i + 1; i = 4, j = 8
Chú ý: Việc kết hợp phép toán tự tăng giảm vào trong biểu thức hoặc câu lệnh sẽ làm
chương trình gọn nhưng khó hiểu hơn.
 c. Các phép toán so sánh và lôgic
Đây là các phép toán mà giá trị trả lại là đúng hoặc sai. Nếu giá trị của biểu thức là
đúng thì nó nhận giá trị 1, ngược lại là sai thì biểu thức nhận giá trị 0. Nói cách khác 1 và 0
là giá trị cụ thể của 2 khái niệm "đúng", "sai". Mở rộng hơn C++ quan niệm một giá trị bất
kỳ khác 0 là "đúng" và giá trị 0 là "sai".
+ Các phép toán so sánh
== (bằng nhau), != (khác nhau),
> (lớn hơn), < (nhỏ hơn),
>= (lớn hơn hoặc bằng), <= (nhỏ hơn hoặc bằng).
Hai toán hạng của các phép toán này phải cùng kiểu. Ví dụ:
3 == 3 hoặc 3 == (4 - 1) // nhận giá trị 1 vì đúng
3 == 5 // = 0 vì sai
3 != 5 // = 1
3 + (5 < 2) // = 3 vì 5<2 bằng 0
3 + (5 >= 2) // = 4 vì 5>=2 bằng 1

Chú ý: Cần phân biệt phép toán gán (=) và phép toán so sánh (==). Phép gán vừa gán
giá trị cho biến vừa trả lại giá trị bất kỳ (là giá trị của toán hạng bên phải), trong khi phép so
sánh luôn luôn trả lại giá trị 1 hoặc 0.
+ Các phép toán lôgic:
&& (và), || (hoặc ), ! (không, phủ định)
Hai toán hạng của loại phép toán này phải có kiểu lôgic tức chỉ nhận một trong hai giá
trị "đúng" (được thể hiện bởi các số nguyên khác 0) hoặc "sai" (thể hiện bởi 0). Khi đó giá
trị trả lại của phép toán là 1 hoặc 0 và được cho trong bảng sau:

a b a && b a || b ! a
1 1 1 1 0
1 0 0 1 0
0 1 0 1 1
0 0 0 0 1
Tóm lại:
 Phép toán "và" đúng khi và chỉ khi hai toán hạng cùng đúng
 Phép toán "hoặc" sai khi và chỉ khi hai toán hạng cùng sai
 Phép toán "không" (hoặc "phủ định") đúng khi và chỉ khi toán hạng của nó sai.
Ví dụ:
3 && (4 > 5) // = 0 vì có hạng thức (4>5) sai
(3 >= 1) && (7) // = 1 vì cả hai hạng thức cùng đúng
!1 // = 0
!(4 + 3 < 7) // = 1 vì (4+3<7) bằng 0
5 || (4 >= 6) // = 1 vì có một hạng thức (5) đúng
(5 < !0) || (4 >= 6) // = 0 vì cả hai hạng thức đều sai
Chú ý: việc đánh giá biểu thức được tiến hành từ trái sang phải và sẽ dừng khi biết kết
quả mà không chờ đánh giá hết biểu thức. Cách đánh giá này sẽ cho những kết quả phụ khác
nhau nếu trong biểu thức ta "tranh thủ" đưa thêm vào các phép toán tự tăng giảm. Ví dụ cho
i = 2, j = 3, xét 2 biểu thức sau đây:
x = (++i < 4 && ++j > 5) // cho kết quả x = 0 , i = 3 , j = 4
y = (++j > 5 && ++i < 4) // cho kết quả y = 0 , i = 2 , j = 4
cách viết hai biểu thức là như nhau (ngoại trừ hoán đổi vị trí 2 toán hạng của phép
toán &&). Với giả thiết i = 2 và j = 3 ta thấy cả hai biểu thức trên cùng nhận giá trị 0. Tuy
nhiên các giá trị của i và j sau khi thực hiện xong hai biểu thức này sẽ có kết quả khác nhau.
Cụ thể với biểu thức đầu vì ++i < 4 là đúng nên chương trình phải tiếp tục tính tiếp ++j > 5
để đánh giá được biểu thức. Do vậy sau khi đánh giá xong cả i và j đều được tăng 1 (i=3,
j=4). Trong khi đó với biểu thức sau do ++j > 5 là sai nên chương trình có thể kết luận được
toàn bộ biểu thức là sai mà không cần tính tiếp ++i < 4. Nghĩa là sau khi chương trình đánh
giá xong ++j > 5 sẽ dừng và vì vậy chỉ có biến j được tăng 1, từ đó ta có i = 2, j = 4 khác với
kết quả của biểu thức trên. Ví dụ này một lần nữa nhắc ta chú ý kiểm soát kỹ việc sử dụng
các phép toán tự tăng giảm trong biểu thức và trong câu lệnh.
6. Lệnh xuất / nhập chuẩn của C++
Lệnh cin nhập dữ liệu vào từ bàn phím
Để nhập dữ liệu vào cho các biến có tên var1, var2, var3 chúng ta sử dụng câu lệnh:
cin >> var1 ;
cin >> var2 ;
cin >> var3 ;
hoặc:
cin >> var1 >> var2 >> var3 ;
Các biến var1, var2, var3 được sử dụng để lưu trữ các giá trị NSD nhập vào từ bàn
phím. Hiển nhiên có thể nhập nhiều biến hơn bằng cách viết tiếp tiếp các tên biến vào bên
phải các dấu >> của câu lệnh.
Ví dụ: Chương trình tính chu vi và diện tích hình chữ nhật.
#include <iostream>
using namespace std;
int main()
{
int cd, cr;
cout << "Nhap hai canh hinh chu nhat: ";
cin >> cd >> cr;
cout << "Dien tich = "<<cd*cr<<" Chu vi = "<<(cd+cr)*2;
return 0;
}
Lệnh cout xuất dữ liệu ra màn hình
Để in giá trị của các biểu thức ra màn hình ta dùng câu lệnh sau:
cout << bt_1 ;
cout << bt_2 ;
cout << bt_3 ;
hoặc:
cout << bt_1 << bt_2 << bt_3 ;
Cũng giống câu lệnh nhập cin, ở đây chúng ta cũng có thể mở rộng lệnh in ra màn
hình với nhiều biểu thức. Câu lệnh trên cho phép in giá trị của các biểu thức bt_1, bt_2,
bt_3. Các giá trị này có thể là tên biến, kết quả biểu thức hoặc chuỗi ký tự.
Ví dụ 1.3: In câu "Chieu dai la " và số 23 và tiếp theo là chữ " met", ta sử dụng 3 lệnh
sau:
cout << "Chieu dai la " ;
cout << 23 ;
cout << " met";
hoặc có thể chỉ bằng 1 lệnh:
cout << "Chieu dai la 23 met" ;
Trường hợp chưa biết giá trị cụ thể của chiều dài, chỉ biết hiện tại giá trị này đã được
lưu trong biến cd (ví dụ bạn nhập số 23 từ bàn phím bởi câu lệnh cin >> cd trước đó) và ta
cần biết giá trị này là bao nhiêu thì có thể sử dụng câu lệnh:
cout << "Chieu dai la " << cd << " met" ;
Một giá trị cần in không chỉ là một biến như cd, cr, ... mà còn có thể là một biểu thức.
 Phương thức định dạng xuất dữ liệu
1) cout.width(n): Chỉ định độ rộng in ra màn hình là n
Phương thức này cho phép in ra các giá trị với độ rộng n cột trên màn hình bằng lệnh
cout<< liền sau đó. Nếu n bé hơn độ rộng thực sự của giá trị, thì in giá trị với số cột bằng
với độ rộng thực sự. Nếu n lớn hơn độ rộng thực, thì in giá trị canh theo lề phải, và để trống
các cột thừa phía trước giá trị được in.
Phương thức này chỉ có tác dụng với giá trị cần in ngay sau nó. Ví dụ:
int a = 12; b = 345; // độ rộng thực của a là 2, của b là 3
cout << a; // chiếm 2 cột màn hình
cout.width(7); // đặt độ rộng giá trị in tiếp theo là 7
cout << b; // b in trong 7 cột với 4 dấu cách đứng trước
Kết quả in ra sẽ là: 12 345
2) cout.fill(ch): Chỉ định độn kí tự ch vào khoảng trống trước giá trị cần in.
Kí tự độn ngầm định là dấu cách. Nghĩa là, khi độ rộng của giá trị cần in bé hơn độ
rộng chỉ định thì máy sẽ độn thêm các dấu cách vào trước giá trị cần in cho đủ với độ rộng
chỉ định. Có thể yêu cầu độn một kí tự ch bất kỳ thay cho dấu cách bằng phương thức trên.
Ví dụ trong dãy lệnh trên, nếu ta thêm dòng lệnh cout.fill('*') trước khi in b thì kết quả in ra
sẽ là: 12****345.
Phương thức này có tác dụng với mọi câu lệnh in sau nó cho đến khi gặp một chỉ định mới.
3) cout.precision(n): Chỉ định độ chính xác cần in với các giá trị thực (hiểu là số
chữ số sau dấu chấm thập phân).
Phương thức này yêu cầu các số thực in ra sau đó sẽ có n-1 chữ số lẻ. Các số thực
trước khi in ra sẽ được làm tròn đến chữ số lẻ thứ n-1.
Phương thức này có tác dụng cho đến khi gặp một chỉ định mới.
Ví dụ:
int a = 12.3; b = 345.678; // độ rộng thực của a là 4, của b là 7
cout << a; // chiếm 4 cột màn hình
cout.width(10); // đặt độ rộng giá trị in tiếp theo là 10
cout.precision(3); // đặt độ chính xác đến 2 số lẻ
cout << b; // b in trong 10 cột với 4 dấu cách đứng trước

Kết quả in ra sẽ là: 12.3 345.68

7. Cấu trúc rẽ nhánh


 Câu lệnh if
+ Ý nghĩa
Một câu lệnh if cho phép chương trình có thể thực hiện khối lệnh này hay khối lệnh
khác phụ thuộc vào một điều kiện được viết trong câu lệnh là đúng hay sai. Nói cách khác
câu lệnh if cho phép chương trình rẽ nhánh (chỉ thực hiện 1 trong 2 nhánh).
+ Cú pháp
 Dạng thiếu: if (điều kiện)
{
khối lệnh;
}
 Dạng đầy đủ: if (điều kiện)
{
khối lệnh 1;
}
else
{
khối lệnh 2;
}
Trong cú pháp trên câu lệnh if có hai dạng: có else và không có else. điều kiện là một
biểu thức lôgic, tức là nó có giá trị đúng (khác 0) hoặc sai (bằng 0).
Khi chương trình thực hiện câu lệnh if, chương trình sẽ tính biểu thức điều kiện. Nếu
điều kiện đúng chương trình sẽ tiếp tục thực hiện các lệnh trong khối lệnh 1, ngược lại (điều
kiện sai) chương trình sẽ thực hiện khối lệnh 2 (nếu có else) hoặc không làm gì (nếu không
có else).
+ Đặc điểm:
 Đặc điểm chung của các câu lệnh có cấu trúc là bản thân nó chứa các câu lệnh khác.
Điều này cho phép các câu lệnh if có thể lồng nhau.
 Nếu nhiều câu lệnh if (có else và không else) lồng nhau việc hiểu if và else nào đi với
nhau cần phải chú ý. Qui tắc là else sẽ đi với if gần nó nhất mà chưa được ghép cặp với
else khác.
Ví dụ câu lệnh:
if (n>0) if (a>b) c = a;
else c = b;
tương đương với:
if (n>0) { if (a>b) c = a; else c = b;}
+ Ví dụ 1:
Ví dụ: Bằng phép toán gán có điều kiện có thể tìm số lớn nhất max trong 2 số a, b như
sau: max = (a > b) ? a: b ;
hoặc max được tính bởi dùng câu lệnh if:
if (a > b) max = a; else max = b;
Ví dụ 2: Tính năm nhuận. Năm thứ n là nhuận nếu nó chia hết cho 4, nhưng không
chia hết cho 100 hoặc chia hết 400. Chú ý: một số nguyên a là chia hết cho b nếu phần dư
của phép chia bằng 0, tức a%b == 0.
#include <iostream>
using namespace std;
int main()
{
int year;
cout << "Nam = " ; cin >> year ;
if (year%4 == 0 && year%100 !=0 || year%400 == 0)
cout << year << "la nam nhuan";
else
cout << year << "la nam khong nhuan";
return 0;
}
Ví dụ 3: Giải phương trình bậc 2: ax2 + bx + c = 0, biết a  0, b, c. Tìm x?
#include <iostream>
#include <cmath> // sử dụng hàm sqrt()
using namespace std;

int main()
{
float a, b, c, delta, x1, x2;
cout << "Nhap a , b, c: " ; cin >> a >> b >> c ;
if (a==0){
cout<<"Ban da nhap a=0"; return 0;
}
delta = b*b - 4*a*c ;
if (delta < 0)
cout << "PT vo nghiem"<<endl ;
else if (delta==0)
cout<<"PT co nghiem kep x= " << -b/(2*a) <<endl;
else
{
x1 = (-b+sqrt(delta))/(2*a);
x2 = (-b-sqrt(delta))/(2*a);
cout << "x1 = " << x1 << " x2 = " << x2 ;
}
return 0;
}
Chú ý: Do C++ quan niệm "đúng" là một giá trị khác 0 bất kỳ và "sai" là giá trị 0 nên
thay vì viết if (x != 0) hoặc if (x == 0) ta có thể viết gọn thành if (x) hoặc if (!x) vì nếu (x !=
0) đúng thì ta có x  0 và vì x  0 nên (x) cũng đúng. Ngược lại nếu (x) đúng thì x  0, từ đó
(x != 0) cũng đúng. Tương tự ta dễ dàng thấy được (x == 0) là tương đương với (!x).

CÂU HỎI TRẮC NGHIỆM THAM KHẢO


1/ Câu nào sau đây chỉ ra cú pháp đúng cho câu lệnh if ?
a <điều kiện> if <câu lệnh>
b if {<điều kiện> <câu lệnh>
c if <điều kiện> <câu lệnh>
d if (<điều kiện>) <câu lệnh>

2/ Kết quả đoạn lệnh sau là bao nhiêu ?


int x = 1;
if (x > 0) cout << "x is positive";
else if (x < 0) cout << "x is negative";
else cout << "x is 0";
a Lỗi biên dịch
b x is positive
c x is negative
d x is 0

3/ Kết quả đoạn lệnh sau là bao nhiêu ?


int x = -1;
if (x > 0) cout << "x is positive";
else if (x < 0) cout << "x is negative";
else cout << "x is 0";
a x is negative
b x is 0
c Lỗi biên dịch
d x is positive

4/ Kết quả đoạn lệnh sau là bao nhiêu ?


int x = 1;
if x > 0 cout << "x is positive";
else if x < 0 cout << "x is negative";
else cout << "x is 0";
a Lỗi biên dịch
b x is positive
c x is 0
d x is negative

5/ Câu lệnh if nào sau đây đúng:


a if a == 7 a = d + 1; else a = d + 2;
b if (a == 7) a = d + 1 else a = d + 2;
c if (a == 7) a = d + 1; else a = d + 2;
d if (a == 7) a = d + 1; else a = d + 2

6/ Cho N là một biến kiểu nguyên, chọn câu lệnh đúng cú pháp:
a if (N < 10) cout << "Nho hon 10"; else cout << "Lon hon 10";
b if (N < 10) cout << "Nho hon 10"; else cout << "Lon hon 10"
c if N < 10 cout << "Nho hon 10"; else cout << "Lon hon 10";
d if (N < 10) cout << "Nho hon 10" else cout << "Lon hon 10";

7/ Lệnh nào sau đây in ra màn hình số lớn hơn trong 2 số A, B


a if (A > B) cin >> A; else cin >> B;
b if (A < B) cout << A; else cout << B;
c if (A > B) cout << B; else cout << A;
d if (A > B) cout << A; else cout << B;

8/ Cho i là biến nguyên, sau khi thực hiện các lệnh:


i = 5;
if (i == 4) i = i + 1; else i = i + 2;
Giá trị cuối cùng của i là:
a 5
b 6
c 7
d 8

9/ Cho i là biến nguyên, sau khi thực hiện các lệnh:


i = 4;
if (i == 4) i = i + 1; else i = i + 2;
Giá trị cuối cùng của i là:
a 6
b 7
c 8
d 5

10/ Cho A, B, X là các biến nguyên. Trong số các lệnh sau, câu lệnh nào là đúng?
a if A < B ; X = X + 1;
b if (A < B) X = A + B;
c if (A < B) X = A else X = B;
d if (A < B) X = A; else X = B;

11/ Cho đoạn chương trình sau:


x = a;
if (a < b) x = b;
cout << x;
Cho a = 10, b = 15. Kết quả x bằng bao nhiêu?
a 15
b 25
c 10
d 20

12/ Cho đoạn chương trình sau:


x = a;
if (a < b) x = b;
cout << x;
Cho a=15, b=10. Kết quả x bằng bao nhiêu?
a 5
b 10
c 15
d 20

13/ Cho đoạn chương trình sau:


a = 10;
b = 8;
if (a > b) {
tg = a;
a = b;
b = tg;
}
Sau khi chạy đoạn chương trình trên thì kết quả của a và b là:
a a = 8 và b = 8
b a = 10 và b = 10
c a = 10 và b = 8
d a = 8 và b = 10

14/ Câu lệnh sau đây cho kết quả gì?


if (b > a) c = b; else c = a;
a Tìm giá trị nhỏ nhất c = Min(a,b)
b Câu lệnh sai ngữ nghĩa.
c Tìm giá trị lớn nhất c = Max(a,b)
d Hoán đổi giá trị hai biến a và b

15/ Cho đoạn chương trình sau:


int i = 3, S = 40;
if (i > 5) S = 5*3 + (5 - i)*2;
else
if (i > 2) S = 5*i; else S = 0;
cout << S;
Sau khi chạy chương trình thì giá trị của S là:
a 19
b 0
c 15
d 40

16/ Cho đoạn chương trình sau:


int i = 2, S = 40;
if (i > 5) S = 5*3 + (5 - i)*2;
else
if (i > 2) S = 5*i; else S = 0;
cout << S;
Sau khi chạy chương trình thì giá trị của S là:
a 15
b 40
c 0
d 19

17/ Thực hiện: Kiểm tra nếu a, b, c đều lớn hơn 1 thì in số 1, chọn câu nào ?
a if (a > 1 and b > 1 and c > 1) cout << 1;
b if (a > 1 && b > 1 && c > 1) cout << 1;
c if (a > 1) || (b > 1) || (c > 1) cout << 1;
d if (a, b, c > 1) cout << 1;

18/ Thực hiện: Kiểm tra nếu một trong ba số nguyên a, b, c lớn hơn 1 thì in số 1, chọn câu
nào ?
a if (a > 1 && b > 1 && c > 1) cout << 1;
b if (a > 1) || (b > 1) || (c > 1) cout << 1;
c if (a, b, c > 1) cout << 1;
d if (a > 1 || b > 1 || c > 1) cout << 1;

19/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int x = 7, y = 1, z =5 ;
if (x < y + z)
y = 5;
z = 2;
else
{
y = 3;
z = 1;
}
cout << z;
return 0;
}
a Lỗi biên dịch
b 2
c 1
d 5

20/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int x = 7, y = 1, z =5 ;
if (x < y + z)
{
y = 5;
z = 2;
}
else
{
y = 3;
z = 1;
}
cout << z;
return 0;
}
a 2
b Lỗi biên dịch
c 1
d 5

21/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int x = 7, y = 10, z =5 ;
if (x < y + z)
{
y = 5;
z = 2;
}
else
{
y = 3;
z = 1;
}
cout << z;
return 0;
}
a 5
b Lỗi biên dịch
c 1
d 2

22/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int n = 3, m = 4, k = 5;
if (m*m > n*k && 2*m + 3*n > 4*k) m = n = k = 0;
else m = n = k = 1;
cout << k;
return 0;
}
a 1
b 5
c 0
d Lỗi biên dịch

23/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int n = 3, m = 4, k = 5;
if (m*m > n*k && 2*m + 3*n > 3*k) m = n = k = 0;
else m = n = k = 1;
cout << k;
return 0;
}
a Lỗi biên dịch
b 5
c 0
d 1

24/ Toán tử nào sau đây dùng để so sánh hai biến ?


a ==
b :=
c equal
d =

25/ Trong phần mềm CodeBlocks, để lưu chương trình C++ ta dùng phím gì ?
a Ctrl - S
b Ctrl - F10
c F9
d Shift - F9

26/ Phần mở rộng của File chứa chương trình C++ là gì ?


a *.c
b *.c++
c *.spp
d *.cpp

27/ Toán tử logic AND được kí hiệu là ?


a |
b &&
c |&
d &

28/ Tính giá trị của biểu thức: !(1 && !(0 || 1)) ?
a false
b true
c 0
d Không xác định

29/ Điều nào sau đây không phải là toán tử quan hệ ?


a ==
b <=
c <<
d >

30/ Cần thêm thư viện nào để chương trình sau thực hiện đúng ?
#include <iostream>
using namespace std;
int main()
{
int x = 20;
cout << sqrt(x);
return 0;
}
a cmath
b string
c math.h
d iostream

31/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int w = 3;
int x = 31;
int y = 10;
double z = x / y % w;
cout << z;
return 0;
}
a 0.1
b 0
c 1
d 0.0

32/ Điều nào sau đây thể hiện đúng thứ tự bậc của toán tử số học trong C++ ?
a *–/+
b /+*–
c +–/*
d /*+–

33/ Toán tử nào được sử dụng để loại bỏ các giá trị giống nhau trong C++ ?
a %
b ==
c /
d =

34/ Điều gì được xuất ra khi thực hiện chương trình sau ?
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x = 3;
cout << x++ + ++x;
return 0;
}
a 8
b 7
c 9
d Giá trị khác

35/ Thứ tự thực hiện các toán tử của biểu thức sau đây là đúng trong C++ ?
z = x + y * z / 4 % 2 – 1;
a /*%–+=
b *%/–+=
c */%+–=
d =*/%+–

36/ Đầu ra của chương trình sẽ là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int x = 12, y = 7, z = 2;
z = (x != 4) || (y == 2);
cout << "z = " << z;
return 0;
}
a z=0
b z=3
c z=4
d z=1

37/ Đoạn lệnh sau có kết quả bao nhiêu ?


int main()
{
int i = 5 + 7 % 2 ;
cout << i ;
return 0;
}
a 7
b 0
c Lỗi biên dịch
d 6

38/ Đầu ra của chương trình sẽ là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int i = 2;
int j = i + 2;
cout << "j = " << j;
return 0;
}
a j=4
b Lỗi biên dịch
c j=3
d j=2

39/ Biểu thức nghiệm của phương trình bậc hai được viết trong C++ sau đây, biểu thức nào
là đúng?
a (-b + SQRT(b*b - 4*a*c))/(2*a)
b (-b + sqrt(b*b - 4*a*c))/(2*a)
c (-b + sqrt(b*b - 4*a*c))/2*a
d -b + sqrt(b*b - 4*a*c)/(2*a)

40/ Trong phần mềm CodeBlocks, để biên dịch và chạy chương trình C++ ta dùng phím
gì ?
a Ctrl - F10
b F9
c Shift - F9
d Ctrl - F9

41/ Cho điều kiện 5 <= x <= 10, điều kiện đó được diễn đạt như thế nào trong C++?
a (x >= 5) & (x <= 10)
b (x >= 5) || (x <= 10)
c x >= 5, x <= 10
d (x >= 5) && (x <= 10)

42/ Kiểm tra n là số dương chẵn, trong C++ điều kiện đó được diễn đạt như thế nào?
a (n >= 0) && (n % 2 == 0)
b (n > 0) & (n % 2 == 0)
c (n > 0) && (n % 2 == 0)
d n > 0 && n % 2 = 0

43/ Đoạn lệnh sau có kết quả bao nhiêu ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int A = 7;
int B = (++A - 4)%2 + A++;
cout << B << setw(3) << A;
return 0;
}
a 9 9
b 8 9
c 7 8
d 9 8

44/ Chương trình viết bằng hợp ngữ không có đặc điểm nào trong các đặc điểm sau?
a Tốc độ thực hiện nhanh hơn so với chương trình được viết bằng ngôn ngữ bậc cao
b Diễn đạt gần với ngôn ngữ tự nhiên
c Sử dụng trọn vẹn các khả năng của máy tính
d Ngắn gọn hơn so với chương trình được viết bằng ngôn ngữ bậc cao

45/ Chương trình viết bằng ngôn ngữ bậc cao không có đặc điểm nào trong các đặc điểm
sau?
a Kiểu dữ liệu và cách tổ chức dữ liệu đa dạng, thuận tiện cho mô tả thuật toán
b Không phụ thuộc vào các loại máy, chương trình có thể thực hiện trên nhiều loại máy
c Máy tính có thể hiểu và thực hiện trực tiếp chương trình này.
d Ngắn gọn, dễ hiểu, dễ hiệu chỉnh và nâng cấp

46/ Chương trình dịch không có khả năng nào trong các khả năng sau?
a Phát hiện được lỗi ngữ nghĩa
b Phát hiện được lỗi cú pháp
c Thông báo lỗi cú pháp
d Tạo chương trình đích

47/ Phát biểu nào sau đây là đúng?


a Trong chương trình, tên gọi cũng là một đối tượng không thay đổi nên cũng có thể
xem là hằng.
b Khi cần thay đổi ý nghĩa của một từ khóa nào đó người lập trình cần khai báo theo ý
nghĩa mới
c Tên do người lập trình tự đặt không được trùng với từ khóa nhưng có thể trùng với tên
chuẩn
d Mọi đối tượng có giá trị thay đổi trong chương trình đều gọi là biến

48/ Phát biểu nào sau đây là đúng ?


a Chương trình là dãy các lệnh được tổ chức theo các quy tắc được xác định bởi một
ngôn ngữ lập trình cụ thể.
b Mọi bài toán đều có chương trình để giải trên máy tính.
c Trong chế độ thông dịch, mỗi câu lệnh của chương trình nguồn được dịch thành một
câu lệnh của chương trình đích.
d Nếu chương trình nguồn có lỗi cú pháp thì chương trình đích cũng có lỗi cú pháp.

49/ Tác giả của ngôn ngữ lập trình C++ là ai ?


a Dennis Ritchie
b Niklaus Wirth
c Bjarne Stroustrup
d James Gosling

50/ Trong ngôn ngữ lập trình C++, chú thích được đặt trong cặp dấu nào ?
a [ và ]
b (* và *) hoặc /* và */
c { và } hoặc (* và *)
d // hoặc /* và */

51/ Hãy chọn biểu diễn tên đúng trong những biểu diễn dưới đây:
a Baitap
b '*******'
c 5Baitap
d -7+8-1

52/ Trong những biểu diễn dưới đây, biểu diễn nào là từ khóa trong C++:
a while
b cin
c false
d sqrt

53/ Trong ngôn ngữ lập trình C++, để khai báo hằng cần dùng từ khóa:
a namespace
b define
c include
d const

54/ Tên nào không đúng trong ngôn ngữ lập trình C++:
a abc_123
b _123abc
c abc123_
d 123_abc

55/ Trong ngôn ngữ lập trình C++, có mấy loại hằng.
a 4 loại
b 3 loại
c 2 loại
d 1 loại

56/ Đại lượng dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện
chương trình gọi là
a Biểu thức
b Hằng
c Hàm
d Biến

57/ Các loại hằng trong C++ là:


a Ngày tháng
b Họ tên
c Số học
d Logic

58/ Trong các hằng dưới đây, hãy chọn hằng lôgic
a '5'
b 2.0
c "lop 11A"
d true

59/ Để báo hiệu sự bắt đầu và kết thúc của một khối lệnh cần sử dụng dấu nào ?
a { và }
b ( và )
c → và ←
d BEGIN và END

60/ Để đánh dấu điểm kết thúc một dòng lệnh cần sử dụng dấu nào ?
a .
b '
c :
d ;

61/ Điều nào sau đây là một chuỗi ký tự ?


a char HelloWorld
b Hello World
c 'Hello World'
d "Hello World"

62/ Chú thích nào sau đây là chính xác ?


a <!-Lập trình C++-->
b /*Lập trình C++
c //Lập trình C++
d \\Lập trình C++
63/ Định danh nào đúng trong ngôn ngữ lập trình C++:
a VAR_1234
b 7var_name
c 7VARNAME
d $var_name

64/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
float x = 123.456, y = 31.354;
cout << fixed << setprecision(2)
<< x << setw(10) << y;
return 0;
}
a 123.46 31.35
b 123.456 31.354
c 123.46
31.35
d 123.45 31.35

65/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int x = 0;
++x;
cout << x;
return 0;
}
a x không xác định
b 0
c 1
d Lỗi biên dịch

66/ Đoạn lệnh sau có kết quả bao nhiêu ?


int main()
{
int a;
a = 5;
cout << a;
return 0;
}
a 5
b Lỗi biên dịch
c 7
d Một giá trị bất kì

67/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int y = 1;
int main()
{
int x = 0;
++x;
y++;
cout << x << " " << y;
return 0;
}
a y không xác định
b 01
c 12
d 11

68/ Đoạn lệnh sau có kết quả bao nhiêu ?


int main()
{
int a, b;
a = b = 5;
cout << a++ + b;
return 0;
}
a 5
b 11
c 10
d 6

69/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
const int y = 1;
int main()
{
int x = 0;
++x;
y++;
cout << x << " " << y;
return 0;
}
a 01
b 12
c 11
d Lỗi biên dịch

70/ Hãy bổ sung lệnh gì vào <... //Dong 7> để chương trình hiển thị kết quả có 3 chữ số
thập phân ?
#include <bits/stdc++.h>
using namespace std;
int main()
{
float x;
cin >> x;
... //Dong 7
cout << "X = " << x;
return 0;
}
a cout << fixed;
b fixed << setprecision(3);
c cout << setprecision(3);
d cout << fixed << setprecision(3);

71/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int i = 1, j = 1, k = 0, w, x, y, z;
w = i || j || k;
x = i && j && k;
y = i || j && k;
z = i && j || k;
cout << w << " " << x << " " << y << " " << z;
return 0;
}
a 1011
b 1001
c 1111
d Khác

72/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int n = 2;
cout << ++n << " " << ++n;
return 0;
}
a 44
b 22
c 33
d 34

73/ Kết quả của chương trình sau là gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
int x = 4, y, z;
y = --x;
z = x--;
cout << x << setw(2) << y << setw(2) << z;
return 0;
}
a 432
b 233
c 232
d 433

74/ Đoạn lệnh sau có kết quả bao nhiêu ?


int main()
{
int a, b;
a = 2 + b = 5;
cout << a;
return 0;
}
a Lỗi biên dịch
b 7
c 5
d Một giá trị bất kì

75/ Hãy bổ sung lệnh gì vào <... //Dong 3> để chương trình thực thi đúng ?
#include <bits/stdc++.h>
using namespace std;
... // Dong 3
int main()
{
int r;
cout << "Nhap r: ";
cin >> r;
cout << "Dien tich la: " << PI*r*r;
return 0;
}
a PI = 3.1415;
b const PI = 3.1415;
c const float PI = 3.1415;
d #define float PI = 3.1415;

76/ Đoạn lệnh sau có kết quả bao nhiêu ?


int main()
{
int a, b;
a = b = 5;
cout << ++a;
return 0;
}
a 7
b 11
c 5
d 6

77/ Lệnh nào sau đây là SAI ?


a cout << 120 ;
b int age = 33; cout << "My age is " << age << ".\n" ;
c int x; cout << x ;
d Không có lệnh sai
78/ Đoạn lệnh sau có kết quả bao nhiêu ?
int main()
{
int a = 22.25, b = 7;
cout << a*b;
return 0;
}
a 22.25
b 154
c 7
d 29.25

79/ Điều gì sẽ xảy ra nếu chương trình sau được thực thi ?
#include <bits/stdc++.h>
using namespace std;
int main()
{
int main = 3;
cout << main;
return 0;
}
a Tạo ra lỗi runtime
b Tạo ra lỗi biên dịch
c Nó sẽ chạy không gặp lỗi và in 3 ra màn hình
d Nó sẽ lặp vô hạn

80/ Hãy bổ sung câu lệnh gì vào <... // Dòng 5> để chương trình được thực thi đúng ?
#include <bits/stdc++.h>
using namespace std;
int main()
{
...... // Dong 5
cout << "Nhap x: ";
cin >> x;
return 0;
}
a x;
b Int x ;
c float x
d int x ;

81/ Xác định giá trị của X và Y sau khi thực hiện đoạn chương trình sau:
{
X = 20 ;
Y=5;
X=X+Y;
Y=X-Y;
X=X-Y;
}
a X = 5; Y = 20;
b X = 20; Y = 5;
c X = 5; Y = 15;
d X = 25; Y = 5;
82/ Xét chương trình C++ sau:
#include <iostream>
using namespace std ;
int x, y ;
int main()
{
cout << "X = " ;
cin >> x ;
y = (((x+2)*x+3)*x+4)*x+5 ;
cout << "Y = " << y ;
return 0;
}
Chương trình trên tính giá trị của biểu thức nào trong số các biểu thức sau:
a Y = x3 + 2x2 + 3x + 4x + 5
b Y = x4 + 2x3 + 3x2 + 4x + 5
c Y = x+2x+3x+4x+5
d Y = (x+2)(x+3)(x+4)+5

83/ Biến P có thể nhận các giá trị 0.2; 0.4; 0.6; 0.9 và biến Q có thể nhận các giá trị 10;
20; 30; 40.
Hãy chọn khai báo đúng ?
a int P, Q ;
b char P, Q ;
c float P ; int Q ;
d float P, Q ;

84/ Câu lệnh:


a = 9;
cout << "Ket qua la: " << a ;
sẽ đưa ra màn hình:
a Ket qua la: a
b Ket qua la: 9
c Ket qua a la 9
d Không đưa ra gì cả

85/ Hãy đoán kết quả thực hiện chương trình C++ sau:
#include <bits/stdc++.h>
using namespace std;
int x, y;
int main()
{
cout << "Nhap x: "; cin >> x;
cout << "Nhap y: "; cin >> y;
x = x + y;
y = x - y;
x = x - y;
cout << "Gia tri moi cua x: " << x << '\n';
cout << "Gia tri moi cua y: " << y;
return 0;
}
a Kết quả x và y sẽ tăng giá trị
b Kết quả x và y sẽ đổi vị trí cho nhau
c Kết quả x và y sẽ giảm giá trị
d Kết quả x và y sẽ đổi giá trị cho nhau

86/ Nhóm lệnh sau thực hiện công việc gì ?


tg = a;
a = b;
b = tg;
a Hoán đổi giá trị hai biến a và b
b Gán giá trị của b cho a
c Gán giá trị của tg cho a
d Gán giá trị của a cho b

87/ Đoạn mã sau đây ở giai đoạn nào ?


#include <bits/stdc++.h>
được thay thế bằng nội dung của tệp stdc++.h
a Trong quá trình thực hiện
b Trong quá trình tiền xử lý
c Trong quá trình liên kết
d Trong quá trình chỉnh sửa

88/ Đoạn mã sau xuất kết quả gì ?


#include <bits/stdc++.h>
using namespace std;
int main()
{
float x = 3.5, y = 4.2;
cout << "Ket qua la: " << x << " va " << y << " dong";
return 0;
}
a 3.5 4.2
b Ket qua la: 3.5 va 4.2 dong
c Ket qua la: 3.5 va 4.2
d Không có kết quả đúng

89/ Kết quả của đoạn mã sau là gì ?


cout << "Hello\n";
cout << " World";
a Hello

World
b Hello World
c Hello World
d Hello
World

90/ Hãy bổ sung lệnh gì vào <... > để chương trình hiển thị như sau 10 8?
#include <bits/stdc++.h>
using namespace std;
int main()
{
int A = 8;
int B = 10;
cout << B << ... << A;
return 0;
}
a set(3)
b ''
c ""
d setw(3)

91/ Để lưu trữ thuộc tính Giới tính hoặc Đoàn viên, người ta sử dụng kiểu dữ liệu nào?
a Kiểu float
b Kiểu char
c Kiểu int
d Kiểu bool

92/ Hãy cho biết biến DiemToan, DiemVan thuộc kiểu dữ liệu gì?
a int
b long
c float
d char

93/ Khai báo nào sau đây là đúng?


a char c, d
b long p ; k :
c float m ; n ;
d int i, j ;

94/ Kiểu dữ liệu nào sau đây là không có trong NNLT C++ ?
a float
b double
c real
d int

95/ Khẳng định nào sau đây là true ?


a -1
b 1
c 66
d Tất cả những điều trên

96/ Theo mặc định, một số thực được coi là ?


a long double
b far double
c float
d double

97/ Các kiểu dữ liệu số thực khác nhau trong C++ là ?


a double, long int, float
b float, double
c short int, double, long int
d float, double, long double

98/ Cách khai báo biến nào sau đây là đúng ?


a <Kiểu dữ liệu> <Danh sách tên biến>;
b <Tên biến> = <Giá trị>;
c <Danh sách tên biến> : <Kiểu dữ liệu>;
d Tất cả đều không đúng

99/ Kích thước của dữ liệu kiểu char là bao nhiêu byte ?
a 2
b 4
c 8
d 1

100/ Kiểu dữ liệu nào phù hợp nhất để biểu diễn các giá trị lôgic ?
a float
b bool
c int
d char

101/ Khai báo biến nào sau đây là SAI ?


a int num = 10;
b double d = 3.14;
c short int = 5;
d long lint = 8;

102/ Khai báo biến nào sau đây là ĐÚNG ?


a unsign int i;
b signed a;
c sign double d;
d longth t;

103/ Kiểu dữ liệu nào được sử dụng để biểu diễn việc không lưu bất cứ dữ liệu gì ?
a void
b float
c short
d int

104/ Giá trị 132.54 có thể được biểu diễn bằng kiểu dữ liệu nào ?
a double
b int
c void
d bool

105/ Hàm cho giá trị bằng căn bậc hai của x là
a exp(x)
b abs(x)
c sqr(x)
d sqrt(x)

106/ Trong ngôn ngữ lập trình C++, từ khóa include dùng để
a Khai báo hằng
b Khai báo không gian tên
c Khai báo thư viện
d Khai báo biến

107/ Cấu trúc một chương trình C++ được chia làm mấy phần ?
a 3 phần
b 1 phần
c 2 phần
d 4 phần

108/ Lệnh nào sau đây định nghĩa một hằng giá trị ?
a const float PI;
b #define PI 3.1415
c const PI = 3.1415;
d #define PI = 3.1415

109/ Trong CodeBlock, hàm nào dưới đây biểu diễn giá trị tuyệt đối của x.
a ln(x)
b exp(x)
c sqr(x)
d abs(x)

110/ Trong ngôn ngữ lập trình C++, câu lệnh nào sau đây là khai báo hằng ?
a const int MAX = 50 ;
b const MAX 50;
c const MAX = 50 ;
d const int MAX = 50

111/ Trong ngôn ngữ lập trình C++, phần khai báo không gian tên được bắt đầu bằng.
a const
b include
c uses
d using

112/ Trong ngôn ngữ lập trình C++, khẳng định nào trong các khẳng định sau là sai?
a Phần thân chương trình có thể có hoặc không
b Phần khai báo hằng không nhất thiết phải có
c Phần thân chương trình nhất thiết phải có
d Phần khai báo biến có thể có hoặc không

113/ Trong ngôn ngữ lập trình C++, từ khoá namespace dùng để
a khai báo hằng
b khai báo biến
c khai báo không gian tên
d khai báo thư viện

114/ Lệnh cin trong C++ có tác dụng gì ?


a Là stream đầu ra chuẩn trong C++.
b Là stream đầu vào chuẩn của C++.
c Là lệnh chú thích trong C++.
d Là lệnh khai báo một biến.

115/ Trong C++, lệnh gán có cú pháp là:


a <tên biến> = <biểu thức>;
b <tên biến> : <biểu thức>;
c <tên biến> = <biểu thức>
d <biểu thức> = <tên biến>;

116/ Giả sử x là biến kiểu int, phép gán nào sau đây là đúng:
a x = a/b;
b x = PI;
c x = -123;
d x =2.2;

117/ Để tính diện tích hình tròn bán kính r, hằng PI được khai báo với giá trị 3.14159, biểu
thức nào đúng:
a s = 2r*PI;
b s = r*r*PI;
c s = r*r*3,14159;
d s = sqrt(r)*PI;

118/ Khi thực hiện thành công một chương trình C++, giá trị chính xác để trả về cho hệ điều
hành là bao nhiêu:
a -1
b 0
c 1
d Không trả về giá trị

119/ Lệnh cout trong C++ đi kèm với cặp dấu nào ?
a ||
b <<
c >>
d //

120/ Hàm duy nhất mà tất cả các chương trình C++ phải chứa là gì?
a start()
b main()
c program()
d system()

121/ Thư viện nào dùng để nhập xuất dữ liệu trong chương trình C++ ?
a iomanip.h
b cmath
c iostream
d string

122/ Hàm nào được sử dụng để đọc dữ liệu vào trong chương trình C++ ?
a cin
b cout
c scanf
d getch

123/ Trong chương trình C++, câu lệnh đầu tiên được thực thi ở đâu ?
a Câu lệnh đầu tiên sau phần chú thích
b Câu lệnh đầu tiên của chương trình
c Câu lệnh đầu tiên của hàm kết thúc
d Câu lệnh đầu tiên của hàm main()

124/ Ký hiệu đặc biệt nào sau đây được phép sử dụng trong tên biến ?
a *
b _
c -
d |
125/ Lệnh cout trong C++ có tác dụng gì ?
a Là stream đầu vào chuẩn của C++.
b Là lệnh khai báo một biến.
c Là stream đầu ra chuẩn trong C++.
d Là lệnh chú thích trong C++.

126/ Lệnh cin trong C++ đi kèm với cặp dấu nào ?
a <<
b >>
c //
d ||

127/ std trong C++ là gì ?


a std là tiêu đề đọc tệp tiêu chuẩn trong C++
b std là một tệp tiêu đề chuẩn trong C++
c std là một không gian tên chuẩn trong C++
d std là một lớp chuẩn trong C++

¤ Đáp án của đề thi:


1[ 1]d... 2[ 1]b... 3[ 1]a... 4[ 1]a... 5[ 1]c... 6[ 1]a... 7[ 1]d...
8[ 1]c...
9[ 1]d... 10[ 1]bd.. 11[ 1]a... 12[ 1]c... 13[ 1]d... 14[ 1]c... 15[ 1]c... 16[
1]c...
17[ 1]b... 18[ 1]d... 19[ 1]a... 20[ 1]c... 21[ 1]d... 22[ 1]a... 23[ 1]c... 24[
1]a...
25[ 1]a... 26[ 1]d... 27[ 1]b... 28[ 1]b... 29[ 1]c... 30[ 1]ac.. 31[ 1]b... 32[
1]d...
33[ 1]b... 34[ 1]a... 35[ 1]c... 36[ 1]d... 37[ 1]d... 38[ 1]a... 39[ 1]b... 40[
1]b...
41[ 1]d... 42[ 1]c... 43[ 1]b... 44[ 1]b... 45[ 1]c... 46[ 1]a... 47[ 1]cd.. 48[
1]a...
49[ 1]c... 50[ 1]d... 51[ 1]a... 52[ 1]ac.. 53[ 1]bd.. 54[ 1]d... 55[ 1]a... 56[
1]d...
57[ 1]cd.. 58[ 1]d... 59[ 1]a... 60[ 1]d... 61[ 1]d... 62[ 1]c... 63[ 1]ad.. 64[
1]a...
65[ 1]c... 66[ 1]a... 67[ 1]c... 68[ 1]c... 69[ 1]d... 70[ 1]d... 71[ 1]a... 72[
1]a...
73[ 1]b... 74[ 1]a... 75[ 1]c... 76[ 1]d... 77[ 1]d... 78[ 1]b... 79[ 1]c... 80[
1]d...
81[ 1]a... 82[ 1]b... 83[ 1]cd.. 84[ 1]b... 85[ 1]d... 86[ 1]a... 87[ 1]b... 88[
1]b...
89[ 1]d... 90[ 1]d... 91[ 1]d... 92[ 1]c... 93[ 1]d... 94[ 1]c... 95[ 1]d... 96[
1]d...
97[ 1]d... 98[ 1]a... 99[ 1]d... 100[ 1]b... 101[ 1]c... 102[ 1]b... 103[ 1]a...
104[ 1]a...
105[ 1]d... 106[ 1]c... 107[ 1]c... 108[ 1]b... 109[ 1]d... 110[ 1]a... 111[ 1]d...
112[ 1]a...
113[ 1]c... 114[ 1]b... 115[ 1]a... 116[ 1]c... 117[ 1]b... 118[ 1]b... 119[ 1]b...
120[ 1]b...
121[ 1]c... 122[ 1]a... 123[ 1]d... 124[ 1]b... 125[ 1]c... 126[ 1]b... 127[ 1]c...

You might also like