C++ Bài Tập Và Lời Giải các Bài tập Cơ Bản Những bài tập hay và thú vị dành cho các bạn
TÔI CHẮC CHẮN LÀM ĐƯỢC Bài 1: Cho đoạn chương trình sau: #include <stdio.h> #include <math.h> main() { int i = 4, j = 21, k, b, y; float x = 94.55; Hãy xác định lần lượt giá trị các phép gán sau: a) k = i*j; b) y = x + i; c) y = j+j; d) x = i; e) i = i+j; f) j = j ; g) B = (i > j) && (j = -j); 1 25/05/2014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC h) B = (i < j) && (j == j); i) B = i-5; j) k = i++; k) k = i; l) i += j; lời giải: #include <stdio.h> #include <conio.h> void main() { int i = 4, j = 21, k, y, B; float x = 94.55; clrscr(); k = i*j; printf("\nk = %d", k); //84 y = x + i; printf("\ny = %d", y); //98 y = j+j; printf("\ny = %d", y); //42 x = i; printf("\nx = %3.1f", x); //4.0 i = i+j; printf("\ni = %d", i); //25 j = j ; printf("\nj = %d", j); //20 B = (i > j) && (j = -j); printf("\nB = %d", B); //1 B = (i < j) && (j == j); printf("\nB = %d", B); //0 B = i-5; printf("\nB = %d", B); //20 k = i++; printf("\nk = %d", k); //25 k = i; printf("\nk = %d", k); //25 i += j; printf("\ni = %d", i); //5 getch(); } Bài 2: Cho 4 số a, b, c, d đọc từ bàn phím. Xác định Max là cực đại và Min là cực tiểu của 4 số đó. Lời giải 2 25/05/2014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC #include <stdio.h> #include <conio.h> int main(void) { int a, b, c, d, Min, Max; printf("\nCho a, b, c, d: "); scanf("%d%d%d%d", &a, &b, &c, &d); Min = Max = a; if (Min > b) Min = b; else Max = b; if (Min > c) Min = c; else if (Max < c) Max = c; if (Min > d) Min = d; else if (Max < d) Max = d; printf("\nBon so da cho: %5d, %5d, %5d, %5d", a, b, c, d); 3 25/05/2014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC printf("\nSo lon nhat : %5d", Max); printf("\nSo nho nhat : %5d", Min); getch(); return 0; } Bài 3: Giải và biện luận hệ hai phương trình tuyến tính hai ẩn với các hệ số a, b, c, d, m, n nhập từ bàn phím. Lời giải: #include <stdio.h> #include <conio.h> #include <math.h> int main(void) { float a, b, c, d, m, n, x, y; printf("\Giai v bien luan he phuong trinh: "); printf("\nax + by = m"); printf("\ncx + dy = n\n"); printf("\nCho a, b, c, d, m, n: "); 4 25/05/2014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC scanf("%f%f%f%f%f%f", &a, &b, &c, &d, &m, &n); float D = a*d - b*c; float Dx = m*d - n*b; float Dy = a*n - c*m; if (fabs(D) <= 0.00001) if ((fabs(Dx) <= 0.00001) && (fabs(Dy) <= 0.0001)) printf("\nPhuong trinh nghiem dung voi moi x va y"); else printf("\nPhuong trinh vo nghiem"); else { x = Dx/D; y = Dy/D; printf("\nx = %10.2f", x); printf("\ny = %10.2f", y); } getch(); return 0; } 5 25/05/2014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC Bài 4: Viết chương trình xây dựng bảng cửu chương và in lên màn hình. Lời giải: #include <stdio.h> #include <conio.h> #include <string.h> int main(void) { clrscr(); char *s = "B A N G C U U C H U O N G"; gotoxy((80-strlen(s))/2, 1); printf("%s", s); for (int i = 0; i < 9; i++) { int x = (i % 5)*15 + 1; for (int j = 0; j < 9; j++) { int y = (i / 5)*10 + j + 3; gotoxy(x, y); printf("%2d x %2d = %2d", (i+1), (j+1), (i+1)*(j+1)); } } 6 25/05/2014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC getch(); return 0; } Giải bằng passcal: Program Bai5; Var A: Array[1 11] OF Integer; i, c: Integer; Begin For i := 1 To 10 Do Begin Write('A[', i, '] = '); ReadLn(a[i]); End; For i := 1 To 10 Do Begin Write('A[', i, '] = '); ReadLn(a[i]); End; A[11] := 5; i := 1; While A[i] <> 5 Do i := i + 1; If i < 10 Then Begin c := A[i]; A[i] := A[i+1]; A[i+1] := c; End; For i := 1 To 10 Do WriteLn('A[', i, '] = ', A[i]); ReadLn; End. Bài 5: Lập trình tính giai thừa của số N. 7 25/05/2014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC Lời giải : #include <stdio.h> #include <conio.h> #include <math.h> int main(void) { clrscr(); printf("\nC H U O N G T R I N H T I N H G I A I T H U A"); printf("\nCho so N: "); int N; scanf("%d", &N); double GT = 1; for (int i = 2; i <= N; i++) GT *= i; printf("\nGiai thua cua %3d la %-10.0f", N, GT); getch(); return 0; } 8 25/05/2014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC Bài 6 : Lập chương trình in lên màn hình các số từ 1 đến 6 thành hình sau: 1 12 123 1234 12345 123456 123456 12345 1234 123 12 1 1 121 12321 1234321 123454321 12345654321 9 25/05/2014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC Lời giải: #include <stdio.h> #include <conio.h> int main(void) { clrscr(); for (int i = 1; i < 7; i++) { for (int j = 1; j <= i; j++) printf("%d",j); printf("\n"); } for (i = 1; i < 7; i++) { printf("\n\t"); for (int j = i; j >= 1; j ) printf("%d\b\b",j); } for (i = 1; i < 7; i++) { printf("\n%*s", 7-i, ""); 10 25/05/2014 THẦN ĐIÊU ĐẠI HIỆP [...]... so_bo); printf("\nSo chan : %d", so_chan); getch(); } Bài 20 : Cho chiều dài và chiều rộng hình chữ nhật là 50 và 10 Tính diện tích, chu vi và in kết quả lên màn hình Lời giải : Bài 21 : Nhập các cạnh cuả khối hộp chữ nhật từ bàn phím Tính thể tích, diện tích xung quanh, diện tích toàn phần và in kết quả lên màn hình Lời giải : #include #include int dai; 36 THẦN ĐIÊU ĐẠI HIỆP 25/05/2014... ĐẠI HIỆP 25/05/2014 TÔI CHẮC CHẮN LÀM ĐƯỢC } Bài 17 : Bài toán người đưa thư: Piter là người đưa thư Một hôm, để phá vỡ sự nhàm chán của công việc thường ngày, anh ta bắt đầu đi mở tất cả các hộp thư có số chẵn Sau đó bắt đầu từ hộp thư đánh số 3 anh ta đi tìm các hộp thư là bội số của 3, đóng lại nếu nó đang mở và mở ra nếu nó đang đóng Tiếp tục như thế cho các hộp thư có số thứ tự chia hết cho 4, cho... float LT1(float a, int n) { if (n == 1) return a; else return a*LT1(a, n-1); } 19 THẦN ĐIÊU ĐẠI HIỆP 25/05/2014 TÔI CHẮC CHẮN LÀM ĐƯỢC Bài 13 : Lập trình tạo bảng chọn để nhập dữ liệu và tính diện tích các hình vuông, tròn, chữ nhật, hình thang, tam giác theo nhu cầu Lời giải : #include #include #include #include char *M[30] = {"Tinh dien tich hinh vuong", "Tinh... F[n-1]+F[n-2]; } void main() { clrscr(); for (unsigned long i = 1; i . lên màn hình các số từ 1 đến 6 thành hình sau: 1 12 12 3 12 34 12 345 12 3456 12 3456 12 345 12 34 12 3 12 1 1 1 21 123 21 12343 21 1234543 21 123456543 21 9 25/05/2 014 THẦN ĐIÊU ĐẠI HIỆP TÔI. thành hình sau: 1 232 34543 4567654 11 25/05/2 014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC 567898765 6789 010 9876 789 012 3 210 987 89 012 34543 210 98 9 012 345676543 210 9 012 3456789876543 210 Lời giải :. %2d", (i +1) , (j +1) , (i +1) *(j +1) ); } } 6 25/05/2 014 THẦN ĐIÊU ĐẠI HIỆP TÔI CHẮC CHẮN LÀM ĐƯỢC getch(); return 0; } Giải bằng passcal: Program Bai5; Var A: Array [1 11] OF Integer;