几道C++题,各位给我答案,谢了

来源:百度知道 编辑:UC知道 时间:2024/06/05 07:45:55
1, 关于c++内存分配的说法错误的是:C/D
A. 所有使用malloc分配的内存都应使用FREE释放
B. 所有使用new分配的内存都应使用delete释放
C. 分配在stack上的内存不需要程序员显式释放
D. 类实例的内存分配在heap上

2, 关于数组和单向链表,下列说法错误的是:
A. 数组中各个元素在内存中是连续存放的
B. 通过下标索引访问元素时,数组比链表具有优势
C. 在插入新元素时,数组比链表具有优势
D. 数组在创建是需要指定一个初始的元素个数,而链表不需要指定
3, 使用二分式在一个有序数组中搜索某个元素值,其平均的算法复杂度最复杂接近::
A. O(1)
B. O(N)
C. O(n*n)
D. o(logN)
4,已知char[]str=”abcdefg”; const char*p=str; 下列可行的是:
A.p[0]=”” B.p=”1234567” C str=”1234567” D以上都不可行
最好解释一下,谢谢

1 d 因为分配的stack上的内存上的不是动态变量.
2 C 在插入新元素时,链表比数组具有优势(因为数组要将插入位置后面的元素多要后移)
3 D数据结构书上有
4 D因为 constchar*p=str;说明*p是const型的是值不可以改变的

2,c

1,D;
2,C;数组是连续存储的,插入元素时要进行连续的赋值,a[i]=a[i-1]
4,B;const char*p=str; 这里指针是变的;
3,B;