#KG001. [黑猫编程C++语法第二部分通关测评] 客观题
[黑猫编程C++语法第二部分通关测评] 客观题
一、选择题(15×2 = 30分)
1.以下关于C++语言标识符的描述中,正确的是( )。
{{ select(1) }}
- 标识符可以由汉字组成
- 标识符只能以字母开头
- 关键字可以作为用户标识符
- Area与area是不同的标识符
2.判断char类型的变量c1是否为数字字符的正确表达式为( )。
{{ select(2) }}
- (c1>=0)&&(c1<=9)
- (c1>= '0' )&&(c1<= '9' )
- '0'<=c1<='9'
- (c1>= '0')||(c1<='9')
3.若有语句int a=1,b=2,c=3;则以下值为0的表达式是( )。
{{ select(3) }}
- 'a' && 'b'
- a<=b
- (a>b)||(b<c)
- (!(a+b)==c&&a)
4.在循环语句的循环体中执行break语句,其作用是( )。
{{ select(4) }}
- 跳出该循环体,提前结束循环
- 继续执行break语句之后的循环体各语句
- 结束本次循环,进行下次循环
- 终止程序运行
5.执行语句for(int i=10;i>0;i--);后,变量i的值为 ( )。
{{ select(5) }}
- 10
- 9
- 0
- 1
6.表示关系a<b<=c的C++语言表达式为( )。
{{ select(6) }}
- (a<b)&&(b<=c)
- (a<b)AND(b<=c)
- (a<b<=c)
- (a<b)&(b<=c)
7.如下程序的输出结果是( )。
{{ select(7) }}
- a=2, b=0
- a=2, b=1
- a=1, b=1
- a=1, b=0
8.有以下程序 程序运行时,输入的值在哪个范围才会有输出结果( )。
{{ select(8) }}
- 不等于10的整数
- 大于3且不等于10的整数
- 大于3或不等于10的整数
- 小于3的整数
9.已知大写字母A的ASCII编码为65(十进制),则大写字母J的十进制ASCII编码为:( )。
{{ select(9) }}
- 75
- 72
- 73
- 以上都不是
10.在 8 位二进制补码中,10101011 表示的数是十进制下的( )。
{{ select(10) }}
- 43
- -85
- -43
- -84
11.设x=true, y=true, z=false, 以下逻辑运算表达式值为真的是( )。
{{ select(11) }}
- ( x && y ) && z
- x && ( z || y ) && z
- ( x && y ) || (z || x )
- ( y || z) && x && z
12.在C++ 语言中 - 作为单目运算符时表示( ),作为双目运算符时表示( )。
{{ select(12) }}
- 减号、减号
- 负号、减号
- 减号、负号
- 取反、减号
13.如下程序执行后,输出结果为( )。
{{ select(13) }}
- 20
- 15
- 25
- 3
14.5 & 4 的值是( )。
{{ select(14) }}
- 20
- 5
- 4
- -1
15.int x = 6, n = 6; x -= ++n; x =___, n =___
( )。
{{ select(15) }}
- -1、7
- 6、6
- 6、7
- 1、6
二、阅读程序(程序输入不超过变量定义的范围;判断正确填√,错误填×;除特殊说明外,判断题1分;选择题 单选5分,多选5分(全选得满分,漏选得3分,选错/多选不得分)总计 40分)
第 1 题
1.#include <iostream>
2.using namespace std;
3.
4.int main() {
5.
6. int n;
7. cin >> n;
8.
9. while (n) {
10. cout << n % 10;
11. n /= 10;
12. }
13.
14. return 0;
15.}
判断题
① 输入的数值必须是整数,否则程序可能报错( )。
{{ select(16) }}
- 对
- 错
② 若输入的数字是123456789 输出的数字是 987654321( )。
{{ select(17) }}
- 对
- 错
③ 将第11行的n/=10改成 n/10,运行结果不受影响( )。
{{ select(18) }}
- 对
- 错
④ 将第10行的n%10 改成 n%=10,运行结果不受影响( )。
{{ select(19) }}
- 对
- 错
单选题
⑤ 若输出的数字为 12121 ,则下列说法中正确的是( )。
{{ select(20) }}
- 输入的数字为12121
- 输入的数字为 121
- 输出有误
- 输入的数字为1122
⑥ 若输入的数字为-128,则下列说法中正确的是( )。
{{ select(21) }}
- 无输出结果
- 输出的数字为 -128
- 输出的数字为 128
- 输出的数字为 -8-2-1
第 2 题
1.#include <iostream>
2.using namespace std;
3.int main() {
4. int a = 5;
5. while (!(a-- > 5)) {
6. switch (a) {
7. case 1: a++;
8. case 4: a += 4;
9. case 5:
10. a += 5;
11. break;
12. default:
13. a -= 5;
14. }
15. }
16. cout << a << endl;
17. return 0;
18.}
判断题
① 本题最终输出结果为 13( )。
{{ select(22) }}
- 对
- 错
② 将11行的 break 去掉输出结果一定会改变( )。
{{ select(23) }}
- 对
- 错
③ 将第5行 (!(a-- >5))
改为 a-- <= 5
结果不会改变( )。
{{ select(24) }}
- 对
- 错
选择题(没有特意说明是多选题目的都是单选题目)
④ 第7行的a++可以用以下哪些语句代替( )(多选题)。
{{ multiselect(25) }}
- a=a+1;
- ++a
- a+1
- a=1
⑤ switch语句中执行顺序为( )?
{{ select(26) }}
- case 1 -> defalt
- case 4 -> case 5 -> break
- case 2 -> defalt
- defalt
第 3 题
1.#include<iostream>
2.using namespace std;
3.int main( ){
4.
5. int i = 1;
6. while (i <= 15)
7. if (++i % 3 != 2)
8. continue;
9. else
10. cout << i << " ";
11.
12. return 0;
13.}
判断题
① 将第7行的++i换成i++输出结果不会改变( )。
{{ select(27) }}
- 对
- 错
② 第8行的continue可以用break替换掉( )。
{{ select(28) }}
- 对
- 错
③ 本题目找的数字是1~15中对3取余的结果不为2的数字( )。
{{ select(29) }}
- 对
- 错
选择题(没有特殊说明为多选题的都是单选题)
④ 将第6行的while( i<=15) 改成以下哪些语句结果不会发生改变(多选)( )。
{{ multiselect(30) }}
- i<=14
- i<=16
- i<=13
- i<=17
⑤ 本题输出的最终结果是( )
{{ select(31) }}
- 2 5 8 11 14
- 2 5 7 9 11 13 15
- 2 5 8 11 13
- 2 5 8 11 13 15
三、完善程序(单选题,每小题3分,共计30分)
第1题
(质因数分解)给出正整数n,请输出将n质因数分解的结果,结果从小到大输出。
例如: 输入 n=120 , 程序应该输出 2 2 2 3 5,表示 120=2 × 2 × 2 × 3 × 5。
输入保证 2 ≤ n ≤ 。提示: 先从小到大枚举变量i,然后用i不停试除n来寻找所有的质因子。
试补全程序。
01 #include <cstdio>
02 using namespace std;
03
04 int n, i;
05
06 int main( ) {
07 scanf("%d", &n); // cin>>n;
08 for(i=①; ②<=n; i++){
09 ③{
10 printf("%d ", i);
11 n=n/i;
12 }
13 }
14 if(④)
15 printf("%d ",⑤);
16 return 0;
17}
-
①处应填( )。
{{ select(32) }}
- n-1
- 0
- 1
- 2
-
②处应填( )。
{{ select(33) }}
- n/i
- n/(i
*
i) - i
*
i*
i - i
*
i
-
③处应填( )。
{{ select(34) }}
- if(i
*
i<=n) - if(n%i==0)
- while(i
*
i<=n) - while(n%i==0)
-
④处应填( )。
{{ select(35) }}
- n>1
- n <=1
- i+i<=n
- i<n/i
-
⑤处应填( )。
{{ select(36) }}
- 2
- i
- n/i
- n
第2题
下列程序实现的是:求 Sn=a+aa+aaa+...+aa...a之值,其中 a 是一个数字。 例如 2 + 22 + 222 + 2222(此时n=4),n 由键盘输入。
#include <iostream>
using namespace std;
int main() {
int a, n, count = 1, Sn = 0, Tn = 0;
cout << "请输入 a 和 n 的值:" << endl;
cin >> a >> n;
while ( ① <= ② ) {
Tn = ③ ;
Sn = ④ ;
a = a * ⑤ ;
count++;
}
cout << "a + aa + aaa+... = " << Sn;
return 0;
}
-
①处应填( )。
{{ select(37) }}
- a
- Tn
- Sn
- count
-
②处应填( )。
{{ select(38) }}
- n
- Tn
- a
- Sn
-
③处应填( )。
{{ select(39) }}
- Sn
- a
- Tn+a
- Tn
-
④处应填( )。
{{ select(40) }}
- Sn
- Sn+Tn
- Tn
- a
-
⑤处应填( )。
{{ select(41) }}
- 10
- 100
- 1000
- 10000