请将二进制数 ,转换为等值的 进制数( )。
B: 13.625。8+4+0+1+0.5+0+0.125
以下关于标准 C++ 一维数组的描述,哪一项是错误的?( )
(跳,需完整选项)
下列代码段执行后,变量 sum 的值是( )。
01{ 02 int sum = 0; 03 for (int i = 1; i <= 10; i++) { 04 if (i % 3 == 8>>2) 05 continue; 06 sum += i; 07 } 08}
C: 1。t=x--=10后x=9,t-=x=10-9=1
执行以下程序段,输出值是( )。
01int x = 5; 02if (x == 3 >> 2) x = 8 >> 3; 03cout << x << endl;
B: 及格。score=60>=60及格
已知字符串 s = "C++ Programming",下列程序运行的结果是( )。
01cout << (int)(s.length() | 3) << endl;
B: 11。2%3=2 sum+3=3,4%3=1 +2=5,6%3=0 +1=6,8%3=2 +3=9,10%3=1 +2=11
以下代码是一个程序的部分代码,能够正确执行,输出的结果是( )。
01int arr[5] = {1, 2, 3, 4, 5}; 02int p = arr[1]; 03cout << (p + 2) << endl;
A: abs(3.14)=3.14。头文件<cstdlib>int版,<cmath>double版
以下关于 C++ 求最小值函数 min() 的描述,不正确的是( )。
(跳,需完整选项)
在一个特定的计算机系统中,假如 unsigned int 类型需要占用 个字节的存储空间(每个字节有 位),则 unsigned int 可以表示的数据范围是( )。
A: 0~65535。2字节=16位无符号0~2^16-1
以下代码执行后,数组 arr 的内容是( )。
01int arr[6] = {1, 2, 3, 4, 5, 6}; 02for (int i = 0; i < 6; i += 2) { 03 arr[i] = arr[i] + arr[i+1]; 04 arr[i+1] = arr[i] - arr[i+1]; 05 arr[i] = arr[i] - arr[i+1]; 06}
A: 2 1 4 3 6 5。三段交换: arr[i]和arr[i+1]交换
a & b | (c ^ d),其中 a = 3,b = 7,c = 15,d = 4,计算结果是( )。
B: 11(二进制)。3&7=3, 15^4=11, 3|11=11=1011B
整型变量 x 的初始值为 ,以下代码的输出结果是( )。
01int t = x--; 02t -= x; 03cout << t << endl;
C: 1。t=x--=10后x=9,t-=x=10-9=1
根据下面的流程图,如果成绩 score 输入 ,输出的结果是( )。
B: 及格。score=60>=60及格
以下代码运行后,sum 的结果是( )。
01int arr[5] = {2, 4, 6, 8, 10}; 02int sum = 0; 03for (int i = 0; i < 5; i++) { 04 switch (arr[i] % (1|2)) { 05 case 0: sum += 1; break; 06 case 1: sum += 2; break; 07 case 2: sum += 3; break; 08 } 09}
B: 11。arr[i]%3: 2%3=2(+3=3),4%3=1(+2=5),6%3=0(+1=6),8%3=2(+3=9),10%3=1(+2=11) sum=11
以下关于 C++ 中 abs() 函数的描述,正确的是( )。
A: abs()头文件<cstdlib>(int),<cmath>(double)
如果字符串 s 的值是 GESP,以下代码 s 的最后结果是( )。
01for (int i = 0; i < s.length(); i++) { 02 s[i] = toupper(s[i] + i); 03}
GFRU。s[0]+0=G→G, s[1]+1=F→F, s[2]+2=R→R, s[3]+3=U→U
在 C++ 中,数组名不能改变,数组名不能被赋值。
正确。数组名是常量地址,不能赋值
整型变量 a 的值为 ,浮点数变量 b 的值为 ,在 C++ 编译环境下,经过 a *= b 计算后,a 的值变为 ,此时如果输出 a,将输出 。
错。a*=b是a=a*b=10.5,赋给int a截断10,输出10不是10.5
strcmp(str1, str2) 返回 表示 str1 大于 str2,返回正数表示两者相等。
错。strcmp==0相等,正数>0表示前大,负数<0前小
以下代码输出结果为 。
01int a = 5, b = 3; 02int c = a++ + ++b; 03cout << c << endl;
错。a=5 a++=5 a=6, ++b b=4, c=5+4=9不是8
位运算符 & 、 | 、 ^ 、 ~ 的优先级高于算术运算符 +、-、*、/。
错。位运算优先级低于算术(除<< >>和单目&)
在 C++ 中,int a[] = {1, 2, 3, 4, 5}; 可以定义一个包含 个元素的整型数组。
正确。int a[]{1,2,3,4,5};可定义5元素数组
C++ 表达式 z = a > b ? x : y 等同于:
01if (a > b) { 02 z = x; 03} else { 04 z = y; 05}
以下代码执行后,输出将会是 。
01int main() { 02 int arr[5] = {1, 2, 3, 4, 5}; 03 cout << arr[3 > 2 ? 1 : 2] << endl; 04 return 0; 05}
正确。三目表达式同if-else,arr[1]=2
在 C++ 中,++ 和 -- 运算符只能用于整型变量,不能用于浮点数变量。
错。++/--可对double但实际是UB(C++11前)
给定一个正整数 a,当需要计算 -a 的补码时,有这样一个计算技巧:将 a 的二进制形式从右往左扫描,遇到第一个 之后,将找到的第一个 左边的所有位都取反,能得到 -a 的补码。
正确。补码=反码+1,从右扫0到第一个1停下,该1左位全取反
以下代码中,Hello 将被输出 次。
01for (int i = 0; i < 5; i++); 02{ 03 cout << "Hello" << endl; 04}
错。for后跟;for空体,{}块独立执行1次,输出Hello 1次不是5次