上机程序调试及程序设计练习(编辑修改稿)内容摘要:

( 5) 输入 x和正数 eps,计算多项式 1x+x*x/2x*x*x/3!+…… 的和直到末项的绝对值小于 eps 为止。 include include void main() { float x,eps,s=1,t=1,i=1。 scanf(%f%f,amp。 x,amp。 eps)。 do { /***** 1 *****/ t=t*x/++i。 // t=t*x/i++。 s+=t。 /***** 2 *****/ } while(fabs(t)eps)。 // } while(fabs(t)=eps)。 printf(%f\n,s)。 } ( 6) 运行时若输入 a、 n 分别为 6,则输出下列表达式的值: 3+33+333+3333+33333+333333。 include void main() { int i,a,n。 long t=0。 /********* 1 *******/ s=0。 // long s=0。 scanf(%d%d,amp。 a,amp。 n)。 for(i=1。 i=n。 i++) { /******* 2 ******/ t=t*10+i。 // t=t*10+1。 s=s+t。 } s=s*a。 printf(%ld\n,s)。 上机程序调试及程序设计练习 11 of 26 10/3/2020 } ( 7) 用递归法将一个六位整 数 n 转换称字符串。 例如:输入 123456,应输 出 字符串 123456。 include void itoa(long i,char *s) { if(i==0) return。 /****** 1 ******/ *s = 39。 139。 +i%10。 // *s=i%10+39。 039。 itoa(i/10,s1)。 } void main() { long n。 char str[7]=。 scanf(%ld,amp。 n)。 /****** 2 ******/ itoa(n,str+6)。 // itoa(n,str+5)。 printf(%s,str)。 } ( 8) 输入 n,再输入 n 个点的平面坐标,然后输出那些距离坐标原点不超过 5 的点的坐标值。 include include include void main() { int i,n。 /***** 1 *****/ struct axy { float x,y。 } a。 // struct axy { float x,y。 } *a。 scanf(%d,amp。 n)。 a=(float*) malloc(n*2*sizeof(float))。 for(i=0。 in。 i++) /***** 2 *****/ scanf(%f%f,a[i].x,a[i].y)。 // scanf(%f%f,amp。 a[i].x,amp。 a[i].y)。 for(i=0。 in。 i++) if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)=5) printf(%f,%f\n,a[i].x,a[i].y)。 } ( 9) 运行时输入 n,则输出 n 的所有质数因子。 例如: n=13860,则输出 11。 include void main() { int n,i。 scanf(%d,amp。 n)。 /****** 1 ******/ 上机程序调试及程序设计练习 12 of 26 10/3/2020 i=1。 // i=2。 while(n1) if(n%i==0) { printf(%d\t,i)。 n/=i。 } else /******** 2 *******/ n++。 // i++。 } 三、编写程序 ( 1) 在正整数中找出 1个最小的、被 9除余数分别为 7 的数,将该数以格式 %d写入到考生文件夹中 Paper 子文件夹下的新建文 件 中。 include include void main() { /*考生在这里添加代码 */ FILE *p。 int i。 p=fopen(,w)。 for( i=1。 i++) if (i%3==1 amp。 amp。 i%5==3 amp。 amp。 i%7==5 amp。 amp。 i%9==7) break。 fprintf(p,%d,i)。 fclose(p)。 } ( 2) 若 a、 b 为 1 对亲密数,则 a 的因子和等 于 b、 b 的因子和等于 a、且 a 不等于 b。 如: 2 284是 1 对亲密数, 28 220也是 1 对亲密数。 在 6~5000 内找出所有的亲密数对,并将每对亲密数用语句 fprintf( p, %6d, %6d\n, a, b)写入到考生文件夹中 Paper 子文件夹下的新建文件。 include void main() { FILE *p。 int a,b,c,k。 p=fopen(,w)。 /*考生在这里添加代码 */ for(k=6。 k=5000。 k++) { b=0。 c=0。 for(a=1。 ak。 a++) if (k%a==0) b+=a。 for(a=1。 ab。 a++) if (b%a==0) c+=a。 if (k==camp。 amp。 k!=b) fprintf(p,%6d,%d\n,k,b)。 上机程序调试及程序设计练习 13 of 26 10/3/2020 } fclose(p)。 } ( 3) 设计程序:计算字符串 s 中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的 ASCII 码值的乘积。 位置值从 1开始 依此递增。 将每个字符的权重值,以格式 %d 写入到源程序目录中 Paper 子目录下的新建文件 中。 include include void main() { FILE *p。 int i,w。 char *s=we45*amp。 y3r$1。 /*考生在这里添加代码 */ p=fopen(,w)。 for (i=0。 s[i]!=39。 \039。 i++) { w=(i+1)*s[i]。 fprintf( p,%d ,w)。 } fclose(p)。 } ( 4) 将数组 a的每一行均除以该行上绝对值最大的元素,然后将 a 数组写入到考生文件夹中 Paper 子文件夹下的新建文件。 include include void main() { float a[3][3]={{,},{2,3,},{3,4,}}。 FILE *p。 float x。 int i,j。 /*考生在 这里添加代码 */ for (i=0。 i3。 i++) { x=a[i][0]。 for (j=1。 j3。 j++) if (a[i][j]x) x=a[i][j]。 for (j=0。 j3。 j++) a[i][j]/=x。 } /***添加代码结束 ***/ p=fopen(,w)。 for(i=0。 i3。 i++) { for(j=0。 j3。 j++) fprintf(p,%,a[i][j])。 fprintf(p,\n)。 } 上机程序调试及程序设计练习 14 of 26 10/3/2020 fclose(p)。 } ( 5) z=f(x,y)=(*xy)/(x+y),若 x、 y 取值为区间 [1, 6]的整数,找出使 z 取最小值的 x y1,并将x y1 以格式 %d,%d写入到考生文件夹中 Paper 子文件夹下的新建文件。 include void main() { FILE *p。 float f(float x,float y),min。 int x,y,x1,y1。 /*考生在这 里添加代码 */ min=f(1,1)。 x1=y1=1。 for (x=1。 x=6。 x++) for (y=1。 y=6。 y++) if (f(x,y)min) { min=f(x,y)。 x1=x。 y1=y。 } p=fopen(,w)。 fprintf(p,%d,%d,x1,y1)。 fclose(p)。 /***添加代码结束 ***/ } float f(float u,float v) { return (*uv)/(u+v)。 } ( 6) z=f(x,y)=10*cos(x4)+5*sin(y2), 若 x、 y 取值为区间 [0, 10]的整数 , 找出使 z 取最小值的 xy1, 并将 x y1以格式 %d,%d写入到考生文件夹中 Paper 子文件夹下的新建文件。 include include void main() { FILE *p。 int x,y,x1,y1。 float z,z1。 /*考生在这里添加代码 */ z1=10*cos(4)+5*sin(2)。 x1=y1=0。 for (x=0。 x=10。 x++) for (y=0。 y=10。 y++) { z=10*cos(x4)+5*sin(y2)。 if (zz1) { z1=z。 x1=x。 y1=y。 } } p=fopen(,w)。 fprintf(p,%d,%d,x1,y1)。 fclose(p)。 } ( 7) 设计程序 : 数组元素 x[i]、 y[i]表示平面上某点 坐标 , 统计所有各点间最短距离 , 并将其值以格式 %f写到源程序目录中 Paper 子目录下的新建文件 中。 上机程序调试及程序设计练习 15 of 26 10/3/2020 include include define len(x1,y1,x2,y2) sqrt((x1x2)*(x1x2)+(y1y2)*(y1y2)) void main() { FILE *p。 int i,j。 float c,minc。 float x[]={,,,}。 float y[]={6,,,}。 minc=len(x[0],y[0],x[1],y[1])。 /*考生在这里添加代码 */ for (i=0。 i10。 i++) for (j=i+1。 j10。 j++) // 注意 :不能为 for (j=0。 j10。 j++) { c=len(x[i],y[i],x[j],y[j])。 if (cminc) minc=c。 } p=fopen(,w)。 fprintf(p,%f,minc)。 fclose(p)。 } ( 8) 设计程序:在数组 x的 10 个数中求平均值 v,找出与 v相差最小的数组元素并将其以格式 %.5f写到考生目录中 Paper 子目录下的新建文件 中。 include include。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。