wujr5 / c-and-cpp-language-learning

C和C++编程语言学习 - 2015级
67 stars 34 forks source link

软件:期中考试问题总结 #27

Open ghostbody opened 8 years ago

ghostbody commented 8 years ago

软件学院15级教务1班程序设计(实验)期中考试参考答案

1000

#include <stdio.h>

int main() {
  int n;
  int plus;
  int min;
  int flag = 1;

  scanf("%d", &n);

  int i, j, k;
  plus = n / 2;
  min = 0;

  for(i = 0; i < n; i++) {    
    for(j = 0; j < min; j++) {
      printf("-");
    }
    for(j = 0; j < plus; j++) {
      printf("+");
    }
    printf("+");
    for(j = 0; j < plus; j++) {
      printf("+");
    }
    for(j = 0; j < min; j++) {
      printf("-");
    }
    printf("\n");
    if(flag) {
      plus --;
      min ++;
    } else {
      plus++;
      min--;
    }

    if(plus <= 0) {
      flag = 0;
    }
  }

  return 0;
}

1001

#include <stdio.h>

const int chair = 30;
const int trees = 10;

int main() {
  int i;
  int height;
  int apple[10];
  int ans = 0;

  for(i = 0; i < trees; i++) {
    scanf("%d", &apple[i]);
  }
  scanf("%d", &height);
  for(i = 0; i < trees; i++) {
    if(height + chair >= apple[i]) {
      ans ++;
    }
  }

  printf("%d\n", ans);

  return 0;
}

1002

#include <stdio.h>

int main() {
  int m,n;
  int i;
  unsigned long long ans;
  scanf("%d", &m);

  while(m--) {
    scanf("%d", &n);
    ans = 1;
    for(i = 2; i <= n; i++) {
      ans += i*i*i;
    }
    printf("%lld\n", ans);
  }

  return 0;
}

1003

#include <stdio.h>

int main() {
  int n;
  int array[101];
  int i, j;
  int ans;

  while(scanf("%d", &n) && n) {
    ans  = 0;
    for(i = 0; i < n; i++) {
      scanf("%d", &array[i]);
    }

    for(i = 0; i < n; i++) {
      for(j = 0; j < n; j++) {
    if(array[j] * 2 == array[i]) {
      ans++;
    }
      }
    }
    printf("%d\n", ans);
  }

}

1004

#include<stdio.h>

int main(){
  int i,j,a[1000][1000];
  int n;
  while(scanf("%d", &n) && n) {
    for(i = 0; i < n; i++) {
      for(j = 0; j < n; j++){
    a[i][0] = 1;
    a[i][i] = 1;
      }
    }
    for(i = 2; i < n; i++) {
      for(j = 1; j <= i-1; j++) {
    a[i][j] = a[i-1][j-1] + a[i-1][j];
      }
    }
    for(i = 0; i < n; i++){
      for(j = 0; j <= i; j++) {
    printf("%d\t", a[i][j]);
      }
      printf("\n");
    }
  }
  return 0;
}

1005

#include <stdio.h>

int main() {
  int start_hour;
  int start_min;
  int end_hour;
  int end_min;

  int sleep_hour;
  int sleep_min;

  scanf("%d:%d", &start_hour, &start_min);
  scanf("%d:%d", &end_hour, &end_min);

  if((end_hour < start_hour) ||
     ((end_hour == start_hour) && (start_min > end_min))) {
    end_hour += 24;
  }

  sleep_hour = end_hour - start_hour;
  sleep_min = end_min - start_min;

  if(sleep_min < 0) {
    sleep_min += 60;
    sleep_hour--;
  }

  if(sleep_hour < 10){
    printf("0");
  }
  printf("%d:", sleep_hour);

  if(sleep_min < 10) {
    printf("0");
  }
  printf("%d\n", sleep_min);

  return 0;
}
cc598 commented 8 years ago

楊輝三角一看只有那麼少人完成了,果斷略過.double那題看不懂題目所以略過.時鐘題,思路不對,導致做了非常多的時間。總結來說要多做題,累積經驗。 15331067

revnos commented 8 years ago

第一题想了太久…到后面脑子直接乱掉。后来发现其实也没有太难…… 杨辉三角直接傻掉,看到AC的人太少我去做了最后一题,用%d:%d来做结果失败了发现只是自己的输出没有%02d...简直崩溃.还是很多知识点都没搞清用的时候就没用上 15331065

CZXHenry commented 8 years ago

学号15331044 本次考试问题主要出在1003,提交时一直显示超时,然后心态开始急躁了,想要放弃1003去做1005,因为一时间忘了杨辉三角的公式,但是在思考1005的时候又一直惦记着1003,最终没有用心去思考1005的输入问题,回过头去继续做1003,在临交卷的最后一分钟发现了计数器的问题,但是又紧张导致手误使网页卡住而没能提交成功。 其实,最主要的问题还是自己对知识点的理解不够透彻,对课堂上的很多东西都没有弄明白。其次就是心态不够好,太浮躁,在出现多次超时的情况下如果能静下心来去会看代码还是很容易就发现那个错误的。

chengr25 commented 8 years ago

学号15331052 做得比较顺利的只有1001和1002题。接下来的1003题因为忘记在scanf的时候加上&,用了有点久才发现错误。这之后做1004题,之前没碰过二维数组,所以没往那里想,也想不到其他的办法,就直接跳了。做最后一题1005的时候没仔细看题目中的提示,只想到现实生活里比较正常的睡觉情况,在考试结束的时候才想到这一点,但是没时间改了。我是在做1005怎么做都错的时候回去做的1000,虽然简单但是那时候脑子很乱,循环的条件输入错了,所以这一题没做出来。 总结就是知识不够扎实,审题不够仔细。