1.若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类型是?
A.extern
B.register
C.auto
D.static
答案:D
解析:
A.外部变量,可供所有源文件使用
B.寄存器变量,放在寄存器而非内存中,效率更高,一般是临时变量
C.自动变量,所有未加 static 关键字的都默认是 auto 变量,也就是我们的普通变量
D.静态变量,在内存中只存在一个,可供当前源文件的所有函数使用
2.下面哪个指针表达式可以用来引用数组元素a[i][j][k][l]
A.(((a+i)+j)+k)+l)
B.((((a+i)+j)+k)+l)
C.(((a+i)+j)+k+l)
D.((a+i)+j+k+l)
答案:B
解析:
a:整个四维数组的地址
*(a+i) = a[i]
*(a+i)+j = a[i] +j
*(*(a+i)+j) = a[i][j]
*(*(a+i)+j)+k = a[i][j]+k
*(*(*(a+i)+j)+k ) = a[i][j][k]
*(*(*(a+i)+j)+k )+l = a[i][j][k]+l
*(*(*(*(a+i)+j)+k )+l ) = a[i][j][k][l]
3.下面有关vector和list的区别,描述错误的是?
A.vector拥有一段连续的内存空间,因此支持随机存取,如果需要高效的随即存取
B.list拥有一段不连续的内存空间,如果需要大量的插入和删除,应该使用list
C.vector::iterator支持“+”、“+=”、“<”等操作符
D.list::iterator则不支持“+”、“+=”、“<”等操作符运算,但是支持了[ ]运算符4
答案:D
解析:
vector拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝,这些都大大影响了vector的效率。
list就是数据结构,中的双向链表,因此它的内存空间可以是不连续的,通过指针来进行数据的访问,这个特点使得它的随即存取</