2009年江苏大学计算机编程大题

第二题:

#include <stdio.h>
#include <math.h>
int main(){
    float sum = 0, count = 1.0;
    int i = 1;
    while(fabs(1.0/count) > 1e-6){
        if(i%2){
            sum += 1.0/count;
        }
        else{
            sum += -1.0/count;
        }
        i++;
        count = (count+2);
    }
    printf("%f
",sum*4);
    return 0;
}

第三题:

#include <stdio.h>
#include <math.h>
int main(){
    float height = 100, jump = 0, sumj = 0, sumd = 0, sum = 0;
    int i;
    for(i = 1; i <= 10; i++){
        sumd += height;            // 第一次落地距离 
        jump = height/2;         
        sumj += jump;        // 第一次弹起距离
        height = jump;         // 第一期弹起距离 
        sum = sumd + sumj;
    }
    printf("第10次落地经过%f,第10次反弹%f", sum-jump,jump);
    return 0;
}
//第10次落地经过299.609375,第10次反弹0.097656

第三题:

#include <stdio.h>
#include <math.h>
int main(){
    int x,y,k,i,j,n,start=1,flag=1;
    scanf("%d",&n);
      int a[n][n]={0};
    for(i=0;i<n;i++){
        if(flag==0){
           for(x=0;x<=i;x++)
                  a[x+n-i-1][x]=start++;
               flag=1;
        }else{
            for(x=i;x>=0;x--) a[x+n-1-i][x]=start++;
            flag=0;
        }
    }
    int ends=n*n;flag=1;
    for(i=n-1;i>0;i--){
        if(flag==1){
            for(x=i;x<=n-1;x++) a[x-i][x]=ends--;
            flag=0;
        }else{
          for(x=n-1;x>=i;x--) a[x-i][x]=ends--;
          flag=1;    
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            printf("%4d",a[i][j]);
        }
        printf("
");
    }    
  return 0;
}

第四题在考试时间内不太容易写出来,诸位有其他方法的可以留言

 收录于《考研计算机885复习》

原文地址:https://www.cnblogs.com/byczyz/p/13800146.html