[计算机软件及应用]《C语言程序设计》实 验 报 告2.doc

上传人:音乐台 文档编号:1991813 上传时间:2019-01-29 格式:DOC 页数:31 大小:335.50KB
返回 下载 相关 举报
[计算机软件及应用]《C语言程序设计》实 验 报 告2.doc_第1页
第1页 / 共31页
[计算机软件及应用]《C语言程序设计》实 验 报 告2.doc_第2页
第2页 / 共31页
[计算机软件及应用]《C语言程序设计》实 验 报 告2.doc_第3页
第3页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[计算机软件及应用]《C语言程序设计》实 验 报 告2.doc》由会员分享,可在线阅读,更多相关《[计算机软件及应用]《C语言程序设计》实 验 报 告2.doc(31页珍藏版)》请在三一文库上搜索。

1、C语言程序设计实 验 报 告 ( 2 )学号: 姓名: 班级: 成绩:实验名称:函数数组综合实验实验地点:实验室所使用的工具软件及环境:Windows XP系统;VC+6.0 一、实验目的:学会Visual C+ 6.0编辑、编译、连接和执行C程序。掌握C语言语法基础;熟练掌握if语句和switch语句while语句,do-while语句和for语句实现循环的方法。二、实验内容:按题目要求编程并上机调试程序。1、VC+ 6.0上机介绍(请参考VC+5.0完成,)2、课堂练习1.3数组point中存放着m个人的成绩,请编写函数fun,它的功能是:返回高于平均分的人数,并将高于平均分的分数放在hi

2、gh所指的数组中。例如,当point数组中的数据为50、60、65、70、75、80、88、90、95时,函数返回的人数应该是5,high中的数据应为75、80、88、90、95。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下?# include # include # include int fun(int point,int n,int high)int sum,i,j,ave,m;sum=0;for(i=0;in;i+) sum+=pointi;ave=sum/n;m=0,j=0;for(i=0;iave) m+=1;

3、 highj+=pointi; return m;main() int j,m,high9; int point9=50,60,65,70,75,80,88,90,95; FILE *out; m=fun(point,9,high); printf(nHigh the average point are :); out=fopen(outfile.dat,w); for(j=0;jm;j+) printf(%d ,highj); fprintf(out,%dn0,highj); fclose(out);1.3程序运行结果示例:3.2下列给定程序中,函数fun和quest的功能是:用二分法求方程

4、2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。例如,若给m输入-50,给n输入30,则函数求得的一个根值为2.000。请修改程序中的错误,得出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。# include # include double quest(double x) return (2*x*x*x-4*x*x+3*x-6);double fun(double m,double n) /*error*/ double r; r=(m+n)/2; /*error*/ while(fabs(n-m)0.001) if(quest(r)*q

5、uest(n)0) m=r; else n=r; r=(m+n)/2; return r;main() double m,n,result; printf(Please input m n : n); scanf(%lf%lf,&m,&n); result=fun(m,n); printf(result=%6.3fn,result);3.2程序运行结果示例:4.3请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为:357999949998则函数值为72。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括

6、号中填入所编写的若干语句。注意:部分源程序给出如下?# include # include # define M 3# define N 4int fun(int bMN)int i,j,sum=0;for(i=0;iM;i+) for(j=0;jN;j+) if(i=0|i=M-1|j=0|j=N-1) sum+=bij; return sum; main() int aMN=3,5,7,9,9,9,9,4,9,9,9,8; int i,j,sum; FILE *out; printf(The original data is : n); for(i=0;iM;i+) for(j=0;jN;

7、j+) printf(%6d,aij); printf(n); sum=fun(a); printf(nThe sum: %dn,sum); printf(n); out=fopen(outfile.dat,w); fprintf(out,%d,sum); fclose(out); getch();4.3程序运行结果示例: 20.1请补充fun函数,该函数的功能是求一维数组aN的平均值,并对所得结果进行四舍五入保留两位小数。例如,当a10= 23.1,12.3,5.3,56.4,10.0,13.7,24.5,42,1.2,9.9时,输出结果为:average=19.840000。请勿改动主函数

8、main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。注意:部分源程序给出如下?# include # include double fun(double a10) int i; long temp; double average=0.0; double sum=0.0; for(i=0;i10;i+) sum=sum+ai; average=sum/10; average=average+0.005; temp=average*100; average=(double) temp /100; return average;main() double average

9、,a10=23.1,12.3,5.3,56.4,10.0,13.7,24.5,42,1.2,9.9; int i; printf(nThe data :n); for(i=0;i10;i+) printf(%6.1f,ai); printf(nn); average=fun(a); printf(The average=%fnn,average); getch();20.1程序运行结果示例: 21.3请编写一个函数void fun(char orig,char result,int flg),其功能是:删除一个字符串中指定下标的字符。其中,orig指向原字符串,删除后的字符串存放在result

10、所指的数组中,flg中存放指定的下标。例如,输入一个字符串:Hello World,然后输入4,则调用该函数后的结果为:Hell World。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下.# include # include # define NUM 100void fun(char orig,char result,int flg) int m,i,k=0; for(i=0;istrlen(orig);i+) if(i=flg-1) continue; else resultk+=origi; main() char

11、s1NUM,s2NUM; int flg; FILE *out; printf(Please Input s1:n); gets(s1); printf(Input want to deleted:); scanf(%d,&flg); fun(s1,s2,flg); printf(The result is:%sn,s2); fun(test String,s2,9); out=fopen(outfile.dat,w); fprintf(out,%s,s2); fclose(out); getch();21.3程序运行结果示例:22.2下列给定程序中函数fun的功能是:用选择法对数组中的n个元

12、素按从小到大的顺序进行排序。请修改程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构?# include # define M 100void fun(int sort,int n) int i,j,temp,p; for(j=0;jn-1;j+) /*error*/ p=j; for(i=j;in;i+) if(sortisortj) /*error*/ p=i; temp=sortp; sortp=sortj; sortj=temp; main() int sortM=23,3,67,-2,9,-6,27,12,i,num=8; prin

13、tf(before sort:); for(i=0;inum;i+) printf(%d,sorti); printf(n); fun(sort,num); printf(after sort:); for(i=0;inum;i+) printf(%d,sorti); printf(n); getch();22.2程序运行结果示例:31.3编写程序,实现矩阵(3行列)的转置(即行列互换)。例如,若输入下面的矩阵:123456789则程序输出:147258369请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下?# include

14、 # include void fun(int a33)int i,j,t,b33;for(i=0;i3;i+) for(j=0;j3;j+) bji=aij;for(i=0;i3;i+) for(j=0;j3;j+) aij=bij;main() int i,j; int a33=1,2,3, 4,5,6, 7,8,9; FILE *out; for(i=0;i3;i+) for(j=0;j3;j+) printf(%7d,aij); printf(n); fun(a); printf(Converted a:n); out=fopen(outfile.dat,w); for(i=0;i3;

15、i+) for(j=0;j3;j+) printf(%7d,aij); fprintf(out,%7d,aij); printf(n); fprintf(out,n); fclose(out); getch();31.3程序运行结果示例:43.1请补充fun函数,该函数的功能是:把字符串s中的字符按字符的ASCII码升序排列,处理后的字符串仍然保存在原串中,字符串及其长度作为函数参数传入。例如,如果输入edcba,则输出为abcde。请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。注意:部分源程序给出如下?# include # define N

16、 100void fun(char p,int n) int i,j; char t; for(i=0;in;i+) for(j=i+1;jpj) t=pj; pj=pi; pi=t; main() int i=0,strlen=0; char sN; printf(Please input a string:n); gets(s); while(si!=0) strlen+; i+; fun(s,strlen); printf(Display string n); puts(s); getch();43.1程序运行结果示例:73.3请编写函数fun,其功能是:计算并输出给定10个数的方差:例

17、如,给定的10个数为76.0、65.0、72.0、85.0、57.0、67.0、45.0、92.0、44.0、58.0,则输出为F=14.982990。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。# include # include double fun(double y10)int i;double k,f,ave,sum;sum=0,k=0;for(i=0;i10;i+) sum+=yi; ave=sum/10;for(i=0;i10;i+) k+=(ave-yi)*(ave-yi); f=sqrt(k/10);r

18、eturn f; main() double f,y10=76.0,65.0,72.0,85.0,57.0,67.0,45.0,92.0,44.0,58.0; int i; FILE *out; printf(nThe original data is :n); for(i=0;i10;i+) printf(%6.1f,yi); printf(nn); f=fun(y); printf(f=%fnn,f); out=fopen (outfile.dat,w); fprintf(out,%f,f); fclose (out); getch();73.3程序运行结果示例:三、作业3.3请编写函数v

19、oid fun(int y,int b,int*m),它的功能是:求出能整除y且是奇数的各整数,并按从小到大的顺序放在b所指的数组中,这些除数的个数通过形参m返回。例如,若y中的值为90,则有4个数符合要求,它们是1、3、5、9、15、45。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。# include # include void fun(int y,int b,int *m) int i,n; n=0; for(i=1;iy;i+) if(i%2=1)&(y%i=0) bn=i; n+; *m=n;main() in

20、t y,a500,m,j; FILE *out; printf(nPlease input an integer number:n); scanf(%d,&y); fun(y,a,&m); for(j=0;jm;j+) printf(%d ,aj); printf(n); fun(730,a,&m); out=fopen(outfile.dat,w); for(j=0;jm;j+) fprintf(out,%dn,aj); fclose(out); getch(); 3.3程序运行结果示例: 4.2下列给定程序中,函数fun的功能是:判断字符ch是否与s所指串中的某个字符相同,若相同,则什么也

21、不做;若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的操作。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构?# include # include # include /*error*/void fun(char s,char c) while(*s & *s!=c) s+; /*error*/ if(*s!=c) s0=c; /*error*/ s1=0; main() char str81,ch; printf(n Please enter a string:n); gets(str); printf(n Please enter the characte

22、r to search:); ch=getchar(); fun(str,ch); printf(nThe result is %sn,str); getch();4.2程序运行结果示例:5.3编写函数int fun(int mm,int bMAX),该函数的功能是求出小于或等于mm的所有素数,并放在b数组中,该函数返回所求出的素数的个数。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下?# include # include # define MAX 100int fun(int mm,int bMAX)int k=0,n,

23、i,j;for(i=2;i=mm;i+) n=i/2; for(j=2;j=n+1) bk+=i; return k;main() int m,i,sum; int bMAX ; FILE *out; printf(input a data:n); scanf( %d,&m); sum=fun(m,b); for(i=0 ;isum;i+) if(i%10=0 & i!=0) printf(n); printf(%5d,bi); sum=fun(28,b); out=fopen(outfile.dat,w); for(i=0 ;isum;i+) fprintf(out,%dn,bi); fcl

24、ose(out); getch();5.3程序运行结果示例: 18.1请补充fun函数,该函数的功能是求不超过给定自然数的各奇数之和。例如,输入34,则输出结果为289。请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。注意:部分源程序给出如下?# include int fun(int n) int i,sum; sum=0; for(i=1;i=n;i+=2) sum+=i; return sum;main() int a; do printf(nPlease enter natural numbers a:); scanf(%d,&a); w

25、hile(a=0); printf(n不超过给定自然数%d的各奇数之和为%dn,a,fun(a); getch();18.1程序运行结果示例:20.3编写函数fun,函数的功能是:根据以下公式计算,计算结果作为函数值返回。 s=1+1/(1+2)+1/(1+2+3)+.+1/(1+2+3+.+n)p通过形参传入,例如,若p的值为21时,函数的值为1.909091。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。# include# include# includefloat fun(int n)int i,k=0;float

26、 s=0.0;for(i=1;i=n;i+) k+=i; s+=1.0/k; return s;main() int n; float str; FILE *out; printf(nPlease input the integer n:); scanf(%d,&n); str=fun(n); printf(The result is: %fn,str); str=fun(10); out=fopen(outfile.dat,w); fprintf(out,%f,str); fclose(out); getch();20.3程序运行结果示例:22.3请编写一个函数fun,它的功能是:计算并输出

27、给定整数m的所有因子(不包括1与自身)之和。规定m的值不大于1000。例如,若主函数从键盘给m输入的值为111,则输出为sum=40。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。# include int fun(int m) int i; float sum=0.0; for(i=2;im;i+) if(m%i=0) sum+=i; return sum;main() int n,num; FILE *out ; printf(Input m: ); scanf(%d,&n); num=fun(n); printf(n

28、um=%dn,num); out=fopen (outfile.dat,w); fprintf(out,%dn,fun(123); fprintf(out,%dn,fun(456); fprintf(out,%dn,fun(789); fclose (out); getch();22.3程序运行结果示例:23.1s是一个由数字和字母字符组成的字符串,由变量len传入字符串长度。请补充fun函数,该函数的功能是把字符串s中的数字字符转换成数字并存放到整型数组a中,函数返回数组a的长度。例如,s=Abc123e456hui7890,结果为:1234567890。请勿改动主函数main与其他函数中的

29、任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。注意:部分源程序给出如下。# include # define M 80int aM;int fun(char s,int a,int len) int j,m=0; for(j=0;j=0& sj=9) am=sj-0; m+; return m;main() char sM; int len=0,m,j; printf(Please input a string :n); gets(s); while(slen) len+; m=fun(s,a,len); printf(nThe result string ); for(j=0;

30、j3)的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1F(n)=F(m-1)+F(m-2)例如,当a=500时,函数值为610。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。# include # include # include int fun(int a) int i,f100=0,1; for(i=2;ia) return fi; main() int m; FILE *out; m=500; printf(m=%d,F=%dn,m,fun(m); out=fo

31、pen (outfile.dat,w); for(m=500;m3000;m+=500) fprintf(out,%dn,fun(m); fclose (out); getch();23.3程序运行结果示例:31.3编写程序,实现矩阵(3行列)的转置(即行列互换)。例如,若输入下面的矩阵:123456789则程序输出:147258369请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。# include # include void fun(int a33) int i,j,t,b33; for(i=0;i3;i+) for(

32、j=0;j3;j+) bji=aij; for(i=0;i3;i+) for(j=0;j3;j+) aij=bij;main() int i,j; int a33=1,2,3, 4,5,6, 7,8,9; FILE *out; for(i=0;i3;i+) for(j=0;j3;j+) printf(%7d,aij); printf(n); fun(a); printf(Converted a:n); out=fopen(outfile.dat,w); for(i=0;i3;i+) for(j=0;j3;j+) printf(%7d,aij); fprintf(out,%7d,aij); pr

33、intf(n); fprintf(out,n); fclose(out); getch();31.3程序运行结果示例:33.1请补充main函数,该函数的功能是:计算两个自然数n1和n2(n210000)之间所有数的和,n1和n2从键盘输入。例如,当n1=1,n2=100时,sum=5050。仅在横线上填写所需的若干表达式或语句,请勿改动函数中的其他任何内容。注意:部分源程序给出如下。# include # include main() int n1,n2; long sum; sum=0; printf(Please input two numbers n1,n2n); scanf(%d,%

34、d,&n1,&n2); while(n1=n2) sum+=n1; n1+; printf(sum=%ldn,sum); getch();33.1程序运行结果示例:53.1请补充fun函数,该函数的功能是:把字符下标能被2和3同时整除的字符从字符串s中删除,把剩余的字符重新保存在字符串s中。字符串s从键盘输入,其长度作为参数传入fun函数。例如,输入abcdefghijk,则输出bcdefhijk。请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。注意:部分源程序给出如下。# include # define N 100void fun(char

35、p,int n) int i,k; k=0; for(i=0;in;i+) pk+=pi; if(i%2=0)& (i%3=0) k-; pk=0;main() int i=0,strlen=0; char sN; printf(Please input a string:n); gets(s); while(si!=0) strlen+; i+; fun(s,strlen); printf(The new stringn); puts(s); getch();53.1程序运行结果示例:93.2数列中,第一项值为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功能是:计算前n(4n5

36、0)项的累加和;在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数。例如,当n的值为10时,符合此条件的累加值应为42、126。请修改函数fun中的错误,得出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。# include # define M 10int fun(int n,int *b) /*error*/ int i,j=0,k,sum; sum=0; for(k=3,i=0;in;i+,k+=5) sum=sum+k; /*error*/ if(sum%4=2) bj+=sum; return j;main() int bM,m,n,i;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1