Thực hành ngôn ngữ lập trình C

Chia sẻ: Phan Thi Ngoc Giau | Ngày: | Loại File: PDF | Số trang:6

0
67
lượt xem
23
download

Thực hành ngôn ngữ lập trình C

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ
Lưu

Nội dung Text: Thực hành ngôn ngữ lập trình C

  1. Th c hành ngôn ng l p trình C (Bài t p l p trình và ñáp án) I. Hư ng d n s d ng Turbo C v2.01 Turbo C là môi trư ng so n th o và biên d ch chương trình cho ngôn ng C trên h ñi u hành DOS. T p chương trình thư ng có tên là tc.exe. Ngoài ra nó cũng c n m t s t p khác kèm theo ph c v cho m t s m c ñích nh t ñ nh. Ví d như các t p tiêu ñ .h, và các t p thư vi n .lib ho c .obj. Thao tác so n th o, biên d ch và debug l i chương trình trên Turbo C hoàn toàn gi ng như khi b n làm vi c trên môi trư ng c a Turbo Pascal. Tuy nhiên c n chú ý m t s ñi m sau ñây. 1. Xác l p thư m c Khi biên d ch chương trình, trình biên d ch c n bi t thông tin nơi tìm ki m các t p header và thư vi n (.h, .lib, .obj) và thông tin này ñư c ñ t trong l a ch n Option/Directories. N u như các b n ñ t l a ch n này sai thì khi d ch chương trình thư ng xu t hi n l i d ng như: Unable to open include file "stdio.h". Như v y b n ph i ñ t ñúng ñư ng d n thư m c thì trình biên d ch m i tìm th y t p c n thi t. Có hai ñư ng d n: • ðư ng d n tìm các t p tiêu ñ (.h) cho ph n INCLUDE. Ví d C:\TC\INCLUDE n u như các t p tiêu ñ n m trong thư m c này • ðư ng d n tìm các t p thư vi n (.obj) cho ph n LIB. Ví d C:\TC\LIB n u như các t p thư vi n n m trong thư m c này. 2. So n th o và biên d ch chương trình Sau khi so n th o xong chương trình có th c t ra ñĩa b ng menu l nh File\Save ho c nh n F2. Tên t p c a b n có ñuôi “.c”. Chúng ta có th biên d ch chương trình b ng cách nh n F9 ho c ch y chương trình b ng Ctrl-F9. N u như chương trình có l i thì trên màn hình s xu t hi n c a s li t kê các l i c a chương trình. Khác v i Turbo Pascal, t t c các l i có trong chương trình C ñư c hi n cùng m t lúc trên m t c a s do v y b n có th di chuy n thanh sáng trên c a s l i ñ bi t v trí l i tương ng trên chương trình và s a nó. 3. G r i chương trình công c g r i b ng các ch c năng Hãy th • Ch y l n bư c : F8 • Ch y ñ n v tr con tr : Ctrl-F4 • Xem k t qu ch y chương trình : Alt-F5. • D ng ch y l n bư c chương trình : Ctrl-F2 II. Bài t p th c hành Bài 1: Vi t chương trình tìm s l n nh t c a ba s a, b, c ñư c nh p vào t bàn phím. Bài 2: Vi t m t chương trình cho phép t o m t menu ñơn gi n sau 1. Chào
  2. C m ơn 2. 3. T m bi t Nh p l a ch n (1-2-3): Tuỳ vào l a ch n c a ngư i s d ng mà chương trình in ra dòng ch tương ng. N u l a ch n là 1-2 chương trình ti p t c th c hi n ñ ngư i s d ng nh p l a ch n m i. L a ch n 3 cho phép k t thúc chương trình. Bài 3: Vi t chương trình tìm các s có 3 ch s xyz sao cho xyz = x3 + y3 + z3. Bài 4: Vi t chương trình cho phép nh p m t chu i kí t b t kì và sau ñó in ra xâu ngư c c a chu i kí t ñó. Bài 5: Vi t chương trình qu n lí ñi m h c sinh b ng danh sách móc n i. M i nút trong danh sách là m t c u trúc bao g m thông tin v tên và ñi m c a h c sinh. Xây d ng m t menu cho chương trình cho ñ cho phép ngư i s d ng th c hi n các thao tác như thêm, s a, xoá và tìm ki m trong danh sách h c sinh. III. ðáp án Bài 1: #include <stdio.h> #include <conio.h> void main(void) { int a, b, c, max; do { /* nh p 3 s a, b, c */ printf("Nhap so thu nhat : "); scanf("%d", &a); printf("Nhap so thu hai : "); scanf("%d", &b); printf("Nhap so thu ba : "); scanf("%d", &b); /* tim so lon nhat */ max = a > b ? a : b; if (max < c) max = c; /* in ket qua */ printf("So lon nhat la: %d\n", max); printf("An ESC de ket thuc, phim khac de tiep tuc..."); }while (getche()!=27); } Bài 2: #include <stdio.h> #include <conio.h>
  3. void main(void) { int lc; do { /* in menu */ printf("Chao\n"); printf("Cam on\n"); printf("Tam biet\n"); /* nh p l a ch n */ printf("\nNhap lua chon (1-2-3):"); scanf("%d", &lc); /* ki m tra l a ch n và th c hi n */ switch(lc) { case 1 : printf("Chao ban\n"); break; case 2 : printf("Cam on ban\n"); break; case 3 : printf("Tam biet! Chuong trinh ket thuc o day\n"); break; default : printf("Ban da nhap sai gia tri\n"); } if (lc!=3) { printf("An phim bat ki de tiep tuc"); getche(); } }while (lc!=3); } Bài 3: #include <stdio.h> #include <conio.h> void main(void) { int chuso, tong, dem, i; dem = 0; for (i=100; i<=999; i++) { tong = 0; /* l y s th nh t */ chuso = i/100; tong += chuso*chuso*chuso; /* l y s th hai */ chuso = (i/10)%10; tong += chuso*chuso*chuso; /* l y s th ba */ chuso = i%10; tong += chuso*chuso*chuso; if (i==tong) printf("\nSo thu %d la: %d", ++dem, i); } getch(); } Bài 4: #include <stdio.h> #include <string.h>
  4. void main() { char s[80], ch; int i, n; printf("Nhap xau: "); gets(s); i = 0; n = strlen(s); /* duy t các kí t m t n a ñ u c a xâu */ for (i=0; i<n/2; i++) { /* ñ i ch c a hai kí t ñ i x ng t i hai ñ u */ ch = s[i]; s[i]=s[n-1-i]; s[n-1-i]=ch; } printf("Xau nguoc la: %s", s); } Bài 5: #include <stdio.h> #include <alloc.h> #include <stdlib.h> struct nut_hs { char ten[25]; int diem; struct nut_hs* tiep; }; /* khai báo bi n t ng th là con tr ñ n nút ñ u danh sách */ struct nut_hs *nutdauds = NULL; /* ban ñ u danh sách r ng */ /* thêm m t nút h c sinh m i vào danh sách */ void them_nuths(char* ten, int diem); /* xoá m t nút h c sinh có tên là ten */ void xoa_nuths(char *ten); /* in danh sách h c sinh */ void in_ds(); /* tra ñi m c a h c sinh theo tên */ void timkiem(char *ten); /* t o menu l a ch n công vi c */ void tao_menu(); void main() { tao_menu(); } void tao_menu() { char ten[25]; int diem; int chon; do { printf("1. Nhap hoc sinh\n"); printf("2. Xoa hoc sinh\n"); printf("3. In danh sach hoc sinh\n"); printf("4. Tim kiem\n"); printf("0. Thoat\n"); printf("Lua chon: "); scanf("%d", &chon); switch(chon) {
  5. case 1: fflush(stdin); printf("Ten: "); gets(ten); if (strcmp(ten, "")!=0) { printf("Diem: "); scanf("%d", &diem); them_nuths(ten, diem); } break; case 2: fflush(stdin); printf("Ten hoc sinh can xoa: "); gets(ten); xoa_nuths(ten); break; case 3: in_ds(); break; case 4: fflush(stdin); printf("Ten hoc sinh: "); gets(ten); timkiem(ten); break; case 0: printf("Tam biet"); break; default: printf("Nhap lai gia tri khac\n"); } }while(chon!=0); } void them_nuths(char* ten, int diem) { struct nut_hs * hs; /* t o nút m i và copy d li u */ hs = (struct nut_hs*)malloc(sizeof(struct nut_hs)); strcpy(hs->ten, ten); hs->diem = diem; /* n i nút vào ñ u danh sách, danh sách ko s p x p */ hs->tiep = nutdauds; nutdauds = hs; } void xoa_nuths(char *ten) { struct nut_hs * hs, *p; /* tìm nút c n xoá */ hs = nutdauds; p = NULL; /* p tr t i nút trư c nút c n xoá */ while(hs!=NULL&&strcmp(hs->ten, ten)!=0) { p = hs; /* xác l p l i cho p tr t i trư c hs */ hs = hs->tiep; } if (hs !=NULL) /* n u tìm th y nút c n xoá */ { /* ki m tra có nút ñ ng trư c nút c n xoá không */ if (p !=NULL) p->tiep = hs->tiep; else /* nút ñ u danh sách s là nút sau nút c n xoá */ nutdauds = hs->tiep; free(hs); } }
  6. void in_ds() { struct nut_hs * hs; printf("Danh sach ten va diem hoc sinh:\n"); /* duy t danh sách b ng vòng for */ for(hs=nutdauds; hs!=NULL; hs=hs->tiep) printf("%s: %d\n", hs->ten, hs->diem); } void timkiem(char *ten) { struct nut_hs *hs; hs = nutdauds; while(hs!=NULL&&strcmp(hs->ten, ten)!=0) { hs = hs->tiep; } if (hs!=NULL) printf("Diem cua hoc sinh la %d\n", hs->diem); else printf("Khong tim thay hoc sinh co ten dua vao\n"); }
Đồng bộ tài khoản