6800: NOIP初赛习题--C++代码基础
Description
1.[2019-4]若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s = a; for (b = 1; b <= c; b++) s = s - 1;
则与上述程序段功能等价的赋值语句是()
A. s = a - c;
B. s = a - b;
C. s = s - c;
D. s = b - c;
2.[2014-19]若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值,c>0。
s = a; for(b = 1; b <= c; b++) s += 1;
则与上述程序段功能等价的赋值语句是( )。
A. s = a + b
B. s = a + c
C. s = s + c
D. s = b + c
3.[2016-13]有以下程序:
#include <iostream> using namespace std;
int main()
{
int k = 4, n = 0;
while (n < k)
{
n++;
if (n % 3 != 0)
continue;
k--;
}
cout << k << "," << n << endl;
return 0;
}
程序运行后输出的结果是( )。
A. 2,2
B. 2,3
C. 3,2
D. 3,3
4.[2014-13]要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10
#include <iostream> using namespace std; int main() { int n; float s; s = 1.0; for(n = 10; n > 1; n--) s = s + 1 / n; cout << s << endl; return 0; }
程序运行后输出结果错误,导致错误结果的程序行是( )。
A. s = 1.0;
B. for(n = 10; n > 1; n--)
C. s = s + 1 / n;
D. cout << s << endl;
5.[2014-14]设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )。
A. x = (x * 100) + 0.5 / 100.0;
B. x = (x * 100 + 0.5) / 100.0;
C. x = (int)(x * 100 + 0.5)/100.0;
D. x = (x / 100 + 0.5) * 100.0;
6.[2014-15]有以下程序:
#include <iostream> using namespace std; int main() { int s, a, n; s = 0; a = 1; cin >> n; do { s += 1; a -= 2; } while(a != n); cout << s << endl; return 0; }
若要使程序的输出值为2,则应该从键盘给n输入的值是( )。
A. -1
B. -3
C. -5
D. 0
7.[2013-18]把 64 位非零浮点数强制转换成32位浮点数后,不可能 ()。
A. 大于原数
B. 小于原数
C. 等于原数
D. 与原数符号相反
8.[2010-1]浮点数2E+03表示( )。
A. 2.03
B. 5
C. 8
D. 2000
9.[2013-19]下列程序中,正确计算1, 2, ⋯, 100 这 100 个自然数之和sum(初始值为0)的是( )。
A. i = 1 do{ sum +=i; i++; }while(i<=100);
B. i = 1; do{ sum +=i; i++; }while(i > 100);
C. i = 1; while(i < 100){ sum+=i; i++; }
D. i = 1; while(i >= 100){ sum+=i; i++; }
10.[2012-18]在程序运行过程中,如果递归调用的层数过多,会因为( )引发错误。
A. 系统分配的栈空间溢出
B. 系统分配的堆空间溢出
C. 系统分配的队列空间溢出
D. 系统分配的链表空间溢出