2025年4月19日在北京举行了一场颇为瞩目的人形机器人半程马拉松赛。比赛期间,跑动着的机器人会利用身上安装的多个传感器所反馈的数据来调整姿态、保持平衡等,那么这类传感器类似于计算机的( )。
C: 输入设备。传感器采集数据
小明购置的计算机使用一年后觉得内存不够用了,想购置一个容量更大的内存条,这时他需要的内存条是( )。
A: RAM。内存条=随机访问存储器
下面 C++ 代码执行后的输出是( )。
01int a=3; 02float b = 3.5; 03cout << (a *= b);
C: 10。a*=b,a=3*3.5=10.5截为10
下面 C++ 代码用于获得正整数的第 位数,如 1234 则输出 2。如果是一位数或两位数,则输出 0。横线处应填入的代码是( )。
01int N, remainder; 02cout << "请输入正整数:"; 03cin >> N; 04cout << ____________;
A: N%1000/100。千分位%1000=后三位,/100得百位
下面 C++ 代码执行,其输出是( )。
01int a, b = (6, 28); 02b == a; 03a = b; 04cout << a << ' ' << b;
D: 28 28。b=(6,28)=28,b==a无赋值,a=b赋值a=28
今天星期六,其后第 天星期几?如果是星期一到星期六输出形如:星期1、星期2等,星期天则输出星期天。下面的 C++ 代码用于完成上述要求,横线处应填上的代码是( )。
01int N, remainder; 02cin >> N; 03remainder = ____________; 04if(remainder == 0) 05 printf("星期六后第%d天是星期天\n", N); 06else 07 printf("星期六后第%d天是星期%d\n", N, remainder);
D: (N+6)%7。星期天后N天模7,=0是星期天
下面的 C++ 代码执行后其输出是( )。
01int i, Sum = 0; 02for (i = 1; i < 10; i++){ 03 Sum += i; 04 if(i % 2) continue; 05 if(i % 7) break; 06} 07cout << Sum;
(i=1..9: i%3!=0输出"A#" continue,i=3,6,9 break,最后i=10输出"1",输出6个A#+1="A#A#A#A#A#A#1" → C或D,具体看选项)
下面 C++ 代码执行后其输出是( )。
01int i, j; 02for(i = 1; i < 12; i++) 03 for(j = 1; j < i; j++) 04 if(i * j % 2 == 1) 05 break; 06cout << i * j;
(外i=0..2:内j<i: i=0:0,i=1:0,i=2:j=0,1输出"0#0-1#0-",total="0#0-1#0-END" → 选C "0#0-1#0-1#1-2#0-2#1-2#2-END" 不对,让我重数. i=0:0次; i=1:0次; i=2:j=0,1输出"0#0-1#0-". total="0#0-1#0-END" → 选项C) 0#0-1#0-1#1-2#0-2#1-2#2-END 不对. 实际选哪个? )
下面 C++ 代码执行后输出是( )。
01int i, cnt = 0; 02for(i = -99; i < 100; i += 2) 03 cnt = 1 + cnt; 04cout << cnt;
(选B: i%3&&!(i%5!=2),i=0时假排除,i=2,3,5,8...符合. 选B)→ 选B
下面 C++ 代码执行后输出是( )。
01int i; 02for(i = 1; i < 10; i++){ 03 if(i % 3 != 0){ 04 printf("A#"); 05 continue; 06 } 07 else 08 break; 09 printf("0#"); 10} 11if(i == 10) cout << "1";
B: N>1;N/=10。位数判断: N>0(非0)N/=10直到0,题目问"大于0" → B
下面 C++ 代码执行后的输出是( )。
01int i,j; 02for(i = 0; i < 3; i++) 03 for(j = 0; j < i; j++) 04 printf("%d#%d-", i, j); 05printf("END");
(A错:Flag=true表示是自守数,不对; 实际Flag未被改false是默认的初值true表示是自守数 → A对. B对,比较个位. C对,去掉个位. D: N1>0改N>0,N=0时循环也进→0²=0,Flag=true输出"0是自守数"也对? 实际自守数定义0是(0²=0尾0=0对),对. 题目问"错误项"→描述都正确无错? 选D?)
下面 C++ 代码执行后,将输出不能被 3 整除且除以 5 余数为 2 的数。下列选项不能实现的是( )。
01int i,j; 02for(i = 0; i < 100; i++) 03 if(____________) 04 cout << i << endl;
A: 移到L1L2间。row循环前初始化now=0等价外初值,效果同
下面 C++ 代码用于判断一个大于 0 的正整数是几位数,横线处应填入代码先后是( )。
01int N, cnt; 02cout << "请输入大于0的正整数:"; 03cin >> N; 04cnt = 0; 05while (____________){ 06 cnt += 1; 07 ____________; 08} 09cout << cnt;
A: RAM内存条 = Random Access Memory
判断一个数是否为自守数。自守数的定义是如果一个数的平方其尾数与该数相同,则为自守数,如 25 的平方是 625,其尾数是 25,所以 25 是自守数。相关说法错误的是( )。
01int N, N1, M1; 02cout << "输入一个正整数:"; 03cin >> N; 04N1 = N, M1 = N * N; 05bool Flag = true; 06while (N1 > 0){ 07 if (N1 % 10 != M1 % 10){ 08 Flag = false; 09 break; 10 } 11 else{ 12 N1 = N1 / 10, M1 = M1 / 10; 13 } 14} 15if (Flag == true) 16 printf("%d的平方是%d,是自守数", N, N * N); 17else 18 printf("%d的平方是%d,不是自守数", N, N * N);
(输出 0,12,345,... 0-9循环: now从0每行连续输出后%10==0重置)实际我前面已分析类似题. 但单选-14是"自守数"重写)
下面 C++ 代码实现输出如下图形,相关说法错误的是( )。
请输入层数:10 0 12 345 6789 01234 567890 1234567 89012345 678901234 5678901234
01int line_number, now_number; 02int i,row; 03cout << "请输入行数:"; 04cin >> line_number; 05now_number = 0; 06for (row = 1; row < line_number + 1; row++){ // L1 07 for (i = 0; i < row; i++){ // L2 08 cout << now_number; 09 now_number += 1; 10 if (now_number == 10) now_number = 0; // L3 11 } 12 cout << endl; 13}
(题目输出0,12,345,6789,01234,... 数字连续0-9循环. now%10==9时下一个now=0重置. 选项都对,选错误→ maybe C >9==%10==0不等? 实际>9即10时==%10==0(==0). 也许A错(now移到L1L2间内for每次都重置,实际应外初值) → A错)
人们现在参加很多闭卷考试时通常都不允许带智能手机、平板电脑等,此外很多种智能手表同样因为具有嵌入操作系统及通信等功能,所以也不允许随身携带。( )
正确。智能手表嵌入式OS+通信功能,等同手机
在 C++ 代码中,假设 N 为正整数,则 N / 10 舍弃个位数。如果 N 小于 10,则其值为 0,大于 10 则是舍弃个位数的数。( )
正确。N/10舍弃个位,N<10结果0,N≥10为去个位的商
下列 C++ 代码执行后,其输出为 10 20 ,即 a == b 和 b == a 对 a 和 b 的值没有任何影响。( )
01int a = 10, b = 20; 02a == b; 03b == a; 04cout << (a, b);
错。(a,b)逗号表达式值=b,输出"20"不是"10 20"
a 和 b 分别是 C++ 的整型变量,如果表达式 max(a, b) == min(a, b) 的值为真,则说明 a 和 b 相等。( )
正确。max(a,b)==min(a,b)即a和b相等
下面 C++ 代码编译时将报错,因为字符变量 a 被赋值了浮点值。( )
01char a = '1'; 02a = 45.6; 03cout << a;
错。char a=45.6截断为45,编译不报错
下面 C++ 代码执行时如输入 59.99,将输出 及格 两个汉字。( )
01int score; 02cout << "请输入学生成绩:"; 03cin >> score; 04if (score < 60) 05 cout << "不及格"; 06else 07 cout << "及格";
错。59.99(int)截59,<60输出"不及格"不是"及格"
在下面的 C++ 代码中,因为 continue 将被执行,因此不会有输出。( )
01int i; 02for (i = 1; i < 10; i++) 03 if (i % 2 == 0) 04 continue; 05if(i == 10) 06 cout << "END";
错。continue后无cout,但i=1..9都不==10,循环完i=10输出END。实际有输出END
下面的 C++ 代码执行后将输出 15。( )
01int Sum = 0; 02for (int i = 0; i < 5; i++) 03 Sum += i; 04cout << Sum;
错。sum=0+1+2+3+4=10不是15
将下面 C++ 代码中的 (int i = 5; i > 1; i--) 调整为 (int i = 1; i < 5; i++) 输出结果相同,因为 5 到 1 与 1 到 5 的求和相同。( )
01int tnt; 02tnt = 0; 03for (int i = 5; i > 1; i--) 04 tnt += i; 05cout << tnt; 06cout << endl;
错。5+4+3+2=14,1+2+3+4=10不同
为实现如下效果,即 N 行 N 列字符。当输入是奇数时,中间列为 ASCII 星号字符 *,其他是 ASCII 减号字符 -;当输入是偶数时,则中间两列是 *,其他是 -。字符阵列后的代码能实现其效果。( )
01/* 025 03--*-- 04--*-- 05--*-- 06--*-- 07--*-- 08*/ 09int N; 10cin >> N; 11int i,j; 12for (i = 0; i < N; i++){ 13 for (j = 0; j < N; j++) 14 if ((j == N / 2) || (j == (N-1) / 2)) 15 cout << "*"; 16 else 17 cout << "-"; 18 cout << endl; 19}
正确。奇数N=5时j==N/2=2或j==(N-1)/2=2输出"*",其他"-"