1./*
*设计程序:z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值为区间[0,10]的整数,找出
*使z取最小值的x1,y1,并将x1、y1以格式"%d,%d"写入到考生目录中Paper子目录下的
*新建文件design.dat中。
*/
#include
#include
void main()
{
FILE *p;
int x,y,x1,y1; float z,z1;
p=fopen("design.dat","w");
if(p==NULL)
return;
z1=15;
for(x=1;x<=10;x++)
{for(y=1;y<=10;y++)
{z=10*cos(x-4)+5*sin(y-2);
if(z {z1=z;x1=x;y1=y;} }} fprintf(p,"%d,%d\n",x1,y1); fclose(p); } } 2./* 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分, * 请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 * 该程序功能: * 将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。 * 例如:输入十进制数79,将输出十六进制4f。 */ # include # include char trans(int x) { if(x<10) return '0'+x; else _______1________//return 'a'+x-10; } int DtoH(int n,char *str) { int i=0; while(n!=0) { ________2________//str[i]=trans(n%16); 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",str[k-i]); } 3. /* * 设计程序: * 在数组a的10个数中求平均值v,将大于等于v的数组元素进行求和, * 并将结果以格式"%.5f"写到考生目录中Paper子目录下的新建文件design.dat中。 */ #include void main() { FILE *p; int i; float a[10]={7.23,1.5,5.24,2.1,2.45,6.3,5,3.2,0.7,9.81},sum,v=0; sum=0.0; for(i=0;i<10;i++) sum+=a[i]; v=sum/10.0; sum=0.0; for(i=0;i<10;i++) if(a[i]>=v) sum+=a[i]; printf("%f\n",sum); } 4. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:输入的一个小写字母,将字母循环后移5个位置后输出, *如?a?变成?f?, …w?变成?b?。 */ #include void main() { char c; c=getchar(); if(______1______) //c>=’a’&&c<=’u? c=c+5; else if (c>='v' && c<='z') ______2______ //c=c+5-26; putchar(c); } 5. * 设计程序:将数组a的每1行均除以该行上的主对角元素(第1行同除以*/ /* a[0][0],第2行同除以a[1][1],...),然后将a数组写入到考生目录中*/ /* Paper子目录下的新建文件design.dat中新建的文件design.dat中。*/ #include void main() { float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE *p; float k; int i,j; p=fopen("design.dat","w"); for(i=0;i<3;i++) { k=a[i][i]; for(j=0;j<3;j++) a[i][j]=a[i][j]/k; } for(i=0;i<3;i++) { for(j=0;j<3;j++) fprintf(p,"%10.6f",a[i][j]); fprintf(p,"\n"); } fclose(p); } 6. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:调用函数f,从字符串中删除所有的数字字符。 */ #include #include #include void f(char *s) { int i=0; while(s[i]!='\0'){ if(isdigit(s[i])) ____1____(s+i,s+i+1);// strcpy ___2___ i++;}//else } void main() { char str[80]; gets(str); f(str); puts(str); } 7. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:输入三个整数,按由小到大的顺序输出这三个数。 */ #include void swap(______1______)//int *pa,int *pb { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; } void main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(______2______)//a>c swap(&a,&b); printf("%d,%d,%d",a,b,c); } 8. /* *设计程序:计算500~800区间内素数的个数cnt和素数和sum。 *请编写函数JSValue()实现程序的要求。最后把cnt和sum写入到考生目录中Paper 子目 *录下的新建文件design.dat中 */ #include int cnt,sum; void JSValue() { int i,j,half; cnt=0; sum=0; for(i=500;i<=800;i++) { j=i/2; for(half=2;half<=j;half++) { if(i%half==0) break; } if(half>j) { printf("%d \n",i); cnt++; sum+=i; } } } void main() { FILE *p; p=fopen("design.dat","w"); JSValue(); fprintf(p,"%d,%d",cnt,sum); fclose(p); } 9. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:输入整数n(n>0),求m使得2的m次方小于或等于n、2的m+1次方大于或等于n。 */ #include void main() { int m=0,t=1,n; while( _____ 1 ________);//scanf("%d",&n), n<=0 while(!(t<=n&&t*2>=n)){ _____ 2 _____//t=t*2; m++; } printf("%d\n",m); } 10. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。 */ #include #include void main() { int n,s=0; scanf("%d",&n); ______ 1 ______//n=fabs(n); while(n!=0) { ______ 2 ______//s=s+n%10; n=n/10; } printf("%d\n",s); } 11. /* 设计程序:对x=1,2,...,10,求函数f(x)=x-10*cos(x)-5*sin(x)的*/ /* 最大值,并将该数以格式"%.3f"写到考生目录中Paper子目录下的新建文件design.dat中。*/ #include #include void main() { FILE *p; float f(float),max,x; p=fopen("design.dat","w"); max=f(1); for(x=2;x<=10;x++) if(max max=f(x); fprintf(p,"%.3f",max); fclose(p); } float f(float y) { y=y-10*cos(y)-5*sin(y); return(y) } 12. /* * 在考生目录的Paper子目录下,有Modify.c文件,该文件中“***** N *****”的下一行中有错误, * 请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 * 该程序功能: * 输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t * 后面。 * 例如:输入"ABCD",则字符串t为"ABCDDCBA"。 */ # include # include void fun(char *s,char *t) { int i,sl; for(i=0;i t[i]=s[i]; for(i=0;i /********1********/ t[sl+i]=s[sl-i]; /********2********/ t[sl]="\0"; } void main() { char s[100],t[100]; scanf("%s",s); fun(s,t); printf("%s",t); } 13. /* 设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计10个点中处在圆*/ /* (x-1)*(x-1)+(y+0.5)*(y+0.5)=25内的点数k,并将变量k的值*/ /* 以格式"%d"写到考生目录中Paper子目录下的新建文件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;i<10;i++) if((x[i]-1)*(x[i]-1)+(y[i]+0.5)*(y[i]+0.5)<=25) k++; fprintf(p,"%d",k); } 14. /* 设计程序:统计满足条件x*x+y*y+z*z==2000的所有解的个数,并将统计*/ /* 结果以格式"%d"写入到考生目录中Paper子目录下的新建文件design.dat中*/ /* 说明:若a、b、c是1个解,则a、c、b也是1个解,等等。*/ #include void main() { FILE *p; int x,y,z,k=0; p=fopen("design.dat","w"); for(x=1;x<=100;x++) for(y=1;y<=100;y++) for(z=1;z<=100;z++) if(x*x+y*y+z*z==2000) k=k+1; printf("%d",k); fclose(p); } 15. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。 */ #include void main() { int m,n,k; while(scanf("%d%d",&m,&n), _______1______ );//m<0||n<0 for( ____2____; n%k!=0||m%k!=0; k--);//k=m printf("%d\n",k); } 16. /* 设计程序:x[i],y[i]分别表示平面上1个点的x、y坐标,求下列5点各点*/ /* 间距离总和,并将该数以格式"%.4f"写到考生目录中Paper子目录下的新*/ /* 建文件design.dat中。*/ #include #include void main() { FILE *p; float s,x[5]={-1.5,2.1,6.3,3.2,-0.7}; float y[5]={7,5.1,3.2,4.5,7.6}; int i,j; s=0; p=fopen("design.dat","w"); for(i=0;i<4;i++) for(j=i+1;j<5;j++) s+=sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2)); fprintf(p,"%.4f",s); fclose(p); } 17. /* 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分, * 请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 * 该程序功能: * 找出100~999之间所有的Armstrong数。所谓Armstrong数是指这个3位数各位上数字的立方和等于自身。 * 例如:371=3*3*3+7*7*7+1*1*1,那么371就是Armstrong数。 */ #include #include void main() { int i,a,b,c; for(i=100;i<=999;i++) { a=i/100; _______1_______//b=i/10%10; c=i%10; if (________2________) //i ==a*a*a+b*b*b+c*c*c printf("%d is a Armstrong number!\n",i); } } 18./* *设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与 *该字符的ASCII码值的乘积。位置值从1开始依此递增。将每个字符的权重值,以格式"%d "写 *入到考生目录中Paper子目录下的新建文件design.dat中。 */ #include #include void main() { FILE *p; int i,w; char *s="we45*&y3r#$1"; p=fopen("design.dat","w"); for(i=0;*(s+i)!='\0';i++) { w=(i+1)*(*(s+i)); fprintf(p,"%d\n",w); } fclose(p); } 19. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误, *请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:运行时输入整数n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。 */ #include #include void main() { int n,s=0; scanf("%d",&n); n=fabs(n); /******** 1 *******/ while(n>1) { //n或n>=1 s=s+n%10; /******** 2 ******/ n=n%10; //n=n/10; } printf("%d\n",s); } 20. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:数列的第1、2项均为1,此后各项值均为该项前二项之和。计算数列第30项的值。 */ #include _______1______//long f(int); void main() { printf("%ld\n",f(30)); } long f(int n) { if( ______2______ )// n==1||n==2 return 1; else return f(n-1)+f(n-2); } 21. /* *设计程序:有数列:2/1,3/2,5/3,8/5,13/8,21/13,……求出数列的前40项的和。将结果 *以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。 */ #include void main() { FILE *p; int i; float f1=1.0,f2=2.0,t1=2.0,t2=3.0,s; float f,t; s=t1/f1+t2/f2; p=fopen("design.dat","w"); for(i=1;i<38;i++) { f=t2; t=t2+f2; s+=t/f; t2=t;f2=f; } fprintf(p,"%.6f",s); fclose(p); } 22. /* 设计程序: * 利用公式π/4≈1-1/3+1/5-1/7+……公式计算π的近似值,直到某一项的绝对值小于1e-6为止。 (π/4的结果不包含此项) * 将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。 */ #include #include void main() { FILE *fp; float n=1,t=1,pi=0; int i; /* * * * 考生在这里添加代码 * * */ } 23. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误, *请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5、7、11)。 */ #include void main() { int n,i; scanf("%d",&n); /****** 1 ******/ i=1;//i=2; while(n>1) if(n%i==0) { printf("%d\t",i); n/=i; } else /******** 2 *******/ n++; //i++; } 24. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156 *则输出5)。 */ #include void main() { int n,k=0; scanf("%d",&n); while( n%10 ){ k++; n=n/10; } printf("%d\n",k); } 25. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:求出a中各相邻两个元素的和,并将这些和存放在数组b中, *按每行3个元素的形式输出。例如:b[1]=a[1]+a[0],…………,b[9]=a[9]+a[8]。 */ #include void main() { int a[10],b[10],i; printf("\nInput 10 numbers: "); for (i=0; i<10;i++) /* 数组输入*/ scanf("%d", &a[i]); for (i=1; i<10; i++) b[i]=a[i]+a[i-1]; /* 计算b数组中的元素*/ for (i=1; i<10; i++) { printf("%3d",b[i]); if (i%3==0) printf("\n"); /* 每行打印3个数据*/ } } 28. /* *设计程序:求斐波那契(Fibonacci)数列中大于t的最小的一个数,结果由函数JSValue 返回, *其中斐波那契数列F(n)的定义为: * F(0)=0,F(1)=1 * F(n)=F(N-1)+F(n-2) *分别计算当t=1000和t=3000时的结果,将计算结果输出到考生目录中Paper子目录下的新 *建文件design.dat中。 */ #include int JSValue(int t) { /* * * * 考生在这里添加代码 * * */ } void main() { FILE *p; p=fopen("design.dat","w"); fprintf(p,"%d,%d",JSValue(1000),JSValue(3000)); fclose(p); } 29. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。 */ #include #include #define f(x) x*x-5*x+sin(x) void main() { int x; float max; max=f(1); for(x=2;x<=10;x++) if(f(x)>max) max=f(x); printf("%f\n",max); } 30. /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能 *需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 *该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。 */ #include void Dec2Bin(int m) { int bin[32],j; for(j=0;m!=0;j++) { bin[j]= ; m=m/2; } for(;j!=0;j--) printf("%d", ); } void main() { int n; scanf("%d",&n); Dec2Bin(n);