{for(j=0;j printf(\ printf(\ } for(j=0;j printf(\第%d列的最小值=%d\\n\ } printf(\各列最小值之和=%d\\n\} int f(int m[]) {int i,min; min=m[0]; for(i=1;i if(min>m[i])min=m[i]; return min; } 3. 已知80名学生的《计算机程序设计C》课程的成绩,求其平均成绩。要求主函数中输入成绩,将数组名作为函数参数传递,用被调函数求平均成绩。 #include {int i,n=80,g[80]; float p; for(i=0;i printf(“平均成绩:%g\\n”,p); } float v(int g[],int n) {float i,p=0; for(i=0;i 实验十七 1. 用递归方法编写求斐波那契数列的函数,返回值为长整型。斐波那契数列的定义为: f(n) =1 n = 1, 2 f(n) = f(n-1)+f(n-2) n > 2 并写出相应主函数。 #include printf(“n=”); scanf(“%d”,&n); for(i=0;i<=n;i++) printf(“%d,”,fib(i)); printf(“…\\n”); } int fib(int n) { if(n==0) return 0; if(n==1) return 1; if(n>1) return fib(n-1)+fib(n-2); } 2. 写出计算级数和1+2+3+…+n的递归函数和相应的主调函数,并计算出1+2+3+…+100的和。(此题为选做) #include printf(\\\n\} int jsh(int n) {int p; p=n; if(n==0) return 0; if(n>0)p=p+jsh(n-1); return p; } 实验十八 1. 编程统计一个文本文件(该文件您自已此前已建立)中字母、数字及其它字符各有多少个。 #include int zm=0,sz=0,qt=0; FILE *fp; fp=fopen(“file1.txt”,“r”); if(fp==NULL) {printf(“不能打开文件file1.txt\\n”);exit(0);} while(!feof(fp)) {ch=fgetc(fp); if((ch>=‘a’&&ch<=‘z’)||( ch>=‘A’&&ch<=‘Z’)) zm++; else if(ch>=‘0’&&ch<=‘9’) sz++; else qt++; } fclose(fp); printf(“zm=%d\\n”,zm); printf(“sz=%d\\n”,sz); printf(“qt=%d\\n”,qt); } 可用以下程序,建立文件file1.txt,并写入20个字符到文件中。 #include \main() {int i; char ch; FILE *fp; if((fp=fopen(\ {printf(\ exit(0); } for(i=0;i<20;i++) {ch=getchar(); fputc(ch,fp); } fclose(fp); } 2. 文本文件int.txt中包含若干整数,请把文件中所有数据相加,并把累加和写入文件最后。 #include {int a,sum=0; FILE *fp; fp=fopen(\if(fp==NULL) {printf(\不能打开文件file2.txt\\n\while(!feof(fp)) {fscanf(fp,\ sum+=a; } fclose(fp); fp=fopen(\ if(fp==NULL) {printf(\不能打开文件file2.txt\\n\fprintf(fp,\fclose(fp); } 可用以下程序,建立文件file2.txt,并写入10个整数到文件中。 #include \main() {int i,a; FILE *fp; if((fp=fopen(\ {printf(\ exit(0); } for(i=0;i<10;i++) {scanf(\ fprintf(fp,\ } fclose(fp); } 3. 设文件number.dat中存放了一组整数,请编程统计并输出文件中正整数、零和负整数的个数。(此题为选做) 4. 编写一个程序,能将键盘上输入的内容以写字符的方式存入文件,直到输入一个?*?为止,然后用读字符串的方式从文件中读出数据并显示在屏幕上。(此题为选做)