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";
3. 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[])
4. {
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;
}
5. 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;
7. 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[])
{
9. 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[])
{
11. 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";
13. 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";
23. 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;
}
24. 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[])
25. {
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";
26. 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 : ";
27. 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;
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;
}
29. 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[])
{
31. 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:
32. 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;
}
}
}
34. 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;
37. 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;
38. 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>
39. #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;
}
40. 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 ()
{
41. 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 ton");
for (i = 0; i < k; i++)
{
printf("%5d", snt[i]);
}
free(snt);