C++信奥班周六2024-6-8(作业)

*
您的姓名:
本节知识点:
1、学习进制之间的转换,熟练掌握十进制转J进制,J进制转十进制;
2、掌握原码、反码、补码的转换; 
3、学习按位运算符:按位与 &  、按位或 |   、按位异或 ^  、按位取反  ~ ; 
4、掌握正负数的左移<<、右移>>

*
1.
【单选题】(每题 2 分)
1、下列关于负数的原码、 反码、 补码的描述中, 正确的是()。
A、原码和反码互为按位取反(符号位除外),补码为反码加 1
B、原码和反码互为按位取反(符号位除外),补码为原码加 1
C、反码和补码互为按位取反(符号位除外),原码为反码加 1
D、补码和原码互为按位取反(符号位除外),反码为补码加 1
*
2.
一个 int 类型的值乘以 8, 等价于以下哪个位运算? ()
A、左移 3 位
B、右移 3 位
C、左移 8 位
D、右移 8 位
*
3.
在 C++语言中, 可以定义一个一维整型数组的是()。
A、int array[5];
B、int array[];
C、int[5] array;
D、int[] array;
*
4.
对于一个十进制数 37, 以下哪个是它的二进制表示()。
A、10101
B、100101
C、101001
D、1000101
*
5.
下列关于十六进制的描述中, 正确的是()。
A、使用 0-9 和 A-F 表示
B、使用 0-9 和 A-E 表示
C、使用 1-9 和 A-F 表示
D、使用 1-9 和 A-E 表示
*
6.
【判断题】(每题 2 分)
16、二进制数据编码中, 负数的补码是通过对原码按位取反并加 1 得到的。()
A、正确
B、错误
*
7.
在 C++语言中,表达式(0xff == 255)的值为 true。 ()
A、正确
B、错误
*
8.
整数-5的16位补码表示是( )。
A. 1005
B. 1006
C. FFFA
D. FFFB
*
9.
如果16位短整数 -2 的二进制是"FFFE",则短整数 -4 的十六进制是( )。
A. FF04
B. FFFA
C. FFFC
D. FFFH
*
10.
C++的字符变量的码值是整数,下面字面量形式的字符码值最大的是( )。
A. 100
B. 075
C. 0x70
D. 0x60
*
11.
任意整数 a 的二进制反码与补码都有1位不同。 ( )
*
12.
对整型变量 int a = 3 ,执行C++代码 a<<2 将把2输出到 a 中。( )
*
13.
一个 int 类型变量 a ,执行操作 (a<<2>>2) 后的值一定是 a 。( )
*
14.
在下列编码中 ,不能够和二进制" 1101 1101"相等的是()。
A. (221) 10进制
B. (335) 8进制
C. (dd) 16进制
D. (5d) 16进制
*
15.
二进制数 11.01 在十进制下是()。
A、3.01
B、3.05
C、3.125
D、3.25
*
16.
下列关于进制的叙述,不正确的是()。
A、正整数的二进制表示中只会出现 0 和 1。
B、10 不是 2 的整数次幂,所以十进制数无法转换为二进制数。
C、从二进制转换为 8 进制时,可以很方便地由低到高将每 3 位二进制位转换为对应的一位 8 进制位。
D、从二进制转换为 16 进制时,可以很方便地由低到高将每 4 位二进制位转换为对应的一位 16 进制位。
*
17.
一个 int 类型的值,做以下哪个操作,一定会变回原来的值?()
A、左移 3 位,再右移 3 位。
B、右移 3 位,再左移 3 位。
C、按位或 7,再按位与-8。
D、按位异或 7,再按位异或 7。
*
18.
如果 a 和 b 均为 int 类型的变量,下列表达式能正确判断“a 等于 b”的是()。
A、((a / b) == 1)
B、((a & b) == a)
C、((a ^ b) == 0)
D、((a | b) == b)
*
19.
数据编码方式只有原码、反码、补码三种。()
A、正确
B、错误
*
20.
已知大写字符'A' 的ASCII编码的十六进制表示为0x41 ,则字符'L' 的ASCII编
码的十六进制表示为 () 。
A. 4A
B. 4B
C. 4C
D. 52
*
21.
下列关于进制的叙述 ,正确的是()。
A.只有十进制和二进制能够用来表示小数 ,八进制和十六进制不可以。
B.常用的进制包括二进制、八进制、十进制、十六进制,其他进制在日常生活中很少使用。
C.对任意正整数 ,其二进制表示不会比它的十进制表示更短。
D.正整数的八进制表示中 ,每—位可能出现的最大数字是 8。
*
22.
1 、二进制数101.101在+进制下是5.005。()
A、正确
B、错误
*
23.
5 、在C++语言中,所有int类型的值,经过若干次左移操作(<< )后,它们的值
总会变为0。()
A、正确
B、错误
*
24.
10 、 如果a为int类型的变量,且表达式((a & 1) == 0) 的值为true ,则说明a是偶数。 ()
A、正确
B、错误
*
25.
若函数声明为 int f(int &x){ x+=3; return x; } ,则对声明的变量 int a=3 ,下面哪个调用能够改 变 a 的值( )。
A. f(&a) ;
B. f(*a) ;
C. f(a) ;
D. f(a-3) ;
*
26.
下面C++代码执行后,输出的是( )。

A. G
B. e
C. n
D. P
*
27.
对二维数组 int arr[3][16]; ,则 arr[1] 占用内存的大小为( )字节。
A. 4
B. 16
C. 48
D. 64
*
28.
对二维数组 int arr[3][16]; ,若 arr 的地址是 0x28cbc0 ,则 arr[1] 的值是( )。
A. 0x28cbc4
B. 0x28cbd0
C. 0x28cc00
D. 不确定
*
29.
下面C++代码执行后输出是( )。

A. e
B. I lov
C. e GESP!
D. GESP!
*
30.
下面C++代码执行以后输出的是( )。

A. 0
B. 1
C. 6
D. 不确定
*
31.
插入排序在最好情况下的时间复杂度是( )。
A
B
C
D
*
32.
C++语言中下面哪个关键字能够限定对象的作用域( )。
A. extern
B. static
C. inline
D. public
*
33.
下面有关函数参数的说法,正确的是( )。
A. 函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值不变。
B. 函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值将随子函数一样改变而改变。
C. 函数参数传递时,主函数如果将参数的地址传递给子函数,若子函数将参数值改变,主函数当中的参数值将不改变。
D. 函数参数传递可以不满足子函数的参数个数要求。
*
34.
C++的内置函数 sort() 支持数组的局部排序。例如 int a={10,9,8,7,6,5,4,3,2,1} ,可以用 sort(a,a+5) ,排序成 {6,7,8,9,10,5,4,3,2,1} 。( )
*
35.
排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排序数 据中有两个相等记录的关键字 R 和 S(R 出现在 S 之前),在排序后的列表中 R 也一定在 S 前。下面关于排序稳定性的描述,正确的是( )。
A. 冒泡排序是不稳定的。
B. 插入排序是不稳定的。
C. 选择排序是不稳定的。
D. 以上都不正确。
*
36.
下列关于 C++语言中指针的叙述,不正确的是( )。   
A. 指针变量中存储的是内存地址。
B. 定义指针变量时必须指定其指向的类型。
C. 指针变量只能指向基本类型变量,不能指向指针变量。
D. 指针变量指向的内存地址不一定能够合法访问。
*
37.
下列关于 C++语言中函数的叙述,正确的是( )。
A. 函数必须有名字。
B. 函数必须有参数。
C. 函数必须有返回值。
D. 函数定义必须写在函数调用前。
*
38.
下列关于 C++语言中数组的叙述,不正确的是( )。
A. 一维数组在内存中一定是连续存放的。
B. 二维数组是一维数组的一维数组。
C. 二维数组中的每个一维数组在内存中都是连续存放的。
D. 二维数组在内存中可以不是连续存放的。
*
39.
下列关于 C++语言中变量的叙述,正确的是( )。
A. 变量定义后可以一直使用。
B. 两个变量的变量名不能是相同的。
C. 两个变量的变量名可以相同,但它们的类型必须是不同的。
D. 两个变量的变量名可以相同,但它们的作用域必须是不同的。
*
40.
一个变量定义为 int *p = nullptr;,则下列说法正确的是( )
A. 该指针变量的类型为 int。
B. 该指针变量指向的类型为 int。
C. 该指针变量指向的内存地址是随机的。
D. 访问该指针变量指向的内存会出现编译错误。
*
41.
一个二维数组定义为 int array[5][3];,则 array[1][2]和 array[2][1]在内存中的位 置相差多少字节?()
A. 2 字节。
B. 4 字节。
C. 8 字节。
D. 无法确定。
*
42.
如果 a 为 int 类型的变量,且 a 的值为 6,则执行 a &= 3;之后,a 的值会是()
A. 3
B. 9
C. 2
D. 7
*
43.
一个数组定义为 int a[5] = {1, 2, 3, 4, 5};,一个指针定义为 int * p = a[2];,则 执行 a[1] = *p;后,数组 a 中的值会变为( )。
A. {1, 3, 3, 4, 5}
B. {2, 2, 3, 4, 5}
C. {1, 2, 2, 4, 5}
D. {1, 2, 3, 4, 5}
*
44.
在 C++语言中,函数的参数默认以引用传递方式进行传递。()
*
45.
>= 和 >>=都是 C++语言的运算符。()
问卷星提供技术支持
举报