#CS41014. 阅读程序10-数论14
阅读程序10-数论14
阅读程序
注意:切勿用电脑直接运行代码得出答案,请用大脑+笔+纸运行代码答题,否则是在浪费你的时间。
第10节:数论
第14题【NOIP】2013
#include <iostream>
using namespace std;
int main() {
04 const int SIZE = 100;
int n, f, i, left, right, middle, a[SIZE];
cin>>n>>f;
07 for (i = 1; i <= n; i++)
08 cin>>a[i];
for(int i=1; i<=n; i++) {
for(int j=1; j<=i; j++)
11 if(a[i]>=a[j]) {
t=a[i];
a[j]=a[i];
a[i]=t;
}
}
left = 1;
right = n;
do {
middle = (left + right) / 2;
if (f <= a[middle])
right = middle;
else
left = middle + 1;
} while (left < right);
cout<<left<<endl;
return 0;
}
●判断题
(1)将第04行的程序移动到02、03行的中间,程序能够正常运行。
{{ select(14-1) }}
- 正确
- 错误
(2)将第11行的“=”删除,运行结果会改变。
{{ select(14-2) }}
- 正确
- 错误
(3)将第07行的“i=1;i<=n;”改为“i=0;i<n;”运行结果不会改变。
{{ select(14-3) }}
- 正确
- 错误
(4)若第08行输入n个相同的数字,程序最后输出的left值为1。
{{ select(14-4) }}
- 正确
- 错误
(5)当n=5,f=7,a={8,4,7,5,6}时,则结果为()。
{{ select(14-5) }}
- 3
- 4
- 5
- 7
(6)输人仍是第(5),将第11行的“>="改为"<=",则结果为()
{{ select(14-6) }}
- 3
- 4
- 5
- 7