考试须知
考察内容大致为:数组、链表、指针、字符串、循环、枚举、排序等
试题结构:三题,初级60分,中级100分,高级160分
考试时间:2小时
下面为收集的以前的机试题,并不是按照初中高级列出的
划线
描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:
(1) 及格线是10的倍数;
(2) 保证至少有60%的学生及格;
(3) 如果所有的学生都高于60分,则及格线为60分
输入:输入10个整数,取值0~100
输出:输出及格线,10的倍数
1 |
|
亮着的灯
一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。
有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。
注:电灯数和学生数一致。不能写笨拙的双重循环(优化过的是可以的),会运行超时。本题有运行时间限制(一说10000ms)。
输入 65535
输出 255
暴力法(肯定会超时的)
1 |
|
因子法
因为对于k号灯,只有前1-k号学生才会改变它的状态,进一步只有k的因子才能改变k的状态,我们只需要知道k有多少个因子就能判断出灯最终的状态,如果有偶数个因子,则灯是熄灭的,如果灯有奇数个因子,则灯是亮的。而对于一个数,因子都是成对出现的,如12的因子为1和12,2和6,3和4,这样看来一个数的因子数都是偶数个,只有当某个因子是乘以本身的时候,因子数才是奇数,如16的因子有,1和16,2和8,4,即当k是完全平方数时,它才有奇数个因子,它才是亮着的。
1 |
|
输出大写字母
输入一个字符串,输出其中的大写字母
输入 2, sdARSFGfg
输出 ARSFG1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using namespace std;
int main()
{
char str[100];
while (scanf("%s", str) != EOF)
{
string s = str;
int len = s.length();
for (int i = 0; i < len; i++)
{
if (isalpha(s[i]) && isupper(s[i]))
//判断是否是字母,大写的,还有islower和isdigit
{
printf("%c",s[i]);
}
}
printf("\n");
}
return 0;
}