Tài liệu Tóm tắt kiến thức về ngôn ngữ lập trình C: Từ Trung Hiếu - Tóm tắt kiến thức về ngôn ngữ lập trình C 
 1
Tham khảo ngôn ngữ lập trình C 
(C language references) 
Các phần tử cơ bản (literals) 
+ các dấu chấm câu (punctuators) 
+ ngoặc nhọn và ngoặc đơn (braces & parentheses): ( ) { } 
+ các hằng số nguyên (integers): 1234 0xABCD 
+ các hằng số thực (floating point): 123.45 123E-45 
+ các hằng chữ và số (characters & strings): 'a' '\n' "abcd" 
+ định danh (identifier): abc xyz a1 my_var 
+ từ khóa (keyword): for while do return void int 
+ chú thích (comment) 
Các toán tử (operators) 
+ toán tử hướng bít (bitwise): & | ^ ~ 
+ toán tử số học (arithmetic): + - * / % 
+ toán tử so sánh (relational / comparative): > >= < <= == != 
+ toán tử luận lý (logical): && || ! 
+ toán tử gán (assignment): = += -= *= /= %= &= |= 
+ toán tử dấu phảy (comma) 
Các kiểu dữ liệu (data types) 
+ kiểu nguyên có: char, int, short, long 
+ kiểu nguyên không dấu: uchar, uint, ushort, ulong 
+ kiểu số thực: float, doubl...
                
              
                                            
                                
            
 
            
                 5 trang
5 trang | 
Chia sẻ: hunglv | Lượt xem: 2479 | Lượt tải: 1 
              
            Bạn đang xem nội dung tài liệu Tóm tắt kiến thức về ngôn ngữ lập trình C, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Từ Trung Hiếu - Tóm tắt kiến thức về ngôn ngữ lập trình C 
 1
Tham khảo ngôn ngữ lập trình C 
(C language references) 
Các phần tử cơ bản (literals) 
+ các dấu chấm câu (punctuators) 
+ ngoặc nhọn và ngoặc đơn (braces & parentheses): ( ) { } 
+ các hằng số nguyên (integers): 1234 0xABCD 
+ các hằng số thực (floating point): 123.45 123E-45 
+ các hằng chữ và số (characters & strings): 'a' '\n' "abcd" 
+ định danh (identifier): abc xyz a1 my_var 
+ từ khóa (keyword): for while do return void int 
+ chú thích (comment) 
Các toán tử (operators) 
+ toán tử hướng bít (bitwise): & | ^ ~ 
+ toán tử số học (arithmetic): + - * / % 
+ toán tử so sánh (relational / comparative): > >= < <= == != 
+ toán tử luận lý (logical): && || ! 
+ toán tử gán (assignment): = += -= *= /= %= &= |= 
+ toán tử dấu phảy (comma) 
Các kiểu dữ liệu (data types) 
+ kiểu nguyên có: char, int, short, long 
+ kiểu nguyên không dấu: uchar, uint, ushort, ulong 
+ kiểu số thực: float, double, long double 
+ kiểu mảng: pointer, array, string 
+ kiểu cấu trúc: struct 
Các câu lệnh (statements) 
+ các câu lệnh điều kiện: if, switch 
+ các câu lệnh lặp: for, while, dowhile, 
+ các câu lệnh rẽ nhánh: break, continue, goto, return 
+ khai báo biến 
+ khai báo biến mảng 
+ khai báo hàm 
+ khai báo kiểu: typedef 
Từ Trung Hiếu - Tóm tắt kiến thức về ngôn ngữ lập trình C 
 2
Các kiến thức về mảng 
(array processing) 
Khai báo mảng (declare) 
+ Khai báo mảng số 
int a[10]; 
double a[10]; 
+ Khai báo mảng chuỗi (khai báo kiểu) 
typedef char chuoi[50]; 
chuoi a[10]; 
+ Khai báo mảng sinh viên (cấu trúc trước) 
struct SinhVien { char ten[30]; int tuoi; double dtb; } 
typedef struct SinhVien sinhvien; 
sinhvien a[100]; 
Nhập giá trị cho mảng (input) 
+ Nhập giá trị cho mảng nguyên 
printf("Nhap so phan tu:"); scanf("%d", &n); 
for(i=0; i<n; i++) { printf("Nhap a%d:", i+1); fflush(stdin); scanf("%d", &a[i]); } 
+ Nhập giá trị cho mảng chuỗi (dùng gets) 
printf("Nhap so phan tu:"); scanf("%d", &n); 
for(i=0; i<n; i++) { printf("Nhap a%d:", i+1); fflush(stdin); gets(a[i]); } 
+ Nhập giá trị cho mảng sinh viên (phải viết hàm nhapSinhVien) 
printf("Nhap so phan tu:"); scanf("%d", &n); 
for(i=0; i<n; i++) { printf("Nhap sinh vien thu %d\n", i+1); nhapSinhVien(&a[i]); } 
In các phần tử trong mảng / lọc các phần tử (print / filter) 
+ In danh sách các số nguyên 
for(i=0; i<n; i++) printf("%d\n", a[i]); 
+ In danh sách các số nguyên dương 
for(i=0; i 0) printf("%d\n", a[i]); 
+ In danh sách các số nguyên tố (phải viết hàm nguyento) 
for(i=0; i<n; i++) if( nguyento(a[i]) == 1 ) printf("%d\n", a[i]); 
+ In danh sách các chuỗi 
for(i=0; i<n; i++) printf("%s\n", a[i]); 
+ In danh sách các chuỗi có độ dài lớn nhất (phải tìm độ dài lớn nhất trước) 
for(i=0; i<n; i++) if( strlen(a[i]) == max) printf("%s\n", a[i]); 
Từ Trung Hiếu - Tóm tắt kiến thức về ngôn ngữ lập trình C 
 3
+ In danh sách các chuỗi chứa từ "van" 
for(i=0; i<n; i++) if( strstr(a[i], "van") != 0 )printf("%s\n", a[i]); 
+ In danh sách các chuỗi có độ dài chẵn 
for(i=0; i<n; i++) if( strlen(a[i]) % 2 == 0 ) printf("%s\n", a[i]); 
+ In ra các sinh viên (phải viết hàm inSinhVien) 
for(i=0; i<n; i++) inSinhVien(a[i]); 
+ In ra các sinh viên có điểm lớn hơn 5 
for(i=0; i 5.0 ) inSinhVien(a[i]); 
+ In ra các sinh viên trong tên chứa từ "anh" 
for(i=0; i<n; i++) if( strstr(a[i].ten, "anh") != 0 ) inSinhVien(a[i]); 
Sắp xếp mảng (sort) 
+ Sắp xếp mảng số 
for(i=n; i>1; i--) for(k=0; k<i-1; k++) 
 if( a[k] > a[k+1] ) 
 { int t = a[k]; a[k] = a[k+1]; a[k+1] =t; } 
+ Sắp xếp mảng số giảm dần (chỉ khác dấu so sánh) 
+ Sắp xếp mảng số 
for(i=n; i>1; i--) for(k=0; k<i-1; k++) 
 if( a[k] < a[k+1] ) 
 { int t = a[k]; a[k] = a[k+1]; a[k+1] =t; } 
+ Sắp xếp mảng chuỗi (phải dùng strcmp và strcpy) 
for(i=n; i>1; i--) for(k=0; k<i-1; k++) 
 if( strcmp(a[k], a[k+1]) > 0 ) 
 { string t; strcpy(t, a[k]); strcpy(a[k], a[k+1]); strcpy(a[k+1], t); } 
+ Sắp xếp mảng sinh viên theo điểm (chỉ khác sắp xếp số ở chỗ dùng a[k].diem) 
for(i=n; i>1; i--) for(k=0; k<i-1; k++) 
 if( a[k].diem > a[k+1].diem ) 
 { sinhvien t = a[k]; a[k] = a[k+1]; a[k+1] =t; } 
+ Sắp xếp mảng sinh viên theo tên (chỉ khác sắp xếp chuỗi ở chỗ dùng a[k].ten) 
for(i=n; i>1; i--) for(k=0; k<i-1; k++) 
 if( strcmp(a[k].ten, a[k+1].ten) > 0 ) 
 { sinhvien t = a[k]; a[k] = a[k+1]; a[k+1] =t; } 
Từ Trung Hiếu - Tóm tắt kiến thức về ngôn ngữ lập trình C 
 4
Kết nhập mảng (aggregation) 
+ Tính tổng các số trong mảng 
s = 0; 
for(i=0; i<n; i++) s += a[i]; 
printf("Tong cua cac so %d\n", s); 
+ Tính tổng các số dương trong mảng 
s = 0; 
for(i=0; i 0) s += a[i]; 
printf("Tong cua cac so duong %d\n", s); 
+ Tìm giá trị lớn nhất 
max = a[0]; 
for(i=0; i<n; i++) if (max < a[i]) max = a[i]; 
printf("Gia tri lon nhat la %d\n", max); 
+ Tìm vị trí mang giá trị lớn nhất (ví dụ 3 5 2 7 6 thì giá trị lớn nhất 7 nằm tại vị trí thứ 4) 
imax = 0; 
for(i=0; i<n; i++) if ( a[imax] < a[i]) imax = i; 
printf("Vi tri mang gia tri lon nhat la %d\n", imax); 
printf("Gia tri lon nhat la %d\n", a[imax]); 
+ Tìm số có giá trị tuyệt đối lớn nhất (ví dụ -9 7 2 -5 3 thì số lớn nhất là 7 nhưng số có giá 
trị tuyệt đối lớn nhất là -9) 
imax = 0; 
for(i=0; i<n; i++) if ( abs(a[imax]) < abs(a[i]) ) imax = i; 
printf("So co gia tri tuyet doi lon nhat la %d\n", a[imax]); 
printf("So nam tai vi tri la %d\n", imax); 
+ Tìm giá trị âm lớn nhất (tìm trong tập con của mảng) 
timthay = 0; 
for(i=0; i<n; i++) if( a[i] < 0) { 
 if(timthay == 0) max = a[i]; 
 timthay++; 
 if(max < a[i]) max = a[i]; 
} 
if (timthay==0) printf("Khong tim thay so am\n"); 
else printf("Tim thay so am lon nhat la %d\n", max); 
 + Tìm chuỗi có độ dài lớn nhất 
max = strlen( a[0]); 
for(i=0; i<n; i++) if (max < strlen(a[i]) ) max = strlen( a[i]); 
printf("Gia tri lon nhat la %d\n", max); 
+ Tìm sinh viên có điểm cao nhất 
max = a[0].diem; 
for(i=0; i<n; i++) if (max < a[i].diem ) max = a[i].diem; 
printf("Gia tri lon nhat la %d\n", max); 
Từ Trung Hiếu - Tóm tắt kiến thức về ngôn ngữ lập trình C 
 5
+ Đếm số các số dương 
dem = 0; 
for(i=0; i 0 ) dem++; 
printf("So phan tu dem duoc la %d\n", dem); 
+ Đếm số các chuỗi có từ "van" 
dem = 0; 
for(i=0; i<n; i++) if ( strstr(a[i], "van") != 0 ) dem++; 
printf("So phan tu dem duoc la %d\n", dem); 
+ Đếm số các sinh viên đạt điểm giỏi 
dem = 0; 
for(i=0; i = 8.0 ) dem++; 
printf("So phan tu dem duoc la %d\n", dem); 
+ Đếm số các sinh viên có tên chứa chữ "anh" 
dem = 0; 
for(i=0; i<n; i++) if ( strstr(a[i].ten, "anh") != 0 ) dem++; 
printf("So phan tu dem duoc la %d\n", dem); 
            Các file đính kèm theo tài liệu này:
 Tom%20tat%20kien%20thuc.pdf Tom%20tat%20kien%20thuc.pdf