浙江省计算机二级C语言历年试卷_第1页
浙江省计算机二级C语言历年试卷_第2页
浙江省计算机二级C语言历年试卷_第3页
浙江省计算机二级C语言历年试卷_第4页
浙江省计算机二级C语言历年试卷_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江省计算机二级C语言历年试卷一、程序填空(1) 找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1b=i%100/10;a*a*a+b*b*b+c*c*c==i(2) 输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。n!=0n=n/10(3) 求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。if(n<0)n=-n;s+=n%10;(4) 调用函数f,将一个整数首尾倒置。例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。return-y;m=m/10;(5) 调用函数f,从字符串中删除所有的数字字符。strcpyelse(6) 调用find函数在输入的字符串中查找是否出现"the"这个单词。如果查到返回出现的次数,如果未找到返回0。j=0;j<3;j++j>=3(7) 输入的一个小写字母,将字母循环后移5个位置后输出。例如:"a"变成"f","w"变成"b"。c>='a'&&c<='u'c=(c-'a'+5)%26+'a';(8) 将字符串s中所有的字符'c'删除。s[i]!='\0'j++;(9)对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。max=f(1);if(f(x)>max)max=f(x);(10) 输入三个整数,按由小到大的顺序输出这三个数。int*pa,int*pbif(a>b)(11) 调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1346s=0;t=t*10+1;(7) 用递归法将一个六位整数n转换称字符串。例如:输入123456,应输出字符串"123456"。*s=i%10+'0';itoa(n,str+5);(8) 输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。structaxy{floatx,y;}*a;scanf("%f%f",&a[i].x,&a[i].y);(9) 运行时输入n,则输出n的所有质数因子。例如:n=13860,则输出2、2、3、3、5、7、11。i=2;i++;三、编写程序(1) 在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中FILE*p;inti;p=fopen("Design1.dat","w");for(i=1;;i++)if(i%3==1&&i%5==3&&i%7==5&&i%9==7)break;fprintf(p,"%d",i);fclose(p);(2) 若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。如:220、284是1对亲密数,284、220也是1对亲密数。在6~5000内找出所有的亲密数对for(k=6;k<=5000;k++){b=0;c=0; for(a=1;a<k;a++)if(k%a==0)b+=a;for(a=1;a<b;a++) if(b%a==0)c+=a; if(k==c&&k!=b)fprintf(p,"%6d,%d\n",k,b);}fclose(p);}(3) 设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的ASCII码值的乘积。位置值从1开始依此递增。p=fopen("design.dat","w");for(i=0;s[i]!='\0';i++) {w=(i+1)*s[i]; fprintf(p,"%d",w); } fclose(p);}(4) 将数组a的每一行均除以该行上绝对值最大的元素,然后将a数组写入for(i=0;i<3;i++){x=a[i][0]; for(j=1;j<3;j++)if(a[i][j]>x)x=a[i][j]; for(j=0;j<3;j++)a[i][j]/=x;}(5) z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写min=f(1,1);x1=y1=1;for(x=1;x<=6;x++) for(y=1;y<=6;y++) if(f(x,y)<min) {min=f(x,y);x1=x;y1=y;}p=fopen("Design2.dat","w");fprintf(p,"%d,%d",x1,y1);fclose(p);(6) z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x、y取值为区间[0,10]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"z1=10*cos(-4)+5*sin(-2);x1=y1=0;for(x=0;x<=10;x++) for(y=0;y<=10;y++) { z=10*cos(x-4)+5*sin(y-2); if(z<z1){z1=z;x1=x;y1=y;} } p=fopen("Design2.dat","w");fprintf(p,"%d,%d",x1,y1);fclose(p);}(7) 设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式"%f"写fprintf(p,"%f",minc);for(i=0;i<10;i++) for(j=i+1;j<10;j++)//注意:不能为for(j=0;j<10;j++) { c=len(x[i],y[i],x[j],y[j]); if(c<minc)minc=c; }p=fopen("Design.dat","w");fclose(p);}(8) 设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式"%.5f"写for(i=1;i<10;i++)if(fabs(x[i]-v)<d){d=fabs(x[i]-v);k=i;}p=fopen("Design.dat","w");fprintf(p,"%.5f",x[k]);fclose(p);}(9) 对x=1,2,…10,求函数f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式".3f"inti;max=f(1);for(i=2;i<=10;i++){x=f(i);if(max<x)max=x;}p=fopen("Design1.dat","w");fprintf(p,"%.3f",max);fclose(p);}floatf(floatx){floatt;t=x-10*cos(x)-5*sin(x); returnt;}(10) 将字符串s中的所有字符按ASCII值从小到大重新排序后,将排序后的字符串写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。charstr[40];strcpy(str,s);for(i=0;i<n-1;i++){k=i; for(j=i+1;j<n;j++) if(str[k]>str[j])k=j; c=str[i];str[i]=str[k];str[k]=c;}s=str;p=fopen("Design2.dat","w");(11) 在整数数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式"%3d"每行3个数for(i=0;i<10;i++) if(a[i]%2==0)b[n++]=a[i];for(i=0;i<n-1;i++) 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;}p=fopen("Design1.dat","w");for(i=0;i<n;i++)if(i%3==0)fprintf(p,"\n%3d",b[i]); elsefprintf(p,"%3d",b[i]);fclose(p);}(12) 计算多项式a0+a1*x+a2*x*x+a3*x*x*x+…+a9*x*x*x*x*x*x*x*x*x的值,并将其值以格式"%for(i=0;i<10;i++){y=y+a[i]*t;t=t*x;}p=fopen("Design2.dat","w");fprintf(p,"%f",y);fclose(p);}(13) 利用公式π/4≈1-1/3+1/5-1/7+……公式计算π的近似值,直到某一项的绝对值小于1e-6为止。(π/4的结果不包含此项)将计算结果以格式"%.6f"i=1;while(fabs(t)>=1e-6){pi+=t;i++;n=-n;t=n/(2*i-1);}fp=fopen("Design1.dat","w");fprintf(fp,"%.10f",pi*4);fclose(fp);(14) 计算表达式1+2!+3!+…+12!的值,并将计算结果以格式"%ld"for(i=2;i<=12;i++){k=k*i;s+=k;}p=fopen("Design2.dat","w");fprintf(p,"%ld",s);fclose(fp);}(15) 计算数列1,-1/3!,1/5!,-1/7!,1/9!,……的和至某项的绝对值小于1e-5时为止(该项不累加),将求和的结果以格式"%.6fwhile(fabs(-t/(i-1)/i)>=1e-3){t=-t/(i-1)/i; s+=t;i+=2;}p=fopen("Design1.dat","w");fprintf(p,"%.6f",s);fclose(p);}while(fabs(-t/(i-1)/i)>=1e-3){t=-t/(i-1)/i; s+=t;i+=2;}p=fopen("Design1.dat","w");fprintf(p,"%.6f",s);fclose(p);}(16) 计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+…..+a9*sin(x*x*x*x*x*x*x*x*x)的值,并将结果以格式"%.6y=a[0];t=x;for(i=1;i<2;i++){y+=a[i]*sin(t);t=t*x;}p=fopen("Design2.dat","w");fprintf(p,"%.6f",y);fclose(p);}(17) 有数列:2/1,3/2,5/3,8/5,13/8,21/13,......求出数列的前40项的和。将计算结果以格式"%.6f"写入到考生文件夹中Paperfor(i=1;i<=20;i++){t=t1+t2;f=t2; t1=t;f1=f;t2=t1+t2;f2=t1; s+=t1/f1+t2/f2; }p=fopen("Design1.dat","w");fprintf(p,"%.6f",s);fclose(p);}(18) 累加a字符串各个字符的ASCII码值,然后将累加和以格式"%d"for(i=0;a[i]!='\0';i++) s+=a[i];p=fopen("Design2.dat","w");fprintf(p,"%d",s);fclose(p);}(19) 计算2的平方根、3的平方根、……、10的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式"%.10f\inti;doubles=0;for(i=2;i<=10;i++) s+=sqrt(i);p=fopen("Design2.dat","w");fprintf(p,"%.10f\n",s);fclose(p);}(20) x[i],y[i]分别表示平面上的一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式"%.6f"for(i=0;i<10;i++) s+=sqrt((x[i]-1.0)*(x[i]-1.0)+(y[i]-1.0)*(y[i]-1.0)); p=fopen("Design2.dat","w"); fprintf(p,"%.6f",s); fclose(p);}(21) 在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"inti;FILE*p;for(i=1;;i++)if((i%3==1)&&(i%5==3)&&(i%7==5)&&(i%9==7))break;p=fopen("design1.dat","w");fprintf(p,"%d",i);fclose(p);}(22) 寻找并输出11至999之间的数m,它满足m、m*m、m*m*m均为回文数。说明:所谓回文数是指各位数字左右对称,例如121、676、94249等。longi,n;n=m;i=0;//i中存放的是m的倒置数while(n>0){i=i*10+n%10;n=n/10;}if(m==i)return1;elsereturn0;(23) 数组元素x[i]、y[i]表示平面上某点坐标,统计10个点中处在圆for(i=0;i<10;i++)if((x[i]-1)*(x[i]-1)+(y[i]-0.5)*(y[i]-0.5)<25)k++;p=fopen("Design1.dat","w");fprintf(p,"%d",k);fclose(p);}(24) 某公司1999年年产量11.5万件,生产能力每年提高9.8%,求出产量能超过x万件的年份,结果由函数Year返回。分别计算当x=20和x=30时的结果,将计算结果写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。inti;for(i=1;i<=x;i++) p=p*(1+9.8/100);returnp;(25) 求斐波那契(Fibonacci)数列中其前40项之和,(斐波那契数列的定义为后一项为前两项之和),并将求和的结果以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。a[0]=a[1]=1;s=a[0]+a[1];for(i=2;i<40;i++){a[i]=a[i-1]+a[i-2];s+=a[i];}p=fopen("Design2.dat","w");fprintf(p,"%d",s);fclose(p);}(26) 求斐波那契(Fabonacci)数列中大于t的最小的一个数,结果由函数JSValue返回,其中斐波那契数列F(n)的定义为:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)分别计算当t=1000和t=3000时的结果,将计算结果写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。intf1=1,f2=1,f;f=f1+f2;while(f<=t){f1=f2;f2=f;f=f1+f2;}returnf;(27) 已知公鸡每只5元、母鸡每只3元、小鸡1元3只。求出用100元买100只鸡的解。将得到的解按公鸡、母鸡和小鸡的只数以格式"%d,%d,%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。p=fopen("Design1.dat","w");for(cock=0;cock<=20;cock++) for(hen=0;hen<=33;hen++) for(chick=3;chick<=100;chick++) if(cock+hen+chick==100&&cock*5+hen*3+chick/3.0==100) fprintf(p,"%d,%d,%d\n",cock,hen,chick);fclose(p);}(28) 统计满足条件x*x+y*y+z*z==2000的所有解的个数,(注意:若a、b、c是一个解,则a、c、b也是一个解,等等)。并将统计结果以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。p=fopen("design.dat",

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论