浙江省秋季C语言二级考试上机编程试题及答案

更新时间:2023-04-15 20:07:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

浙江省2011年秋季C语言二级考试上机编程试题及答案1.三个数比较大小。

#include

void s) //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) s);

if(b>c) s);

if(______2______) //a>b

s);

printf("%d,%d,%d",a,b,c); }

2.表达式求和。

#include #include

void main()

{ FILE *fp;

float n=1,t=1,pi=0;

int i;

// 从以下开始答题

i=1;

while(fabs(t)>=1e-6)

{ pi=pi+t; i= -i; n=n+2; t=i/n; }

fp=fopen("Design1.dat","w");

fprintf(fp,"%.6f",4*pi);

fclose(fp); }

运行结果:3.141594

3.字母后移循环输出。

#include

void main()

{ char c; c=getchar();

if(______1______) // c>='a' && c<'v'

c=c+5;

else

if (c>='v' && c<='z')

______2______ // c=c-21;

putchar(c); }

4.求满足条件的数。

#include

#include

void main()

{ float y=1.05; int n=1; FILE *p;

// 以下开始做答

while(!(pow(y,n)<1e6 && pow(y,n+1)>1e6)) n++;

p=fopen("Design2.dat","w");

fprintf(p,"%d,%.0f",n,pow(1.05,n));

fclose(p); }

运行结果:283,992137

5.求满足条件的数。

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

6.求平面点间的最短距离。

#include #include

#define len(x1,y1,x2,y2) sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)) void main()

{ FILE *p; int i,j; float c,minc;

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

minc=len(x[0],y[0],x[1],y[1]);

p=fopen("Design1.dat","w");

for(i=0;i<9;i++)

for(j=i+1;j<10;j++)

if((c=len(x[i],y[i],x[j],y[j]))

minc=c;

fprintf(p,"%f",minc);

fclose(p); }

运行结果:1.457944

7.Fibonacci数列求值问题。

#include

_______1______ // long f(int n);

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

运行结果:832040

8.多项式求和问题。

#include #include

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("Design2.dat","w");

y=a[0] ;

for(i=1;i<10;i++)

{ t=t*x; y=y+t*a[i]; }

fprintf(p,"%f",y);

fclose(p); }

运行结果:98.722542

9.整数转换为字符串。

#include

void itoa(long i,char *s)

{ if(i==0) return;

/****** 1 ******/

*s = '1'+i%10; //*s='0'+i%10

itoa(i/10,s-1); }

void main()

{ long n; char str[7]=""; scanf("%ld",&n);

/****** 2 ******/

itoa(n,str+6); // itoa(n,str+5);

printf("%s",str); }

10.Fibonacci 数列求值问题。

#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("Design1.dat","w");

for(i=3;i<40;i=i+2)

{ t1=t1+t2; t2=t1+t2; f1=f1+f2; f2=f1+f2; s=s+t1/f1+t2/f2; } fprintf(p,"%.6f",s); fclose(p); }

运行结果:65.020950

11.数组赋值。

#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]=______1______; // b[i]=a[i]+a[i-1];

for (i=1; i<10; i++)

{ printf("%3d",b[i]);

if (______2______) printf("\n"); // i%3==0 } } 12.求各点距离和。

#include #include

void main()

{ FILE *p; int i;

float x[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6};

float y[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4}; float s=0.0;

p=fopen("Design2.dat","w");

for(i=0;i<10;i++)

s=s+sqrt(pow(x[i]-1, 2)+pow(y[i]-1, 2));

fprintf(p,"%.6f",s); fclose(p); }

运行结果:52.679447

13.十进制数转换为二进制数。

#include

void dec2bin(int m)

{ int bin[32],j;

for(j=0;m!=0;j++)

{ bin[j]= ______1______; //m%2

m=m/2; }

for(;j!=0;j--)

printf("%d", ______2______ ); //bin[j-1] } void main()

{ int n;

scanf("%d",&n);

dec2bin(n); }

14.求符合条件的数列之和。

#include

#include

void main()

{ FILE *p; float s=0,a=81;int i;

p=fopen("Design2.dat","w");

for(i=1;i<=30;i++)

{ s=s+a;

a=sqrt(a); }

fprintf(p,"%.3f",s);

fclose(p); }

运行结果:121.336

15.在字符串中删除数字字符。

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

16

.求满足条件的数。

void main()

{ FILE *p; float f(float x,float y),min;

int x,y,x1,y1;

p=fopen("Design1.dat","w");

min=f(1,1);

for(x=1;x<=6;x++)

for(y=1;y<=6;y++)

if (f(x,y)

fprintf(p,"%d,%d",x1,y1);

fclose(p); }

float f(float u,float v)

{ return (3.14*u-v)/(u+v); }

运行结果:1, 6

17.去除数组中的负数。

#include

void f(int *a,int *m)

{ int i,j;

for(i=0;i<*m;i++)

if(a[i]<0) {

for(j=i--;j<*m-1;j++) a[j]=a[j+1];

_____1_____; // *m=*m-1; } }

void main()

{ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};

_______2_______; // f(x,&n);

for(i=0;i

printf("\n"); }

运行结果:1 3 4 6

18.二维数组中的运算。

#include #include

void main()

{ float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE *p; float x; int i,j;

for(i=0;i<3;i++)

{ x=fabs(a[i][0]);

for(j=1;j<3;j++)

if(fabs(a[i][j]>x)) x=fabs(a[i][j]);

for(j=0;j<3;j++)

a[i][j]=a[i][j]/x; }

p=fopen("Design2.dat","w");

for(i=0;i<3;i++) {

for(j=0;j<3;j++) fprintf(p,"%10.6f",a[i][j]);

fprintf(p,"\n"); }

fclose(p); }

运行结果:0.361111 0.750000 1.000000

0.425532 0.638298 1.000000

0.750000 1.000000 0.317500

19.平面上各点距离计算。

#include #include #include

void main()

{ int i,n;

/***** 1 *****/

struct axy { float x,y; } a; // struct axy{ float x; float y;} *a; scanf("%d",&n);

a=(float*) malloc(n*2*sizeof(float));

for(i=0;i

/***** 2 *****/

scanf("%f%f",a[i].x,a[i].y); // scanf("%f%f",&a[i].x,&a[i].y); for(i=0;i

if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)

printf("%f,%f\n",a[i].x,a[i].y); }

**试题本身有错误,a=(struct axy *) malloc(n*2*sizeof(float));

数组。

20.从a数组中找出偶数放入b

void main()

{ FILE *p;

int i,j,temp,n=0;

int a[10]={7,6,20,3,14,88,53,62,10,29},b[10];

for(i=0;i<10;i++)

if(a[i]%2==0) b[n++]=a[i];

for(i=0;i

for(j=0;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

{ fprintf(p,"%3d",b[i]);

if ( (i+1)%3==0) fputc (p, ‘\n’); }

fclose(p); }

运行结果:6 10 14

20 62 88

21.求输入整数的各位数字之和。

#include #include

void main()

{ int n,s=0;

scanf("%d",&n);

______ 1 ______ // n=fabs(n);

while(n!=0) {

______ 2 ______ // s+=n%10;

n=n/10; }

printf("%d\n",s); }

22.关于生产能力的数学应用题。

#include

int year(int x)

{ float p=11.5; int y=1999;

while(p<=x)

{ p=p*(1+0.098); y++; }

return y; }

void main()

{ FILE *p;

p=fopen("design.dat","w");

fprintf(p,"%d,%d",year(20),year(30)); fclose(p); } 运行结果:2005,2010

23.穷举法求解方程。

#include

void main()

{ FILE *p; int x,y,z,k=0;

p=fopen("Design1.dat","w");

for(x= -45;x<45;x++)

for(y= -45;y<45;y++)

for(z= -45;z<45;z++)

if(x*x+y*y+z*z==2000) k++;

fprintf(p,"%d",k); fclose(p); }

运行结果:144

.字符串排序。

24

void main()

{ FILE *p; char *s="634,.%@\\w|sq2",c;

int i,j,k,n=strlen(s);

p=fopen("Design2.dat","w");

for(i=0;i

for(j=i+1;j

if( *(s+j)<*(s+i) ) {c=*(s+i); *(s+i)=*(s+j); *(s+j)=c; } for(i=0;i

fclose(p); }

运行结果:%,.2346@\qsw|

25.将整数首尾倒置。

本文来源:https://www.bwwdw.com/article/yl0q.html

Top