2025 年 4 月 19 日在北京举行了一场颇为瞩目的人形机器人半程马拉松赛。比赛期间,跑动着的机器人会利用身上安装的多个传感器所反馈的数据来调整姿态、保持平衡等,那么这类传感器类似于计算机的( )。
C: 输入设备。传感器采集环境数据(姿态/平衡)输入给机器人系统
在某集成开发环境中调试下面代码段时尝试设置断点和检查局部变量,下面哪个说法是错误的( )。
01int i, N = 0; // L1 02cin >> N; // L2 03for (i = 1; i < 9; i++) 04 if (N % i == 0) break; // L3 05if (i < 9) 06 printf("N不能大于9\n"); // L4
A: L1声明行可设断点(只是未执行),但L1行不可设断点的说法错。L2可查看i值,L3可改i,L4可能命中
对下列 C++ 的代码,描述准确的是( )。
01int first = 10; 02printf("{%d}\n", First)
D: First未声明,大小写敏感,编译报错
在 C++ 中,下列可以做变量名的是( )。
D: X_cpp。标识符=字母数字下划线,数字不能开头,无.等特殊字符
C++ 表达式 14 - 3 * 3 % 2 的值是( )。
14-3*3%2=14-9%2=14-1=13。*和%同级左结合
下面的 C++ 代码执行后,其输出是( )。
01int x = 10, y = 20; 02x = x + y; 03y = x - y; 04x = x - y; 05cout << x << ' ' << y;
x=x+y=30,y=x-y=10,x=x-y=20,输出"20 10"。无临时变量交换
定义整型变量 int a = 16,则执行 ++a += 3 之后,a 的值会是( )。
D: ++a+=3。a=16,++a=17(左值),17+=3=20。复合赋值合法
C++ 的 int 类型变量 X 的值为 8,如果执行 cout << (++X)++;,则输出和执行后 X 的值分别是( )。
C: (++X)++:X=8,++X=9(左值,临时),9输出后++=10,X=10
下面 C++ 代码执行后的输出是( )。
01int a, b; 02a = 3; 03b = 4; 04printf("a+b=%02d#a+b={a+b}", a+b, a+b);
A: %02d填07,得"a+b=07#a+b={a+b}"。{a+b}字面量
下面的 C++ 代码用于求 M 天后是星期几,两处横线处分别应填入的代码是( )。
01int N, M, D; 02cout << "当前星期几? "; // 星期日是0 03cin >> N; 04cout << "求多少天后? "; // 输入正整数 05cin >> M; 06D = ____________; 07if (____________) 08 printf("%d天后是星期日", M); 09else 10 printf("%d天后是星期%d", M, D);
B: D=(N+M)%7, D==0是星期日(模7为0)
下面 C++ 代码执行后输出是( )。
01int i; 02for (i = 1; i < 11; i += 3) { 03 continue; 04 if (i % 2 == 0) 05 break; 06 printf("%d#", i); 07} 08if (i >= 11) 09 printf("END");
A: for i=1,4,7,10: continue跳过if和printf; i=11退出; 输出END
下面的 C++ 代码用于求 N 的所有因数(即能将 N 整除的数),如输入 12 则将输出 12,6,4,3,2,1。横线处应填入的是( )。
01int i, N; 02cin >> N; 03i = N; 04while (____________) { 05 if (N % i == 0) 06 printf("%d,", i); 07 i -= 1; 08} 09printf("1");
C: i>1。i=N递减,i>1循环输出12,6,4,3,2,后退出,printf("1")输出1
下面 C++ 代码执行后输出的是( )。
01int Sum = 0; 02for (int i = 0; i < 10; i++) { 03 if (i % 2 == 0) 04 continue; 05 if (i % 5 == 0) 06 break; 07 Sum += i; 08} 09cout << Sum;
B: i=1,3,5时:i=1%2!=0不continue,sum+=1=1;i=3%2!=0,sum=1+3=4;i=5%5==0 break,sum=4
试图编译并执行下面 C++ 代码,下面描述正确的是( )。
float x; x = 101; x++; cout << ++x;
C: x=101, x++=101→x=102, ++x前置自增=103,输出103
以下 C++ 代码可以找出百位、十位和个位满足特定条件的三位数,横线处应该填入的是( )。
01int count = 0; 02for (int i = 100; i <= 999; i++) { 03 int a = i / 100; 04 ____________ 05 int c = i % 10; 06 if (a * a + b * b == c * c) { 07 count++; 08 } 09}
B: (i/10)%10。a=i/100百位,b=(i/10)%10十位,c=i%10个位
人们现在参加很多闭卷考试时通常都不允许带智能手机、平板电脑等,此外很多种智能手表同样因为具有嵌入操作系统及通信等功能,所以也不允许随身携带。
正确。嵌入式OS+通信模块等同手机,可能作弊故禁带
如果 N 是 C++ 的整型变量,值为 5,则表达式 (N + !N) 的值为 4。
错。N=5,!5=0(非0为真取反),5+0=5,不是4
在下面 C++ 代码中,删除 break 语句对程序执行结果没有影响。
01int i; 02for (i = 0; i < 10; i++) { 03 continue; 04 cout << i << "#"; 05 break; 06} 07if (i >= 10) 08 cout << "END";
正确。continue跳过后续cout和break,不执行,删break后continue仍跳过
删除下面 C++ 代码中的 continue 后其输出是 0#2#4#6#8#。
01int i; 02for (i = 0; i < 10; i++) { 03 if (i % 2 == 0) { 04 cout << i << "#"; 05 continue; 06 } 07} 08if (i >= 10) 09 cout << "END";
正确。删continue:i%2==0时输出i#并继续下一轮,输出0,2,4,6,8加END得"0#2#4#6#8#END"
将下面 C++ 代码中的 i < 100; i = i + 1 修改为 i < 200; i += i + 1,其输出与当前代码输出相同。
01int cnt = 0; 02for (int i = 0; i < 100; i = i + 1) 03 cnt += 1; 04cout << cnt;
错。i<200时cnt=200,i<100时cnt=100,不同
交换下面 C++ 代码中的 i += 2 和 cnt += 1,交换前后分别运行的两次输出相同。
01int i, cnt = 0; 02cnt = 0; 03while (i < 10) { 04 i += 2; 05 cnt += 1; 06} 07cout << cnt;
正确。交换语句顺序但每次循环两个操作都执行,次数相同(假设i=0初值)
下面的 C++ 代码执行后将输出 45。
01int cnt; 02for (int i = 0; i < 10; i++) 03 cnt += 1; 04cout << cnt;
错。cnt未初始化,UB未定义行为,输出不可预测
执行 C++ 代码 cout << (12 + 12.12) 将报错,因为 12 是 int 类型,而 12.12 是 float 类型,不同类型不能直接运算。
错。int+double隐式转double=24.12,合法不报错
在 C++ 代码中,不可以将变量命名为 false,因为 false 是 C++ 语言的关键字。
正确。false是C++关键字(true/false/nullptr),不可作变量名
X 是 C++ 的整型变量,则表达式 3 < X < 5 求值结果是 4。
< >= <= == != 结果为bool;括号>单目>算术>关系>逻辑>赋值;C++运算符及优先级(入门)