Posted on 2011-08-16 01:07
Uriel 阅读(399)
评论(0) 编辑 收藏 引用 所属分类:
考研&保研复试上机题
一个多月没敲过代码,打算是暑假复习考研的。。结果至今进展缓慢。。。
各种专业课,保研考试科目都还没开始,但愿过几天开始看数据结构能速度看完。。。
想想暑假以来,去合肥魔方比赛+玩,然后深圳夏令营玩一圈,新东方上半个月的课,各种亲戚家跑跑,睡睡懒觉啥的,暑假都快要荒废完了。。高数也只看了上册的书和上册一半的题目,单词依旧各种记不住。。。
实在是觉得代码也要不会敲了。。找了套最水的题目找找敲代码的感觉,4道都只有1星的。。应该是因为时间比较久远才会这么水吧。。又是中文题。。
1. 反序输出
//2000年清华大学计算机研究生机试题 反序输出
#include<stdio.h>
#include<stdlib.h>
int main() {
char s[10];
while(gets(s) != NULL) {
putchar(s[3]);
putchar(s[2]);
putchar(s[1]);
putchar(s[0]);
puts("");
}
return 0;
} 2. abc
这题结果随便凑凑就出来了,直接输结果敲起来还快些
//2000年清华大学计算机研究生机试真题 abc
#include<stdio.h>
#include<stdlib.h>
int main() {
int a, b, c;
for(a = 0; a <= 9; ++a) {
for(b = 0; b <= 9; ++b) {
if(a + b != 5) continue;
for(c = 0; c <= 9; ++c) {
if(b + c == 3 && c == 1) printf("%d %d %d\n", a, b, c);
}
}
}
return 0;
} 3. 完数VS盈数
//2000年清华大学计算机研究生机试题 完数VS盈数
#include<stdio.h>
#include<stdlib.h>
int a1[60], a2[60], n1, n2;
int main() {
int i, j, tp;
n1 = n2 = 0;
for(i = 2; i <= 60; ++i) {
tp = 0;
for(j = 1; j < i; ++j) {
if(i % j == 0) tp += j;
}
if(tp == i) a1[n1++] = i;
else if(tp > i) a2[n2++] = i;
}
printf("E:");
for(i = 0; i < n1; ++i) printf(" %d", a1[i]);
puts("");
printf("G:");
for(i = 0; i < n2; ++i) printf(" %d", a2[i]);
puts("");
return 0;
} 4. 成绩排序
这题RE一次,因为把1000看成100了。。然后WA两次,没有看清是成绩相同按名字,名字相同按年龄排。。话说题目貌似也没说清年龄是从小到大还是从大到小。。不过如此水题罚时多次。。罪过罪过
//2000年清华大学计算机研究生机试题 成绩排序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct M{
char name[110];
int age, sco;
}p[1010];
bool cmp(M a, M b) {
if(a.sco != b.sco) return a.sco < b.sco;
else if(strcmp(a.name, b.name) != 0) return strcmp(a.name, b.name) < 0;
else
return a.age < b.age;
}
int n;
int main() {
int i;
while(~scanf("%d", &n)) {
for(i = 0; i < n; ++i) {
scanf("%s %d %d", p[i].name, &p[i].age, &p[i].sco);
}
sort(p, p + n, cmp);
for(i = 0; i < n; ++i) {
printf("%s %d %d\n", p[i].name, p[i].age, p[i].sco);
}
}
return 0;
}