近日,空中客车公司表示,约 6000 架空客 A320 系列飞机需要紧急更换一种易受太阳辐射影响的飞行控制软件。空客表示,在对一起飞行事故分析后的结果显示,强烈的太阳辐射可能会损坏飞行控制系统所需的关键数据,导致判断失误,进而引发飞行异常。那这里的飞行控制系统执行判断的部件最可能是下面的( )。
B: 处理器。飞行控制系统的判断由CPU/处理器执行
下面的 C++ 代码在某集成开发环境中编译运行时,提示有 Invalid Character(“无效字符”)错误。可能的原因是( ):
01int a, b; 02a=3,b = 4; // L1 03cout << a; // L2 04cout << b; // L3
A: L1行的逗号是中文全角"",应改英文半角","。C++用半角标点
下面有关 C++ 变量的说法,正确的是( )。
A: for是关键字。_tnt合法(下划线开头),_tnt_合法,printf非关键字可作变量名(虽不建议)
X 是 C++ 的整型变量,则
cout << (X=3, X++, ++X);
执行后的输出是( )。
C: (X=3,X++,++X)逗号表达式值=最后表达式++X;X=3, X++后X=4,++X=5,值5。输出5
C++ 表达式 2 + 3 * 4 % 5 的值为( )。
2+3*4%5=2+12%5=2+2=4。*和%同级左结合
下面的 C++ 代码执行后,其输出是( )。
a = 3;
b = a = 4;
printf("%d %d", a, b);
A: a=3; b=a=4: b=(a=4)=4返回4赋给b, a=4。输出"4 4"
下面的 C++ 代码执行时如果先输入 10 回车后输入 20 并回车,其输出是( )。
01int N, M; 02printf("第一个数:"); 03scanf("%d", &N); 04printf("第二个数:"); 05scanf("%d", &M); 06printf("%%(N+M)=%d", N+M, int(N+M));
C: printf("%%(N+M)=%d", N+M, int(N+M)): %%输出%,N+M=30,"%(N+M)=30"
某个整数很长很长,形如:1232123212321……,其规律是从 1 开始逐一升高到 3 然后逐一降低到 1,然后又逐一升高到 3,一直到很长很长。假设最高位编号为 1,要求判断从左边最高位开始的第 位数是几?在横线处应该填入的代码是( )。
01int N, M; 02cout << "请输入编号:"; 03cin >> N; 04M = ____________; 05if (M != 0) 06 cout << M; 07else 08 cout << 2;
A: N%4。序列1,2,3,2循环,N%4=0对应2,=1,2,3分别1,2,3。规律周期4
下面 C++ 代码执行后的输出是( )。
01int i, tnt = 0; 02for (i = 0; i < 100; i++) 03 tnt += 1; 04cout << tnt << ' ' << i;
D: for i=0..99循环100次tnt+=1→tnt=100,循环后i=100,输出"100 100"
有关下面 C++ 代码的说法,错误的是( )。
01int tnt = 0; 02for (int i = 1; i < 10; i += 2) // L1 03 tnt += i; // L2 04cout << tnt;
B: 错误选项。i=0改i=1: i=0,2,4,6,8→tnt=20;原i=1,3,5,7,9→tnt=25,不同
下面 C++ 代码执行后输出是( )。
01int i; 02for (i = 10; i < 100; i += 10) { 03 if (i % 10 == 0) 04 continue; 05 printf("%d#", i); 06} 07if (i >= 100) 08 printf("%d END", i);
C: i=10,20,...,90都%10==0 continue跳过,i=100退出循环,输出"100 END"
两个正整数,只要不相等,就一直进行如下操作:最大数减去最小数得到一个值,该值和两个数的最小数构成新的两个正整数,重复操作,直到两个数相等,此时输出该数。下面的 C++ 代码用于实现该操作,横线处应该填写的代码是( )。
01int N, M; 02cin >> N >> M; 03while (N != M) { 04 if (N > M) 05 ____________; 06 else 07 ____________; 08} 09cout << N;
A: N>M时N=N-M; else M=M-N。辗转相减
如果一个正整数能被 3 整除,或者某一位能被 3 整除,则称之为“漂亮数”。下面的 C++ 代码用于判断正整数 N 是否为漂亮数,L1 行的横线处应该填入的代码是( )。
01int N, Flag; 02cin >> N; 03Flag = 0; // "非漂亮数" 04if (N % 3 == 0) 05 Flag = 1; // "漂亮数" 06else 07 while (N != 0) { 08 if (____________) { // L1 09 Flag = 1; 10 break; 11 } 12 N /= 10; 13 } 14cout << (Flag ? "漂亮数" : "非漂亮数");
D: N%10%3==0。逐位判断末位是否能被3整除
如果正整数 N 的所有奇因数(即能将 N 整除的正奇数)的和是 27 的倍数,则称 N 是 27 的神秘数。下面的 C++ 代码用于判断输入的 N 是否为 27 的神秘数。如输入 53,它有两个奇因数 1 和 53,则将输出 Y。( )
01int i, N, cnt = 0; 02cin >> N; 03for (i = 1; i <= N; i++) { 04 if (____________) 05 cnt += i; 06} 07if (cnt % 27 == 0) 08 cout << "Y";
C: N%i==0 && i%2(奇因数:整除且i为奇)
执行下面 C++ 代码可以找出千位与个位的和恰好等于中间两位的四位数,横线处应该填入( )。
01int count = 0; 02int a, bc, d, tmp; 03for (int i = 1000; i <= 9999; i++) { 04 a = (tmp = i) / 1000; 05 ____________ 06 bc = tmp / 10; 07 d = tmp - bc * 10; 08 if (a + d == bc) { 09 count++; 10 } 11} 12cout << count;
C: tmp-=a*1000。tmp=i去掉千位,得后3位,bc=tmp/10=十百位,d=tmp%10=个位
鸿蒙是华为公司开发的一款操作系统,那么它能够将正确的源程序翻译成目标程序,并运行。
错。鸿蒙是OS不翻译代码,翻译由编译器完成
C++ 表达式 10 * 4 % 6 和 10 * 2 % 3 的结果相同。
错。104%6=40%6=4,102%3=20%3=2,不同
下面 C++ 代码执行后将输出 0。
01int i; 02for (i = 0; i < 10; i++) 03 if (i % 3 == 0) 04 continue; 05 else 06 break; 07cout << i;
错。i=0%3==0 continue,i=1%3!=0 break,输出1
下面 C++ 代码中的 i > -10; i-- 改为 i < 10; i++ 执行结果相同。
01int tnt = 0; 02for (int i = 0; i > -10; i--) { 03 if (i < 0) 04 i = -i; 05 tnt += i; 06} 07cout << tnt;
错。原i从0递减负数tnt+=i取正累加0..9=45;改i<10 tnt+=i直接累加0..9=45相同? 让我重算: 原i=0..-9,if i<0 i=-i, tnt+=0+1+2+...+9=45;改i<10 tnt+=i直接0..9=45,似乎相同 → 但实际:原i=-9,if(-9<0)i=9, tnt+=9;i=-8...改i=0..9 tnt+=0..9=45. 都是45 → 正确
下面 C++ 代码执行后将输出 99,因为 i < 100 不包括 100,而是到 99。
01int cnt = 0; 02for (int i = 0; i < 100; i++) 03 cnt += 1; 04cout << cnt;
错。cnt+=1循环100次cnt=100,i=100时i<100假退出
下面的 C++ 代码能用于判断输入的正整数是否为对称数。所谓对称数是指从左到右和从右到左读该数,其值相同,121 或 414 等是对称数,而 123 不是对称数。
01int n, new_number; 02cout << "请输入正整数:"; 03cin >> n; 04new_number = 0; 05while (n != 0) { 06 new_number = new_number * 10 + n % 10; 07 n /= 10; 08} 09if (n == new_number) 10cout << "对称数"; 11else 12cout << "非对称数";
错。对称数代码:循环结束时n=0,n==new_number判0==new错,实际应保存原n到变量,bug
下面的 C++ 代码执行后将输出 0。
01int tnt = 0; 02for (int i = -100; i < 100; i++) 03 tnt += i; 04cout << tnt;
正确。i=-100..-1+0+1..99累加=0(-100+99+(-99+98)+...+(-1+0+0+1)+...+98+99)=0
某同学执行 C++ 代码时 printf("%g\n", (3 + 3.1415926535)); 输出 6.14159 而不是 6.1415926535,表明该同学的计算机存在故障需要重新安装 C++ 软件。
错。%g默认6位有效数字,不是故障
如果 x 是 C++ 代码中的 double 型变量,则对 cout << (x ? 1227 : 12.27); 编译时将报错,因为 1227 和 12.12 分别是 int 和 double 类型,导致识别混乱。
错。三目表达式合法,不同类型结果为公共类型double,编译正常
在 C++ 代码中,不可以将变量命名为 keyword,因为它是 C++ 语言的关键字。
错。keyword不是C++关键字(只是英文单词),可作变量名