文档库 最新最全的文档下载
当前位置:文档库 › 浙江计算机二级编程试题1

浙江计算机二级编程试题1

浙江计算机二级编程试题1
浙江计算机二级编程试题1

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);

相关文档