Posted on 2011-08-21 21:31
Uriel 阅读(193)
评论(0) 编辑 收藏 引用 所属分类:
考研&保研复试上机题
两套, 一共6题, 都是大水啦~
1. 分段函数
//2001年清华大学计算机研究生机试题(第I套) 分段函数
#include<stdio.h>
#include<stdlib.h>
int main() {
double x, b;
while(~scanf("%lf", &x)) {
if(0 <= x && x < 2) b = -x + 2.5;
else if(2 <= x && x < 4) b = 2 - 1.5 * (x - 3) * (x - 3);
else if(4 <= x && x < 6) b = x / 2.0 - 1.5;
printf("%.3lf\n", b);
}
return 0;
} 2. 整数和
//2001年清华大学计算机研究生机试题(第I套) 整数和
#include<stdio.h>
#include<stdlib.h>
int main() {
int n, i, t;
while(~scanf("%d", &n)) {
if(n >= 0) {
t = 0;
for(i = 0; i <= n; ++i) t += n + i;
}
else {
t = 0;
for(i = 0; i <= -n; ++i) t += n - i;
}
printf("%d\n", t);
}
return 0;
} 3. 反序数
//2001年清华大学计算机研究生机试题(第I套) 反序数
#include<stdio.h>
#include<stdlib.h>
int main() {
int i, t1, t2, t3, t4;
for(i = 1000; i <= 9999; ++i) {
t1 = i % 10;
t2 = i % 100 - t1;
t3 = i % 1000 - t1 - t2;
t4 = i /1000;
//printf("%d %d %d %d\n", t1, t2, t3, t4);
if(t1 * 1000 + t2 * 10 + t3 / 10 + t4 == 9 * i) printf("%d\n", i);
}
return 0;
} 4. 输出梯形
感觉题目有点表述不清... WA两次啊... 原来是多case...
//2001年清华大学计算机研究生机试题(第II套) 输出梯形
#include<stdio.h>
#include<stdlib.h>
int main() {
int n, i, j;
while(~scanf("%d", &n)) {
for(i = 0; i < n; ++i) {
for(j = 0; j < 2 * (n - i - 1); ++j) putchar(' ');
for(j = 0; j < 2 * i + n; ++j) putchar('*');
puts("");
}
}
return 0;
} 5. 字符串排序
//2001年清华大学计算机研究生机试题(第II套) 字符串排序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main() {
char s[30];
while(gets(s) != NULL) {
sort(s, s + strlen(s));
puts(s);
}
return 0;
} 6. n的阶乘
long long够了
//2001年清华大学计算机研究生机试题(第II套) n的阶乘
#include<stdio.h>
#include<stdlib.h>
int main() {
int i;
long long n;
while(~scanf("%lld", &n)) {
for(i = n -1; i >= 1; --i) n *= i;
printf("%lld\n", n);
}
return 0;
}