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
2、x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。
#include 3、à >=
printf("%f\n",s);
}
试题二
该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:
3+33+333+3333+33333+333333
#include 4、 ******/
t=t*10+i; //i-à1
s=s+t;
}
s=s*a;
printf("%ld\n",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 5、f\n”,f(1.7,b,5));
}
float f( 1 ) // float f( float x, float a[ ], int n)
{ float y=a[0],t=1; int i;
for(i=1;i 6、6f"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include 7、
y=y+a[i]*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 8、6,0.97,4.65};
// 考生在这里添加代码
p=fopen(“design.dat”,”w”);
t=1;
y=a[0];
for(i=1;i<10;i++)
{t=-t*x/i;
y=y+a[i]*t;
}
fprintf(p,"%f",y);
fclose(p);
}
试题三
设计程序:计算表达式1+2!+3!+...+12!的值,并将计算结果以格式"%ld" 写入到考生目录中Paper子目录下的新建文件design.dat中
#include 9、s=1,k=1; int i;
//考生在这里添加代码
p=fopen("design.dat","w");
for(i=2;i<=12;i++)
{k=i*k;
s=s+k;
}
fprintf(p,"%ld",s);
fclose(p);
}
试题四
设计程序:计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并将其值以格式"%f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include 10、
void main()
{ FILE *p; int i; float x=1.279,t=1,y=0;
float a[10]={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;i<10;i++)
{ y=y+t*a[i];
t=t*x;
}
fprintf(p,"%f",y);
fclose(p);
}
试题五
设计程序:计算2的平方根、3的平方根、...、10的的平方根之和,要求计算 11、结果具有小数点后10位有效位数,并以格式"%.10f\n"写到考生目录中Paper子目录下的新建文件design.dat中。
#include 12、列第1项为81,此后各项均为它前1项的正平方根,统计该 数列前30项之和,并以格式"%.3f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include 13、
}
试题七
在数组a的10个数中求平均值v,将大于等于v的数组元素进行求和,并将结果以格式"%.5f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include 14、um=0;
for(i=0;i<10;i++)
if(a[i]>=v)
sum=sum+a[i];
fprintf(p,"%.5f",sum);
fclose(p);
}
试题八
设计程序: 利用公式π/4≈1-1/3+1/5-1/7+……公式计算π的近似值,直到某一项的绝对值小于1e-6为止。 (π/4的结果不包含此项)将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include 15、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,-1/3!,1/5!,-1/7!的和至某项的绝对值小于1e-5为止(该项不累加),将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design1.dat中。
#includ 16、e 17、数均大于0,且m>=n),输出它们的最小公倍数。
#include 18、\n",k);
}
2、程序填空题
试题一
该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。
#include 19、对10个整数按升序排序。
#include 20、
{
min = i;
for (j=i+1; j 21、"\nThe sorted numbers: \n"); /* 输出排序结果 */
for (i=0;i 22、n"); /* 输出数组元素 */
for (i=0;i 23、
printf("\nThe sorted numbers: \n"); /* 输出排序结果 */
for (i=0;i 24、r(i=0;i<*m;i++)
if(a[i]<0) {
for(j=i--;j<*m-1;j++) a[j]=a[j+1];
_____1_____; //(*m)--
}
}
void main()
{ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};
_______2_______; //f(x,&n)
for(i=0;i 25、功能:函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:4 5 6 7 1 2 3
#include 26、x[7]={1,2,3,4,5,6,7};
f(x,7,3);
for(i=0;i<7;i++) printf("%5d",x[i]); printf("\n");
}
试题三
该程序功能:调用函数f,求二维数组a中全体元素之和。
#include 27、
return y;
}
void main()
{ float a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3];
int i;
for(i=0;i<3;i++) b[i]=___2___; //*(a+i)
printf("%.2f\n",f(b,3,4));
}
试题四
求出数组a中相邻两个元素的和,并将这些和存放在数组a中,按每一行3个元素的形式输出。(例如:b[1]=a[0]+a[1],b[2]=a[1]+a[2]……,b[9]=a[8]+a[9])
#includ 28、e 29、 printf("%3d",b[i]);
if (_i%3==0_) printf("\n"); /* 每行打印3个数据 */
}
}
2、程序设计题
试题一
设计程序:将数组a的每1行均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中新建的文件design.dat中。
#include 30、4,1.27}};
FILE *p;
/****以下要求考生写的代码****/
float temp;
int i,j;
p=fopen(“design.dat”,”w”);
for(i=0;i<3;i++)
{temp=a[i][i];
for(j=0;j<3;j++)
a[i][j]=a[i][j]/temp;
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
fprintf(p,"%5.1f",a[i][j]);
fprintf(p,"\n");
31、 }
fclose(p);
}
试题二
设计程序:将数组a的每1行均除以该行上绝对值最大的元素,然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中。
#include 32、 for(j=0;j<3;j++)
if(fabs(x) 33、对数组b按从小到大的顺序排序后发格式“%3d”每行3个数写入考生文件夹中paper子文件夹下的新建文件design1.dat。
#include 34、)
for(j=0;j< n-1-i;j++)
if(b[j]>b[j+1])
{temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
for(i=1;i<=n;i++)
if(i%3==0) fprintf(p,"%3d\n",b[i-1]);
else fprintf(p,"%3d",b[i-1]);
fclose(p);
}
五、求整数n的各位数字及各数字之和
1、程序调试题
试题一
该程 35、序功能:运行时输入整数n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。
#include 36、 //%--à/
}
printf("%d\n",s);
}
2、程序填空题
试题一
该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。
#include 37、n%10
n=n/10;
}
printf("%d\n",s);
}
试题二
该程序功能:输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156
则输出5)。
#include 38、ntf("%d\n",k);
}
试题三
该程序功能:调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;
若程序输入-34567,则输出-76543。
#include 39、se _____2_____ // return -y;
}
void main()
{
printf("%ld\t",f(12345)); printf("%ld\n",f(-34567));
}
3、程序设计题
试题一
设计程序:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数cnt及这些数字的和sum到考生目录中Paper子目录下的新建文件design.dat中。
#include< 40、stdio.h>
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;i<5000;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);
41、
fclose(p);
}
六、平面上各点之间的距离
1、程序调试题
试题一
该程序功能:输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。
#include 42、loc(n*2*sizeof(float)); //a=(struct axy*) malloc(n*2*sizeof(float));
for(i=0;i 43、[i].x,a[i].y);
}
2、程序填空题
试题一
在考生目录下,有Modify.c程序,该程序中“ N ”是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)
该程序功能:输入n和平面上n个点的坐标,计算各点间距离的总和。
#include 44、nclude 45、
试题一
设计程序:x[i],y[i]分别表示平面上一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include 46、3,4.4};
float s=0.0;
/****以下要求考生写的代码****/
p=fopen(“design.dat”,”w”); //以写方式打开文件
for(i=0;i<10;i++)
s=s+sqrt((x[i]-1)*(x[i]-1)+(y[i]-1)*(y[i]-1)); //求与点(1.0,1.0)的距离之和
fprintf(p,”%.6f”,s); //以%.6f的格式将和写到文件
fclose(p);
}
试题二
设计程序 47、数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式"%f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include 48、oat y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};
minc=len(x[0],y[0],x[1],y[1]);
/****以下要求考生写的代码****/
p=fopen(“design.dat”,”w”);
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
{c=len(x[i],y[i],x[j],y[j]);
if(c 49、close(p);
}
试题三
设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计10个点中处在圆 (x-1)*(x-1)+(y+0.5)*(y+0.5)=25内的点数k,并将变量k的值 以格式"%d"写到考生目录中Paper子目录下的新建文件design.dat中。
#include 50、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);
fclose(p);
}
试题四
程序设计题:考生目录下有Design.c程序,请完成以下功能:x[i],y[i]表示点d(i)的平面坐标,求d(0)至d(1)、d(1)至d(2)、……d
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818