程序设计题答案.docx
- 文档编号:24436135
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:18
- 大小:23.81KB
程序设计题答案.docx
《程序设计题答案.docx》由会员分享,可在线阅读,更多相关《程序设计题答案.docx(18页珍藏版)》请在冰豆网上搜索。
程序设计题答案
1.请编写函数fun,其功能时:
计算并输出下列多项式的值:
sn=1+1/1!
+1/2!
+1/3!
+1/4!
+…+1/n!
doublefun(intn)
{doubles=1.0,t=1.0;
inti;
for(i=1;i<=n;i++)
{t*=i;
s+=1/t;}
returns;}
2.请编写函数fun:
计算并输出下列多项式值:
sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n).
doublefun(intn)
{doubles=0,k=1.0;
inti;
for(i=1;i<=2*n;i++)
{s+=k/i;
k=-k;}
returns;}
3.
doublefun(intn)
{doubles=0,t=1.0;
inti;
for(i=1;i<=n;i++)
{t*=i;
s+=1/t;}
returns;}
4.请编写函数fun:
s=1+(1+2(0.5))+(1+2(0.5)+3(0.5))+…+(1+2(0.5)+3(0.5)+…+n(0.5))
doublefun(intn)
{doubles=0,t=0;
inti;
for(i=1;i<=n;i++)
{t+=sqrt(i);
s+=t;}
returns;}
5.请编写函数fun:
计算并输出当x<0.97时下列多项式的值,直到|sn-s(n-1)|<0.000001为止。
Sn=1+0.5x+0.5(0.5-1)/2!
x
(2)+…+0.5(0.5-1)(0.5-2)…..(0.5-n+1)/n!
x(n)
doublefun(doublex)
{doubles=0.0,s1=1.0,s0=0,p=1.0,t=1.0;
intn=1;
do
{s0=s1;
s+=s0;
t*=n;
p*=(0.5-n+1)*x;
s1=p/t;
n++;}while(fabs(s1-s0)>1e-6);
returns;}
6.请编写函数fun:
计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
doublefun(intn)
{inti;
doublesum=0.0;
for(i=1;i<=n;i++)
if(i%5==0||i%9==0)sum+=1.0/i;
returnsum;=
7.请编写函数fun:
计算并输出给定整数n的所有因子(不包括1与自身)之和。
规定n的值不大于1000。
intfun(intn)
{ints=0,i;
for(i=2;i<=n-1;i++)
if(n%i==0)s+=i;
returns;}
8.请编写函数fun,其功能是:
计算并输出3到n之间所有素数的平方根之和。
doublefun(intn)
{intm,ki;
doubles=0.0;
for(m=3;m<=n;m++)
{k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)s+=sqrt(m);
9.编写函数intfun(intlim,intaa[max]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
intfun(intlim,intaa[MAX])
{inti,j,k=0;
for(i=2;i<=lim;i++)
{for(j=2;j
if(i%j==0)
break;
if(j==i)
aa[k++]=i;}
returnk;}
10.函数floatfun(doubleh):
使对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值位正数)。
floatfun(floath)
{longt;
t=(h*1000+5)/10;
return(float)t/100;}
11.请编写一个函数unsignedfun(unsignedw),w使一个大于10的无符号整数,若w使n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。
unsignedfun(unsignedw)
{unsignedt=1,u=w;
while(u>=10)
{u=u/10;
t*=10;}
returnw%t;}
12.程序定义了n×n的二维数组,并在主函数中自动赋值。
请编写函数fun,该函数的功能是:
使数组左下半三角元素中的值乘以n。
voidfun(inta[][N],intn)
{inti,j;
for(i=0;i for(j=0;j<=i;j++) a[i][j]*=n;} 13.下列程序定义了n×n的二维数组,并在主函数中自动赋值。 请编写函数fun(inta[][n],intn),该函数的功能是: 将数组右上半三角元素中的值乘以m。 voidfun(inta[][n],intm) {inti,j; for(j=0;j for(i=0;i<=j;i++) a[i][j]*=m;} 14.下列程序定义了n×n的二维数组,并在主函数中自动赋值。 请编写函数fun(inta[][n]),该函数的功能是: 使数组左下半三角元素中的值全部置成0。 intfun(inta[][N]) {inti,j; for(i=0;i for(j=0;j<=i;j++) a[i][j]=0;} 15.请编写函数fun,该函数的功能是: 将m行n列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的储存单元中。 voidfun(int(*s)[10],int*b,int*n,intmm,intnn) {inti,j; for(i=0;i for(j=0;j b[(*n)++]=s[i][j];} 16.请编写函数fun: 将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 voidfun(chars[][N],char*b) {inti,j,n=0; for(i=0;i {for(j=0;j if(s[j][i]) b[n++]=s[j][i];} b[n]='\0';} 17.下列程序定义了n×n的二维数组,并在主函数中赋值。 请编写函数fun: 求出数组周边元素的平均值并作为函数值返回给主函数中的s。 doublefun(intw[][N]) {intj; doubles=0; for(j=0;j {s+=w[0][j]; s+=w[j][0]; s+=w[N-1][j]; s+=w[j][N-1];} s=s-w[0][0]-w[N-1][N-1]-w[N-1][0]-w[0][N-1]; returns/(4*N-4);} 18.写函数fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。 二维数组中的值在主函数中赋予。 intfun(inta[M][N]) {inti,j,s=0; for(j=0;j<N;j++= {s+=a[0][j]; s+=a[M-1][j];} for(i=1;i<=M-2;i++= {s+=a[i][0]; s+=a[i][N-1];} returns;) 19.编写程序,实现矩阵(3行3列)的转置(即行列互换)。 voidfun(intarray[3][3]) {inti,j,temp; for(i=0;i<3;i++) for(j=0;j<i;j++) {temp=array[i][j]; array[i][j]=array[j][i]; array[j][i]=temp;} 20.请编写一个函数voidfun(inttt[m][n],intpp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。 二维数组中的数已在主函数中赋予。 voidfun(inttt[M][N],intpp[N]) {inti,j,min; for(j=0;j {min=tt[0][j]; for(i=0;i {if(tt[i][j]<min) min=tt[i][j];} pp[j]=min; 21.已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入a结构体数组中。 请编写函数fun,该函数的功能是: 找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。 voidfun(stua[],stu*s) {inti; *s=a[0]; for(i=1;i if(a[i].s>(*s).s) *s=a[i];} 22.已知学生的记录由学号和学习成绩构成,n名学生的数据已存入a结构体数组中。 编写函数fun,该函数的功能: 找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 voidfun(stua[],stu*s) {inti; *s=a[0]; for(i=0;i if(a[i].s<(*s).s) *s=a[i];} 23.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。 请编写函数fun,它的功能是: 求出该学生的平均分放在记录的ave成员中。 请自己定义正确的形参。 voidfun(STREC*a) {inti; for(i=0;i a->ave+=a->s[i]/N;} 24.学生的记录由学号和成绩组称个,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是: 把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 doublefun(STREC*a,STREC*b,int*n) {inti; doubleave=0; *n=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)