Mình mới học lập trình C nên mình có một số bài tập lập trình C đã làm để mọi người tham khảo. Các bài mình làm đều được viết theo kiểu học tới đâu làm tới đấy nên bạn nào bắt đầu học có thể dễ dàng theo dõi...
Một số bài đã được bạn sinhvienlife và một số ban upload nên có sự trùng lặp; tuy nhiên mình cũng up cả lên cho các bạn dễ theo dõi cũng như có nhiều cách để làm;
Lưu ý : Chương trình mình viết trên Dev C nếu bạn nào dùng Turbo C thì chỉnh sửa một chút thôi, mà bạn này cần Dev C thì tải tại đây http://www.mediafire...7lq762lz47ao9wi còn Turbo C v4.5 tại Đây http://www.mediafire...uz8in1pdjv6lac6
Mình mới học nên trình độ có hạn các bạn xem thấy hay thì thank giùm cái chứ đừng chém gió mình. thanks
Bài tập thực hành chương 1 :
Bài tập chương câu lệnh điều kiện và rẽ nhánh
Viết hàm đổi một ký tự hoa sang ký tự thường.
Viết thủ tục giải phương trình bậc nhất.
Viết thủ tục giải phương trình bậc hai.
Viết hàm trả về giá trị nhỏ nhất của 4 số nguyên.
Viết thủ tục hoán vị hai số nguyên.
Viết thủ tục sắp xếp 4 số nguyên tăng dần.
Bài tập chương câu lệnh lặp. Hàm nhận vào một số nguyên dương n và thực hiện:
Trả về sốđảo của sốđó.
Có phải là sốđối xứng (Trả về True/False)
Có phải là số chính phương.
Có phải là số nguyên tố.
Tổng các chữ số lẻ.
Tổng các chữ số nguyên tố.
Tổng các chữ số chính phương.
Bài tập chương Câu lệnh lặp. Hàm nhận vào một số nguyên dương n và thực hiện:
S 1= 1 + 2 + … + n
S 2= 1^2 + 2^2 + … + n^2
S3 = 1 + 1/2 + … + 1/n
S4 = 1 * 2 * … * n
S 5= 1! + 2! + … + n!
Hàm trả về USCLN của 2 số nguyên.
Bài 1: Viết hàm đổi một ký tự hoa sang ký tự thường
//Chuong trinh chuyen tu ki tu hoa song ki tu thuong #include#include int main() { char c; printf("Nhap mot chu cai bat ki: %\n"); scanf("%c",&c); if ((65<=c) and (c<=90)){c=c+32;printf("Ki tu da chuyen doi la %c\n",c);} else printf("Ban vua nhap moi ki tu thuong \n"); getch(); } //Trong bo ma ASCII thì kí tu hoa co ma tu 65 den 90, con ki tu thuong bang ki tu hoa cong them 32
Bài 2: Viết thủ tục giải phương trình bậc nhất.
(bài này cơ bản nên không có giải thích gì thêm)
//Chuong trinh giai phuong trinh bac nhat #include#include int main() { float a,b; float x; printf("nhap a vao: \n"); scanf("%f",&a); printf("nhap b vao: \n"); scanf("%f",&b); if (a!=0) {x=-b/a; printf("phuong trinh co nghiem %3.2f\n",x);} else if (b==0) printf("Phuong trinh vo so nghiem \n"); else printf("phuong trinh vo nghiem");getch(); }
Bài 3 :Viết thủ tục giải phương trình bậc hai
(Bài này chỉ sử dụng cấu trúc rẽ nhánh)
//Chuong trinh giai phuong trinh bac 2 #include#include #include
Bài 4: Viết hàm trả về giá trị nhỏ nhất của 4 số nguyên
//Chuong trinh tim gia tri nho nhat cua bon so nguyen #include#include int main() { int a,b,c,d,min,x,y; printf("nhap a: \n"); scanf("%d",&a); printf("nhap b: \n"); scanf("%d",&b); if (a Viết thủ tục sắp xếp 4 số nguyên tăng dần. //Chuong trinh nhap 4 so nguyen va dua ra man hinh thu tu tang dan ; #includeKiểm tra số chính phương Yêu cầu:Thế nào là số chính phương: Những số nguyên dương mà có căn bậc hai là số nguên dương là số chính phương; Ý tưởng: Nhập vào số nguyên dương n bất kì; bây giờ mình kiểm tra các số từ (1-n) nếu mà trong các bình phương vửa kiểm tra có số nào bằng n thì n là số chính phương ví dụ như số 9 bây giờ mình kiểm tra từ 1-9(thực chất không phải kiểm tra đến 9- Nhưng máy mà kệ nó :d): thì thấy có số 3 sau khi bình phương bằng 9; giả sử nhập n=5 thì kiểm tra từ 1-5 không thấy số nào bình phương bằng 5 cà :tuChoi: Từ đó mình đưa vào vòng lặp mà chạy thôi :hihi:#include main() { int a[10],i,tg,j=0; for(i=0;i<4;i++) { printf("\nNhap so thu: %d\n",i+1); scanf("%d",&a[i]); } for (i=0;i<4;i++) //Duyet qua tat ca phan tu cua mang { for (j=i+1;j<4;j++) //Duyet tat ca phan tu cua mang dung sau i { if (a[i]>a[j]) { tg=a[i]; //Vi a[i] duoc duyet truoc a[j] nen gan tg=a[i]; a[i]=a[j]; /*Ba phep gan nay giong nhau ke ca voi xap xep tang*/ a[j]=tg; } } } printf("\nDay so sau khi xap xem la: "); for (i=0;i<4;i++) printf("%d ",a[i]); getch(); } //Chuong trinh nhap mot so nguyen va in ket qua co phai la so chinh phuong hay khong #includeBài:nhập số nguyên n kiểm tra Có phải là số nguyên tố hay không Thứ 1: Thế nào là số nguyên tố: là số nguyên dương chỉ có 2 ước là 1 và chính nó; Thứ 2: Vận dụng số ước của số nguyên tố để giải quyết bài toán này bằng cách sử dụng biến s đếm số ước của n khi lấy n chia cho các số từ 1-n: + Nếu có 2 ước thì kết luận số nguyên tố; còn nếu khác 2 thì kết luận ngược lại + Sử dụng vòng lặp for để giải quyết bài toán:#include #include //Kiem tra so nguyen to #includeTổng các chữ số lẻ. (Tồng số chẵn tương tự) Bài này cơ bản nên không giải thích nhiều#include main() { int i,n,s=0; lap: printf("nhap n: \n"); scanf("%d",&n); s=0; for (i=1;i<=n;i++) { if (n%i==0) s=s+1;} if (s==2) printf("so nguyen so \n"); else printf("khong nguyen to \n"); printf("Nhan phim bat ki de tiep tuc \n"); getch(); goto lap; getch(); } //Chuong trinh nhap mot so nguyen n va tinh tong cac so le #includeTổng các chữ số nguyên tố.từ 1 đến n Yêu cầu: thứ nhất là kiểm tra xem các số từ 1-n có số nào là sô nguyên tố hay không thứ hai: nếu là số nguyên tố thì tính tổng của nó; Cách làm: Sử dụng 2 vòng for lồng nhau; vòng thứ nhất duyệt qua các phần tử từ 1 tới n dùng biến chạy i vòng 2 duyệt các phần tử từ 1 đến i (dùng biến đếm j )mục đích kiểm tra xem i là số nguyên tố hay không nếu có thì tăng biến tổng s thêm giá trị i Bài này nên xem lại bài kiểm tra số nguyên tố để rõ hơn Bài làm (Rất ngắn bạn sẽ bất ngờ)#include main() { unsigned int i,n,tl; printf("Nhap n vao: \n"); scanf("%x",&n); tl=0; for (i=1;i<=n;i++) { if(i%2!=0) tl=tl+i; } printf("Tong le cua can tinh la: %5x\n",tl); getch(); } //Chuong trinh nhap so nguyen n va tinh tong so nguyen to #includeTổng các chữ số chính phương.từ 1 đến n Cách làm và ý tưởng tương tự như tổng nguyên tố thôi; các bạn chú ý nhé nếu không rõ thì hỏi lại mình#include main() { int n,i,j,s,t; printf("Nhap n vao: "); scanf("%d",&n); t=0; for (i=1;i<=n;i++) { s=0; for (j=1;j<=i;j++) { if(i%j==0) s=s+1; } //Kiem tra xem co phai so nguyen to hay khong if (s==2) t=t+i;} // neu la so nguyen to thi cong cho bien S gia tri i printf("tong cua so nguyen to la: %d",t); getch(); } //Chuong trinh tinh tong cac so chinh phuong #includeTính tổngS 1= 1 + 2 + … + n (Bài này đơn giản bạn tự làm) Tính tổng S2= 1^2 + 2^2 + … + n^2#include main() { int i,n,s,t,j; printf("Hay nhap n vao: ");scanf("%d",&n); if(n<1) printf("Nhap khong hop le hay nhap lai"); else { t=0; for(i=1;i<=n;i++) { for (j=1;j<=i;j++) { if (j*j==i) t+=i; } } printf("Tong cac so chinh phuong la: %d",t); } getch(); } //Chuong trinh nhap so nguyen n va tinh tong S=1+1*1+2*2+...+n*n; #includeS3 = 1 + 1/2 + … + 1/n#include main() { int i,n,t,s; printf("Hay nhap n vao: ");scanf("%d",&n); s=0; for(i=1;i<=n;i++) { s=s+i*i; } printf("\nTong la: %d",s); getch(); } //Chuong trinh tinh tong S3=1+1/2+1/3+1/4+...1/n voi n nhap tu ban phaim #includeS4 = 1 * 2 * … * n#include main() { unsigned int i,n; float s; lap: printf("\nNhap n vao: "); scanf("%d",&n); s=0; for (i=1;i<=n;i++) { s=s+(float)1/i; } printf("\nTong la: %3.3f",s); printf("\nNhan Enter de nhap tiep"); getch(); goto lap; getch(); } //Chuong trinh tinh tong S4=1*2*3*...*n; #includeS 5= 1! + 2! + … + n!#include main() { int i,n,s; lap: printf("\nNhap n vao: "); scanf("%d",&n); s=1; for (i=1;i<=n;i++) s=s*i; printf("\nTong S4= %d",s); printf("\nTiep tuc chuong trinh"); goto lap; getch(); } //Chuong trinh tinh tong S5=1!+2!+...+n! voi n nhap tu ban phim #includeHàm trả về USCLN của 2 số nguyên. Cách làm: thế nào là ước chung lớn nhất của hai số a và b: Là số nguyên dương lớn nhất thỏa mãn cả hai số đề cả a và b đều chia hết cho nó Cụ thể mình đưa vào vòng lặp với biến chạy kiểm tra từ 1 tới (a hoặc b vì ưcln luôn không quá a hoặc không quá b) nếu thỏa mãn điều kiện cả a và b đều chia hết thì tăng ưcln lên với bội là i Ok#include main() { int i,gt,n,s; lap: printf("\nNhap n vao: "); scanf("%d",&n); s=0;gt=1; for(i=1;i<=n;i++) { gt=gt*i;s=s+gt; } printf("\nTong day S5= %d",s); printf("\nNhan Enter de tiep tuc: "); getch(); goto lap; } //Chuong trinh nhap 2 so nguyen va tim uoc chung lon nhat; #include#include main() { int a,b,i,ucln; lap: printf("\nNhap so thu nhat: "); scanf("%d",&a); printf("\nNhap so thu hai : "); scanf("%d",&b); if((a<=0)||(b<=0)) { printf("\nMoi nhap lai");goto lap;} else { ucln=1; for (i=1;i<=a;i++) { if((a%i==0)&&(b%i==0)) ucln=ucln*i; } printf("\nUCLN= %d",ucln); printf("\nNhap phim bat ki de tiep tuc: "); getch(); goto lap; } getch(); }
0 nhận xét:
Đăng nhận xét