(全)面试题C和C++基础知识10道题含答案.docx
《(全)面试题C和C++基础知识10道题含答案.docx》由会员分享,可在线阅读,更多相关《(全)面试题C和C++基础知识10道题含答案.docx(7页珍藏版)》请在第壹文秘上搜索。
1、面试题C和C+基础知识10道题含答案题目1:指针基础知识题述:描述指针数组和数组指针(指向数组的指针)的区别并举例考察点:C指针的基础知识答案:考虑如下char*q=xxx,mxxxw,xxx;指针数组,q0为一个指针char(*p)=a;数组指针,p0为一个变量时间:Imin题目2:内存分配题述:描述C程序内存分配方式以及它们的区别(5分钟)考察点:编程基础参考答案:1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。2 )在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自
2、动被释放。栈内存分配运算内置于处理器的指令集。3 )从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由程序员决定。题目3:读程序找错问题:【找错类】下面的程序用于读取整数,整数的范围在1和从标准输入读取的size之间,它返回每个值出现的次数,这个程序包含了几个错误,请指出。(Iomin)#includeInt*frequency(intsize)(Int*array;Inti;array=(int*)malloc(size*2);#获得足够的内存来容纳计数# 调整指针,让它后退一个整形
3、位置,这样就可以使用范围1-size的下标Array-=I;# 把各个元素清零For(i=0;isize;i+)Arrayi=0;# 计数每个值出现的次数,然后返回结果While(scanf(n%dzi)=1)#SCanf的返回值代表成功读入的个数Arrayi+=1;Free(array);Returnarray;)错误点:(1)用字面值常量2作为整型值的长度,这个值在整型值长度为2个字节的机器上能正常工作,但在4字节整数机器上,实际分配的内存将只是所需内存的一半,所以应该用Sizeof(2)从malloc函数返回值未被检查,如果内存不足,将返回NULL(3)把指针退到数组左边界的左边来调整下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试题 C+ 基础知识 10 道题含 答案