Upload
minh-ngoc-tran
View
3.084
Download
7
Embed Size (px)
DESCRIPTION
Citation preview
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";
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;
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[])
{ 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;}
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;
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;
}
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[]){
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;
}
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[]){
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;
}
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";
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;}
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";
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";
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;
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;}
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;
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;}
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;
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)
{
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;
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;}
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; }
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[])
{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";
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 : ";
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;
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;}
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[]){
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;}
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:
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; } } }
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;}
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;
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>
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;
}
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;
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>
#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;
}
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 (){
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);
getch(); return 0;}