第二部份 C程序设计上机操作题 ............................................................................................. 2
一、数列求和 ........................................................................................................................... 2 二、最大公约数、最小公倍数 ............................................................................................... 7 三、排序算法 ........................................................................................................................... 7 四、数组 ................................................................................................................................... 9 五、求整数n的各位数字及各数字之和 ............................................................................. 12 六、平面上各点之间的距离 ................................................................................................. 14 七、数制转换 ......................................................................................................................... 17 八、字符串处理 ..................................................................................................................... 19 九、最大值与最小值 ............................................................................................................. 25 十、斐波那契(Fibonacci)数列 .............................................................................................. 28 十一、水仙花、完数、回文数与亲密数 ............................................................................. 29 十二、方程求根 ..................................................................................................................... 31 十三、回文数、因子、质因子、素数 ................................................................................. 34 十三、其他算法 ..................................................................................................................... 35
1 of 41
第二部份 C程序设计上机操作题
一、数列求和
1、程序调试题 试题一
该程序功能:输入x和正数eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。 #include
{ float x,eps,s=1,t=1,i=1; scanf(\ do {
/***** 1 *****/
t=-t*x/++i; //++i--?i++ s+=t;
/***** 2 *****/
} while(fabs(t)
试题二
该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值: 3+33+333+3333+33333+333333 #include
{ int i,a,n; long t=0;
/********* 1 *******/
s=0; //s=0--?long s=0 scanf(\ for(i=1;i<=n;i++) { /******* 2 ******/
t=t*10+i; //i-?1 s=s+t; }
s=s*a;
printf(\}
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时的值。
2 of 41
#include
{ float b[5]={1.1,2.2,3.3,4.4,5.5};
printf(“%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 2 ; // return y } 3、程序设计题 试题一 设计程序:计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+??的值,并将其值以格式\写入到考生目录中Paper子目录下的新建文件design.dat中。 #include FILE *p; int i; float x=2.345,t=1.0,y=0.0; float a[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9}; //* 考生在这里添加代码 p=fopen(“design.dat”,”w”); y=a[0]; for(i=1;i<10;i++) { t=t*x; y=y+a[i]*sin(t); } fprintf(p,”%.6f”,y); fclose(p); } 试题二 计程序:计算多项式a0-a1*x+a2*x*x/2!-a3*x*x*x/3!+...的值,并将其以格式\写到考生目录中Paper子目录下的新建文件design.dat中。 #include { FILE *p; int i; float x=1.279,t,y; 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”); 3 of 41 t=1; y=a[0]; for(i=1;i<10;i++) {t=-t*x/i; y=y+a[i]*t; } fprintf(p,\fclose(p); } 试题三 设计程序:计算表达式1+2!+3!+...+12!的值,并将计算结果以格式\写入到考生目录中Paper子目录下的新建文件design.dat中 #include { FILE *p; long s=1,k=1; int i; //考生在这里添加代码 p=fopen(\ for(i=2;i<=12;i++) {k=i*k; s=s+k; } fprintf(p,\ fclose(p); } 试题四 设计程序:计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并将其值以格式\写到考生目录中Paper子目录下的新建文件design.dat中。 #include { 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(\ for(i=0;i<10;i++) { y=y+t*a[i]; t=t*x; } fprintf(p,\ fclose(p); } 试题五 设计程序:计算2的平方根、3的平方根、...、10的的平方根之和,要求计算结果具有小数 4 of 41 点后10位有效位数,并以格式\写到考生目录中Paper子目录下的新建文件design.dat中。 #include //考生在这里添加代码 int i; float s=0; p=fopen(\ for(i=2;i<=10;i++) s=s+sqrt(i); fprintf(p,\ fclose(p); } 试题六 设计程序:数列第1项为81,此后各项均为它前1项的正平方根,统计该 数列前30项之和,并以格式\写到考生目录中Paper子目录下的新建文件design.dat中。 #include { FILE *p; float s=0,a=81,i; //考生在这里添加代码 p=fopen(\ for(i=1;i<=30;i++) {s=s+a; a=sqrt(a); } fprintf(p,\ fclose(p); } 试题七 在数组a的10个数中求平均值v,将大于等于v的数组元素进行求和,并将结果以格式\写到考生目录中Paper子目录下的新建文件design.dat中。 #include 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; //考生在这里添加代码 p=fopen(\ for(i=0;i<10;i++) v=v+a[i]/10; 5 of 41