天津工业大学计算机专业C语言笔记
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
16. 用 /4≈1-1/3+1/5-1/7+…公式求 的近似值直到最后一项的绝对值小于 10-.6.为止。
#include <stdio.h> #include <math.h> main()
{ int i=1,j=1; float pi=0;
5
while(fabs(1.0/i*j)>=0.000001)
21. 输出以下的杨辉三角的前 10 行 1 11 121 1331 14641 …………………………… ……………………………… #include <stdio.h> main() { int a[10][10],i,j,t; for(i=0;i<10;i++) { a[i][0]=1;a[i][i]=1; } for(i=2;i<10;i++) for(j=1;j<i;j++) a[i][j]=a[i-1][j]+a[i-1][j-1]; for(i=0;i<10;i++) { for(j=0;j<=i;j++) printf("%4d",a[i][j]); printf("\n");
} 7. 求字符串长度。
#include <stdio.h> main()
{ char s[80]; int str(char *s); scanf("%s",s); printf("ths string number is:%d\n",str(s));
} int str(char *s)
{ int i; for(i=0;s[i]!='\0';i++); return i;
6. 求字符串逆序。 #include <stdio.h> main()
2
{ int i,n; char s[80],temp; scanf("%s",s); n=strlen(s); for(i=0;i<n/2;i++) { temp=s[i];s[i]=s[n-1-i];s[n-1-i]=temp; } printf("%s\n",s);
printf("*"); printf("\n"); } }
20. 求一个 3×3 的整型矩阵对角线之和 #include <stdio.h>
main() { int a[3][3],i,j,sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) sum=sum+a[i][i]; printf("%d\n",sum); }
7
} } 22. 写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息。 #include <stdio.h> int fun(int x) { int i,t=1;
for(i=2;i<x;i++) if(x%i==0) t=0; return t; } main() { int x; scanf("%d",&x); if(fun(x)) printf("Yes\n"); else printf("No\n"); } 23. 写一函数,使给定的一个二维整型数组数组(3×3)转置,即行列互换 #include <stdio.h> void fun(int a[3][3]) { int i,j,t; for(i=0;i<3;i++) for(j=0;j<i;j++)
main()
{ int i;
long f1=1,f2=1;
for(i=1;i<=20;i++)
{ printf("%12ld %12ld ",f1,f2);
if(i%2==1) printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
18. 求 1!+2!+3!+4!+……20!
#include <stdio.h>
4. 求 100-999 之间的水仙花数。 #include <stdio.h> main() { int i,k,m,n; for(i=100;i<1000;i++) { k=i%10; m=i/10%10; n=i/10/10; if(i==k*k*k+m*m*m+n*n*n) printf("%d\n",i); } }
{ pi+=1.0/i*j;
i+=2;
j=-j;
}
pi*=4;
printf("pi=%f\n",pi);
}
17. 以下程序的功能是:求斐波那契数列的:1,1,2,3,5,8,………的前 40 个数,即
F1=1
(n=1)
F2=1
(n=2)
Fn=Fn-1+Fn-2 (n>=3)
#include <stdio.h>
5. 求二维数组的最大值。 #include <stdio.h> main() { int a[4][4]; int i,j; int max(int a[4][4]); for(i=0;i<4;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]); printf("max=%d\n",max(a)); } int max(int a[4][4]) { int i,j,b; b=a[0][0]; for(i=0;i<4;i++) for(j=0;j<4;j++) if(a[i][j]>b) b=a[i][j]; return b; }
天津工业大学计算机专业 C 语言经典笔记
(天津师范大学计算机专业同样适用)
1. 将一个二维数组的行和列的元素互换存到另一个数组里。 #include <stdio.h> main() { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf("array a:\n"); for(i=0;i<=1;i++) { for(j=0;j<=2;j++) { printf("%5d",a[i][j]); b[j][i]=a[i][j]; } printf("\n"); } printf("array b:\n"); for(i=0;i<=2;i++) { for(j=0;j<=1;j++) printf("%5d",b[i][j]); printf("\n"); } }
main()
{ int i;
float t=1,s=0;
for(i=1;i<=20;i++)
{ t*=i;
s+=t;
}
printf("%f\n",s);
}
19. 以下程序的功能是:输出以下图案
*
***
*****
*******
*****
***
*
#include <stdio.h>
main()
{ int i,j,k;
printf("a[%d]=%d\n",i,a[i]); } 15. 输入两个整数 m 和 n,求其最大公约数和最小公倍数。 #include <stdio.h> main()
{ int m,n,p,r,t; scanf("%d%d",&m,&n); if(m>n) { t=m;m=n;n=t; } p=m*n; while(m!=0) { r=n%m; n=m; m=r; } printf("%d,%d\n",n,p/n);
3. 利用数组来处理求 Fibonaai 数列问题。 #include <stdio.h>
1
main() { int i; int f[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-1]+f[i-2]; for(i=0;i<20;i++) { if(i%5==0) printf("\n"); printf("%12d",f[i]); } printf("\n"); }
} 10. 求 3-100 的素数。
3
#include <stdio.h> main() { int i,j,w;
for(i=3;i<=100;i++) { w=0;j=2;
do { if(i%j==0) w=1;
j++; } while(j<i&&w==0); if(w==0) printf("%3d",i); } printf("\n"); } 11. 回文数问题。 #include <stdio.h> int fun(int n) { int n1,n2; n1=n;n2=0; while(n!=0) { n2=n2*10+n%10; n/=10; } if(n1==n2) return 1; return 0; } main() { int num; scanf("%d",&num); if(fun(num)) printf("yes\n"); else printf("no\n"); } 12. 判断一个字符串是否为回文。 #include <stdio.h> #include <string.h> main() { int func(char s[]); char str[100]; gets(str); if(func(str)==1) printf("yes!\n"); else printf("no!\n"); } int func(char s[]) { int l,i; l=strlen(s); for(i=0;i<l/2;i++) if(s[i]!=s[l-i-1]) return 0;
{ char s[80],t[80]; get来自百度文库(s); gets(t); fun(s,t); printf("%s\n",s);
} 9. 求同时能被 2、3、5、7 整除的数(1-500)。
#include <stdio.h> main() { int i;
for(i=1;i<=500;i++) if(i%2==0&&i%3==0&&i%5==0&&i%7==0) printf("%d\n",i);
} 8. 写一函数,将两个字符串连接。
#include <stdio.h> void fun(char s[],char t[])
{ int i=0,j=0; while(s[i]) i++; while(t[j]) { s[i]=t[j];i++;j++; } s[i]='\0';
} main()
2. 利用冒泡法对输入的 10 整数进行从小到大排序。 #include <stdio.h> main() { int a[10]; int i,j,t; printf("input numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf("the sorted numbers:\n"); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); }
{ t=a[i][j];a[i][j]=a[j][i];a[j][i]=t; } } main() { int a[3][3]={1,2,3,4,5,6,7,8,9},i,j;
for(i=1;i<=4;i++)
6
{ for(j=1;j<=4-i;j++) printf(" ");
for(k=1;k<=2*i-1;k++) printf("*");
printf("\n"); } for(i=3;i>=1;i--) { for(j=1;j<=4-i;j++)
printf(" "); for(k=1;k<=2*i-1;k++)
gets(s); puts(p(s)); } 14. 一维数组有 10 个元素,将其逆序存放。 #include <stdio.h> main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,t; for(i=0;i<5;i++) { t=a[i];a[i]=a[10-i-1];a[10-i-1]=t; } for(i=0;i<10;i++)
4
return 1; } 13. 将字符串中的小写英文字母转换为大写英文字母。 #include <stdio.h> char *p(char *s) { int i;
for(i=0;s[i]!='\0';i++) if(s[i]>='a'&&s[i]<='z') s[i]-=32;
return s; } main() { char s[100];
16. 用 /4≈1-1/3+1/5-1/7+…公式求 的近似值直到最后一项的绝对值小于 10-.6.为止。
#include <stdio.h> #include <math.h> main()
{ int i=1,j=1; float pi=0;
5
while(fabs(1.0/i*j)>=0.000001)
21. 输出以下的杨辉三角的前 10 行 1 11 121 1331 14641 …………………………… ……………………………… #include <stdio.h> main() { int a[10][10],i,j,t; for(i=0;i<10;i++) { a[i][0]=1;a[i][i]=1; } for(i=2;i<10;i++) for(j=1;j<i;j++) a[i][j]=a[i-1][j]+a[i-1][j-1]; for(i=0;i<10;i++) { for(j=0;j<=i;j++) printf("%4d",a[i][j]); printf("\n");
} 7. 求字符串长度。
#include <stdio.h> main()
{ char s[80]; int str(char *s); scanf("%s",s); printf("ths string number is:%d\n",str(s));
} int str(char *s)
{ int i; for(i=0;s[i]!='\0';i++); return i;
6. 求字符串逆序。 #include <stdio.h> main()
2
{ int i,n; char s[80],temp; scanf("%s",s); n=strlen(s); for(i=0;i<n/2;i++) { temp=s[i];s[i]=s[n-1-i];s[n-1-i]=temp; } printf("%s\n",s);
printf("*"); printf("\n"); } }
20. 求一个 3×3 的整型矩阵对角线之和 #include <stdio.h>
main() { int a[3][3],i,j,sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) sum=sum+a[i][i]; printf("%d\n",sum); }
7
} } 22. 写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息。 #include <stdio.h> int fun(int x) { int i,t=1;
for(i=2;i<x;i++) if(x%i==0) t=0; return t; } main() { int x; scanf("%d",&x); if(fun(x)) printf("Yes\n"); else printf("No\n"); } 23. 写一函数,使给定的一个二维整型数组数组(3×3)转置,即行列互换 #include <stdio.h> void fun(int a[3][3]) { int i,j,t; for(i=0;i<3;i++) for(j=0;j<i;j++)
main()
{ int i;
long f1=1,f2=1;
for(i=1;i<=20;i++)
{ printf("%12ld %12ld ",f1,f2);
if(i%2==1) printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
18. 求 1!+2!+3!+4!+……20!
#include <stdio.h>
4. 求 100-999 之间的水仙花数。 #include <stdio.h> main() { int i,k,m,n; for(i=100;i<1000;i++) { k=i%10; m=i/10%10; n=i/10/10; if(i==k*k*k+m*m*m+n*n*n) printf("%d\n",i); } }
{ pi+=1.0/i*j;
i+=2;
j=-j;
}
pi*=4;
printf("pi=%f\n",pi);
}
17. 以下程序的功能是:求斐波那契数列的:1,1,2,3,5,8,………的前 40 个数,即
F1=1
(n=1)
F2=1
(n=2)
Fn=Fn-1+Fn-2 (n>=3)
#include <stdio.h>
5. 求二维数组的最大值。 #include <stdio.h> main() { int a[4][4]; int i,j; int max(int a[4][4]); for(i=0;i<4;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]); printf("max=%d\n",max(a)); } int max(int a[4][4]) { int i,j,b; b=a[0][0]; for(i=0;i<4;i++) for(j=0;j<4;j++) if(a[i][j]>b) b=a[i][j]; return b; }
天津工业大学计算机专业 C 语言经典笔记
(天津师范大学计算机专业同样适用)
1. 将一个二维数组的行和列的元素互换存到另一个数组里。 #include <stdio.h> main() { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf("array a:\n"); for(i=0;i<=1;i++) { for(j=0;j<=2;j++) { printf("%5d",a[i][j]); b[j][i]=a[i][j]; } printf("\n"); } printf("array b:\n"); for(i=0;i<=2;i++) { for(j=0;j<=1;j++) printf("%5d",b[i][j]); printf("\n"); } }
main()
{ int i;
float t=1,s=0;
for(i=1;i<=20;i++)
{ t*=i;
s+=t;
}
printf("%f\n",s);
}
19. 以下程序的功能是:输出以下图案
*
***
*****
*******
*****
***
*
#include <stdio.h>
main()
{ int i,j,k;
printf("a[%d]=%d\n",i,a[i]); } 15. 输入两个整数 m 和 n,求其最大公约数和最小公倍数。 #include <stdio.h> main()
{ int m,n,p,r,t; scanf("%d%d",&m,&n); if(m>n) { t=m;m=n;n=t; } p=m*n; while(m!=0) { r=n%m; n=m; m=r; } printf("%d,%d\n",n,p/n);
3. 利用数组来处理求 Fibonaai 数列问题。 #include <stdio.h>
1
main() { int i; int f[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-1]+f[i-2]; for(i=0;i<20;i++) { if(i%5==0) printf("\n"); printf("%12d",f[i]); } printf("\n"); }
} 10. 求 3-100 的素数。
3
#include <stdio.h> main() { int i,j,w;
for(i=3;i<=100;i++) { w=0;j=2;
do { if(i%j==0) w=1;
j++; } while(j<i&&w==0); if(w==0) printf("%3d",i); } printf("\n"); } 11. 回文数问题。 #include <stdio.h> int fun(int n) { int n1,n2; n1=n;n2=0; while(n!=0) { n2=n2*10+n%10; n/=10; } if(n1==n2) return 1; return 0; } main() { int num; scanf("%d",&num); if(fun(num)) printf("yes\n"); else printf("no\n"); } 12. 判断一个字符串是否为回文。 #include <stdio.h> #include <string.h> main() { int func(char s[]); char str[100]; gets(str); if(func(str)==1) printf("yes!\n"); else printf("no!\n"); } int func(char s[]) { int l,i; l=strlen(s); for(i=0;i<l/2;i++) if(s[i]!=s[l-i-1]) return 0;
{ char s[80],t[80]; get来自百度文库(s); gets(t); fun(s,t); printf("%s\n",s);
} 9. 求同时能被 2、3、5、7 整除的数(1-500)。
#include <stdio.h> main() { int i;
for(i=1;i<=500;i++) if(i%2==0&&i%3==0&&i%5==0&&i%7==0) printf("%d\n",i);
} 8. 写一函数,将两个字符串连接。
#include <stdio.h> void fun(char s[],char t[])
{ int i=0,j=0; while(s[i]) i++; while(t[j]) { s[i]=t[j];i++;j++; } s[i]='\0';
} main()
2. 利用冒泡法对输入的 10 整数进行从小到大排序。 #include <stdio.h> main() { int a[10]; int i,j,t; printf("input numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf("the sorted numbers:\n"); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); }
{ t=a[i][j];a[i][j]=a[j][i];a[j][i]=t; } } main() { int a[3][3]={1,2,3,4,5,6,7,8,9},i,j;
for(i=1;i<=4;i++)
6
{ for(j=1;j<=4-i;j++) printf(" ");
for(k=1;k<=2*i-1;k++) printf("*");
printf("\n"); } for(i=3;i>=1;i--) { for(j=1;j<=4-i;j++)
printf(" "); for(k=1;k<=2*i-1;k++)
gets(s); puts(p(s)); } 14. 一维数组有 10 个元素,将其逆序存放。 #include <stdio.h> main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,t; for(i=0;i<5;i++) { t=a[i];a[i]=a[10-i-1];a[10-i-1]=t; } for(i=0;i<10;i++)
4
return 1; } 13. 将字符串中的小写英文字母转换为大写英文字母。 #include <stdio.h> char *p(char *s) { int i;
for(i=0;s[i]!='\0';i++) if(s[i]>='a'&&s[i]<='z') s[i]-=32;
return s; } main() { char s[100];