版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面试题C和C++基础知识10道题含答案题目1:指针基础知识题述:描述指针数组和数组指针(指向数组的指针)的区别并举例考察点:C指针的基础知识答案:考虑如下char*q[]={“xxx”,“xxx”,“xxx”};指针数组,q[0]为一个指针char(*p)[]=a;数组指针,p[0]为一个变量时间:1min题目2:内存分配题述:描述c程序内存分配方式以及它们的区别(5分钟)考察点:编程基础参考答案:1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由程序员决定。题目3:读程序找错问题:【找错类】下面的程序用于读取整数,整数的范围在1和从标准输入读取的size之间,它返回每个值出现的次数,这个程序包含了几个错误,请指出。(10min)#include<stdlib.h>Int*frequency(intsize){Int*array;Inti;array=(int*)malloc(size*2);#获得足够的内存来容纳计数#调整指针,让它后退一个整形位置,这样就可以使用范围1-size的下标Array-=1;#把各个元素清零For(i=0;i<size;i++)Array[i]=0;#计数每个值出现的次数,然后返回结果While(scanf("%d",&i)==1)#scanf的返回值代表成功读入的个数Array[i]+=1;Free(array);Returnarray;}错误点:(1)用字面值常量2作为整型值的长度,这个值在整型值长度为2个字节的机器上能正常工作,但在4字节整数机器上,实际分配的内存将只是所需内存的一半,所以应该用sizeof(2)从malloc函数返回值未被检查,如果内存不足,将返回NULL(3)把指针退到数组左边界的左边来调整下标的范围或许行得通,但它违背了标准关于指针不能越过数组左边界的规定。(4)指针经过调整后,第一个元素的下标变成了1,接着for循环将错误地从0开始。在许多系统中,这个错误将破坏malloc所使用的用于追踪堆的信息,常常导致程序崩溃(5)数组增值前并未检查输入值是否位于合适的范围内;(6)如果数组应该被返回,它就不能被free掉题目4:读程序确认返回值求函数返回值,输入x=9999;intfunc(intx){intcountx=0;while(x){countx++;x=x&(x-1);}returncountx;}【问题】请写出该函数的返回值以及分析过程。(10分钟)参考答案:8解这道题的时候,如果拿出一个二进制数来分析就会容易的多了,x=x&(x-1)实际上就是把x的二进制形式的最后一个“1”变成“0”,x的二进制形式有多少个“1”循环就执行多少次。9999/256=39余15,把这两个数分别转化一下就很快了39=32+4+2+1=0010011115=0f=00001111所以9999=0010011100001111,共有8个1,答案就是8了考察点:c编程基础知识题目5:实现strndup函数请编写以下功能的函数:char*strndup(char*src,intn);
复制字符串src,返回新的指针地址,最多复制n个字节(包括字符串结束的'\0')。该题目的审查要点是:l是否检查参数的有效性:src,n;l是否能正确使用内存申请函数和指针;l对于"最多复制n个字节"的要求考虑是否周到题目6:合并两个有序链接合并两个有序(升序)链接。typedefstruct_link_t{intval;struct_link_t*next;}link_t;link_t*merge(link_t*ln1,link_t*ln2);题目7(本题答案不全):实现子序列最大和给定一个int
数组,给出其中连续子序列的最大和unsignedintfoo(int*arr,size_tlen);例子1:数组[-2,11,-4,13,-5,2]中具有最大累加和的子数组为[11,-4,13],其和为20;例子2:[1,-3,4,-2,-1,6]中具有最大累加和的子数组为[4,-2,-1,6],其和为7。题目8(本题答案不全):字符串排序有一个由字母(大小写)组成的字符串,要求对其排序,要求效率尽可能高且辅助空间尽可能少。实现voidsort(char*s);返回写入s。题目9(本题答案不全):字符串反转写代码反转一个字符串,要求交换的次数和辅助空间尽量少。实现voidreverse(char*s)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某建筑公司环保考核制度
- 黑龙江省肇东市宋站镇宋站中学初中体育《投掷》教案03
- 《LED外延工艺》课件
- 湖北省黄冈市麻城市七年级英语下册 Unit 11 how was your weekend Section B(3a-self check)教学设计 (新版)人教新目标版
- 配电系统常用电气元件及符号
- 段考试题及答案
- 昆明市嵩明县2026年三上数学期末监测试题含解析
- 礼仪证考试题库及答案
- 采购管理考试题及答案
- 山东省枣庄市山亭区2026年数学三上期末质量跟踪监视试题含解析
- 衣柜改造施工方案
- 银行技能活动方案
- 信息技术课程期末测试题设计范例
- 《创新创业基础》 课件 第5章 创业机会
- 中核集团非招标管理办法
- 新生儿感染性肺炎护理查房
- 黎族舞蹈教学课件
- 体检科管理制度
- 统编版(2024新版)三年级上册道德与法治教学计划
- 字体设计(上海出版印刷高等专科学校)智慧树知到答案2024年上海出版印刷高等专科学校
- 9步达到财务自由
评论
0/150
提交评论