Tổng hợp bài tập c++ cơ bản cho người mới làm quen với lập trình, tài liệu bao gồm những câu hỏi bài tập có kèm đáp án rõ ràng chính xác dể hiều giúp cho bạn dể tiếp thu và nâng cao kỹ năng thuật toán...
BÀI TẬP ÔN CUỐI KỲ MÔN CƠ SỞ LẬP TRÌNH TRÊN C++ 1. Viết chương trình nhập vào 4 số nguyên, tìm số lớn nhất, nhỏ nhất của 4 số. #include<iostream.h> #include<conio.h> void main() { int a,b,c,d,max,min; clrscr(); cout<<"\n Hay nhap 4 so nguyen =";cin>>a>>b>>c>>d; max=a; if (max<b) max=b; if (max<c) max=c; if (max<d) max=d; cout<<"\n So lon nhat trong 4 so ="<<max; min=a; if (min>b) min=b; if (min>c) min=c; if (min>d) min=d; cout<<"\n So nho nhat trong 4 so ="<<min; getch(); } 2. Viết chương trình thể hiện trò chơi oẳn tù tì với qui ước: Búa = ‘B’; Bao = ‘O’; Kéo =‘K’. Nhập vào hai kí tựđại diện cho hai người chơi. Xuất ra màn hình câu thông báo người chơi nào thắng hoặc hòa. #include<iostream.h> #include<conio.h> void main() { char a,b; clrscr(); cout<<"\n Ban a ra cai gi = ";cin>>a; cout<<"\n Ban b ra cai gi = ";cin>>b; switch (a) { case 'B': switch (b) {case 'B':cout<<"\n Hai ban hoa nhau "; break; case 'O':cout<<"\n Ban b thang roi "; break; case 'K':cout<<"\n Ban a thang roi "; break; default:cout<<"\n Ban b nhap sai khong tinh duoc";break; } break; case 'O': switch (b) {case 'B':cout<<"\n Ban a thang roi "; break; case 'O':cout<<"\n Hai ban hoa nhau "; break; case 'K':cout<<"\n Ban b thang roi "; break; default:cout<< "\n Ban b nhap sai khong tinh duoc";break; } break; case 'K': switch (b) {case 'B':cout<<"\n Ban b thang roi "; break; case 'O':cout<<"\n Ban a thang roi "; break; case 'K':cout<<"\n Hai ban hoa nhau "; break; default: cout<<"\n Ban b nhap sai khong tinh duoc";break; } break; default: cout<<"\n Ban a nhap sai khong tinh duoc !"; } getch(); } 3. Viết chương trình in ra màn hình bản cửu chương 2 đến 10. #include<iostream.h> #include<conio.h> #include<iomanip.h> void main() { int i,j; clrscr(); for(i=1;i<=10;i++) {for(j=2;j<=10;j++) cout<<j<<"x"<<i<<"="<<setw(2)<<i*j<<setw(3); cout<<endl; } getch(); } 4. Viết chương trình In ra kết quả của bài toán vui Trăm trâu, trăm cỏ. Trâu đứng ăn năm. Trâu nằm ăn ba. Trâu già ăn một. Hỏi số trâu đứng, trâu năm, trâu già ? #include <iostream.h> #include <conio.h> void main() { int dung,gia,nam; clrscr(); for(dung=1;dung<100;dung++) for(nam=1;nam<=100-dung;nam++) for(gia=1;gia<=100-(dung+nam);gia++) if (dung*5+nam*3+gia==100) cout<<"\n dung = "<<dung<<" nam= "<<nam<<" gia= "<<gia; getch(); } 5. Viết chương trình tính lương của nhân viên dựa theo thâm niên công tác (TNCT) như sau: a. Lương = hệ số * lương căn bản, trong đó lương căn bản là 1100000 đồng. - Nếu TNCT < 12 tháng: hệ số = 1.92 - Nếu 12 <= TNCT < 36 tháng: hệ số = 2.34 - Nếu 36 <= TNCT < 60 tháng: hệ số = 3 - Nếu TNCT >= 60 tháng: hệ số = 4.5 #include<iostream.h> #include<conio.h> #include<iomanip.h> void main() { int tnct; float heso; cout<<"\n Hay nhap so thang tham nien cua nhan vien =";cin>>tnct; if (tnct<12) heso =1.92; else if (tnct<36) heso =2.34; else if (tnct<60) heso =3.0; else heso=4.5; float lcb=1100000; float luong=1.0*heso*lcb; cout<<"\n Luong linh cua nhan vien ="<<luong; getch(); } 6. Nhập vào ngày, tháng của một năm hiện tại. Bạn hãy viết chương trình: - Kiểm tra tính hợp lệ của ngày, tháng nhập; - Cho biết tháng này thuộc quý mấy trong năm; - Cho biết tháng nhập có bao nhiêu ngày; - Cho biết ngày hôm sau của ngày đã nhập là ngày nào. #include<iostream.h> #include<conio.h> void main() { int ngay,thang,nam,songay; clrscr(); nhaplai: cout<<"\n Hay nhap ngay thang nam =";cin>>ngay>>thang>>nam; if (ngay<0||ngay>31) { cout<<"\n Nhap ngay sai ! nhap lai "; goto nhaplai;} if (thang<0||thang>12) { cout<<"\n Nhap sai thang ! nhap lai "; goto nhaplai;} switch (thang) { case 1:case 2:case 3:{cout<<"\n Thang nay thuoc qui 1";break;} case 4:case 5:case 6:{cout<<"\n Thang nay thuoc qui 2";break;} case 7:case 8:case 9:{cout<<"\n Thang nay thuoc qui 3";break;} case 10:case 11:case 12:{cout<<"\n Thang nay thuoc qui 4";break;} } switch (thang) { case 1:case 3:case 5:case 7: case 8:case 10:case 12 :{songay=31;break;} case 4:case 6:case 9:case 11: {songay=30;break;} case 2:if(nam%4==0) songay=28; else songay=29; break; } cout<<"\n Thang "<<thang<<" vua nhap co so ngay ="<<songay<<" ngay"; int ngaymai,homnay=ngay; cout<<"\n Hom nay la "<<homnay<<" thang "<<thang<<" nam "<<nam; switch (thang) { case 1:case 3:case 5:case 7: case 8:case 10:case 12: if(homnay<31) ngaymai=homnay+1; else {ngaymai=1;thang+=1; if (thang>12) {thang=1; nam+=1;}} break; case 4:case 6:case 9:case 11: { if (homnay<30) ngaymai=homnay+1; else {ngaymai=1;thang+=1;} break;} case 2:if(nam%4==0) {if (homnay<29) ngaymai=homnay+1; else {ngaymai=1;thang+=1;}} else { if (homnay<28) ngaymai=homnay+1; else {ngaymai=1;thang+=1;}} break; } cout<<"\n Ngay mai la "<<ngaymai<<" thang "<<thang<<" nam "<<nam; getch(); } 7. Viết chương trình nhập vào ngày, tháng, năm nào đó và 1 số n . In ra màn hình ngày sau n .Ví dụ : Nhập ngày 10 tháng 05 năm 2014 và n =100 In ra : Ngày sau n = 26 tháng 08 năm 2014. #include<iostream.h> #include<conio.h> void main() { int ngay=0,thang=0,nam=0,n,songay=0; clrscr(); cout<<"\n Hay nhap ngay, thang, nam =";cin>>ngay>>thang>>nam; cout<<"\n Hay nhap so n =";cin>>n; ngay=ngay+n; do { switch (thang) { case 1:case 3:case 5: case 7: case 8: case 10: case 12 :songay=31;break; case 4: case 6: case 9: case 11 : songay=30;break; case 2:if(nam%4==0) songay=29; else songay=28;break; default: cout<<"Ban nhap sai thang "; break; } if (ngay>songay) { ngay=ngay-songay; thang+=1; if(thang>12) { thang =1; nam+=1;} } } while (ngay>songay); cout<<"\n Ngay sau "<<n<<" ngay la "<<ngay<<"/"<<thang<<"/"<<nam; getch(); } 8. Viết chương trình nhập vào 2 phân số, xuất ra tổng hiệu tích thương của hai phân sốđó. Lưu ý kiểm tra điều kiện nhập mẫu khác 0 (dùng do …while). #include<iostream.h> #include<conio.h> #include<iomanip.h> void main() { int tua,maua,tub,maub; float tong,hieu,tich,thuong; clrscr(); do { cout<<"\n Hay nhap phan so a =";cin>>tua>>maua; cout<<"\n Hay nhap phan so b =";cin>>tub>>maub; } while (maua==0||maub==0); tong=1.0*(tua*maub+tub*maua)/(maua*maub); hieu=1.0*(tua*maub-tub*maua)/(maua*maub); tich=1.0*(tua*tub)/(maua*maub); thuong=1.0*(tua*maub)/(maua*tub); cout<<setiosflags(ios::showpoint)<<setprecision(2); cout<<"\n Tong cua 2 phan so ="<<tong; cout<<"\n Hieu cua 2 phan so ="<<hieu; cout<<"\n Tich cua 2 phan so ="<<tich; cout<<"\n Thuong cua 2 phan so ="<<thuong; getch(); } 9. Viết chương trình nhập vào 2 phân số, xuất ra tổng hiệu tích thương của hai phân sốđó. Lưu ý kiểm tra điều kiện nhập mẫu khác 0 (dùng do …while). #include<iostream.h> #include<conio.h> #include<iomanip.h> void main() { int tua,maua,tub,maub; float tong,hieu,tich,thuong; clrscr(); do { cout<<"\n Hay nhap phan so a ";cin>>tua>>maua; cout<<"\n Hay nhap phan so b ";cin>>tub>>maub; } while (maua==0||maub==0); tong=1.0*(tua*maub+tub*maua)/(maua*maub); hieu=1.0*(tua*maub-tub*maua)/(maua*maub); tich=1.0*(tua*tub)/(maua*maub); thuong=1.0*(tua*maub)/(maua*tub); cout<<setiosflags(ios::showpoint)<<setprecision(2); cout<<"\n Tong cua 2 phan so ="<<tong; cout<<"\n Hieu cua 2 phan so ="<<hieu; cout<<"\n Tich cua 2 phan so ="<<tich; cout<<"\n Thuong cua 2 phan so ="<<thuong; getch();} 10. Chương trình cho phép nhập vào một số nguyên dương, là lượng điện tiêu thụ (kWh) trong tháng của nhà bạn. Chương trình tính và in số tiền nhà bạn phải trả cho tháng đó được tính theo giá định mức như bảng sau: 100 kwh đầu tiên 50 kwh tiếp 50 kwh tiếp 100 kwh tiếp Từ 300 kwh trở lên 550 VND 900 VND 1250 VND 1450 VND 1700 VND #include<iostream.h> #include<conio.h> #include<iomanip.h> void main() { int sokw; float thanhtien; clrscr(); cout<<"\n Hay nhap so kw tieu thu :";cin>>sokw; if(sokw<=100) thanhtien=sokw*0.550; else if(sokw>100&&sokw<=150) thanhtien=100*0.550+(sokw-100)*0.900; else if(sokw<=200) thanhtien=100*0.550+50*0.900+(sokw-150)*1.250; else if(sokw<=300) thanhtien=100*0.550+50*0.900+50*1.250+(sokw-200)*1.450; else thanhtien=100*0.550+50*0.900+50*1.250+100*1.450+(sokw- 300)*1.700; cout<<"\n So kw tieu thu trong thang ="<<sokw<<" Phai tra ="<<thanhtien<<"000 dong"; getch(); } 11. Nhập vào một số nguyên có 3 chữ số, hãy in ra cách đọc của nó. #include<iostream.h> #include<conio.h> #include<string.h> void main() { int tram,chuc,donvi,so; clrscr(); cout<<"\n Hay doc mot so =";cin>>so; tram=so/100; chuc=(so%100)/10; donvi=so%10; char chuoi[100]=""; switch (tram) { case 1:strcat(chuoi,"Mot tram");break; case 2:strcat(chuoi,"Hai tram");break; case 3:strcat(chuoi,"Ba tram"); break; case 4:strcat(chuoi,"Bon tram");break; case 5:strcat(chuoi,"Nam tram");break; case 6:strcat(chuoi,"Sau tram");break; case 7:strcat(chuoi,"Bay tram");break; case 8:strcat(chuoi,"Tam tram");break; case 9:strcat(chuoi,"Chin tram");break; } switch (chuc) { case 0:strcat(chuoi," khong");break; case 1:strcat(chuoi," muoi");break; case 2:strcat(chuoi," hai");break; case 3:strcat(chuoi," ba"); break; case 4:strcat(chuoi," bon");break; case 5:strcat(chuoi," nam");break; case 6:strcat(chuoi," sau");break; case 7:strcat(chuoi," bay");break; case 8:strcat(chuoi," tam");break; case 9:strcat(chuoi," chin");break; } switch (donvi) { case 0:strcat(chuoi," khong");break; case 1:strcat(chuoi," muoi");break; case 2:strcat(chuoi," hai");break; case 3:strcat(chuoi," ba"); break; case 4:strcat(chuoi," bon");break; case 5:strcat(chuoi," nam");break; case 6:strcat(chuoi," sau");break; case 7:strcat(chuoi," bay");break; case 8:strcat(chuoi," tam");break; case 9:strcat(chuoi," chin");break; } cout<<"\n Chuoi so doc la = "<<chuoi; getch(); } 12. Viết chương trình tìm ước chung lớn nhất, bội chung nhỏ nhất của 2 số nguyên M, N nhập từ bàn phím. #include<iostream.h> #include<conio.h> void main() { int a,b; cout<<"\n Hay nhap hai so a,b =";cin>>a>>b; int m=a,n=b; while (m!=n) { if(m>n) m-=n; else n-=m; } int us=m; cout<<"\n uscln cua a,b ="<<us; int bs=a; if(bs>b) bs=b; while (bs%a!=0||bs%b!=0) bs++; cout<<"\n bscnn cua a,b ="<<bs; getch(); } 13. Viết chương trình giải phương trình bậc 2 với các hệ số nhập từ bàn phím (xét đầy đủ các trường hợp). #include<iostream.h> #include<conio.h> #include<math.h> void main() { float a,b,c,denta; clrscr(); nhaplai: cout<<"\n Hay nhap he so a =";cin>>a; if (a==0) { cout<<"\n Ban nhap sai du lieu ! khong tinh duoc"; goto nhaplai;} cout<<"\n Hay nhap he so b =";cin>>b; cout<<"\n Hay nhap he so c =";cin>>c; denta=b*b-4*a*c; if (denta==0) cout<<"\n Phuong trinh co mot nghiem kep"<<1.0*(-b/a); else if (denta>0) { cout<<"\n Phuong trinh co hai nghiem "; cout<<setiosflags(ios::showpoint)<<setprecision(2); float x1=1.0*(-b+sqrt(denta))/(2*a); float x2=1.0*(-b-sqrt(denta))/(2*a); cout<<"\n x1 ="<<x1; cout<<"\n x2 ="<<x2; } else cout<<"\n Phuong trinh vo nghiem"; getch(); } 14. Viết chương trình in ra phần tử thứ n của dãy Fn sau: F 1 =1, F 2 = 2, F n = 5F n−1 + 3F n−2 (n ≥ 3) #include<iostream.h> #include<conio.h> #include<math.h> void main() { long ft=1,fs=2,fn,n; int i=3; clrscr(); cout<<"\n Hay nhap n =";cin>>n; do [...]... (i=2;i>n; for(i=1;i . ++ ++ = π dừng lặp khi 6 2 10 1 − < n . b e x theo công thức: !n x ! x ! x e n x ++ ++ = 21 1 21 dừng lặp khi 6 10 − < !n x n . c )!n( x )( ! x ! x xxsin n n 12 1 53 1253 + ++ + = + . (i=1;i<=n/2;i ++ ) { for(j=1;j<=n;j ++ ) if(j==1||j==n||i==j||i==n+1-j) cout<<'*'; else cout<<' '; cout<<endl; } for(j=1;j<=n;j ++ ) if(j==1||j==n/ 2+1 ||j==n) cout<<'*'; . Zima"; cout<<endl; for(j=1;j<=n;j ++ ) cout<<'*'; cout<<endl; for (i=2;i<=n/2;i ++ ) { for(j=1;j<=n/2;j ++ ) if(j==i) cout<<'*'; else cout<<'