Bài tập lập trình C có đáp án

10 1.3K 25
Bài tập lập trình C có đáp án

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

Thông tin tài liệu

KHÁI NIỆM BẢN C Tạo 1 project FileNewProjectVisual C++CLR Console Applicationnhập tênOK Viết chương trình nhỏ: /* Nhập vào 2 số nguyên. Tính và in ra tổng của chúng */ #include<stdafx.h> // nếu báo lỗi chỗ này thì bỏ dòng này #include <stdio.h> // stdio.h, conio.h: tên thư viện #include <conio.h> void main() // void : Kiểu hàm trả về { int a, b, sum; // khai báo biến địa phương printf("Nhap a="); // hàm xuất ra màn hình scanf("%d", &a); // hàm nhập theo dịa chỉ biến a printf("Nhap b="); // %d: chỉ thị đặc tả // cho biến kiểu int scanf("%d", &b); sum=a+b; // phép gán = printf("Tong: %d + %d = %d", a, b, sum); getch( ); // hàm nhận ký tự trực tiếp từ bộ đệm } // kết thúc hàm chính - Bấm F6 để compile - Bấm Ctrl+F5 để chạy chương trình  Kiểu ký tự: char, unsigned char  Kiểu số nguyên: int, unsigned, long, unsigned long, long  Kiểu dấu chấm động: float, double, long double  Kiểu void  HẰNG  Cách định nghĩa hằng trong chương trình: Cách 1: #define <tên hằng> <giá trị> Cách 2: const <kiểu> <tên hằng> = <giá trị>;  Ví dụ: #define PI 3.1415 const float PI = 3.1415; #include<stdafx.h> #include <stdio.h> #include <conio.h> #define PI 3.1415; void main() { const float pi = 3.1415; printf("%f",pi); printf("\n"); // xuống dòng float a=PI; printf("%f",a); }  CÁC PHÉP TOÁN SỐ HỌC  Phép chia của hai số nguyên cho ra kết quả là số nguyên. VD: float f = 5/2; // cho kết quả f = 2  Phép toán phẩy (,): thứ tự thực hiện ở vế phải là từ trái sang phải. VD: int m, t, h; m=(t=2,h=t*t+3); /* sẽ cho t=2, h=7 và m=7 */ int a, b=2; b=(a=3,(5*b)+(a*=b)); /* b=16 a=6 */  CÁC PHÉP THAO TÁC TRÊN BIT  Gồm AND(&), OR(|), XOR(^), Dịch trái(<<), Dịch phải (>>), lấy phần bù (∼)  Các phép toán này cho phép xử lý từng bit của một số nguyên (không dùng cho kiểu float và double). Ví dụ: unsigned char a = 135; // a2 = 10000111 unsigned char b = 50; // b2 = 00110010 unsigned char c; c = a&b; // c10 = 2; c2 = 00000010 c = a|b; // c10 = 183, c2 = 10110111 c = a^b; // c10 = 181, c2 = 10110101 c = a>>3; // c10 = 16, c2 = 00010000 c = a<<4; // c10 = 112, c2 = 01110000 c = a>>n; // ⇔ c = a / 2n, c = a<<n; // ⇔ c = a * 2n // n : số bit dịch chuyển  PHÉP TOÁN BÙ BIT ~ ∼1=0 ∼0=1 Ví dụ: char a = 52; // a2=00110100 char b = ~a; // b2=01001011, b10 = 75  CÁC PHÉP TOÁN QUAN HỆ  Bao gồm các phép toán so sánh: ==, !=, >, >=, <, <=  So sánh giá trị của các toán hạng cho ra kết quả 0 (sai) hoặc 1 (đúng). Ví dụ: int a = 3, b = 5, f; f = a>b; // f = 0 f = a * 2 > b; // f = 1  CÁC PHÉP TOÁN LOGIC  Bao gồm các toán tử: NOT (!), AND (&&) và OR (||)  Dùng kết hợp các biểu thức thành một biểu thức logic.  Kết quả của các phép toán này giá trị: 0 (sai) hoặc 1 (đúng).  Ví dụ: x y x&&y x||y !x !!x 0 0 0 0 1 0 0 7 0 1 1 0 5 0 0 1 0 1 5 7 1 1 0 1 8 7 1 1 0 1  Chú ý : !!x thể giá trị khác x  CHUYỂN ĐỔI KIỂU DỮ LIỆU  Chuyển đổi kiểu dữ liệu tự động: Khi hai toán hạng trong một phép toán khác kiểu dữ liệu thì kiểu dữ liệu thấp được nâng thành kiểu dữ liệu cao trước khi tính toán. Ví dụ: float f, x = 5; int y = 2; f = x/y;// f = 2.5  Vì x kiểu float nên y sẽ tạm thời được chuyển sang kiểu float để thực hiện phép chia x/y  Chuyển đổi kiểu “bắt buộc”: chuyển đổi kiểu bất kỳ sang kiểu mong muốn, gọi là ép kiểu. Cú pháp khai báo: (<KiểuDL>) <biểu thức> Ví dụ: float f1, f2; int x = 5, y = 2 ; f1 = x/y; // f1= 2 f2 = (float)x/y; // f2 = 2.5  f1 = 2 vì x và y cùng kiểu int, nên x/y → kết quả kiểu int  CÁC PHÉP TĂNG GIẢM MỘT ĐƠN VỊ: ++, -- Ví dụ: int n = 5, x; // tăng n lên 1 rồi gán cho x x = ++n; // n = n+1 = 6; x = n = 6 // gán n cho x rồi mới tang n lên 1 x = n++; // x = n = 5; n = n+1 = 6  Phép toán ++, -- chỉ thao tác trên các biến giá trị nguyên.  CÂU LỆNH GÁN =  Dạng 1: Biến = <biểu thức>;  Dạng 2: Biến <toán tử> = <biểu thức>; Với <toán tử> là một trong các phép toán: +, -, *, /, %, &, |, ^, <<, >> Ví dụ: int c, a=3, b=4; int so = 10; c = a+b; // dạng 1, c=3+4=7 so += 5; // dạng 2: so=so+5=15 a = b = c = 0; a = a + n ⌠ a + = n; a = a – n ⌠ a - = n; a = a * n ⌠ a * = n; a = a / n ⌠ a / = n; a = a % n ⌠ a % = n; a = a + 1 ⌠ a + = 1; a ++; ++a; a = a – 1 ⌠ a - = 1; a --; --a;  TOÁN TỬ ĐIỀU KIỆN (?)  Cú pháp khai báo <điều kiện>?<biểu thức 1>:<biểu thức 2>;  Kết quả của biểu thức  nhận <biểu thức 1> nếu điều kiện giá trị khác 0 (điều kiện đúng),  ngược lại, nhận <biểu thức 2>.  Ví dụ: int a = 7, b = 10; int min, max; min = (a<b)? a : b; // min = a = 7 max = (a>b)? a : b; // max = b = 10  CÁC HÀM NHẬP XUẤT TRONG stdio.h  scanf(…), printf(…): Nhập, xuất giá trị cho biến theo kiểu đã được định dạng.  gets(char*), puts(char*): nhập, xuất biến kiểu chuỗi ký tự ra màn hình.  getchar(), putchar() : nhập, xuất ký tự ra màn hình . Ví dụ:  float f; scanf(“%f”,&f) printf(“Gia tri cua f = %0.2f”, f);  char str[10]; // biến chuỗi ký tự gets(str); // hoặc scanf(“%s”,str); puts(str); // hoặc printf(“%s”,str);  char ch; ch = getchar(); Mã ĐT Kiểu DL Tác dụng %c %d %ld %o %x %u %lu %f %lf %lf %s char int long int int int unsigned int unsigned long float double long double mảng ký tự Đặc tả ký tự Đặc tả số nguyên Đặc tả số nguyên dài Đặc tả số nguyên ở hệ bát phân Đặc tả số nguyên ở hệ thập lục phân Đặc tả số nguyên không dấu Đặc tả số nguyên dài không dấu Đặc tả số thực Đặc tả số thực Đặc tả số thực Đặc tả chuỗi ký tự Mã Ý nghĩa '\n' Xuống hàng '\t' Tab '\0' “NULL”– ứng với giá trị nguyên 0 trong bảng mã ASCII (khác với số 0) '\b' Backspace '\r' CR(về đầu dòng) '\f' LF(sang trang) '\\' \ '\”' ” '\'' ' #include<stdafx.h> #include <stdio.h> #include <conio.h> void main() { char ch; do{ ch=getch(); if (ch==0) // Nhấn phím đặc biệt { ch=getch(); // Nhận mã lần thứ 2 if (ch == 59) break; // Nếu ch == F1: thoát // khỏi vòng do while } } while (1); } CÁC CÂU LỆNH TRÊN C  KHÁI NIỆM VỀ CÂU LỆNH Mỗi câu lệnh thực hiện một chức năng nào đó (như lệnh gán, lệnh xuất dữ liệu ra màn hình), câu lệnh thể được viết trên một hoặc nhiều dòng và được kết thúc bằng dấu chấm phẩy (;). Ví dụ: cv=2*r*M_PI; printf("\nChu vi = %10.2f \ \nDien tich = %10.2f",cv,dt);  CÚ PHÁP KHAI BÁO LỆNH IF  Dạng 1: if (biểu thức ĐK) <khối lệnh>;  Dạng 2: if (biểu thức ĐK) <khối lệnh 1>; else <khối lệnh 2>;  VÍ DỤ MINH HỌA Cho 3 số nguyên a, b và c, xuất giá trị 3 số đó ra màn hình theo thứ tự tăng dần. max = a; min = b; if (a<b) { max = b; min = a; } if (c>max) max = c; else if (c<min) min = c; mid = (a+b+c) - (max + min); printf(“%d %d %d”, min, mid, max);  CÚ PHÁP KHAI BÁO LỆNH SWITCH switch (Biểu thức) { case n1: <các câu lệnh>; <break>; case n2: <các câu lệnh>; <break>; case nk: <các câu lệnh>; <break>; [default: <các câu lệnh>; <break>;] }  ni: các hằng số nguyên hoặc ký tự.  Nếu giá trị của biểu thức = ni ⇒ thực hiện câu lệnh sau case ni.  Nếu giá trị biểu thức khác tất cả các giá trị ni ⇒ thực hiện câu lệnh sau default nếu hoặc thoát khỏi switch.  Khi chương trình đã thực hiện xong câu lệnh của case ni nào đó thì nó sẽ thực hiện luôn các câu lệnh thuộc case bên dưới nó mà không xét lại điều kiện (do các ni được xem như các nhãn). Do đó để chương trình thoát khỏi lệnh switch, sau khi thực hiện xong một trường hợp, ta dùng lệnh break. In ra màn hình học lực của học sinh theo thang điểm như sau: Từ 0 -> 3: Kém, 4: Yếu, 5-> 6: Trung bình, 7 -> 8: Khá, 9 -> 10: Giỏi. switch(diem) { case 0: case 1: case 2: case 3: printf(“Kem\n”); break; case 4: printf(“Yeu\n”); break; case 5: case 6: printf(“Trung binh\n”); break; case 7: case 8: printf(“Kha\n”); break; case 9: case 10: printf(“Gioi\n”); break; default: printf(“Nhap diem sai\n”); } // Kết thúc switch  CÚ PHÁP KHAI BÁO LỆNH FOR for (<biểuthức1>; <biểuthức2>; <biểuthức3>) <Khối lệnh>; Hoạt động: 1. Tính giá trị của <biểuthức1> 2. Tính giá trị của <biểuthức2> 3. Nếu giá trị <biểuthức2> khác 0 ⇒ thực hiện <khối lệnh> Ngược lại ⇒ thoát khỏi lệnh for 4. Tính giá trị <biểuthức3> rồi lặp lại bước 2  VÍ DỤ MINH HỌA #include <stdio.h> #include <conio.h> void main() { int n, i; printf(“Nhap gia tri n: ”); scanf(“%d”, &n); printf(“Cac uoc so cua %d la: ”, n); for (i =1; i <= n; i++) if ( !n%i ) // !n%i ⌠ n%i=0 printf(“%3d”, i ); getch(); }  CÚ PHÁP KHAI BÁO LỆNH WHILE while (biểu thức) <khối lệnh>; Ý nghĩa: Nếu giá trị của biểu thức còn khác 0 (còn đúng) thì còn thực hiện <khối lệnh>.  VÍ DỤ MINH HỌA In ra màn hình tất cả các ước số của n: i = n; while (i) // i ! = 0 { if ( !n%i ) // n%i = 0 printf(“%3d”, i ); i--; } Vòng lặp while sẽ thực hiện đến khi i = 0 thì dừng.  CÚ PHÁP KHAI BÁO LỆNH DO…WHILE do { <khối lệnh>; }while (biểu thức); Ý nghĩa: Thực hiện <khối lệnh> cho đến khi giá trị của biểu thức bằng 0 (sai) thì dừng.  VÍ DỤ MINH HỌA Viết đoạn chương trình nhập giá trị của x nằm trong khoảng từ 1->6: int x; do { printf(“Nhap gia tri cua x:”); scanf(“%d”, &x); } while (x<1 || x>6);  Nhập giá trị của x, nếu x<1 hoặc x>6 thì yêu cầu nhập lại.

Ngày đăng: 08/08/2013, 00:20

Hình ảnh liên quan

KHÁI NIỆM CƠ BẢ NC - Bài tập lập trình C có đáp án
KHÁI NIỆM CƠ BẢ NC Xem tại trang 1 của tài liệu.
printf(&#34;Nhap a=&#34;); // hàm xuất ra màn hình - Bài tập lập trình C có đáp án

printf.

(&#34;Nhap a=&#34;); // hàm xuất ra màn hình Xem tại trang 1 của tài liệu.

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan