Bài tập lập trình C++ có đáp án
Bài tập C và C++ sau đây sẽ là tài liệu giúp người đọc có thể hình dung được các kiến thức cơ bản phục vụ cho việc lập trình những chương trình phức tạp về sau. Vời những bài tập C++ từ cơ bản đến nâng cao giúp bạn củng cố kiến thức và rèn luyện kỹ năng lập trình với ngôn ngữ C. » Xem thêm
Tóm tắt nội dung tài liệu
- BÀI TẬP LẬP TRÌNH C++
- Bài 1. Viết chương trình nhập từ bàn phím n số nguyên dương nhỏ hơn 100, in ra màn hình hai cột song
song, một cột là các số, còn cột kia là tổng của các chữ số tương ứng ở cột thứ nhất. Tìm và in ra số có tổng
của các chữ số là lớn nhất, nếu có nhiều hơn một số như vậy thì in số đầu tiên.
Bài 2. Một người gửi tiết kiệm a đồng với lãi suất s% một tháng (tính lãi hàng tháng). Việt một chương
trình tính và in ra màn hình hai cột song song, cột thứ nhất là số tháng đã gửi, cột thứ hai tổng số tiền (cả
vốn và lãi) ứng với số tháng ở cột thứ nhất cho một khoảng thời gian từ 1 đến t tháng, với a, s, t được nhập
từ bàn phím.
Bài 3. Một người gửi tiết kiệm à đồng với lãi suất là s% một tháng trong kỳ hạn 6 tháng (6 tháng tính lãi
một lần). Viết chương trình tính và in ra màn hình hai cột song song, cột thứ nhất là số tháng đã gửi, cột thứ
hai là tổng tiền (cả vốn và lãi) ứng với số tháng ở cột thứ nhất cho một khoảng thời gian từ 6 tháng đến t
tháng, với a, s, và t được nhập từ bàn phím. (Biết rằng nếu lĩnh không chắn kỳ nào thì không được tính lãi
kỳ ấy).
Bài 4. Cho x là một số thực, hãy xây dựng hàm tính và in ra màn hình hai cột song song, cột thứ nhất là giá
trị của đối số, cột thứ hai là giá trị của hàm f ứng với đối số ở cột thứ nhất:
Sau đó, viết một chương trình nhạp từ bán phím một mảng gồm n số thực, và gọi hàm đã lập được ở trên
với đối số là các số vừa nhập.
Bài 5. Viết chương trình tính và in ra màn hình số tiền điện tháng 10/99 của n khách hàng theo các chỉ số
trên đồng hồ điện của tháng 9 và của tháng 10 được nhập vào từ bàn phím (phải kiểm tra để đảm bảo rằng
chỉ số của tháng sau phải lớn hơn chỉ số của các tháng trước).
Biết rằng: 50 số đầu tiền giá 500 đồng/số, 100 số tiếp theo giá 800 đồng/số, 100 số tiếp theo nữa giá 1000
đồng/số, 100 số tiếp theo nữa giá 1200 đồng/số, và từ số thứ 351 trở đi giá 1500 đồng/số.
Bài 6. Viết một chương trình nhập vào từ bàn phím điểm kiểm tra của một môn học của n học sinh và in kết
quả ra màn hình dưới dạng hai cột song song, một cột là điểm và cột thứ hai là xếp loại theo điểm với các
qui định sau:
Dưới 5: Yếu
Từ 5 đến dưới 7: Trung bình
- Từ 7 đến dưới 9: Khá
Từ 9 trở lên: Giỏi
Bài 7. Viết chương trình giải phương trình bậc hai ax2+bx+c=0 với a, b, c bất kỳ được nhập vào từ bàn
phím. In ra màn hình phương trình bậc hai với các hệ số đã nhập, giá trị của delta và các nghiệm thức của
nó (nếu cố), ngươcij lại thì in là không có nghiệm thực.
Bài 8. Năm 1999, dân số nước ta là 76 triệu người, tỷ lệ tăng tự nhiên là k% một năm. Lập một chương
trình in ra màn hình hai cột song song, cột thứ nhất là năm, cột thứ hai là dân số của năm tương ứng ở cột
một cho đến khi dân số tăng s lần so với năm 1999. Các số k và s được nhập vào từ bàn phím.
Bài 9. Viết chương trình giải bất phương trình bận hai với a, b, c bất kỳ được nhập từ bàn phím:
ax2+bx+c>0 . In ra màn hình bất phương trình với các hệ số đã nhập, giá trị của delta và các nghiệm thực
của bất phương trình.
Bài 10. Xây dựng một hàm sắp xếp thep thứ tự tăng dần một mảng gồm n số thực. Viết chương trình để
nhập n số thực từ bàn phím, sử dụng hàm sắp xếp nói trên, và in ra màn hình hai cột song song, một cột là
mảng chưa sắp xếp, một cột là mảng đã được sắp xếp.
Bài 11. Xây dựng một hàm sắp xếp thep thứ tự giảm dần một mảng gồm n số thực. Viết chương trình để
nhập n số thực từ bàn phím, sử dụng hàm sắp xếp nói trên, và in ra màn hình hai cột song song, một cột là
mảng chưa sắp xếp, một cột là mảng đã được sắp xếp.
Bài 12. Cho F là một số thực lớn hơn 2, và S=1/2+1/3+…+1/n. Hãy xây dựng một hàm để tìm giá trị lớn
nhất của n sao cho S
- bằng công thức: ).
Sử dụng hàm nói trên để viết chương trình nhập n số thực từ bàn phím và in ra màn hình cột số đã nhập,
tổng, giá trị trung bình của chúng.
Bài 15. Xây dựng một hàm tính giá trị trung bình của n số thực. (Độ lêcnh chuẩn của dãy số được cho bằng
công thức: , với ).
Sử dụng hàm nói trên để viết chương trình nhập n số thực từ bàn phím và in ra màn hình cột số đã nhập,
tổng, giá trị trung bình và độ lệch chuẩn của chúng.
Bài 16. Hãy xây dựng một hàm để nhập từ bàn phím một mảng số thực. Viết một chương trình sử dụng
hàm đã xây dựng được ở trên để nhập số liệu cho hai mảng số thực, một mảng có n phẩn tử, và một mảng
có m phần tử, in ra màn hình hai cột song song, mỗi cột là một mảng với ô cuối cùng là tổng của các phần
tử trong mảng, và cuỗi cùng là tổng của hai mảng.
Bài 17. Hãy xây dựng một hàm để nhập từ bàn phím một mảng số thực. Viết một chương trình sử dụng
hàm đã xây dựng được ở trên để nhập số liệu cho hai mảng số thực, một mảng có n phẩn tử, và một mảng
có m phần tử, in ra màn hình ba cột song song, hai cột đầu là hai mảng đã nhập, cột thứ ba tổng của hai cột
đầu, dòng cuỗi cùng của cả ba cột là tổng của các phần tử trong cột.
Bài 18. Cho tuổi và số con của n phụ nữ trong độ tuổi 15-49, hãy xây dựng một hàm tính và in bản phân bố
của các phụ nữ này theo nhóm 5 tuổi. Viết chương trình để nhập tuổi và số con của n phụ nữ trong độ tuổi
15-49, sau đó sử dụng hàm đã xây dựng ở trên để in bảng phân bố theo tuổi.
Bài 19. Cho tuổi và số con của n phụ nữ trong độ tuổi 15-49, hãy xây dựng một hàm tính và in bản phân bố
của các phụ nữ này theo nhóm 5 tuổi. Viết chương trình để nhập tuổi và số con của n phụ nữ trogn độ tuổi
15-49, sau đó sử dụng hàm đã xây dựng ở trên để in bảng phân bố số con của các phụ nữ này theo tuổi.
Bài 20. Cho một xây bất kỳ, không sử dụng các hàm thư viện về xâu, hãy xây dựng một hàm đổi tất cả các
chữ thường thành chữ hoa (các ký tự khác giữ nguyên) và in cả hai ra màn hình. Viết một chương trình
nhập một xây bất kỳ từ bàn phím, sau đó sử dụng hàm đã xây dựng ở trên để in kết quả ra màn hình.
Bài 21. Cho một xây bất kỳ, không sử dụng các hàm thư viện về xâu, hãy xây dựng một hàm đổi tất cả các
chữ hoa thành chữ thường (các ký tự khác giữ nguyên) và in cả hai ra màn hình. Viết một chương trình
nhập một xây bất kỳ từ bàn phím, sau đó sử dụng hàm đã xây dựng ở trên để in kết quả ra màn hình.
- Bài 22. Cho một xây bất kỳ, không sử dụng cac shamf thư viện về xâu, hãy xây dựng một hàm đổi tất cả
các chữ hoa của xây thành chữ thường, và ngược lại, đổi các chữ thường của xâu thành chữ hoa (các chữ
khác giữ nguyên) và in cả hai ra màn hình. Viết một chương trình nhập một xâu bất kỳ từ bàn phím, sau đó
sử dụng hàm đã xây dựng ở trên đê in kết quả ra màn hình.
Bài 23. Cho cấu trúc:
Code:
struc thisinh{
int sbd; //Số báo danh
char hoten[25]; //Họ và tên
float m1,m2,m3l //Điểm ba môn thi
float tong; //Tổng điểm ba môn
} danhsach[100];
Hãy xây dựng một hàm để nhập số liệu cho n thí sinh. Sau đó viết một chương trình sử dụng hàm nói trên
để nhập số liệu và in bảng điểm của các thí sinh này theo dạng ba cột: Số báo danh, Họ tên, Tổng điểm.
Bài 24. Cho một xây bất, hãy xây dựng một hàm để sửa các lỗi chính tả không viết hoa đầu câu trong xâu
này, in ra xâu chưa sửa và xâu đã sửa. Sau đó viết một chương trình để nhập một xâu và sử dụng hàm nói
trên để sửa lỗi.
Bài 25. Cho cấu trúc:
Code:
struc dienthoai{
int sdt; //Số điện thoại
char hoten[25]; //Họ và tên
float sotien; //Số tiền phải nộp
} thuebao[100];
Hãy xây dựng một hàm để nhập số liệu cho n thuê bao. Sau đó viết một chương trình sử dụng hàm nói trên
để nhập số liệu và in bảng số tiền phải nộp của các thuê bao theo dạng ba cột: Họ tên, số điện thoại, số tiền
phải nộp.
Bài 26. Hãy xây dựng một hàm in ra màn hình nội dung một tệp văn bản bất kỳ (có dựng lại sau mỗi trang
màn hình). Sau đó, viết một chương trình để nhập vào từ bàn phím tên của một tệp văn bản và sử dụng hàm
nói trên để in nội dung của tệp này ra màn hình.
- Bài 27. Cho tuổi và trình độ văn hóa (0-4) của n người, hãy xây dựng một hàm in bản phân bố của số người
này theo nhóm 5 tuổi và trình độ văn hóa. Sau đó, viết một chương trình để nhập tuổi và trình độ văn hóa
của n người, sử dụng hàm nói trên để in kết quả ra màn hình.
Bài 28. Viết một chương trình để nhập tuổi và trình độ văn hóa (0-4) của n người, sau đó ghi các số liệu này
lên một tệp mode văn bản.
Bài 29. Cho một xâu bất kỳ, hãy xây dựng một hàm để sửa các lỗi chính tả không có dấu cách sau dấu
phảy và sau dấu chấm, in ra màn hình xâu chưa sửa và xâu đã sửa. Sau đó viết chương trình để nhập một
xâu bất kỳ và sử dụng hàm nói trên để sửa lỗi.
Bài 30. Cho một xâu bất kỳ, hãy xây dựng một hàm để sửa các lỗi chính tả không có dấu cách giữa các từ,
in ra xâu gốc và xâu đã sửa. Sau đó viết một chương trình để nhập một xâu ký tự bất kỳ và sử dụng hàm nói
trên để sửa lỗi.
Bài 31. Cho một xâu bất kỳ, hãy xây dựng một hàm để viết hoa chữ cái đầu tiên của tất cả các từ trong
xâu đã cho, in ra xâu gốc và xâu đã sửa. Sau đó viết một chương trình để nhập một xâu ký tự bất kỳ và sử
dụng hàm nói trên để sửa lỗi.
Bài 32. Cho cấu trúc:
Code:
struc tiendien{
char hoten[25]; //Họ và tên
float csc,csm; //Chỉ số cũ, chỉ số mới
float dg; //Đơn giá/Kw
float tong; //Tổng tiền phải nộp
} danhsach[100];
Hãy xây dựng một hàm để nhập số liệu cho n hộ sử dụng điện. Sau đó, viết một chương trình sử dụng hàm
nói trên để nhập số liệu và in bảng tính tiền sử dụng điện thoại của các hộ này theo dạng hai cột: Họ tên, số
điện tiêu thụ, Tổng số tiền.
Bài 33. Hãy xây dựng một hàm để nhập từ bàn phím một mảng các số thực. Viết chưng trình sử dụng hàm
nói trên để nhập số liệu cho hai mảng số thực cùng có n phần tử, in ra màn hình ba cột song song, hai cột
đầu là hai mảng đã nhập, còn cột thứ ba là hiệu của hai cột đầu, dòng cuối cùng của cả ba cột là tỏng của
- các phần tử trong cột.
Bài 34. Cho F là một số thực lớn hơn 2, và , với x là một số nguyên dương bất kỳ. Hãy xây dựng một
hàm để tìm giá trị lớn nhất của n sao cho S
- char hoten[25]; //Họ và tên
float m1,m2,m3l //Điểm ba môn thi
float tong; //Tổng điểm ba môn
} danhsach[100];
Viết chương trình (có sử dụng các hàm) để thêm và bớt các thí sinh theo thứ tự giảm dần của tổng điểm, và
in ra mnaf hình danh sách đã sắp.
- VIẾT CHƯƠNG TRÌNH – BÀI GIẢI
Bài 1. Viết chương trình nhập từ bàn phím n số nguyên dương nhỏ hơn 100, in ra màn hình hai cột song
song, một cột là các số, còn cột kia là tổng của các chữ số tương ứng ở cột thứ nhất. Tìm và in ra số có
tổng của các chữ số là lớn nhất, nếu có nhiều hơn một số như vậy thì in số đầu tiên.
Code:
#include
#include
#include
//Ham tinh tong cac chu so
//Vd n=15 thi tra ve gia tri la 6
int tong(int n){
int a,b;
a=(int)n/10;
b=n-a*10;
return a+b;
}
//Ham nhap cac gia tri cho mot mang
void nhap(int *a,int n){
for (int i=0;i
- cout
- khi nhập lãi xuất, nếu lãi xuất là 0,7 % / tháng thì hãy nhập 0.7 (chứ không phải nhập là 0.007) khi đó sau
mỗi tháng tiền lãi và vốn sẽ = tiền tháng trước + tiền tháng trước x lãi suất đó chính là công thức trên: kq
*= (1 + s/100)
Bài 3. Một người gửi tiết kiệm à đồng với lãi suất là s% một tháng trong kỳ hạn 6 tháng (6 tháng tính lãi
một lần). Viết chương trình tính và in ra màn hình hai cột song song, cột thứ nhất là số tháng đã gửi, cột thứ
hai là tổng tiền (cả vốn và lãi) ứng với số tháng ở cột thứ nhất cho một khoảng thời gian từ 6 tháng đến t
tháng, với a, s, và t được nhập từ bàn phím. (Biết rằng nếu lĩnh không chắn kỳ nào thì không được tính lãi
kỳ ấy).
Code:
#include
#include
void main(){
float a, s, kq;
int t;
couta;
couts;
coutt;
kq = a;
cout
- Đáp án Bài 4. Cho x là một số thực, hãy xây dựng hàm tính và in ra màn hình hai cột song song, cột thứ
nhất là giá trị của đối số, cột thứ hai là giá trị của hàm f ứng với đối số ở cột thứ nhất:
Sau đó, viết một chương trình nhạp từ bán phím một mảng gồm n số thực, và gọi hàm đã lập được ở trên
với đối số là các số vừa nhập.
Code:
#include
#include
#include
const float PI=4.1415;
//Ham nhap mang cac so thuc
void nhapMang(float *a,char *name, int n){
for (int i=0; i
- //Goi ham nhap mang
nhapMang(a,"a",n);
//Dinh dang hien thi so thuc
cout
- coutn;
if(n>350)t+=(n-=350)*1500.0;
if(n>250)t+=(n-=250)*1200.0;
if(n>150)t+=(n-=150)*1000.0;
if(n> 50)t+=(n-= 50)* 800.0;
if(n> 0)t+=(n )* 500.0;
cout
- coutc;
d=b*b-4*a*c;
if(d>=0){
x1=(-b-sqrt(d))/(2*a);
x1=(-b+sqrt(d))/(2*a);
cout
- Bài 8. Năm 1999, dân số nước ta là 76 triệu người, tỷ lệ tăng tự nhiên là k% một năm. Lập một chương
trình in ra màn hình hai cột song song, cột thứ nhất là năm, cột thứ hai là dân số của năm tương ứng ở cột
một cho đến khi dân số tăng s lần so với năm 1999. Các số k và s được nhập vào từ bàn phím.
Giải:
Code:
#include
#include
#include
#include
void main(void)
{
clrscr();
int k; //% tang dan so hang nam
float s;//So lan tang
coutk;
couts;
long dansocu=76000000,dansomoi;
dansomoi=dansocu;
int nam=1999;
//Thiet lap dinh dang
cout
- mảng chưa sắp xếp, một cột là mảng đã được sắp xếp.
Giải:
Code:
#include
#include
#include
#include
void NhapMang(float a[],float b[],int n)
{
cout
- void main(void)
{
clrscr();
float a[100],b[100];
int n;
coutn;
NhapMang(a,b,n);
SapXep(b,n);
//Thiet lap dinh dang
cout
- cout
- tương ứng.
Giải:
Code:
#include
#include
#include
#include
int max(double f, double &s)
{
int i=1;
s=0;
while(s