学习C++从娃娃抓起!学习下帝都的对标CSP的BCSP考试,记录下CSP-J备考学习的每一个瞬间。
单选题
第1题
一般用哪种软件来编写C++的代码:
A.编译器
B.编辑器
C.调试器
D.浏览器
【答案】:B
第2题
下面哪个是编写一个C++程序不可缺少的内容:
A.变量
B.main函数(程序入口)
C.输入语句
D.输出语句
【答案】:B
第3题
出租车的计费规则是:当行驶距离小于3公里时,按照起步价13元收取;大于3公里时,每多出1公里额外收费2元。假设行驶距离总是整数,单位是公里,用变量x表示(x>0),以下哪个C++的表达式能够计算出打车的费用:
A.13 + (x - 3) * 2
B.13 * (x -3) + x % 3
C.x < 3 ? 13 + (x - 3) * 2 : 13
D.x > 3 ? 13 + (x - 3) * 2 : 13
【答案】:D
第4题
给定两个int类型的变量x和y, 现在需要计算它们的乘法结果并将结果存储在一个变量中,以下C++代码片段中做法正确的是:
A.int z = x * y;
B.long z = x * y;
C.unsigned int z = x * y;
D.long long z = (long long)x * y;
【答案】:D
第5题
执行下列C++代码,程序的输出是:
int a = 1, b , c = 2;
a = b + c;
b = a + c;
c = a + b;
cout << c << endl;
A.5
B.0
C.3
D.受编译器影响,无法确定输出
【答案】:D
第6题
给定以下几个不同进制的数字,请问哪个数字转换为十进制后最大?
A. ( 253 ) 10 (253)_{10} (253)10
B. ( 11111110 ) 2 (11111110)_2 (11111110)2
C. ( 374 ) 8 (374)_8 (374)8
D. ( F F ) 16 (FF)_{16} (FF)16
【答案】:D
第7题
以下不是输入设备的是( )
A.音响
B.鼠标
C.键盘
D.触摸屏
【答案】:A
第8题
一个整数变量x,现在判断它是否是一个大于100的奇数,正确的是:
A.x > 100 && x % 2 == 0
B.x >= 100 && x % 2 == 1
C.x > 100 && x % 2 == 1
D.x >= 100 && x % 2 == 0
【答案】:C
第9题
有三个开关对应另一个房间里的三个灯,其中一个开关控制着一个灯,一一对应。现在小明在有开关的房间里,他无法直接看到灯。小明只能进入灯的房间一次。小明要怎么操作来确定哪个开关对应控制哪盏灯?
A.打开所有开关,然后跑到另一个房间看
B.只打开一个开关,立刻关闭这个开关,再打开另一个开关,然后进入另一个房间看
C.打开一个开关一段时间,然后关闭它,再打开另一个开关,不关闭,然后进入房间
D.随机打开一个开关,然后立即进入房间
【答案】:B
第10题
现在只有1,2,3三个数字能组成多少个不同的三位数?
A.4
B.5
C.6
D.7
【答案】:C
第11题
请问以下哪个选项的存储空间最大?
A.1024MB
B.0.3GB
C.80000KB
D.100000000B
【答案】:A
第12题
下面程序输出结果是多少?
int s = 0;
for (int i=1; i<=10; i*=2) {
s += i;
}
cout << s << endl;
A.14
B.15
C.55
D.7
【答案】:B
第13题
以下哪个不是一个操作系统?
A.Windows
B.Linux
C.Dev C++
D.Android
【答案】:C
第14题
如下这一串数字是按照某种规律生成的:1,3,6,10,15,…找到这个规律,请问下一个数字应该是多少?
A.21
B.28
C.25
D.20
【答案】:A
第15题
现在一般的家用电脑、手机、平板电脑等,CPU单个核心的主频最接近哪个选项?
A.3Hz
B.3GHz
C.3KHz
D.3MHz
【答案】:B
阅读程序
#include <iostream>
using namespace std;
int main() {
char x, y;
cin >> x >> y;
if (x >= 'a' && y <= 'z' && x < y) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
return 0;
}
假设输入的变量x,y均是合法的ASC码字符, 完成下面的判断题和单选题:
第16题
将第4行的char改为int, 对于同样的输入程序的输出不会改变。
A.正确
B.错误
【答案】:B
第17题
调整第6行中三个判断条件的先后顺序,对于同样的输入程序的输出不会改变。
A.正确
B.错误
【答案】:A
第18题
当输入为ab时,程序输出1。
A.正确
B.错误
【答案】:A
第19题
当输入为AB时,程序输出0。
A.正确
B.错误
【答案】:A
第20题
若输出的结果为1,下列说法正确的是( )
A.x或者y为小写字母
B.x和y均为大写字母
C.x和y均为小写字母并且x在字母表中位于y的前面
D.x和y均为小写字母并且x在字母表中位于y的后面
【答案】:C
#include <iostream>
using namespace std;
int main() {
int n;
int a = 0, b = 1, c;
cin >> n;
for (int i=1; i<=n; i++) {
c = a + b;
a = b;
b = c;
}
cout << c << endl;
return 0;
}
假设输入的n为不超过80的正整数,完成下面的判断题和单选题。
第21题
忽略题目的假设,允许输入n为0,此时程序输出0。
A.正确
B.错误
【答案】:B
第22题
交换第9行和第10行的程序,对于同样的输入程序能够得到同样的输出。
A.正确
B.错误
【答案】:B
第23题
交换第8行和第9行的程序,对于同样的输入程序能够得到同样的输出。
A.正确
B.错误
【答案】:B
第24题
下列语句中可以替换第7行程序的是:( )
A.for (int i=1; i<n; ++i) {
B.for (int i=0; i<n; ++i) {
C.for (int i=n; i>1; --i) {
D.for (int i=n; i>=0; --i) {
【答案】:B
第25题
当输入为10时,输出为:( )
A.55
B.34
C.89
D.144
【答案】:C
第26题
当输入为46时,输出为:( )
A.701408733
B.1134903170
C.1836311903
D.-1323752223
#include <iostream>
using namespace std;
int main() {
int n;
int s = 0;
cin >> n;
while (n) {
int t = n;
while (t) {
s += t % 10;
t /= 10;
}
--n;
}
cout << s << endl;
return 0;
}
假设输入的n为不超过10000的正整数,完成下面的判断和单选题:
第27题
忽略题目的假设条件,允许输入n为0时,利程序将死循环。
A.正确
B.错误
【答案】:B
第28题
忽略题目的假设条件,允许输入n为-1时,程序将死循环。
A.正确
B.错误
【答案】:B
第29题
对调代码中第11行和第12行,对于同样的输入程序能够得到同样的输出。
A.正确
B.错误
【答案】:B
第30题
当输入n为5时,程序的输出为:( )
A.15
B.10
C.20
D.14
【答案】:A
第31题
当输入n为10时,程序的输出为:( )
A.40
B.55
C.46
D.45
【答案】:C
第32题
若将第8行和第10行改为如下哪个选项,在符合题目要求的输入下,不会影响程序的运行结果。( )
A.while (n != 0) { 和 while (t != 0) {
B.while (n > 0) { 和 while (t < 0) {
C.while (n < 0) { 和 while (t < 0) {
D.while (n == 0) { 和 while (t == 0) {
【答案】:A
第33题
该程序实现了怎样的功能?( )
A.求从0到n的所有整数的和
B.求从1到n的所有整数的和
C.求从1到n的所有整数的数位和
D.求整数n的数位和
【答案】:C
完善程序
(一)(最大波动)小明正在利用股票的波动程度来研究股票。小明拿到了一只股票n天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。( 2 ≤ n ≤ 1000 2\le n\le 1000 2≤n≤1000。股票每一天的价格为1到10000之间的整数。)
#include <iostream>
using namespace std;
int main() {
int n = 0;
cin >> n;
int p = 0;
cin >> p;
int m = -1;
for (__1__; i<=n; ++i) {
int c = 0;
cin >> c;
__2__;
if (__3__) {
val = -val;
}
if (__4__) {
m = val;
}
__5__;
}
cout << m << endl;
return 0;
}
第34题
1处应该填( )
A.int i=0
B.int i=1
C.int i=2
D.int i=-1
【答案】:C
第35题
2处应该填( )
A.int val = c
B.int val = p -c
C.int val = p
D.int val = 0
【答案】:B
第36题
3处应该填( )
A.val == 0
B.val > 0
C.val < 0
D.val != 0
【答案】:C
第37题
4处应该填( )
A.m < val
B.m > val
C.m == val
D.m != val
【答案】:A
第38题
5处应该填( )
A.c = p
B.m = p
C.p = m
D.p = c
【答案】:D
(二)(百鸡百钱)我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
#include <iostream>
using namespace std;
int main() {
for (int x = 0; __1__; ++x) {
for (int y = 0; __2__; ++y) {
for (int z = 0; __3__; __4__) {
if (x + y + z == 100 && __5__) {
cout << x << " " << y << " " << z << endl;
}
}
}
}
return 0;
}
第39题
1处应该填( )
A.x <= 5
B.x <= 20
C.x <= 15
D.x <= 10
【答案】:B
第40题
2处应该填( )
A.y <= 10
B.y <= 15
C.y <= 20
D.y <= 33
【答案】:D
第41题
3处应该填( )
A.z <= 100
B.z <= 200
C.z <= 300
D.z <= 50
【答案】:A
第42题
4处应该填( )
A.z++
B.++z
C.z += 3
D.z *= 3
【答案】:C
第43题
5处应该填( )
A.5x + 3y + 3z == 100
B.5 * x + 3 * y + 3 * z == 100
C.5 * x + 3 * y + z / 3 == 100
D.x + y + z == 100
【答案】:C