Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 54 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
54
Dung lượng
557,83 KB
Nội dung
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐH KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN TIN HỌC CƠ SỞ ^U] BÀI TẬP MINH HỌA HỌC PHẦN TIN HỌC CƠ SỞ A Mục lục: Tuần 3. CÁC KHÁI NIỆM CƠ BẢN VỀ KỸ THUẬT LẬP TRÌNH . Tuần 4. CÁC CẤU TRÚC LẬP TRÌNH - CẤU TRÚC CHỌN Tuần 5. VÒNG LẶP WHILE . 11 Tuần 6. VÒNG LẶP FOR 15 Tuần 7. CHƯƠNG TRÌNH CON . 19 Tuần 8. CHƯƠNG TRÌNH CON (tt) . 21 Tuần 9. KIỂU MẢNG MỘT CHIỀU VÀ MỘT SỐ KỸ THUẬT CƠ BẢN . 22 Tuần 10. TÌM KIẾM VÀ SẮP XẾP TRÊN MẢNG MỘT CHIỀU . 27 Tuần 11. MẢNG CHIỀU . 32 Tuần 12. 13. KIỂU KÝ TỰ VÀ KIỂU CHUỖI . 39 Tuần 13. ĐỆ QUY 49 Trang BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 Tuần 3. CÁC KHÁI NIỆM CƠ BẢN VỀ KỸ THUẬT LẬP TRÌNH CÁC BÀI TẬP CƠ BẢN Bài tập 1: Viết chương trình in dòng chữ sau đây: 1. 2. 3. 4. In C, lowercase letters are significant. main is where program execution begins. Opening and closing braces enclose program statements in a routine. All program statements must be terminated by a semicolon. #include int main (void) { printf ("\t1. printf ("\t2. printf ("\t3. routine.\n"); printf ("\t4. semicolon.\n"); return 0; } In C, lowercase letters are significant.\n"); main is where program execution begins.\n"); Opening and closing braces enclose program statements in a All program statements must be terminated by a Chú ý: 1. Ngôn ngữ C phân biệt chữ hoa chữ thường. 2. Mỗi chương trình có hàm main. Hàm main nơi chương trình thực hiện. 3. Mỗi có mở ngoặc phải có đóng ngoặc. vd: {…} (…) 4. Các dòng lệnh phải kết thúc dấu chấm phẩy ‘;’ Bài tập 2: Viết chương trình tính kết phép trừ 15 cho 87, xuất kết hình. #include int main (void) { int x = 15; int y = 87; int z = x – y; printf ("%d - %d = %d", x, y, z); return 0; } Bài tập 3: Viết đoạn chương trình sau mà ký tự bôi đen, sau biên dịch chương trình (F7) xem thông báo lỗi. Ghi lại lỗi mà chương trình thông báo. Sau đó, sửa lại chương trình cho biên dịch lại. Ghi chú: thông báo lỗi cửa sổ phía Visual C++. Nhấn F4 nhảy đến lỗi. #include #define TWENTYFIVE int main () { 25; Trang BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 int sum; /* COMPUTE RESULT */ sum = TWENTYFIVE + 37 – 19; /* DISPLAY RESULTS */ printf ("The answer is %i\n", sum); return 0; } Bài tập 4: Viết đoạn chương trình sau dự đoán kết chương trình. Sau biên dịch chạy chương trình để xem kết xác. Nếu kết khác với dự đoán phân tích xem lại vậy. #include int main () { int answer, result; answer = 100; result = answer - 10; printf ("The result is %i\n", result + 5); return 0; } The result is 95 Bài tập 5: Dự đoán kết chương trình sau giải thích sao. Chạy chương trình so sánh kết thật với kết dự đoán. #include #define PRINT(format,x) printf ("x = %"#format"\n", x) int main (void) { int integer = 5; char character = '5'; PRINT(d, character); PRINT(d, integer); PRINT(c, character); PRINT(c, integer=53); return 0; } x x x x = = = = 53 5 Bài tập 6: Dự đoán kết chương trình sau giải thích sao. Chạy chương trình so sánh kết thật với kết dự đoán. #include #define PR(x) printf("x = %.8g\t", (double)x) #define PRINT4(x1,x2,x3,x4) PR(x1); PR(x2); PR(x3); PR(x4) int main (void) { double d; float f; long l; int i; Trang BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 i = l = f = d = 100/3; PRINT4(i, l, f, d); i = l = f = d = 100/3. ; PRINT4(i, l, f, d); return 0; } x = 33 x = 33 x = 33 x = 33 x = 33 x = 33 x = 33 x = 33.333332 x = 33.333333 Bài tập 7: Viết chương trình tính giá trị biểu thức sau giải thích kết quả. 3x3 - 5x2 + Với x = 2.55. #include int main (void) { float x = 2.55; float y = 3*x*x*x - 5*x*x + 6; printf ("%f", y); return 0; } 23.231623 CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ TRUNG BÌNH 1. Viết chương trình in lên sau: ************************* * THAO CHUONG BANG * * NGON NGU C * ************************* 2. Viết chương trình nhập vào năm sinh, in tuổi. Ví dụ nhập 1988 in ra: Ban sinh nam 1988 vay ban 19 tuoi. 3. Viết chương trình thực yêu cầu sau (không dùng hàm chuyển đổi): a. Nhập vào kí tự in mã ASCII tương ứng với kí tự đó. b. Nhập vào số nguyên (1 Æ 255) in kí tự có mã ASCII tương ứng. 4. Nhập vào bán kính hình tròn, tính in chu vi, diện tích hình tròn đó. 5. Viết chương trình nhập vào số nguyên. Xuất min, max. Ví dụ: Nhập vào Xuất ra: =5, max = 6. Tìm hiểu ý nghĩa thông báo lỗi thường gặp. 7. Tìm hiểu thư viện trợ giúp MSDN. Trang BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ CAO 1. Nhập vào bán kính đáy R chiều cao h hình trụ tròn, tính diện tích đáy, diện tích xung quanh thể tích hình trụ tròn theo công thức (các số liệu số thực, giá trị PI C định nghĩa sẵn số M_PI): a. S đáy = πR b. S xungquanh = 2πRh c. V = S đáy h 2. Nhập vào số thực x, tính in giá trị y1, y2, lầy số lẻ: a. y1 = 4( x + 10 x x + 3x + 1) b. y2 = sin(πx ) + x + ⎛π ⎞ e x + cos⎜ x ⎟ ⎝4 ⎠ 3. Nhập số tiền nguyên N đồng, đổi xem tờ 10 đồng, đồng, đồng đồng. Ví dụ: N = 543đ = 54 tờ 10đ + tờ 5đ + tờ 2đ + tờ 1đ 4. Nhập vào số nguyên có chữ số, tính tổng chữ số đó. Ví dụ: Số 543 có tổng chữ số là: + + = 12 5. Viết chương trình nhập giờ, phút, giây thực kiểm tra tính hợp lệ liệu nhập vào. 6. Viết chương trình nhập (giờ, phút, giây) thực tính '+' '-' này. Trang BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 Tuần 4. CÁC CẤU TRÚC LẬP TRÌNH - CẤU TRÚC CHỌN CÁC BÀI TẬP CƠ BẢN Bài tập Viết chương trình nhập vào số x, x = 100 xuất thông báo “Gia tri cua x la 100”, ngược lại, xuất thông báo “Gia tri x khac 100”. #include "stdafx.h" #include int main(int argc, char* argv[]) { int x; cout > x; if(x == 100) cout b; if(a == 0) { if(b == 0) cout = 8.0 • khá: 8.0 > đtb >= 6.5 • trung bình: 6.5 > đtb >= 5.0 • yếu: 5.0 > đtb >= 3.0 • kém: 3.5 > đtb CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ CAO 1. Viết chương trình nhập vào ngày, tháng, năm. Hãy cho biết ngày ngày trước ngày đó. (có code tham khảo bên dưới) #include #include void main() { //khai bao bien int ngay, thang, nam; int ngaytruoc, ngayke; int nhuan; //nhap du lieu printf("Nhap vao mot ngay: "); scanf("%d",&ngay); printf("Nhap vao mot thang: "); scanf("%d",&thang); printf("Nhap vao mot nam: "); scanf("%d",&nam); //kiem tra nam nhuan nhuan = 0; if ((nam%400 == 0) || (nam%4 == && nam%100 != 0)) nhuan = 1; Trang BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 ngaytruoc = ngay-1; ngayke = ngay+1; switch (thang) { case 1: case 5: case 7: case 10: case 12: case 4: case 6: case 9: case 11: if (ngay == 30) { ngaytruoc = 29; ngayke = 1; } else { ngaytruoc = ngay-1; ngayke = ngay+1; } break; case 2: if (nhuan == 1) { if (ngay == 29) { ngaytruoc = 28; ngayke = 1; } else if (ngay == 1) { ngaytruoc = 31; ngayke = 2; } } else if (ngay == 28) { ngaytruoc = 27; ngayke = 1; } else if (ngay == 1) { ngaytruoc = 31; ngayke = 2; } break; case 3: if (ngay == 31) { ngaytruoc = 30; ngayke = 1; } else if (ngay == 1) { if (nhuan == 1) { ngaytruoc = 29; Trang BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 ngayke = 2; } else { ngaytruoc = 28; ngayke = 2; } } break; case 8: if (ngay == 31) { ngaytruoc = 30; ngayke = 1; } else if (ngay == 1) { ngaytruoc = 31; ngayke = 2; } break; } printf("Ngay truoc cua %d cua thang %d cua nam %d la: %d",ngay, thang, nam, ngaytruoc); printf("\n"); printf("Ngay ke tiep cua %d cua thang %d cua nam %d la: %d",ngay, thang, nam, ngayke); getch(); } Trang 10 BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 Tuần 12. 13. KIỂU KÝ TỰ VÀ KIỂU CHUỖI CÁC BÀI TẬP CƠ BẢN 1. Nhập chuỗi S từ bàn phím. Kiểm tra xem chuỗi có phải chuỗi đối xứng. Ví dụ: Nhập: S = “aBCdCBa” Xuất: Đối xứng Nhập: S = “aBCdBCa” Xuất: Không dối xứng Ý tưởng: Giả sử chuỗi chuỗi đối xứng. Nếu phát vị trí mà đối xứng với (cùng vị trí tính từ cuối chuỗi) chuỗi không đối xứng nữa. Chương trình: #include #include #include // Nên định nghĩa MAX để thay đổi kích thước mảng nhanh chóng #define MAX 100 // Nên đặt prototype để biết hàm nhận vào trả // Đầu vào: Chuỗi cần kiểm tra // Đầu ra: chuỗi đối xứng, chuỗi không đối xứng int LaChuoiDoiXung(char []); void main() { char str[MAX]; printf("Nhap chuoi: "); // Nên sử dụng gets thay scanf để nhập chuỗi có khoảng trắng gets(str); int kq = LaChuoiDoiXung(str); if (kq==1) printf("Chuoi \"%s\" la chuoi doi xung.", str); // Sử dụng \” để xuất “ else printf("Chuoi \"%s\" khong phai la chuoi doi xung.", str); getch(); } int LaChuoiDoiXung(char str[MAX]) { int Flag = 1; // giả sử chuỗi đối xứng int l = strlen(str); // strlen để lấy độ dài chuỗi. Nên tính lần để sử dụng lại for (int i=0; i[...]... phần tử và số M Tìm tập hợp các phần tử trong A sao cho tổng của chúng bằng M Trang 20 BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 Tuần 8 CHƯƠNG TRÌNH CON (tt) CÁC BÀI TẬP THÊM VỀ CHƯƠNG TRÌNH CON 1 Viết hàm đổi một số hệ 10 sang hệ 16 và ngược lại 2 Viết hàm làm tròn một số thực với 2 tham số đầu vào : số cần phải làm tròn và số chữ số phần thập phân có nghĩa sau khi làm tròn 3 Viết chương trình đảo vị trí... 2 mảng a và b có m và n phần tử Các phần tử trong mỗi mảng là khác nhau Tìm số lượng phần tử chung Mở rộng: giả sử có phần tử trùng (while) Trang 31 BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 Tuần 11 MẢNG 2 CHIỀU CÁC BÀI TẬP CƠ BẢN Bài 1: Viết chương trình nhập, xuất một mảng số nguyên hai chiều có m dòng và n cột Xác định phần tử lớn nhất và nhỏ nhất trong mảng #include “stdafx.h” #include “stdio.h” #define... nguyên dương n 14 Đếm số lượng chữ số lẻ/ chẵn của số nguyên dương n 15 Tính dãy Fibonacci: F0 = 0, F1 = 1, Fn = Fn-1 + Fn-2 CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ CAO Làm lại các bài khó của chương trước với vòng lặp for Trang 18 BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 Tuần 7 CHƯƠNG TRÌNH CON 1 Viết hàm để xác định số nhỏ hơn trong 2 số, sau đó sử dụng hàm này để xác định số nhỏ hơn trong 3 số 2 Viết hàm tính ước...BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1 Tuần 5 VÒNG LẶP WHILE CÁC BÀI TẬP CƠ BẢN Bài 1: Hãy tính tổng s = 1 + 2 + 3 + n Cách 1: #include void main() { int n; long s = 0; printf("nhap vao n "); scanf("%d", &n); while (i . / /nhap du lieu printf(" ;Nhap vao mot ngay: "); scanf("%d",&ngay); printf(" ;Nhap vao mot thang: "); scanf("%d",&thang); printf(" ;Nhap. int ngay, thang, nam; int nhuan; / /nhap du lieu printf(" ;Nhap vao mot thang: "); scanf("%d",&thang); printf(" ;Nhap vao mot nam: "); scanf("%d",&nam);. cout << " ;Nhap a = "; cin >> a; cout << " ;Nhap b = "; cin >> b; if(a == 0) { if(b == 0) cout << "
Phuong trinh co vo so nghiem.