49
BÀI TẬP THỰC HÀNH LẬP TRÌNH C CƠBẢN -----o0o----- I. PHẦN NHẬP XUẤT CƠBẢN 1. Viết chương trình nhập xuất ra màn hình thông tin của mỗi sinh viên theo mẫu sau: Ho ten: Ma so sinh vien: Lop: So dien thoai: Gioi tinh: #include <iostream.h> #include<stdio.h> #include<string.h> #include<conio.h>

Lap trinh c++ có lời giải 1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Lap trinh c++ có lời giải 1

BÀI TẬP THỰC HÀNH LẬP TRÌNH C CƠBẢN -----o0o-----

I. PHẦN NHẬP XUẤT CƠBẢN 1. Viết chương trình nhập xuất ra màn hình thông tin của mỗi sinh viên theo mẫu sau: Ho ten: Ma so sinh vien: Lop: So dien thoai: Gioi tinh: #include <iostream.h>#include<stdio.h>#include<string.h>#include<conio.h>int main(int argc, char *argv[]){ char hoten[10],masosinhvien[10],lop[8],sodienthoai[13],gioitinh[5];

cout<<"ho ten"<<"\n";gets(hoten);cout<<"ma so sinh vien"<<"\n";gets(masosinhvien);cout<<"lop"<<"\n";

Page 2: Lap trinh c++ có lời giải 1

gets(lop);cout<<"so dien thoai"<<"\n";gets(sodienthoai);cout<<"gioi tinh"<<"\n";gets(gioitinh);cout<<"ho ten: "<<hoten<<"\n";cout<<"ma so sinh vien: "<<masosinhvien<<"\n";cout<<"lop: "<<lop<<"\n";cout<<"so dien thoai: "<<sodienthoai<<"\n";cout<<"gioi tinh: "<<gioitinh<<"\n";return 0;

Page 3: Lap trinh c++ có lời giải 1

2. Viết chương trình xuất ra màn hình bài thơ sau: XUÂN VỀ Từng đàn con trẻchạy xun xoe Mưa lạnh, trời quang, nắng mới hoe Lá nõn nhành non, ai tráng bạc? Gió về từng tận, gió bay đi...

Thong thả dân gian nghỉviệc đồng Lúa thì con gái mượt nhưnhung Đầy vươn hoa bưởi, hoa cam rụng Ngào ngạt hương bay, bướm vẽvòng

Trên đường cát mịn, một đôi cô Yếm đỏ, khăn thâm, trẩy hội chùa Gậy trúc dắt bà già tóc bạc Tay lần tràng hạt, miệng nam mô.

#include <iostream.h>#include<stdio.h>#include<conio.h>int main(int argc, char *argv[])

Page 4: Lap trinh c++ có lời giải 1

{ cout<<"xuan ve"<<"\n";

cout<<"tung dan con tre chay xun xoe"<<"\n";cout<<"mua lanh, troi quang, nang moi hoe "<<"\n";cout<<"la non nhanh non, ai trang bac?"<<"\n";cout<<"gio ve tung tan, gio bay di..."<<"\n"<<"\n";

cout<<"thong tha dan gian nghi viec dong "<<"\n"; cout<<"lua thi con gai muot nhu nhung "<<"\n"; cout<<"day vuon hoa buoi, hoa cam rung "<<"\n"; cout<<"ngao ngat huong bay, buom ve vong "<<"\n"<<"\n";

cout<<"tren duong cat min, mot doi co "<<"\n";

cout<<"tem do, khan tham, tray hoi chua "<<"\n"; cout<<"gay truc dat ba gia toc bac "<<"\n"; cout<<"tay lan trang hat, mieng nam mo."<<"\n"<<"\n";

return 0;}

Page 5: Lap trinh c++ có lời giải 1

3. Viết chương trình nhập vào 2 số nguyên a, b. Tính tổng, hiệu, tích, thương của 2 số trên và in kết quả ra màn hình.

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>int main(int argc, char *argv[]){ int a,b; float tong,hieu,tich,thuong;

Page 6: Lap trinh c++ có lời giải 1

cout<<"Nhap a="<<"\n";cin>>a;cout<<"Nhap b="<<"\n";cin>>b; tong=a+b; hieu=a-b; tich=a*b; thuong=a/b; cout<<"tong= "<<tong<<"\n";cout<<"hieu= "<<hieu<<"\n";cout<<"tich= "<<tich<<"\n";cout<<"thuong= "<<thuong<<"\n";return 0;

}

Page 7: Lap trinh c++ có lời giải 1

4. Viết chương trình nhập vào 4 số nguyên a, b, c, d. Tính giá trị trung bình cộng của 4 số trên và in kết quả ra màn hình

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>

int main(int argc, char *argv[]){

Page 8: Lap trinh c++ có lời giải 1

int a,b,c,d;float tbc;cout<<"nhap a="<<"\n";cin>>a;cout<<"nhap b="<<"\n";cin>>b;cout<<"nhap c="<<"\n";cin>>c;cout<<"nhap d="<<"\n";cin>>d;tbc=(a+b+c+d)/4;cout<<"so trung binh cong= "<<tbc<<"\n";return 0;

}

Page 9: Lap trinh c++ có lời giải 1

II. PHẦN VIẾT CHƯƠNG TRÌNH THEO CẤU TRÚC LỆNH 1.1) Cấu trúc if/ if…else và switch…case 5. Nhập vào hai số nguyên a, b. In ra màn hình giá trị lớn nhất.

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>int main(int argc, char *argv[]){

Page 10: Lap trinh c++ có lời giải 1

int a,b;cout<<"nhap a="<<"\n";cin>>a;cout<<"nhap b="<<"\n";cin>>b;

if(a>b) cout<<"a la so lon nhat"; else cout<<"b la so lon nhat";

return 0;

}

Page 11: Lap trinh c++ có lời giải 1

6. Cho ba số a, b, c đọc vào từbàn phím. Hãy tìm giá trịlớn nhất của ba số trên và in ra kết quả

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>int main(int argc, char *argv[]){

float a,b,c;cout<<"nhap so a"<<"\n";

Page 12: Lap trinh c++ có lời giải 1

cin>>a;cout<<"nhap so b"<<"\n";cin>>b;cout<<"nhap so c"<<"\n";cin>>c;if(a>b) { if(a>c)

cout<<"a la so lon nhat"; else

cout<<"b la so lon nhat"; } else cout<<"c la so lon nhat";

return 0;}

Page 13: Lap trinh c++ có lời giải 1

7. Cho ba sốa, b, c đọc vào từbàn phím. Hãy in ra màn hình theo thứ tự tăng dần các số. (Chỉ được dùng thêm hai biến phụ).

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>int main(int argc, char *argv[]){

float a,b,c,tam;cout<<"nhap a="<<"\n";

Page 14: Lap trinh c++ có lời giải 1

cin>>a;cout<<"nhap b="<<"\n";cin>>b;cout<<"nhap c="<<"\n";cin>>c; if(a>b)

{ tam=a; a=b; b=tam; } if(a>c) {

tam=a; a=c; c=tam; } if(b>c) { tam=b; b=c; c=tam; } cout<<"so thu tu tang dan: "<<a<<" "<<b<<" "<<c<<"\n";

Page 15: Lap trinh c++ có lời giải 1

return 0;

}

8. Giải và biện luận phương trình: ax + b = 0

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>int main(int argc, char *argv[]){ float a,b,x;

cout<<"nhap so a"<<"\n";cin>>a;

Page 16: Lap trinh c++ có lời giải 1

cout<<"nhap so b"<<"\n";cin>>b;x=(-b/a);if(a!=0) { if(b==0) cout<<"phuong trinh vo so nghiem";

else cout<<"phuong trinh co nghiem X= "<<x<<" ";

} else cout<<"phuong trinh vo nghiem";

return 0;}

Page 17: Lap trinh c++ có lời giải 1

9. Giải và biện luận phương trình: ax^2 + bx +c =0.

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>int main(int argc, char *argv[]){

float a,b,c,delta,x1,x2;cout<<"nhap so a"<<"\n";cin>>a;

Page 18: Lap trinh c++ có lời giải 1

cout<<"nhap so b"<<"\n";cin>>b;

cout<<"nhap so c"<<"\n";cin>>c;

delta=(b*b)-(4*a*c); if(delta==0) { if(delta<0) cout<<"phuong trinh co nghiem kep X= "<<(-b)/(2*a)<<" ";

else cout<<"phuong trinh vo nghiem"; } else { cout<<"phuong trinh co nghiem phan biet"<<"\n"; cout<<"x1= "<<(-b+sqrt(delta))/(2*a)<<"\n"; cout<<"x2= "<<(-b-sqrt(delta))/(2*a)<<"\n"; }

return 0;}

Page 19: Lap trinh c++ có lời giải 1

10. Giải và biện luận phương trình: ax^4 + bx^2 + c = 0

#include<iostream.h>#include<stdio.h>#include<math.h>#include<conio.h>

int main(int argc, char *argv[]){

float a,b,c;

Page 20: Lap trinh c++ có lời giải 1

float delta;float t1,t2;float x1,x2,x3,x4;

cout<<"nhap a:"<<"\n";cin>>a;cout<<"nhap b:"<<"\n";cin>>b;cout<<"nhap c:"<<"\n";cin>>c;delta=(b*b)-(4*a*c);

if(delta<0)

cout<<"phuong trinh vo nghiem "; else {

if(delta==0) {

t1=(-b)/(2*a); t2=t1;

if(t1<0 && t2<0) cout<<"phuong trinh vo nghiem";

else {

if(t1>=0)

Page 21: Lap trinh c++ có lời giải 1

{

x1=sqrt(t1); x2=-x1;

cout<<"x1= "<<x1<<"\n"; cout<<"x2= "<<x2<<"\n"; } if(t2>=0) {

x3=sqrt(t2); x4=-x3;

cout<<"x3= "<<x3<<"\n"; cout<<"x4= "<<x4<<"\n"; } } } } if(delta>0) {

t1= (-b+sqrt(delta))/(2*a); t2= -t1; if(t1>=0) {

x1=sqrt(t1); x2=-x1;

Page 22: Lap trinh c++ có lời giải 1

cout<<"x1= "<<x1<<"\n"; cout<<"x2= "<<x2<<"\n"; } if(t2>=0) {

x3=sqrt(t2); x4=-x3;

cout<<"x3= "<<x3<<"\n"; cout<<"x4= "<<x4<<"\n"; } }

return 0;}

Page 23: Lap trinh c++ có lời giải 1

11. Viết chương trình nhập vào một sốnguyên n gồm ba chữ số. Xuất ra màn hình chữ số lớn nhất ở vị trí nào?

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>int main(int argc, char *argv[]){

int n,t,c,dv,max,vt;cout<<"nhap so n"<<"\n";cin>>n;max=t;vt=1;t=n/100;dv=n%10;c=(n/10)%10;max=t;vt=1;if(c>max) { max=c; vt=2; }

Page 24: Lap trinh c++ có lời giải 1

if(dv>max) { max=dv; vt=3;

} cout<<"so lon nhat o vi tri "<<vt;

return 0;}

12. Viết chương trình nhập vào sốnguyên n gồm ba chữsố. Xuất ra màn hình theo thứtựtăng dần của các chữsố. Ví dụ: n=291. Xuất ra 129.

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>int main(int argc, char *argv[])

Page 25: Lap trinh c++ có lời giải 1

{int n,t,c,dv,max;cout<<"nhap so nguyen n gom 3 chu so :"<<"\n";cin>>n;

t=n/100; c=n%10; dv=(n/10)%10;

if(t>c) { max=t; t=c; c=max; }

if(t>dv) { max=t; t=dv; dv=max; } if(c>dv) { max=c; c=dv; dv=max; } cout<<"so tang dan "<<t<<""<<c<<""<<dv<<"\n";

Page 26: Lap trinh c++ có lời giải 1

return 0;}

13. Nhập vào ngày, tháng, năm. Kiểm tra xem ngày, tháng, năm đó có hợp lệhay không? In kết quảra màn hình.

#include <iostream>#include <conio.h>#include <stdio.h>#include <math.h>

int main (){ int ngay, thang, nam, ngaymax; cout<<"NHAP NGAY : "; cin>>ngay; cout<<"NHAP THANG : ";

Page 27: Lap trinh c++ có lời giải 1

cin>>thang; cout<<"NHAP NAM : "; cin>>nam; if (nam<0 || thang<0 || thang> 12 || ngay<0 || ngay> 31) { cout<<"KHONG HOP LE"; } else { switch (thang) { case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : ngaymax=31; break; case 2 : if ((nam%4==0 && nam%100!=0) || (nam%400==0)) ngaymax=29; else ngaymax=28;

Page 28: Lap trinh c++ có lời giải 1

break; case 4 : case 6 : case 9 : case 11 : ngaymax=30; break; } if (ngay<=ngaymax) { cout<<"HOP LE !"<<"\n"; } else { cout<<"KHONG HOP LE !"<<"\n"; } } return 0;}

Page 29: Lap trinh c++ có lời giải 1

14. Nhập vào giờ, phút, giây. Kiểm tra xem giờ, phút, giây đó có hợp lệ hay không? In kết quả ra màn hình

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>int main(int argc, char *argv[]){

Page 30: Lap trinh c++ có lời giải 1

int gio,phut,giay;cout<<"nhap gio:"<<"\n";cin>>gio;cout<<"nhap phut:"<<"\n";cin>>phut;cout<<"nhap giay:"<<"\n";cin>>giay;if(gio < 0 || phut > 60 || giay > 60 || phut < 0 || giay < 0) cout<<"khong hop le"<<"\n";

else cout<<"hop le"<<"\n";

return 0;}

Page 31: Lap trinh c++ có lời giải 1

15. Viết chương trình nhập vào ngày, tháng, năm hợp lệ. Cho biết năm này có phải là năm nhuận hay không? In kết quả ra màn hình.

#include <iostream.h>#include <stdio.h>#include <conio.h>#include <math.h>int main(int argc, char *argv[]){

int ngay,thang,nam,ngaymax;cout<<"nhap ngay"<<"\n";cin>>ngay;cout<<"nhap thang"<<"\n";cin>>thang;cout<<"nhap nam"<<"\n";cin>>nam;if(ngay < 0 || thang<0 || nam <0 || thang > 12 ) cout<<"khong hop le"<<"\n";

else { { switch(thang) { case 1:

Page 32: Lap trinh c++ có lời giải 1

case 3: case 5: case 7: case 8: case 10: case 12: ngaymax=31; break; case 2: if(nam%4==0) ngaymax=29; else ngaymax=28; break; case 4: case 6: case 9: case 11: ngaymax=30; break; } } }

Page 33: Lap trinh c++ có lời giải 1

if((ngay<=ngaymax)&&(nam%4==0)) {

cout<<"la nam nhuan"<<"\n"; cout<<"hop le"; } else {

cout<<"khong phai nam nhuan"<<"\n"; cout<<"khong hop le"; }

return 0;}

Page 34: Lap trinh c++ có lời giải 1

16. Viết chương trình tính diện tích và chu vi các hình: tam giác, hình vuông, hình chữ nhật và hình tròn với những thông tin cần được nhập từ bàn phím.

A) tính diện tích và chu vi hình tam giác:

#include<iostream.h>#include<stdlib.h>#include<conio.h>#include<math.h> int main(int argc, char *argv[]){

int a,b,c;float p,dientich,chuvi;cout<<"nhap a"<<endl;cin>>a;cout<<"nhap b"<<endl;cin>>b;cout<<"nhap c"<<endl;cin>>c;p=(a+b+c)/2;

Page 35: Lap trinh c++ có lời giải 1

if((a+b>c)&&(a+c>b)&&(b+c>a)&&(a>0)&&(b>0)&&(c>0)) {

cout<<"dien tich tan giac= "<<sqrt(p*(p-a)*(p-b)*(p-c))<<"\n"; cout<<"chu vi tam giac= "<<a+b+c<<"\n"; }return 0;

}

B) tính diện tích và chu vi hình vuông:

#include<iostream.h>#include<stdlib.h>#include<conio.h>#include<math.h>

Page 36: Lap trinh c++ có lời giải 1

int main(int argc, char *argv[]){

int a,b,c,d;float dientich,chuvi;cout<<"nhap a"<<endl;cin>>a;cout<<"nhap b"<<endl;cin>>b;cout<<"nhap c"<<endl;cin>>c;cout<<"nhap d"<<endl;cin>>d;

if((a=b=c=d)&&(a>0)&&(b>0)&&(c>0)) { cout<<"dien tich hinh vuong= "<<a*a<<"\n"; cout<<"chu vi hinh vuong= "<<4*a<<"\n"; }return 0;

}

Page 37: Lap trinh c++ có lời giải 1

C) tính diện tích và chu vi hình chu nhat:

#include<iostream.h>#include<stdlib.h>#include<conio.h>#include<math.h> int main(int argc, char *argv[]){

int a,b;float dientich,chuvi;cout<<"nhap a"<<endl;cin>>a;cout<<"nhap b"<<endl;cin>>b;

Page 38: Lap trinh c++ có lời giải 1

if((a!=b)&&(a>0)&&(b>0)) { cout<<"dien tich hinh chu nhat= "<<(a+b)*2<<"\n"; cout<<"chu vi hinh chu nhat= "<<a*b<<"\n"; }return 0;

}

19. Viết chương trình nhập vào sốnguyên dương n. Kiểm tra xem n có phải là số chính phương hay không? (sốchính phương là sốkhi lấy căn bặc 2 có kết quả là nguyên).

#include<iostream.h>#include<stdlib.h>#include<conio.h>

Page 39: Lap trinh c++ có lời giải 1

#include<math.h> int main(int argc, char *argv[]){

int n,i;cout<<"nhap so nguyen n"<<endl;cin>>n;i=sqrt(n);if(n==i*i) cout<<"la so chinh phuong"<<"\n"; else cout<<"khong phai so chinh phuong";return 0;

}

Page 40: Lap trinh c++ có lời giải 1

1.2) Cấu trúc lặp (mỗi bài viết bằng 3 loại vòng lặp: for / while / do..while) 20. Viết chương trình nhập sốnguyên dương n. Liệt kê n sốnguyên tố đầu tiên.

#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<math.h> int ktSNT (const int a){ int i = 0; for(i = 2; i <= (int)sqrt(a); i++) { if( a % i == 0 || a < 2 && a != 2) { return 0; } } return 1;}int main (){

Page 41: Lap trinh c++ có lời giải 1

int N,i, k = 0; int* snt = 0; printf("\n Nhap vao N:"); scanf("%d", &N); snt = (int*)malloc(N*sizeof(int)); k = 0; i = 2; while(k < N) { i++; if(ktSNT(i) == 1) { snt[k] = i; k++; } } printf("\n Bang cac so nguyen to\n"); for (i = 0; i < k; i++) { printf("%5d", snt[i]); } free(snt);

Page 42: Lap trinh c++ có lời giải 1

getch(); return 0;}