版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二部份 C程序设计上机操作题2一、数列求和2二、最大公约数、最小公倍数6三、排序算法7四、数组8五、求整数n的各位数字及各数字之和11六、平面上各点之间的距离13七、数制转换16八、字符串处理17九、最大值与最小值23十、斐波那契(Fibonacci)数列26十一、水仙花、完数、回文数与亲密数27十二、方程求根29十三、回文数、因子、质因子、素数32十三、其他算法33第二部份 C程序设计上机操作题一、数列求和1、程序调试题试题一该程序功能:输入x和正数eps,计算多项式1-x+x*x/2!-x*x*x/3!+.的和直到末项的绝对值小于eps为止。#include #include void
2、main() float x,eps,s=1,t=1,i=1; scanf(%f%f,&x,&eps); do /* 1 */ t=-t*x/+i; /+i-i+ s+=t; /* 2 */ while(fabs(t)eps); / = printf(%fn,s);试题二该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+333333#include void main() int i,a,n; long t=0; /* 1 */ s=0; /s=0-long s=0 scanf(%d%d,&a,&n); for(i=1;i=n;i+) /
3、* 2 */ t=t*10+i; /i-1 s=s+t; s=s*a; printf(%ldn,s);2、程序填空题试题一程序功能:调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。#include float f(float, float*,int);void main( ) float b5=1.1,2.2,3.3,4.4,5.5;printf(“%fn”,f(1.7,b,5);float f( 1 ) / float f( float x, float a , int n) float y=a0,t=1; int i
4、;for(i=1;in;i+) t=t*x; y=y+ai*t; 2 ; / return y3、程序设计题试题一设计程序:计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+的值,并将其值以格式%.6f写入到考生目录中Paper子目录下的新建文件design.dat中。#include#includevoid main() FILE *p; int i; float x=2.345,t=1.0,y=0.0; float a10=1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9; /* 考生在这里添加代码 p=fope
5、n(“design.dat”,”w”); y=a0;for(i=1;i10;i+)t=t*x; y=y+ai*sin(t); fprintf(p,”%.6f”,y);fclose(p);试题二计程序:计算多项式a0-a1*x+a2*x*x/2!-a3*x*x*x/3!+.的值,并将其以格式%f写到考生目录中Paper子目录下的新建文件design.dat中。#include #include void main() FILE *p; int i; float x=1.279,t,y; float a10=1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.6
6、5; / 考生在这里添加代码 p=fopen(“design.dat”,”w”);t=1; y=a0; for(i=1;i10;i+)t=-t*x/i; y=y+ai*t;fprintf(p,%f,y);fclose(p);试题三设计程序:计算表达式1+2!+3!+.+12!的值,并将计算结果以格式%ld 写入到考生目录中Paper子目录下的新建文件design.dat中 #include void main() FILE *p; long s=1,k=1; int i; /考生在这里添加代码 p=fopen(design.dat,w); for(i=2;i=12;i+) k=i*k; s=s
7、+k; fprintf(p,%ld,s); fclose(p);试题四设计程序:计算多项式a0+a1*x+a2*x*x+a3*x*x*x+.的值,并将其值以格式%f写到考生目录中Paper子目录下的新建文件design.dat中。#include #include void main() FILE *p; int i; float x=1.279,t=1,y=0; float a10=1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65; / 考生在这里添加代码 p=fopen(design.dat,w);for(i=0;i10;i+) y=y+t*ai
8、; t=t*x; fprintf(p,%f,y); fclose(p);试题五设计程序:计算2的平方根、3的平方根、.、10的的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式%.10fn写到考生目录中Paper子目录下的新建文件design.dat中。 #include #include void main() FILE *p; /考生在这里添加代码 int i; float s=0; p=fopen(design.dat,w); for(i=2;i=10;i+) s=s+sqrt(i); fprintf(p,%.10f,s); fclose(p);试题六设计程序:数列第1项为8
9、1,此后各项均为它前1项的正平方根,统计该 数列前30项之和,并以格式%.3f写到考生目录中Paper子目录下的新建文件design.dat中。#include #include void main() FILE *p; float s=0,a=81,i; /考生在这里添加代码 p=fopen(design.dat,w); for(i=1;i=30;i+)s=s+a;a=sqrt(a); fprintf(p,%.3f,s); fclose(p);试题七在数组a的10个数中求平均值v,将大于等于v的数组元素进行求和,并将结果以格式%.5f写到考生目录中Paper子目录下的新建文件design.d
10、at中。#include void main() FILE *p; int i; float a10=7.23,1.5,5.24,2.1,2.45,6.3,5,3.2,0.7,9.81,sum,v=0; /考生在这里添加代码 p=fopen(design.dat,w); for(i=0;i10;i+)v=v+ai/10;sum=0; for(i=0;iv)sum=sum+ai; fprintf(p,%.5f,sum); fclose(p); 试题八设计程序: 利用公式/41-1/3+1/5-1/7+公式计算的近似值,直到某一项的绝对值小于1e-6为止。 (/4的结果不包含此项)将结果以格式%.
11、6f写入到考生目录中Paper子目录下的新建文件design.dat中。 #include #include void main() FILE *fp; float n=1,t=1,pi=0; int i; /考生在这里添加代码 fp=fopen(design.dat,w); while(1.0/t=1e-6) pi=pi+n*1.0/t;t=t+2;n=-n;pi=pi*4;fprintf(fp,%.6f,pi);fclose(fp);二、最大公约数、最小公倍数1、程序调试题试题一该程序功能:输入m、n(要求输入数均大于0,且m=n),输出它们的最小公倍数。 #include void ma
12、in() int m,n,k; /* 1 */while(scanf(%d%d,&m,&n),m0 & n0); / m0 & n0&n0&m=n) for(k=m; k%n!=0;) /* 2 */ k=k+n; /改为:k=k+m printf(%dn,k);2、程序填空题试题一该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。 #include void main() int m,n,k; while(scanf(%d%d,&m,&n), _1_ ); /!(n0&m0) for( _2_; n%k!=0|m%k!=0; k-); /k=m或k=n printf(%dn
13、,k);三、排序算法1、程序调试题该程序功能:用选择法对10个整数按升序排序。#include #define N 10void main() int i,j,min,temp; int aN=5,4,3,2,1,9,8,7,6,0; printf(nThe array is:n); /* 输出数组元素 */ for (i=0;iN;i+) printf(%5d,ai); for (i=0;iN-1;i+) /* 排序操作 */ min = i; for (j=i+1; jN; j+) /* 1 */ if (amin=aj) min =j; / /* 2 */ temp=amin; amin
14、=aj; aj=temp; /* 数据交换 */ /j-i printf(nThe sorted numbers: n); /* 输出排序结果 */ for (i=0;iN;i+) printf(%5d,ai); printf(n);2、程序设计题该程序功能:用冒泡法对10个整数按升序排序。#include #define N 10void main() int i,j,min,temp; int aN=5,4,3,2,1,9,8,7,6,0; printf(nThe array is:n); /* 输出数组元素 */ for (i=0;iN;i+) printf(%5d,ai);/for (
15、i=0;iN;i+) /* 排序操作 */ for (j=0; jaj+1) temp=aj; aj=aj+1; aj+1=temp; /* 数据交换 */ printf(nThe sorted numbers: n); /* 输出排序结果 */ for (i=0;iN;i+) printf(%5d,ai); printf(n);四、数组1、程序填空题试题一该程序功能:输入数组x7,调用函数f,去除数组中的负数,输出结果为:1 3 4 6#include void f(int *a,int *m) int i,j; for(i=0;i*m;i+) if(ai0) for(j=i-;j*m-1;
16、j+) aj=aj+1; _1_; /(*m)- void main() int i,n=7,x7=1,-2,3,4,-5,6,-7; _2_; /f(x,&n) for(i=0;in;i+) printf(%5d,xi); printf(n);试题二该程序功能:函数f将数组循环左移k个元素,数组x7调用函数f后的输出结果为:4 5 6 7 1 2 3 #include void f(int *a,int n,int k) int i,j,t; for(i=0;ik;i+) _1_; /t=a0 for( _2_ ) aj-1=aj; /j=1;jn;j+ an-1=t; void main(
17、) int i,x7=1,2,3,4,5,6,7; f(x,7,3); for(i=0;i7;i+) printf(%5d,xi); printf(n);试题三该程序功能:调用函数f,求二维数组a中全体元素之和。 #include float f( _1_) /float *x,int m,int n float y=0; int i,j; for(i=0;im;i+) for(j=0;jn;j+) y=y+*(*(x+i)+j); return y;void main() float a34=1,2,3,4,5,6,7,8,9,10,11,12,*b3; int i; for(i=0;i3;
18、i+) bi=_2_; /*(a+i) printf(%.2fn,f(b,3,4);试题四求出数组a中相邻两个元素的和,并将这些和存放在数组a中,按每一行3个元素的形式输出。(例如:b1=a0+a1,b2=a1+a2,b9=a8+a9)#include void main() int a10,b10,i; printf(nInput 10 numbers: ); for (i=0; i10;i+) /* 数组输入 */ scanf(%d, &ai); for (i=1; i10; i+) bi=_ ai-1+ai_; /* 计算b数组中的元素 */ for (i=1; i10; i+) pri
19、ntf(%3d,bi); if (_i%3=0_) printf(n); /* 每行打印3个数据 */ 2、程序设计题试题一设计程序:将数组a的每1行均除以该行上的主对角元素(第1行同除以a00,第2行同除以a11,.),然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中新建的文件design.dat中。#include void main() float a33=1.3,2.7,3.6,2,3,4.7,3,4,1.27; FILE *p;/*以下要求考生写的代码*/ float temp; int i,j;p=fopen(“design.dat”,”w”);for
20、(i=0;i3;i+) temp=aii; for(j=0;j3;j+) fprintf(p,%5.1f,aij/temp); fprintf(p,n); fclose(p);试题二设计程序:将数组a的每1行均除以该行上绝对值最大的元素,然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中。#include #include void main() float a33=1.3,2.7,3.6,2,3,4.7,3,4,1.27; FILE *p; float x; int i,j; /考生在这里添加代码 for(i=0;i3;i+) x=ai0; for(j=0;j3;
21、j+) if(fabs(x)fabs(aij) x=aij; for(j=0;j3;j+) aij=aij/x; p=fopen(design.dat,w); for(i=0;i3;i+) for(j=0;j3;j+) fprintf(p,%10.6f,aij); fprintf(p,n); fclose(p);试题三在整数数组a中找出偶数放到数b中,对数组b按从小到大的顺序排序后发格式“%3d”每行3个数写入考生文件夹中paper子文件夹下的新建文件design1.dat。#include void main() FILE *p; int i,j,temp,n=0; int a10=7,6,
22、20,3,14,88,53,62,10,29,b10; /考生在这里添加代码 p=fopen(design1,w); for(i=0;i10;i+) if(ai%2=0)bn+=ai; for(i=0;in-1;i+) for(j=0;jbj+1) temp=bj; bj=bj+1; bj+1=temp; for(i=1;i=n;i+) if(i%3=0) fprintf(p,%3dn,bi-1); else fprintf(p,%3d,bi-1); fclose(p); 五、求整数n的各位数字及各数字之和1、程序调试题试题一该程序功能:运行时输入整数n,输出n各位数字之和(如n=1308则输
23、出12,n=-3204则输出9)。#include #include void main() int n,s=0; scanf(%d,&n); n=fabs(n); /* 1 */ while(n1) /n或n0或n!=0 s=s+n%10; /* 2 */ n=n%10; /%-/ printf(%dn,s);2、程序填空题试题一该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。 #include #include void main() int n,s=0; scanf(%d,&n); _ 1 _ /n=fabs(n); while(n!=0) _ 2 _
24、/s=s+n%10 n=n/10; printf(%dn,s); 试题二该程序功能:输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156则输出5)。#include void main() int n,k=0; scanf(%d,&n); while( _1_ ) /n或n!=0 k+; _2_; /n=n/10 printf(%dn,k);试题三该程序功能:调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321; 若程序输入-34567,则输出-76543。 #include #include long f(long n) long m,y=0; m=fa
25、bs(n); while(m!=0) y=y*10+m%10; _1_ /m=m/10; if(n=0) return y; else _2_ / return -y;void main() printf(%ldt,f(12345); printf(%ldn,f(-34567);3、程序设计题试题一设计程序:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数cnt及这些数字的和sum到考生目录中Paper子目录下的新建文件design.dat中。 #include
26、void main() FILE *p; int cnt,sum; /* 考生在这里添加代码 int i,q,b,s,g;cnt=0;sum=0;p=fopen(“design.dat”,”w”);for(i=1000;i5000;i+)g=i%10;s=i%100/10;b=i%1000/100;q=i/1000; if(q+b=s+g & q+b=(g-q)*10) cnt+;sum=sum+q+b+s+g; fprintf(p,%d,%d,cnt,sum); fclose(p);六、平面上各点之间的距离1、程序调试题试题一该程序功能:输入n,再输入n个点的平面坐标,然后输出那些距离坐标原
27、点不超过5的点的坐标值。#include #include #include void main() int i,n; /* 1 */ struct axy float x,y; a; /a-*a scanf(%d,&n); a=(float*) malloc(n*2*sizeof(float); /a=(struct axy*) malloc(n*2*sizeof(float); for(i=0;in;i+) /* 2 */ scanf(%f%f,ai.x,ai.y); / ai.x-.&ai.x ai.y-.&ai.y for(i=0;in;i+) if(sqrt(ai.x*ai.x+ai
28、.y*ai.y)=5) printf(%f,%fn,ai.x,ai.y);2、程序填空题试题一在考生目录下,有Modify.c程序,该程序中“ N ”是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)该程序功能:输入n和平面上n个点的坐标,计算各点间距离的总和。#include #include #define f(x1,y1,x2,y2) sqrt(pow(x2-x1,2)+pow(y2-y1,2) 1 / #include 或#include void main( ) float *x,*y,s=0; int i,j,n;scanf(“%d”,&n
29、);x=(float*)malloc(sizeof(float)*n*2);y=x+ 2 ; /(float*)malloc(sizeof(float)*n*2);for(i=0;in;i+) scanf(“%f%f”,x+i,y+i);for(i=0;in-1;i+)for(j=0;jn;j+)s+=f(xi,yi,xj,yj);printf(“%.2fn”,s);3、程序设计题试题一设计程序:xi,yi分别表示平面上一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式%.6f写入到考生目录中Paper子目录下的新建文件design.dat中。#include#in
30、cludevoid main() FILE *p; int i; float x10=-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6; float y10=3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4; float s=0.0; /*以下要求考生写的代码*/ p=fopen(“design.dat”,”w”); /以写方式打开文件 for(i=0;i10;i+)s=s+sqrt((xi-1)*(xi-1)+(yi-1)*(yi-1); /求与点(1.0,1.0)的距离之和fprintf(p,”%.6f”,s); /以%.6f
31、的格式将和写到文件fclose(p);试题二设计程序:数组元素xi、yi表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式%f写到考生目录中Paper子目录下的新建文件design.dat中。#include #include #define len(x1,y1,x2,y2) sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)void main() FILE *p; int i,j; float c,minc; float x=1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65; float y=-6,4.3,4.5,3.6
32、7,2.42,2.54,5.6,-0.97,4.65,-3.33; minc=len(x0,y0,x1,y1); /*以下要求考生写的代码*/p=fopen(“design.dat”,”w”);for(i=0;i10;i+) for(j=i+1;j10;j+) c=len(xi,yi,xj,yj); if(cminc) minc=c; fprintf(p,”%f”,minc);fclose(p); 试题三设计程序:数组元素xi、yi表示平面上某点坐标,统计10个点中处在圆 (x-1)*(x-1)+(y+0.5)*(y+0.5)=25内的点数k,并将变量k的值 以格式%d写到考生目录中Paper
33、子目录下的新建文件design.dat中。#include #include void main() FILE *p; int i,k=0; float x=1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65; float y=-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33; /考生在这里添加代码 p=fopen(design.dat,w);for(i=0;i10;i+)if(xi-1)* (xi-1)+ (yi-0.5)* (yi-0.5)25) k+; fprintf(p,%d,k); fclose(p
34、);试题四程序设计题:考生目录下有Design.c程序,请完成以下功能:xi,yi表示点d(i)的平面坐标,求d(0)至d(1)、d(1)至d(2)、d(4)至d(0)的连线所构成的边形面积,并将所求面积以格式“%.4f”写到考生目录下新建文件design.dat。#include #include void main( ) FILE 8p; int i; float s,a,b,c,sdim=0;float x5=-4.5,0.5,4.2,2.7,-3;float y5=2.3,4.7,1.3,-2.5,-3.3;p=fopen(“design.dat”, “w”);/ 此处起要求考生自己编
35、制程序for(i=1;i4;i+) a=sqrt(x0-xi)*(x0-xi)+(y0-yi)*(y0-yi);b=sqrt(xi-xi+1) *(xi-xi+1)+(yi-yi+1)*(yi-yi+1);c= sqrt(x0-xi+1) *(x0-xi+1)+(y0-yi+1)*(y0-yi+1);s=(a+b+c)/2;sdim+=sqrt(s*(s-a)*(s-b)*(s-c);fprintf(p, “%.4f”, sdim);fclose(p);七、数制转换1、程序调试题试题一将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。例如:输入十进制数79,将
36、输出十六进制4f。 # include # include char trans(int x)if(x10) return 0+x;/*1*/else return a+x; /a+x-a+x-10 int DtoH(int n,char *str)int i=0;while(n!=0)stri=trans(n%16); /*2*/ n%=16; /%-/i+;return i-1;void main()int i,k,n;char *str;scanf(%d,&n);k=DtoH(n,str);for (i=0;i=k;i+) printf(%c,strk-i);2、程序填空题试题一该程序功
37、能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。#include void Dec2Bin(int m) int bin32,j; for(j=0;m!=0;j+) binj= _1_; /m%2 m=m/2; for(;j!=0;j-) printf(%d, _2_ ); /binj-1void main() int n; scanf(%d,&n); Dec2Bin(n);八、字符串处理1、程序调试题试题一该程序功能: 输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。 例如:输入abc123+xyz.5,应输出abcxyz。 #include
38、#include void main() char str256; int i,j,k=0,n; gets(str); n=strlen(str); for(i=0;in;i+) /*1*/if (tolower(stri)z) /=a z-=z /*2*/ strn=stri; n+; /n-k strk=0; printf(%sn,str);试题二该程序功能:输入1个字符串,按字母首次出现次序输出其中所出现过的大写英文字母。 *如运行时输入字符串FONTNAME and FILENAME,应输出F O N T A M E I L。#include void main() char x80,
39、y26; int i,j,ny=0; gets(x); for(i=0;xi!=0;i+) if(xi=A&xi=Z) for(j=0;jny;j+) /* 1 */ if(yi=xj) continue; /i -j continue-break if(j=ny) yny=xi; ny+; /* 2 */ for(i=0;i26;i+) /26-ny printf(%c ,yi); printf(n);试题三该程序功能:将两个字符串连接起来。#include void main() char s180,s240; int i=0,j=0; printf(nInput the first string:); scanf(%s,s1); printf(nInput the second string:); scanf(%s,s2); while (s1i !=0) /* 1 */ i+1; /i+1-i+ while (s2j !=0) /* 2 */ s1+i=s2+j; /* 拼接字符到s1 */ +i-i+ +j-j+ s1i =0; printf(nNew
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年表面改性金属材料合作协议书
- 2024年数字精密压力表项目发展计划
- Tetanus-toxin-peptide-生命科学试剂-MCE
- 3 2平面直角坐标系(第一课时)导学案 (表格式)北师大版数学八年级上册
- TachypleginA-生命科学试剂-MCE
- 小学语文经典美文优章的段落摘抄
- 六年级数学下册三破生产中的数学-比例信息窗2破生产中的数学-比例第1课时教案青岛版六三制
- 2024高考英语二轮复习专题1第2部分第1讲名词专题训练含解析
- 2024-2025学年新教材高中物理第六章圆周运动3向心加速度课时练习含解析新人教版必修2
- 2023届新高考新教材化学鲁科版一轮学案-第8章第27讲 盐类的水解
- 感染性疾病临床诊疗规范2021版
- 堆垛机安装指南演示文稿
- 退休欢送会上本人感人讲话稿(5篇)
- 颈淋巴结结核的诊断与治疗
- 《一切都是最好的安排》读书笔记思维导图PPT模板下载
- 识图培训学习课件
- 自来水公司绩效考核管理制度
- 小议“双减”政策及其落实措施效果研究
- 【企业杜邦分析国内外文献综述6000字】
- 职业健康管理13项规章制度
- 区域地质调查及矿产普查专业毕业实习周记范文原创全套
评论
0/150
提交评论