Admin Admin
Tổng số bài gửi : 9 Points : 4501 Join date : 02/02/2012 Age : 30
| Tiêu đề: Ôn thi CƠ SỞ LẬP TRÌNH Sat May 26, 2012 11:21 am | |
| Bài 1: Kiểm tra số ĐẸP (VD: 1234, 122335599, 11111 ....) - Code:
-
#include<conio.h> #include<stdio.h> int sodep(int n) { int a[100],dem=0,ok=1,m; m=n; do { n=n/10; dem++; } while(n>0); for(int i=0;i<dem;i++) { a[i]=m%10; m=m/10; } for(int i=0;i<dem-1;i++) {for(int j=i+1;j<dem;j++) { if(a[i]<a[j]) ok=0;break; }} return ok; } int main() { int n; printf("nhap n: "); scanf("%d",&n); if(sodep(n)==1) printf("ok"); else printf("ko"); getch(); } Bài 2: Kiểm tra Số Nguyên Tố (VD: 2, 3, 5, 7, ...) - Code:
-
#include<conio.h> #include <stdio.h> #include <math.h> int ngto(int n) { int ok=1; if (n<2) ok=0; for (int i=2;i<=sqrt(n);i++) if (n%i==0) { ok=0; break; } return ok; } int main() { int n; printf("nhap n: "); scanf("%d",&n); if(ngto(n)==1) printf("ok"); else printf("ko"); getch(); } Bài 3: Kiểm tra SỐ HOÀN HẢO (VD: 6, 28, ... ) - Code:
-
#include<conio.h> #include<stdio.h> int sohoanhao(int n) { int tong=0,ok=1; for(int i=1;i<n/2+1;i++) { if(n%i==0) tong=tong+i; } if(tong!=n) ok=0; return ok; } int main() { int n; printf("nhap n: "); scanf("%d",&n); if(sohoanhao(n)==1) printf("ok"); else printf("ko"); getch(); } Bài 4: Kiểm tra SỐ CHÍNH PHƯƠNG (VD: 16, 4, 9, ...) - Code:
-
#include<conio.h> #include<stdio.h> #include<math.h> int sochinhphuong(int n) { int m,ok=1; m=sqrt(n); if(m*m!=n) ok=0; return ok; } int main() { int n; printf("nhap n: "); scanf("%d",&n); if(sochinhphuong(n)==1) printf("ok"); else printf("ko"); getch(); } Bài 5: Kiểm tra SỐ ĐỐI XỨNG (VD: 123321, 121, 1 ...) - Code:
-
#include<conio.h> #include<stdio.h> int sodx(int n) { int a[100],dem=0,ok=1,m; m=n; do { n=n/10; dem++; } while(n>0); for(int i=0;i<dem;i++) { a[i]=m%10; m=m/10; } for(int i=0;i<dem/2;i++) { if(a[i]!=a[dem-1-i]) {ok=0;break;} } return ok; } int main() { int n; printf("nhap n: "); scanf("%d",&n); if(sodx(n)==1) printf("ok"); else printf("ko"); getch(); } Bài 6: Xóa dấu cách trong xâu - Code:
-
#include<conio.h> #include<stdio.h> #include<string.h> void xoa(char a[], int vt) { int i,n=strlen(a)-1; { for(i=vt;i<n;i++) a[i] = a[i + 1]; } } int ktconcach(char a[]) { int ok=1,n=strlen(a)-1; for(int i=0;i<n;i++) if(a[i]==' ') {ok=0;break;} return ok; } int main() { char s[100]; int i; printf("Nhap xau: "); gets(s); do { for (i = 0; i <strlen(s); i++) if(s[i]==' ') {xoa(s,i);s[strlen(s)-1]='\0';} } while(ktconcach(s)==0); puts(s); getch(); } Bài 7: Xóa số nguyên tố trong mảng một chiều - Code:
-
#include<conio.h> #include <stdio.h> #include <math.h> int ngto(int n) { int ok=1; if (n<2) ok=0; for (int i=2;i<=sqrt(n);i++) if (n%i==0) { ok=0; break; } return ok; } int ktconngto(int a[],int &n) { int ok=1; for(int i=0;i<n;i++) if(ngto(a[i])) {ok=0;break;} return ok; } void nhapmang(int a[], int &n) { printf("Nhap so luong phan tu n: "); scanf("%d",&n); for(int i=0;i<n;i++) { printf("Nhap phan tu thu %d : ",i+1); scanf("%d",&a[i]); } } void xoa(int a[],int vt,int &n) { for(int i=vt;i<n-1;i++) { a[i]=a[i+1]; } n--; } int main() { int a[100],n,k=0; nhapmang(a,n); do { for(int i=0;i<n;i++) { if(ngto(a[i])) xoa(a,i,n); } } while (ktconngto(a,n)==0); for(int i=0;i<n-k;i++) { printf("==== %d \n",a[i]); } getch(); } Bài 8: Đếm số loại KÝ TỰ khác nhau trong XÂU (VD:co so lap trinh --> 12) - Code:
-
#include<conio.h> #include<stdio.h> #include<string.h> main() { char xau[100],dem[256]; int m=0; printf("Nhap xau: "); gets(xau); for(int i=0;i<256;i++) dem[i]=0; for(int i=0;i<strlen(xau);i++) dem[xau[i]]++; for(int i=0;i<256;i++) if(dem[i]!=0) m++; printf("co %d loai ki tu",m); getch(); } Bài 9: [Nhập từ File] Tìm các số chia hết cho k - Code:
-
#include<stdio.h> main() { FILE *f1,*f2; int a[100]; int n,i,k; f1=fopen("chiahet.inp","r"); fscanf(f1,"%d",&n); fscanf(f1,"%d",&k); for(i=0;i<n;i++) fscanf(f1,"%d",&a[i]); f2=fopen("chiahet.out","w"); for(i=0;i<n;i++) if(a[i]%k==0) fprintf(f2,"%d",a[i]); fclose(f1); fclose(f2); } P/S: file chiahet.inp dòng đầu tiên nhập số số cần xét và số cần chia hết (cách nhau bằng dấu cách) dòng 2 ghi tiếp các số, cách nhau 1 dấu cách - Code:
-
VD: (inp) -->(out) 5 2 2 4 1 2 3 4 5 Bài 10: [Quản lý sinh viên] nhập danh sách sinh viên sau đó đưa ra tên sv có điểm trung bình lớn hơn 7.0 - Code:
-
#include<stdio.h> #include<conio.h> typedef struct { char hoten[50]; float diemtoan; float diemly; float diemhoa; } sinhvien; main() { sinhvien ds[50]; int n; float dtb[50],max; printf("Nhap so luong sinh vien: "); scanf("%d",&n); for(int i=0;i<n;i++) { fflush(stdin); printf("Nhap ten sinh vien: "); gets(ds[i].hoten); printf("Nhap diem toan: "); scanf("%f",&ds[i].diemtoan); printf("Nhap diem Ly: "); scanf("%f",&ds[i].diemly); printf("Nhap diem Hoa: "); scanf("%f",&ds[i].diemhoa); } for(int i=0;i<n;i++) { dtb[i]=(ds[i].diemtoan+ds[i].diemly+ds[i].diemhoa)/3; } printf("Ds sinh vien co Diem Trung Binh > 7.0 la: \n"); for(int i=0;i<n;i++) if(dtb[i]>7) puts(ds[i].hoten); getch(); } Bài 11: Nhập mảng 2 chiều, sắp xếp theo chiều tăng dần theo dòng, in ra mảng đã sắp xếp - Code:
-
#include<stdio.h> #include<conio.h> void nhapmang2chieu(int a[][100], int &n, int &m) { printf("Nhap so dong so cot: "); scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { printf("Nhap phan tu a[%d][%d]: ",j+1,i+1); scanf("%d",&a[j][i]); } } } void sapxep(int a[][100], int &n, int &m) { for(int i=0;i<n;i++) { for(int j=0;j<m-1;j++) { for(int k=j+1;k<m;k++) { if(a[j][i]>a[k][i]) { a[j][i]=a[j][i]+a[k][i]; a[k][i]=a[j][i]-a[k][i]; a[j][i]=a[j][i]-a[k][i]; } }} } } void xuatmang2chieu(int a[][100], int n, int m) { for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { printf("%6d ",a[j][i]); } printf("\n"); } } main() { int m,n,a[100][100]; nhapmang2chieu(a,n,m); sapxep(a,n,m); xuatmang2chieu(a,n,m); getch(); } Bài 12: Nhập 1 mảng, sắp xếp giảm dần các số dương, tăng dần số âm và cuối cùng là các số 0VD: 9 8 7 3 -5 -3 -1 -1 0 0 0 - Code:
-
#include<conio.h> #include<stdio.h> void NhapMang(int a[], int &n) { printf("Nhap so luong phan tu n: "); scanf("%d", &n);
for (int i = 0; i < n; i++) { printf("Nhap phan tu thu %d: ", i+1); scanf("%d", &a[i]); } } void XuatMang(int a[], int n) {
for (int i = 0; i < n; i++) printf("%d ", a[i]); } void SapXepTang(int a[], int &n) { int i, j,m; int tmp; m=n-1; for (i=0;i < m; i++) { for (j=i+1;j<n;j++) { if (a[i] > a[j]) { tmp=a[i]; a[i]=a[j]; a[j]=tmp; } } } } void SapXepGiam(int a[], int &n) { int i, j,m; int tmp; m=n-1; for (i=0;i <m; i++) { for (j=i+1;j<n;j++) { if (a[i] < a[j]) { tmp=a[i]; a[i]=a[j]; a[j]=tmp; } } } } main() { int a[100],b[50],c[50],d[50],x=0,y=0,z=0,i,n; NhapMang(a,n); for(i=0;i<n;i++) { if(a[i]==0) {d[z]=a[i];z++;} if(a[i]<0) {c[y]=a[i];y++;} if(a[i]>0) {b[x]=a[i];x++;} } SapXepGiam(b,y); SapXepTang(c,y); printf("\n"); XuatMang(b,x); XuatMang(c,y); XuatMang(d,z); getch(); } Bài 13: Chèn thêm số -1 sau số nguyên tố trong mảng 1 chiều - Code:
-
#include<conio.h> #include <stdio.h> #include <math.h> int ngto(int n) { int ok=1; if (n<2) ok=0; for (int i=2;i<=sqrt(n);i++) if (n%i==0) { ok=0; break; } return ok; } void nhapmang(int a[], int &n) { printf("Nhap n: "); scanf("%d",&n); for(int i=0;i<n;i++) { printf("Nhap phan tu thu %d : ",i+1); scanf("%d",&a[i]); } } void them(int a[],int vt,int &n) { for(int i=n-1;i>vt-1;i--) { a[i+1]=a[i]; } a[vt]=-1; n++; } int main() { int a[100],n,k=0; nhapmang(a,n); for(int i=0;i<n;i++) if(ngto(a[i])) them(a,i+1,n); for(int i=0;i<n;i++) { printf("\n==== %6d ",a[i]); } getch(); } Bài 14: [Kiểu FILE]Sắp xếp xâu theo thứ tự từ điển (trích: Thầy Tài) - Code:
-
#include <stdio.h> #include <string.h> #include <conio.h> void sapxep(int n,char x[][256]) { char temp[256]; int i,j; for (i=0;i<n-1;i++) for (j=i+1;j<n;j++) if (stricmp(x[i],x[j])>0) {strcpy(temp,x[i]); strcpy(x[i],x[j]); strcpy(x[j],temp); } }
char st[256]; FILE *f1,*f2; main() { char x[128][256]; int i,j; int n; //so luong tu n=0; f1=fopen("SAPXEP.INP","r"); while (!feof(f1)) { fscanf(f1,"%s",st); strcpy(x[n],st); n++; } fclose(f1); sapxep(n,x); f2=fopen("SAPXEP.OUT","w"); for (i=0;i<n;i++) fprintf(f2,"%s\n",x[i]); fclose(f2); //dong file ket qua } Bài 15: Nhập tọa độ 3 đỉnh của n tam giác. Kiểm tra xem đó có phải tam giác hay ko - Code:
-
#include<conio.h> #include<stdio.h> #include<math.h> typedef struct { float x; float y; } diem;
typedef struct { diem a,b,c; } tamgiac; float dodai(diem a, diem b) { float dd; dd=sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); return dd; } main() { tamgiac tg[100]; int n,i; printf("nhap so luong tam giac: "); scanf("%d",&n); for(i=0;i<n;i++) {printf("nhap toa do cua 3 diem: "); scanf("%f%f%f%f%f%f",&tg[i].a.x,&tg[i].a.y,&tg[i].b.x,&tg[i].b.y,&tg[i].c.x,&tg[i].c.y);} for(i=0;i<n;i++) { if((dodai(tg[i].a,tg[i].b)<dodai(tg[i].a,tg[i].c)+dodai(tg[i].c,tg[i].b))&&(dodai(tg[i].c,tg[i].b)<dodai(tg[i].a,tg[i].c)+dodai(tg[i].a,tg[i].b))&&(dodai(tg[i].a,tg[i].c)<dodai(tg[i].b,tg[i].c)+dodai(tg[i].c,tg[i].b))) printf("\ntam giac thu %d la tam giac",i+1); else printf("\ntam giac thu %d ko la tam giac",i+1); } getch(); } Bài 16: [Nhập từ file] Tính tổng và tích các phân số - Code:
-
File: PHANSO.INP VD: 3 2 3 1 2 3 4 CODE: - Code:
-
#include <stdio.h> #include <conio.h> #define MAXN 100 struct phanso { int tu,mau; }; int ucln(int x,int y) { if (y == 0) return x; else return ucln(y,x%y); }
main() { FILE *f1,*f2; phanso a[100]; int n,i,m=1,t=0,uc,t1=1,m1=1,uc1; f1=fopen("PHANSO.INP","r"); fscanf(f1,"%d",&n); for (i=0;i<n;i++) fscanf(f1,"%d%d",&a[i].tu,&a[i].mau); fclose(f1); for (i=0;i<n;i++) m=m*(a[i].mau); f2=fopen("PHANSO.OUT","w"); for (i=0;i<n;i++) t=t+((a[i].tu)*m)/(a[i].mau); uc=ucln(t,m); t=t/uc; m=m/uc; fprintf(f2,"%d/%d\n",t,m); for (i=0;i<n;i++) {t1=t1*a[i].tu; m1=m1*a[i].mau;} uc1=ucln(t1,m1); t1=t1/uc1; m1=m1/uc1; fprintf(f2,"%d/%d",t1,m1); }
| |
|