Bài tập chương 8: Cấu trúc lập trình trong C pot

7 563 0
Bài tập chương 8: Cấu trúc lập trình trong C pot

Đang tải... (xem toàn văn)

Thông tin tài liệu

CHƯƠNG 8 – Cấu trúc lập trình trong C Hà Nội ngày 1/8/2010, Nguyễn Thị Thu Trang – SE – SoICT I. Bài tập làm thêm Bài tập 8.11. Tìm USCLN và BSCNN của 2 số nguyên dương nhập từ bàn phím Lời giải mẫu: #include <stdio.h> void main() { unsigned n, m, n1, m1, uscln, bscnn; printf("\nNhap hai vao so nguyen duong : "); scanf("%u%u", &n, &m); n1=n; m1=m; // Tim USCLN while (n1 != 0 && m1 != 0) if (n1>m1) n1 -= m1; else m1 -= n1; if (n1 == 0) uscln = m1; else uscln = n1; // Tim BSCNN bscnn = n * m / USCLN(n, m); printf("\nUSCLN cua %u va %u = %u", n, m, USCLN(n,m)); printf("\nBSCNN cua %u va %u = %u", n, m, BSCNN(n,m)); getch(); } Bài tập 8.12. Nhận vào từ bàn phím tháng và năm, có kiểm tra điều kiện. Đưa ra tháng năm đó có bao nhiêu ngày, chú ý nếu tháng và năm nhập không đúng thì yêu cầu nhập lại. Sử dụng lệnh switch…case Lời giải mẫu: /*Bai tap 8.12. Tinh so ngay cua 1 thang*/ #include <stdio.h> #include <conio.h> int thang,ngay,nam; void main() { 1 clrscr(); printf("Chuong trinh tinh so ngay cua mot thang\n\n"); printf("Nhap thang:"); scanf("%d",&thang); while (thang<1 || thang>12) { printf("\nBan nhap khong dung!\n"); printf("Ban hay nhap lai:"); scanf("%d ",&thang); } printf("\nNhap nam:"); scanf("%d",&nam); switch (thang) { case 4: case 6: case 9: case 11: ngay=30;break; case 2: if ((nam%4==0 && nam%100 != 0) || (nam%400 == 0)) ngay=29; else ngay=28; break; default: ngay=31; } printf("\nSo ngay cua thang do la %d\n",ngay); getch(); } Bài tập 8.13. Tìm tất cả các ước số của số nguyên dương nhập từ bàn phím. Có xử lý ngắt trang (5 số / 1 dòng, 20 dòng / 1 trang). Lời giải mẫu: /* Bai tap 8.13 - In tat ca cac uoc so cua so n */ #include <stdio.h> #include <conio.h> void main() { int n, i; printf("Cho gia tri N = "); scanf("%d", &n); printf("Cac uoc so cua %d la :\n", n); for (i=1; i<n; i++) if ((n % i) == 0) printf("%5d", i); getch(); } 2 Bài tập 8.14. Nhận số nguyên dương từ bàn phím. Đưa ra kết luận số đó có phải là số nguyên tố hay không. Lời giải mẫu: /* Bai tap 2.4 - Tinh xem so N co phai la so nguyen to khong? */ #include <stdio.h> #include <math.h> void main() { int N, i, OK = 1; printf("\nNhap gia tri N : "); scanf("%d", &N); for (i=2; i<(int)sqrt(N); i++) if (N%i == 0) { OK = 0; break; } if (OK) printf("\nSo %d la so nguyen to.", N); else printf("\nSo %d khong phai la so nguyen to.", N); getch(); } Bài tập 8.15: Viết chương trình nhập vào số nguyên dương h (2<h<23), sau đó in ra các tam giác có chiều cao là h như các hình sau: * * ** *** *** ***** **** ******* ***** ********* Lời giải mẫu: /* Bai tap 2.6. In hinh tam giac dac */ #include <stdio.h> #include <conio.h> void main() { int n, i, j; printf("\nNhap chieu cao cua hinh tam giac : "); scanf("%d", &n); for (i=0; i<n; i++) { for (j=n-1; j>i; j ) 3 printf(" "); for (j=0; j<i*2+1; j++) printf("*"); printf("\n"); } getch(); } Bài tập 8.16: In ra dãy số Fibonaci < N (N<=10.000) /* Bai tap 2.7. In day so Fibonaci */ #include <stdio.h> void main() { int n, i, fib1 = 1, fib2 = 1, fib = 2; printf("\nNhap gia tri N : "); scanf("%d", &n); printf("%d %d ", fib1, fib2); while (fib1+fib2 < n) { fib = fib1 + fib2; printf("%d ", fib); fib2 = fib1; fib1 = fib; } getch(); } II. Bài tập về nhà Bài tập 8.21. Tính n! (n<=10). Đưa ra 2 lời giải tương ứng với việc sử dụng for hoặc while. Lời giải mẫu: /*Bai tap 8.21. Tinh n! */ #include<stdio.h> #include<conio.h> long n,i,gt; void main() { clrscr(); printf("Chuong trinh tinh n!\n\n"); printf("Ban hay nhap vao mot so tu nhien n:"); scanf("%d",&n); while (n<0) { printf("\nSo vua nhap khong thoa man, ban hay nhap lai:"); scanf("%d",&n); } 4 gt=1; i=1; if (n>0) while (i<=n) gt=gt*i++; printf("\nn!=%d\n",gt); getch(); } Hoặc: void main() { int n, start, i; unsigned long gthua = 1; printf("\nNhap gia tri N : "); scanf("%d", &n); if (n%2 == 0) start = 2; else start = 1; for (i=start; i<=n; i = i+2) gthua *= i; printf("\n%d!! = %ld", n, gthua); getch(); } Bài tập 8.22. Đưa ra tất cả các số nguyên tố từ 1 đến N (1<N<=10000). Chú ý có xử lý ngắt trang. Lời giải mẫu: #include <stdio.h> #include <conio.h> #include <math.h> unsigned long N,i,j,dk; void main() { clrscr(); printf("Chuong trinh viet cac so nguyen to tu 1 den N (N>1)\n\n"); printf("Ban hay nhap N:"); scanf("%d",&N); printf("\nCac so nguyen to tu 1 den N la:"); i=2; dk=1; while (i<=N) { if (dk==1) printf("%d,",i); dk=1; i=i+1; j=2; while (j<=sqrt(i)) { if (i%j==0) 5 { dk=0; break; } j=j+1; } } getch(); } Bài tập 8.23. Một tam giác vuông có thể có tất cả các cạnh là các số nguyên. Tập của ba số nguyên của các cạnh của một tam giác vuông được gọi là bộ ba Pitago. Đó là tổng bình phương của hai cạnh bằng bình phương của cạnh huyền, chẳng hạn bộ ba Pitago (3, 4, 5). Viết chương trình tìm tất cả các bộ ba Pitago như thế sao cho tất cả các cạnh không quá 500. Lời giải mẫu: /* Tim nhung gia tri nguyen x, y, z thoa x^2 + y^2 = z^2 */ #include <stdio.h> #include <conio.h> #include <math.h> void main() { long x, y, z, count = 0; for (x=1; x<100; x++) for (y=1; y<100; y++) { z = sqrt(x*x+y*y); if (z*z == x*x + y*y) { printf("\n%6ld %6ld %6ld", x, y, z); count++; } } printf("\nTong cong co %ld cap so thoa man.", count); getch(); } Bài tập 8.24. Đoán số Lời giải mẫu: /* Doan so */ #include <stdio.h> void main() { int n, k = 128, i = 0, solan = 0; char c; 6 printf("\nBan hay nghi mot so trong dau. So do phai nho hon 100."); delay(1000); printf("Xong chua! Roi ban hay tra loi nhung cau hoi sau day cua toi."); printf("\nToi se tim ra con so ma ban doan."); do { n = (k+i)/2; solan++; printf("\nLan doan thu %d.", solan); printf("\nCo phai so ban nghi la %d (Dung, Nho hon, Lon hon) ? ", n); do { c = toupper(getch()); } while (c != 'D' && c != 'N' && c != 'L'); switch (c) { case 'L' : i = n; break; case 'N' : k = n; break; case 'D' : printf("\nTai khong?"); break; } } while (c != 'D'); getch(); } Bài tập 8.25. Nhập vào một số nguyên dương từ bàn phím. Kiểm tra xem số nguyên đó có thuộc dãy Fibonacci không. 7 . break; } j=j+1; } } getch(); } Bài tập 8.23. Một tam gi c vuông c thể c tất c c c cạnh là c c số nguyên. Tập c a ba số nguyên c a c c cạnh c a một tam gi c vuông đư c gọi là bộ ba Pitago CHƯƠNG 8 – C u tr c lập trình trong C Hà Nội ngày 1/8/2010, Nguyễn Thị Thu Trang – SE – SoICT I. Bài tập làm thêm Bài tập 8.11. Tìm USCLN và BSCNN c a 2 số nguyên dương. Đó là tổng bình phương c a hai c nh bằng bình phương c a c nh huyền, chẳng hạn bộ ba Pitago (3, 4, 5). Viết chương trình tìm tất c c c bộ ba Pitago như thế sao cho tất c c c cạnh không quá 500. Lời

Ngày đăng: 31/07/2014, 12:20

Từ khóa liên quan

Mục lục

  • I. Bài tập làm thêm

    • Bài tập 8.11. Tìm USCLN và BSCNN của 2 số nguyên dương nhập từ bàn phím

    • Bài tập 8.12. Nhận vào từ bàn phím tháng và năm, có kiểm tra điều kiện. Đưa ra tháng năm đó có bao nhiêu ngày, chú ý nếu tháng và năm nhập không đúng thì yêu cầu nhập lại. Sử dụng lệnh switch…case

    • Bài tập 8.13. Tìm tất cả các ước số của số nguyên dương nhập từ bàn phím. Có xử lý ngắt trang (5 số / 1 dòng, 20 dòng / 1 trang).

    • Bài tập 8.14. Nhận số nguyên dương từ bàn phím. Đưa ra kết luận số đó có phải là số nguyên tố hay không.

    • Bài tập 8.15: Viết chương trình nhập vào số nguyên dương h (2<h<23), sau đó in ra các tam giác có chiều cao là h như các hình sau:

    • Bài tập 8.16: In ra dãy số Fibonaci < N (N<=10.000)

    • II. Bài tập về nhà

      • Bài tập 8.21. Tính n! (n<=10). Đưa ra 2 lời giải tương ứng với việc sử dụng for hoặc while.

      • Bài tập 8.22. Đưa ra tất cả các số nguyên tố từ 1 đến N (1<N<=10000). Chú ý có xử lý ngắt trang.

      • Bài tập 8.23. Một tam giác vuông có thể có tất cả các cạnh là các số nguyên. Tập của ba số nguyên của các cạnh của một tam giác vuông được gọi là bộ ba Pitago. Đó là tổng bình phương của hai cạnh bằng bình phương của cạnh huyền, chẳng hạn bộ ba Pitago (3, 4, 5). Viết chương trình tìm tất cả các bộ ba Pitago như thế sao cho tất cả các cạnh không quá 500.

      • Bài tập 8.24. Đoán số

      • Bài tập 8.25. Nhập vào một số nguyên dương từ bàn phím. Kiểm tra xem số nguyên đó có thuộc dãy Fibonacci không.

Tài liệu cùng người dùng

Tài liệu liên quan