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\n",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("\n"); } return 0; }
第四题在考试时间内不太容易写出来,诸位有其他方法的可以留言
一纸高中万里风,寒窗读破华堂空。
莫道长安花看尽,由来枝叶几相同?