T603251 MCOI 2504月赛选择题 L1-1
202504L1-1月赛选择题
一.选择题
1.在C++中,下列可以做变量的是( )。
A. Var-1
B. S1
C. %%1
D._Var_1
正确答案:
D. _Var_1
分析:C++变量名只能包含字母、数字和下划线,且不能以数字开头。选项D符合命名规则,其他选项包含非法字符。
2.以下哪个是C++语言的关键字?( )
A. abs
B. cin
C. do
D.end1
正确答案:
C. do
分析:do是C++的关键字,用于do-while循环。其他选项是库函数(cin,abs)或拼写错误(end1)。
3.C++表达式16 / 4 % 2的值是( )。
A. 8
B. 4
C. 2
D.0
正确答案:
D. 0
分析:16/4=4,4%2=0。%是取模运算符,计算除法后的余数。
4.N是C++的正整数,值为12,则cout << (N % 3 + N / 5)的输出是( )。
A. 6.4
B. 2.4
C. 6
D.2
正确答案:
D. 2
分析:N%3=0,N/5=2(整数除法),0+2=2。输出是整数,不是浮点数。
5.常量7.0的数据类型是()。
A. double
B. float
C. void
D.Int
正确答案:
A. double
分析:C++中带小数点的数字默认为double类型。要指定为float需要加f后缀(如7.0f)。
6.如果a、b和c都是int类型的变量,下列哪个语句不符合C++语法?()
A. c = a + b;
B. c += a + b;
C. c = a = b;
D.c = a ++ b;
正确答案:
D. c = a ++ b;
分析:++是自增运算符,不能这样使用。正确形式应为c = a + b;或c = a++ + b;。
7.如果a和b均为int类型的变量,下列表达式能正确判断“a等于0且b等于0”的是 ()
A. (a == b == 0)
B. !(a || b)
C. (a + b == 0)
D.(a == 0) + (b == 0)
正确答案:
B.!(a || b)
分析:!(a || b)等价于a0且b0。其他选项不能正确判断两个条件。
8.下面C++代码执行后的输出是()。
A. 1010={1010}
B. 100=10
C. NN=100
D.{N}={1010}
正确答案:
A. 1010={1010}
分析:代码输出格式为NN={10*10},计算结果为100=10。
9.下面C++代码执行后,将输出能被2整除且除以7余数为2的数。下列选项不能实现的是( )。
A. ((i % 2 == 0) && (i % 7 == 2))
B. ((!(i % 2)) && (i % 7 == 2))
C. ((!(i % 2)) && (!(i % 7)))
D.((i % 2 != 1) && (i % 7 == 2))
正确答案:
C. ((!(i % 2)) && (!(i % 7)))
分析:这个条件判断的是能被2和7整除的数,不符合题目要求(除以7余2)。
10.下面C++代码执行后输出的是( )。
A. 500
B. 450
C. 10
D.1
正确答案:
B. 450
分析:循环从500开始,每次减10,当i<50时停止。共执行(500-50)/10=45次循环,每次sum+=i,总和为450。
11.在 C++ 中,假设 N 为正整数,则表达式 cout << (N % 3 + N % 7) 可能输出的最大值是( )。
A. 6
B. 8
C. 9
D.10
正确答案:
B. 8
分析:N%3最大为2,N%7最大为6,所以最大和为8(当N=6时,6%3=0,6%7=6)。
12.下面 C++ 代码执行后的输出是( )。
A. 102={102}
B. a+1={a+1}
C. a+1={102}
D.a 先被赋值为浮点数,后被赋值为整数,执行将报错
正确答案:
C. a+1={102}
分析:a先赋值为101.101,然后赋值为101(隐式转换为float),a+1=102,%.0f格式不显示小数。
13.下面 C++ 代码执行时输入 10 后,正确的输出是()。
A. 第5行代码1
B. 第6行代码1
C. 第5行代码 1
D.第6行代码 1
正确答案:
A. 第5行代码1
分析:10%3=1,所以执行if语句,输出"第5行代码1"。
14.下面的 C++ 代码用于求 1~N 之间所有奇数之和。有关描述错误的是( )。
A. 执行代码时如果输入 10,则最后一行输出将是 11 25
B. 执行代码时如果输入 5,则最后一行输出将是 6 9
C. 将 i += 1 移到 if (i % 2 == 1) 前一行,同样能实现题目要求
D.删除 if (i % 2 == 1),并将 i += 1 改为 i += 2,同样可以实现题目要求
正确答案:
C. 将i += 1移到if(i % 2 == 1)前一行,同样能实现题目要求
分析:这样修改会导致i在判断前就增加,可能跳过奇数。
15.执行下面 C++ 代码后输出的 cnt 的值是( )。
A. 8
B. 7
C. 4
D. 1
正确答案:
C. 4
分析:循环条件ii<64,i从0开始每次加2。i=0,2,4,6时满足(66=36<64),8*8=64不满足,共4次。
二.程序阅读题
小李老师有 n 个正整数,他认为一个正整数是酷酷数字,酷酷数字是当且仅当该正整数是 9 的倍数但不是 8 的倍数。
小李老师想请你编写一个程序计算 n 个正整数中酷酷数字的数量。
1.变量定义:sum 的作用是?
A. 记录所有输入数字的总和
B. 记录满足条件的数字的数量
C. 存储当前输入的数字
D.计算数字的平均值
正确答案:
B. 记录满足条件的数字的数量
分析:sum用于计数满足x%90且x%8!=0的数字。
2.条件判断:if(x % 9 == 0 && x % 8 != 0) 的作用是?
A. 判断数字是否是 8 的倍数但不是 9 的倍数
B. 判断数字是否是 9 的倍数但不是 8 的倍数
C. 判断数字是否能同时被 8 和 9 整除
D.判断数字是否是 9 的倍数
正确答案:
B. 判断数字是否是9的倍数但不是8的倍数
分析:条件x%90检查9的倍数,x%8!=0排除8的倍数。
3.输入处理:for(int i=1;i<=n;i++) 的作用是?
A. 生成 n 个随机数
B. 读取 n 个输入数字并处理
C. 计算前 n 个自然数的和
D.输出 n 个数字
正确答案:
B. 读取n个输入数字并处理
分析:循环n次,每次读取一个数字x并检查条件。
4.程序功能:该程序的主要功能是?
A. 计算所有输入数字的和
B. 统计输入数字中 9 的倍数的数量
C. 统计输入数字中满足“是 9 的倍数但不是 8 的倍数”的数量
D.判断输入数字是否为质数
正确答案:
C. 统计输入数字中满足"是9的倍数但不是8的倍数"的数量
分析:程序功能如题所述。
5.输出结果:假设输入为 3 18 72 81,程序的输出是?
A. 0
B. 1
C. 2
D. 3
正确答案:
C. 2
分析:18(9的倍数非8的倍数),72(9和8的倍数),81(9的倍数非8的倍数),共2个。
三.程序填空题
CJ老师在C++课堂遇见一道题目是:
输入一个正整数 n,求形如:
1+(1+2)+(1+2+3)+(1+2+3+4)+⋯+(1+2+3+4+5+⋯+n) 的累计相加,但是CJ老师还没有把代码补全完善,请各位同学帮CJ老师填充代码,让CJ老师可以完成AC这道题目。
1.程序的框架中问题1的sumt变量应该初始化为:
A. 1
B. n
C. 0
D.-1
正确答案:
C. 0
分析:sumt用于累加总和,应初始化为0。
2.外层循环中问题2循环条件应该选择以下哪个选项:
A. i <= n
B. i >= n
C. i > 0
D. i != n
正确答案:
A. i <= n
分析:外层循环从1到n。
3.内层循环中问题3应选择以下哪个选项:
A. sum = sum + i
B. sum = j
C. sum *= i
D.sum = sum * j
正确答案:
D. j <= i
分析:内层循环计算1到i的和,条件应为j<=i。
4.内层循环中问题4循环条件应该选择以下哪个选项:
A. j<= n
B. j >= n
C. i > 0
D. j <= i
正确答案:
A. sum = sum + j
分析:内层循环累加j到sum。
5.若要将结果输出,应该选择以下哪个选项:
A. cout << sum << endl;
B. cout << i << endl;
C. cout << sumt << endl;
D. cout << sum + sumt<< endl;
正确答案:
C. cout << sumt << endl;
分析:输出最终累加结果sumt。

浙公网安备 33010602011771号