Bài tập lập trình C có lời giải

CHƯƠNG 1
CÁC THAO TÁC VÀO RA CƠ BẢN VÀ
CÁC CÂU LỆNH CÓ CẤU TRÚC
1.1. CÂU HỎI
1. Cho biết số các bước lặp nhỏ nhất của câu lệnh while và lệnh do…while?
2. Giả sử s là một câu lệnh có cấu trúc và e1, e2, e3 là các biểu thức, có sự khác nhau
gì giữa đoạn mã:
for (e1;e2;e3)
s;
và đoạn mã:
e1;
while (e2) {
e;
e3;
}
2. Cho biết giá trị của x sau khi thực hiện câu lệnh sau:
for (x = 0; x < 100, x++) ;3. Cho biết giá trị của x sau khi thực hiện câu lệnh sau:for (ctr = 2; ctr < 10; ctr += 3) ;5. Có bao nhiêu ký tự X được in ra sau khi thực hiện đoạn mã:for (x = 0; x < 10; x++)for (y = 5; y > 0; y–)
puts(“X”);
6. Cho biết điểm sai trong đoạn mã sau:
record = 0;
while (record < 100){printf( "\nRecord %d ", record );printf( "\nGetting next number..." );}7. Cho biết điểm sai trong đoạn mã sau:for (counter = 1; counter < 10; counter++);printf("\nCounter = %d", counter );8. Sự khác nhau giữa lệnh break và lệnh continue là gì?9. Vòng lặp vô hạn là gì? làm thế nào để tạo nó?10. Hai sự kiện gì làm kết thúc việc chạy chương trình?111. Hàm exit() dùng để làm gì?12. Câu lệnh làm cho điều khiển chương trình chuyển đến bước lặp kế tiếp trong mộtlệnh lặp.13. Câu lệnh chuyển điều khiển chương trình đến cuối vòng lặp.14. Có điểm gì sai trong đoạn mã sau?switch( answer ){case 'Y': printf("You answered yes");break;case 'N': printf( "You answered no");}15. Có điểm gì sai trong đoạn mã sau?switch( choice ){default:printf("You did not choose 1 or 2");case 1:printf("You answered 1");break;case 2:printf( "You answered 2");break;}16. Viết lại câu trên bằng cách dùng lệnh if.17. Viết một vòng lặp vô hạn do...while.TRẢ LỜI:1. Số vòng lặp nhỏ nhất của lệnh while có thể thực hiện là 0 và số vòng lặp nhỏ nhấtcủa lệnh do...while có thể thực hiện là 1.2. Không có sự khác nhau giữa hai đoạn mã trừ khi s chứa câu lệnh continue. Ví dụcâu lệnh for sau đây sẽ lặp 4 lần và kết thúc nhưng câu lệnh while sẽ lặp vô hạn:for (i = 0; i<4; i++)if (i = =2) continue;i = 0;while (i<4){ if (i = = 2) continue;i++; }3. x = 100.4. ctr = 11.5. 50 ký tự X.26. Chương trình không bao giờ dừng7. Dấu ; không thể đặt cuối lệnh for8. Khi gặp lệnh break, việc xử lý sẽ lập tức thoát khỏi lệnh for, do...while hoặc whilechức lệnh break. Khi gặp lệnh continue thì bước lặp kế tiếp của vòng lặp sẽ thực hiệnngay.9. Vòng lặp vô hạn thực thi vĩnh viễn. Có thể tạo ra vòng lặp vô hạn bởi các câu lệnhfor, do...while, hoặc while với điều kiện kiểm tra luôn đúng10. Viêc thực thi chương trình sẽ kết thúc khi đạt đến cuối hàm main() hoặc khi hàmexit() được gọi.11. Hàm exit() làm kết thúc chương trình. Một giá trị phải được truyền cho hàm exit().Giá trị này được trả về cho hệ điều hành.12. continue;13. break;14. Không có gì sai.15. Thiếu câu lệnh break sau trường hợp default.16.if( choice == 1 )printf("You answered 1");else if( choice == 2 )printf( "You answered 2");elseprintf( "You did not choose 1 or 2");17.do{/* các câu l•nh */} while ( 1 );1.2. BÀI TẬPBài 1. Viết chương trình nhập dữ liệu cho các biến kiểu int, long int, float, chuỗi, sauđó hiển thị ra màn hình.#include #include void main(){int a;long int b;float x;3char st[10];printf("\nVao du lieu tu ban phim ");printf("\n a = "); scanf("%d",&a);printf("\n b = "); scanf("%ld",&b);printf("\n x = "); scanf("%f",&x);printf("\n Nhap vao mot chuoi :");scanf("%s",st);printf("\n a :%10d\n b :%10ld\n x :%10.2f",a,b,x);printf("\n Chuoi da nhap :%s",st);getch();}Bài 2. Viết chương trình minh họa việc khai báo và khởi gán các biến.#include#includevoid main(){int a = 20 ; /* Khai bao va khoi dau cac bien */int b = 15;float x = 25.678;clrscr();printf("\n1:%d %f\n",a,x);printf("2:%4d %10f\n",b,x);printf("3:%2d %3f\n",a,x);printf("4:%10.3f %10d\n",x,b);printf("5:%-5d %f\n",a,x);printf("6:%*d\n",b,b);printf("7:%*.*f\n",12,5,x);printf("8:%x:%8x:\n",a,a);printf("9:%o:%8o:\n",a,a);getch();}Bài 3. Cho biết kết quả của chương trình sau đây:#include#includevoid main(){int m = 3,p = 5;int a1,a2,a3,a4,a5;4float x1,x2,x3,x4;clrscr();printf("\n Tim gia tri gan cho cac bien ");a1 = m

m;
a4 = m*(p>m ? m:p);
a5 = m*(p
#include
void main()
{
int a = 10, b = 5,c = 10, d;
clrscr();
printf(“\n Minh hoa phep toan tang giam \n”);
d=a== (b=c);
printf(” A :a =%d b =%d c =%d d =%d\n”,a,b,c,d);
a=b=c=5;
a+=b+=c;
printf(” B :a =%d b =%d c =%d \n”,a,b,c);
5

CHƯƠNG 1 CÁC THAO TÁC VÀO RA CƠ BẢN VÀ CÁC CÂU LỆNH CÓ CẤU TRÚC 1.1. CÂU HỎI 1. Cho biết số các bước lặp nhỏ nhất của câu lệnh while và lệnh do…while? 2. Giả sử s là một câu lệnh có cấu trúc và e1, e2, e3 là các biểu thức, có sự khác nhau gì giữa đoạn mã: for (e1;e2;e3) s; và đoạn mã: e1; while (e2) { e; e3; } 2. Cho biết giá trị của x sau khi thực hiện câu lệnh sau: for (x = 0; x < 100, x++) ; 3. Cho biết giá trị của x sau khi thực hiện câu lệnh sau: for (ctr = 2; ctr < 10; ctr += 3) ; 5. Có bao nhiêu ký tự X được in ra sau khi thực hiện đoạn mã: for (x = 0; x < 10; x++) for (y = 5; y > 0; y–) puts(“X”); 6. Cho biết điểm sai trong đoạn mã sau: record = 0; while (record < 100) { printf( "\nRecord %d ", record ); printf( "\nGetting next number..." ); } 7. Cho biết điểm sai trong đoạn mã sau: for (counter = 1; counter < 10; counter++); printf("\nCounter = %d", counter ); 8. Sự khác nhau giữa lệnh break và lệnh continue là gì? 9. Vòng lặp vô hạn là gì? làm thế nào để tạo nó? 10. Hai sự kiện gì làm kết thúc việc chạy chương trình? 1 11. Hàm exit() dùng để làm gì? 12. Câu lệnh làm cho điều khiển chương trình chuyển đến bước lặp kế tiếp trong một lệnh lặp. 13. Câu lệnh chuyển điều khiển chương trình đến cuối vòng lặp. 14. Có điểm gì sai trong đoạn mã sau? switch( answer ) { case 'Y': printf("You answered yes"); break; case 'N': printf( "You answered no"); } 15. Có điểm gì sai trong đoạn mã sau? switch( choice ) { default: printf("You did not choose 1 or 2"); case 1: printf("You answered 1"); break; case 2: printf( "You answered 2"); break; } 16. Viết lại câu trên bằng cách dùng lệnh if. 17. Viết một vòng lặp vô hạn do...while. TRẢ LỜI: 1. Số vòng lặp nhỏ nhất của lệnh while có thể thực hiện là 0 và số vòng lặp nhỏ nhất của lệnh do...while có thể thực hiện là 1. 2. Không có sự khác nhau giữa hai đoạn mã trừ khi s chứa câu lệnh continue. Ví dụ câu lệnh for sau đây sẽ lặp 4 lần và kết thúc nhưng câu lệnh while sẽ lặp vô hạn: for (i = 0; i<4; i++) if (i = =2) continue; i = 0; while (i<4) { if (i = = 2) continue; i++; } 3. x = 100. 4. ctr = 11. 5. 50 ký tự X. 2 6. Chương trình không bao giờ dừng 7. Dấu ; không thể đặt cuối lệnh for 8. Khi gặp lệnh break, việc xử lý sẽ lập tức thoát khỏi lệnh for, do...while hoặc while chức lệnh break. Khi gặp lệnh continue thì bước lặp kế tiếp của vòng lặp sẽ thực hiện ngay. 9. Vòng lặp vô hạn thực thi vĩnh viễn. Có thể tạo ra vòng lặp vô hạn bởi các câu lệnh for, do...while, hoặc while với điều kiện kiểm tra luôn đúng 10. Viêc thực thi chương trình sẽ kết thúc khi đạt đến cuối hàm main() hoặc khi hàm exit() được gọi. 11. Hàm exit() làm kết thúc chương trình. Một giá trị phải được truyền cho hàm exit(). Giá trị này được trả về cho hệ điều hành. 12. continue; 13. break; 14. Không có gì sai. 15. Thiếu câu lệnh break sau trường hợp default. 16. if( choice == 1 ) printf("You answered 1"); else if( choice == 2 ) printf( "You answered 2"); else printf( "You did not choose 1 or 2"); 17. do { /* các câu l•nh */ } while ( 1 ); 1.2. BÀI TẬP Bài 1. Viết chương trình nhập dữ liệu cho các biến kiểu int, long int, float, chuỗi, sau đó hiển thị ra màn hình. #include

Source: https://mix166.vn
Category: Hỏi Đáp

Xổ số miền Bắc