Ngôn ngữ lập trinh c
bài tập ngôn ngữ lập trình C phần I: các bài tập mảng phần II: các bài tập xâu Trang 1 Phần I: Các bài tập mảng Bài tập: Nhập mảng 1 chiều n phần tử, đếm số phần tử âm, tìm giá trị lớn nhất của các phần tử, tính tổng các phần tử. #include<stdio.h> #include<conio.h> main() { int mang[100]; int n,i,d,spta,max,tong; printf("\nnhap n="); scanf("%d",&n); for (i=1;i<=n;i++) { printf("\nmang[%d]=",i); scanf("%d",&mang[i]); } printf("\nmang:\n"); for (i=1;i<=n;i++) printf("\t%d",mang[i]); printf("\n"); d=0; for (i=1;i<=n;i++) if (mang[i]<0) d=d+1; spta=d; printf("\nso phan tu am =%d\n",spta); max=mang[1]; for (i=1;i<=n;i++) if (max<mang[i]) max=mang[i]; printf("\nphan tu lon nhat =%d\n",max); tong=0; for (i=1;i<=n;i++) tong=tong+mang[i]; printf("\ntong cac phan tu =%d\n",tong); getch(); } Trang 2 Bài tập: Nhập mảng 1 chiều n phần tử, tìm phần tử có giá trị bằng trung bình cộng của n phần tử. #include<stdio.h> #include<conio.h> main() { int mang[100],i,n,d=0; float tb=0; printf("\nnhap n="); scanf("%d",&n); for (i=1;i<=n;i++) { printf("\nmang[%d]=",i); scanf("%d",&mang[i]); } printf("\nmang:\n"); for (i=1;i<=n;i++) printf("\t%d",mang[i]); printf("\n"); for (i=1;i<=n;i++) tb+=mang[i]; tb=tb/n; for (i=1;i<=n;i++) if (mang[i]==tb) { printf("\nphan tu mang[%d]=%d co gia tri bang trung binh cong cua n phan tu \n",i,mang[i]); d++; } if (d==0) printf("\nkhong co phan tu nao trong mang co gia tri thoa man yeu cau\n"); getch(); } Trang 3 Bài tập: Nhập mảng 1 chiều n phần tử, tìm phần tử có giá trị lớn nhất và cho biết vị trí của phần tử đó trong mảng. #include<stdio.h> #include<conio.h> main() { int mang[100],x,i,n,h,max; printf("\nnhap n="); scanf("%d",&n); for (i=1;i<=n;i++) { printf("\nmang[%d]=",i); scanf("%d",&mang[i]); } printf("\nmang:\n"); for (i=1;i<=n;i++) printf("\t%d",mang[i]); printf("\n"); max=mang[1]; h=1; for (i=1;i<=n;i++) if (max<mang[i]) { max=mang[i]; h=i; } printf("\nphan tu mang[%d]=%d co gia tri lon nhat\n",h,max); getch(); } Trang 4 Bài tập: Nhập mảng 1 chiều n phần tử nguyên dơng. Tìm số tự nhiên nhỏ nhất và khác với các phần tử của mảng. #include<stdio.h> #include<conio.h> main() { int mang1[100],mang2[255],i,n,d=0; printf("\nnhap n="); scanf("%d",&n); for (i=1;i<=n;i++) { printf("\nmang1[%d]=",i); scanf("%d",&mang1[i]); } printf("\nmang1:\n"); for (i=1;i<=n;i++) printf("\t%d",mang1[i]); printf("\n"); for (i=1;i<=255;i++) mang2[i]=0; for (i=1;i<=n;i++) mang2[mang1[i]]=1; for (i=1;i<=255;i++) if (mang2[i]==0) { d++; printf("\nso nho nhat khac voi cac phan tu cua mang la:%d",i); break; } if (d==0) printf("\nso nho nhat khac voi cac phan tu cua mang la:%d",i+1); getch(); } Trang 5 Bài tập: Nhập vào một ma trận (m,n), đếm số phần tử âm, tìm giá trị lớn nhất của các phần tử, tính tổng các phần tử. #include<stdio.h> #include<conio.h> main() { int mt[50][50]; int i,j,x,m,n,d,spta,max,tong; printf("\nnhap m="); scanf("%d",&m); printf("\nnhap n="); scanf("%d",&n); for (i=1;i<=m;i++) for (j=1;j<=n;j++) { printf("\nmt[%d][%d]=",i,j); scanf("%d",&x); mt[i][j]=x; } printf("\nmt:\n"); for (i=1;i<=m;i++) { for (j=1;j<=n;j++) printf("\t%d",mt[i][j]); printf("\n"); } d=0; for (i=1;i<=m;i++) for (j=1;j<=n;j++) if (mt[i][j]<0) d=d+1; spta=d; printf("\nso phan tu am =%d\n",spta); max=mt[1][1]; for (i=1;i<=m;i++) for (j=1;j<=n;j++) if (max<mt[i][j]) max=mt[i][j]; printf("\nphan tu lon nhat =%d\n",max); tong=0; for (i=1;i<=m;i++) for (j=1;j<=n;j++) tong=tong+mt[i][j]; printf("\ntong cac phan tu =%d\n",tong); getch(); } Trang 6 Bài tập: Nhập vào một ma trận (m,n). Tìm phần tử có giá trị bằng trung bình cộng của m ì n phần tử. #include<stdio.h> #include<conio.h> main() { int mt[50][50],x,i,j,m,n,d=0; float tb=0; printf("\nnhap m="); scanf("%d",&m); printf("\nnhap n="); scanf("%d",&n); for (i=1;i<=m;i++) for (j=1;j<=n;j++) { printf("\nmt[%d][%d]=",i,j); scanf("%d",&x); mt[i][j]=x; } printf("\nmt:\n"); for (i=1;i<=m;i++) { for (j=1;j<=n;j++) printf("\t%d",mt[i][j]); printf("\n"); } for (i=1;i<=m;i++) for (j=1;j<=n;j++) tb+=mt[i][j]; tb=tb/(m*n); for (i=1;i<=m;i++) for (j=1;j<=n;j++) if (mt[i][j]==tb) { printf("\nphan tu mt[%d][%d]=%d co gia tri bang trung binh cong cua cac phan tu\n",i,j,mt[i][j]); d++; } if (d==0) printf ("\nkhong co phan tu co gia tri thoa man yeu cau\n"); getch(); } Trang 7 Bài tập: Nhập vào một ma trận (m,n). Tìm phần tử có giá trị lớn nhất và cho biết vị trí của phần tử đó trong ma trận. #include<stdio.h> #include<conio.h> main() { int mt[50][50],x,i,j,m,n,h,c,max; printf("\nnhap m="); scanf("%d",&m); printf("\nnhap n="); scanf("%d",&n); for (i=1;i<=m;i++) for (j=1;j<=n;j++) { printf("\nmt[%d][%d]=",i,j); scanf("%d",&x); mt[i][j]=x; } printf("\nmt:\n"); for (i=1;i<=m;i++) { for (j=1;j<=n;j++) printf("\t%d",mt[i][j]); printf("\n"); } max=mt[1][1]; h=1;c=1; for (i=1;i<=m;i++) for (j=1;j<=n;j++) if (max<mt[i][j]) { max=mt[i][j]; h=i;c=j; } printf("\nphan tu mt[%d][%d]=%d co gia tri lon nhat\n",h,c,max); getch(); } Trang 8 Bµi tËp: NhËp vµo mét ma trËn vu«ng (n,n). T×m tæng c¸c phÇn tö phÝa trªn ®êng chÐo chÝnh. #include<stdio.h> #include<conio.h> main() { int mt[50][50],x,i,j,n,S; printf("\nnhap n="); scanf("%d",&n); for (i=1;i<=n;i++) for (j=1;j<=n;j++) { printf("\nmt[%d][%d]=",i,j); scanf("%d",&x); mt[i][j]=x; } printf("\nmt:\n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) printf("\t%d",mt[i][j]); printf("\n"); } S=0; for (i=1;i<=n-1;i++) { for (j=i+1;j<=n;j++) S=S+mt[i][j]; } printf("\ntong cac phan tu phia tren duong cheo chinh =%d\n",S); getch(); } Trang 9 Bµi tËp: NhËp vµo mét ma trËn (m,n). T×m cét cã tæng c¸c phÇn tö lµ lín nhÊt vµ cho biÕt ®ã lµ cét nµo. #include<stdio.h> #include<conio.h> main() { int mt[50][50],x,i,j,m,n,cotmax,S,Smax; printf("\nnhap m="); scanf("%d",&m); printf("\nnhap n="); scanf("%d",&n); for (i=1;i<=m;i++) for (j=1;j<=n;j++) { printf("\nmt[%d][%d]=",i,j); scanf("%d",&x); mt[i][j]=x; } printf("\nmt:\n"); for (i=1;i<=m;i++) { for (j=1;j<=n;j++) printf("\t%d",mt[i][j]); printf("\n"); } Smax=0; if (m<=n) for (i=1;i<=n;i++) Smax=Smax+mt[i][1]; if (m>n) for (i=1;i<=m;i++) Smax=Smax+mt[i][1]; cotmax=1; for (j=2;j<=n;j++) { S=0; for (i=1;i<=m;i++) S=S+mt[i][j]; if (S>Smax) { Smax=S; cotmax=j; } } printf("\ncot co tong lon nhat la cot %d\n",cotmax); printf("\ntong do co gia tri la %d\n",Smax); getch(); } Trang 10 Bµi tËp: NhËp vµo hai ma trËn (m,n) vµ (n,p). T×m ma trËn tÝch cña hai ma trËn. #include<stdio.h> #include<conio.h> main() { int mt1[50][50],mt2[50][50],mt3[50][50],x,y,i,j,k,m,n,p; printf("\nnhap m="); scanf("%d",&m); printf("\nnhap n="); scanf("%d",&n); printf("\nnhap p="); scanf("%d",&p); for (i=1;i<=m;i++) for (j=1;j<=n;j++) { printf("\nmt1[%d][%d]=",i,j); scanf("%d",&x); mt1[i][j]=x; } printf("\nmt1:\n"); for (i=1;i<=m;i++) { for (j=1;j<=n;j++) printf("\t%d",mt1[i][j]); printf("\n"); } for (i=1;i<=n;i++) for (j=1;j<=p;j++) { printf("\nmt2[%d][%d]=",i,j); scanf("%d",&y); mt2[i][j]=y; } printf("\nmt2:\n"); for (i=1;i<=n;i++) { for (j=1;j<=p;j++) printf("\t%d",mt2[i][j]); printf("\n"); } for (i=1;i<=m;i++) for (j=1;j<=p;j++) { mt3[i][j]=0; for (k=1;k<=n;k++) mt3[i][j]=mt3[i][j]+mt1[i][k]*mt2[k][j]; } printf("\nmt3:\n"); for (i=1;i<=m;i++) { for (j=1;j<=p;j++) printf("\t%d",mt3[i][j]); printf("\n"); } getch(); } Trang 11 Bµi tËp: NhËp vµo mét ma trËn (m,n). T×m ma trËn chuyÓn vÞ cña ma trËn (m,n). #include<stdio.h> #include<conio.h> main() { int mt1[50][50],mt2[50][50],x,i,j,m,n; printf("\nnhap m="); scanf("%d",&m); printf("\nnhap n="); scanf("%d",&n); for (i=1;i<=m;i++) for (j=1;j<=n;j++) { printf("\nmt1[%d][%d]=",i,j); scanf("%d",&x); mt1[i][j]=x; } for (i=1;i<=n;i++) for (j=1;j<=m;j++) mt2[i][j]=mt1[j][i]; printf("\nmt1:\n"); for (i=1;i<=m;i++) { for (j=1;j<=n;j++) printf("\t%d",mt1[i][j]); printf("\n"); } printf("\nmt2:\n"); for (i=1;i<=n;i++) { for (j=1;j<=m;j++) printf("\t%d",mt2[i][j]); printf("\n"); } getch(); } Trang 12 Phần II: Các bài tập xâu Bài tập: Viết chơng trình đảo lộn một xâu. #include<stdio.h> #include<conio.h> #include<string.h> main() { int i,j=0; char st1[100],st2[100]; for (i=0;i<strlen(st1);i++) st2[i]=' '; [...]... hoa, chữ thờng lẫn lộn, dấu c ch viết không giới hạn Dữ liệu xuất ra phải thoả mãn nh sau: chữ c i đầu c a họ, đệm, tên phải là hoa, c c chữ c n lại là chữ thờng, giữa họ-đệm, đệm-đệm, đệm-tên chỉ tồn tại một dấu c ch #include #include #include #include main() { int i,j=0; char st1[100],st2[100]; printf("\nnhap xau:"); gets(st1); if(st1[0] !=' ') { st2[0]=toupper(st1[0]);... getch(); } Trang 14 Bài tập: Nhập vào một xâu, đếm số chữ trong xâu ( quan niệm chữ đ c phân c ch với nhau bởi dấu c ch #include #include #include main() { int i,d; char st[100]; printf("\nnhap xau:"); gets(st); i=0;d=0; if (st[i] !=' ') d=1; while (i . tập ngôn ngữ lập trình C phần I: c c bài tập mảng phần II: c c bài tập xâu Trang 1 Phần I: C c bài tập mảng Bài tập: Nhập mảng 1 chiều n phần tử, đếm số phần tử âm, tìm giá trị lớn nhất c a c c. chữ c i đầu c a họ, đệm, tên phải là hoa, c c chữ c n lại là chữ thờng, giữa họ-đệm, đệm-đệm, đệm-tên chỉ tồn tại một dấu c ch. #include<stdio.h> #include<conio.h> #include<string.h> #include<ctype.h> main() { . printf(" tong cac phan tu phia tren duong cheo chinh =%d ",S); getch(); } Trang 9 Bµi tËp: NhËp vµo mét ma trËn (m,n). T×m c t c tæng c c phÇn tö lµ lín nhÊt vµ cho biÕt ®ã lµ c t nµo. #include<stdio.h> #include<conio.h> main() {