浙江省计算机二级上机操作题.docx
《浙江省计算机二级上机操作题.docx》由会员分享,可在线阅读,更多相关《浙江省计算机二级上机操作题.docx(57页珍藏版)》请在冰豆网上搜索。
浙江省计算机二级上机操作题
第二部份C程序设计上机操作题
一、数列求和
1、程序调试题
试题一
该程序功能:
输入x和正数eps,计算多项式1-x+x*x/2!
-x*x*x/3!
+...的和直到末项的绝对值小于eps为止。
#include
#include
voidmain()
{floatx,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)=
printf("%f\n",s);
}
试题二
该程序功能:
运行时若输入a、n分别为3、6,则输出下列表达式的值:
3+33+333+3333+33333+333333
#include
voidmain()
{inti,a,n;longt=0;
/*********1*******/
s=0;//s=0--longs=0
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++){
/*******2******/
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
floatf(float,float*,int);
voidmain()
{floatb[5]={1.1,2.2,3.3,4.4,5.5};
printf(“%f\n”,f(1.7,b,5));
}
floatf
(1)//floatf(floatx,floata[],intn)
{floaty=a[0],t=1;inti;
for(i=1;i2;//returny
}
3、程序设计题
试题一
设计程序:
计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+……的值,并将其值以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include
#include
voidmain()
{
FILE*p;
inti;floatx=2.345,t=1.0,y=0.0;
floata[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!
+...的值,并将其以格式"%f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include
#include
voidmain()
{FILE*p;inti;floatx=1.279,t,y;
floata[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”);
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
voidmain()
{FILE*p;longs=1,k=1;inti;
//考生在这里添加代码
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
#include
voidmain()
{FILE*p;inti;floatx=1.279,t=1,y=0;
floata[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的的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式"%.10f\n"写到考生目录中Paper子目录下的新建文件design.dat中。
#include
#include
voidmain()
{FILE*p;
//考生在这里添加代码
inti;
floats=0;
p=fopen("design.dat","w");
for(i=2;i<=10;i++)
s=s+sqrt(i);
fprintf(p,"%.10f",s);
fclose(p);
}
试题六
设计程序:
数列第1项为81,此后各项均为它前1项的正平方根,统计该数列前30项之和,并以格式"%.3f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include
#include
voidmain()
{FILE*p;floats=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.dat中。
#include
voidmain()
{FILE*p;
inti;
floata[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("design.dat","w");
for(i=0;i<10;i++)
v=v+a[i]/10;
sum=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
#include
voidmain()
{
FILE*fp;
floatn=1,t=1,pi=0;
inti;
//考生在这里添加代码
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
voidmain()
{intm,n,k;
/********1*********/
while(scanf("%d%d",&m,&n),m<0&&n<0);
//m<0&&n<0-!
(m>0&&n>0&&m>=n)
for(k=m;k%n!
=0;)
/********2********/
k=k+n;//改为:
k=k+m
printf("%d\n",k);
}
2、程序填空题
试题一
该程序功能:
输入m、n(要求输入数均大于0),输出它们的最大公约数。
#include
voidmain()
{intm,n,k;
while(scanf("%d%d",&m,&n),_______1______);//!
(n>0&&m>0)
for(____2____;n%k!
=0||m%k!
=0;k--);//k=m或k=n
printf("%d\n",k);
}
三、排序算法
1、程序调试题
该程序功能:
用选择法对10个整数按升序排序。
#include
#defineN10
voidmain()
{
inti,j,min,temp;
inta[N]={5,4,3,2,1,9,8,7,6,0};
printf("\nThearrayis:
\n");/*输出数组元素*/
for(i=0;iprintf("%5d",a[i]);
for(i=0;i{
min=i;
for(j=i+1;j/******1******/
if(a[min]<=a[j])min=j;//<=---->
/******2******/
temp=a[min];a[min]=a[j];a[j]=temp;/*数据交换*/
}//j--i
printf("\nThesortednumbers:
\n");/*输出排序结果*/
for(i=0;iprintf("%5d",a[i]);
printf("\n");
}
2、程序设计题
该程序功能:
用冒泡法对10个整数按升序排序。
#inc