- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CC++笔试题汇总一 编程题
编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefg” 。函数头是这样的:
//pStr是指向以\0结尾的字符串的指针//steps是要求移动的nvoid LoopMove ( char * pStr, int steps ){
//请填充}
解答:正确解答1:
void LoopMove ( char *pStr, int steps ) {
int n = strlen( pStr ) - steps; char tmp[MAX_LEN]; strcpy ( tmp, pStr + n ); strcpy ( tmp + steps, pStr); *( tmp + strlen ( pStr ) ) = \0; strcpy( pStr, tmp ); }
正确解答2:
void LoopMove ( char *pStr, int steps ) { int n = strlen( pStr ) - steps; char tmp[MAX_LEN]; memcpy( tmp, pStr + n, steps ); memcpy(pStr + steps, pStr, n ); memcpy(pStr, tmp, steps ); }
剖析:这个试题主要考查面试者对标准库函数的熟练程度,在需要的时候引用库函数可以很大程度上简化程序编写的工作量。最频繁被使用的库函数包括:(1) strcpy(2) memcpy(3) memset
已知WAV文件格式如下表,打开一个WAV文件,以适当的数据结构组织WAV文件头并解析WAV格式的各项信息。WAVE文件格式说明表
偏移地址 字节数 数据类型 内 容 文件头 00H 4 Char RIFF标志 04H 4 int32 文件长度 08H 4 Char WAVE标志 0CH 4 Char fmt标志 10H 4 过渡字节(不定) 14H 2 int16 格式类别 16H 2 int16 通道数 18H 2 int16 采样率(每秒样本数),表示每个通道的播放速度 1CH 4 int32 波形音频数据传送速率 20H 2 int16 数据块的调整数(按字节算的) 22H 2 每样本的数据位数 24H 4 Char 数据标记符"data" 28H 4 int32 语音数据的长度 解答:将WAV文件格式定义为结构体WAVEFORMAT:
typedef struct tagWaveFormat{ char cRiffFlag[4]; UIN32 nFileLen; char cWaveFlag[4]; char cFmtFlag[4]; char cTransition[4]; UIN16 nFormatTag ; UIN16 nChannels; UIN16 nSamplesPerSec; UIN32 nAvgBytesperSec; UIN16 nBlockAlign; UIN16 nBitNumPerSample; char cDataFlag[4]; UIN32 nAudioLength; }WAVEFORMAT;
假设WAV文件内容读出后存放在指针buffer开始的内存单元内,则分析文件格式的代码很简单,为:
WAVEFORMAT waveFormat; memcpy( waveFormat, buffer,sizeof( WAVEFORMAT ) );
直接通过访问waveFormat的成员,就可以获得特定WAV文件的各项格式信息。剖析:
本题考查面试者组织数据结构的能力,有经验的程序设计者将属于一个整体的数据成员组
织为一个结构体,利用指针类型转换,可以将memcpy、memset等函数直接用于结构体地址,进行结构体的整体操作。 透过这个题可以看出面试者的程序设计经验是否丰富。
请写一个C函数,若处理器是Big_endian则返回0;若是Little_endian则返回1解答:
int checkCPU(){
union w
{
int a; char b;} c;
c.a = 1;
return (c.b == 1);}
剖析:嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian
模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。例如,16bit宽的数0x1234在Little- endian模式CPU内存中的存放方式(假设从地址0x4000开始存放
您可能关注的文档
最近下载
- 侠客风云传养成模式触发剧情一览.pdf VIP
- YST 582-2013 电池级碳酸锂.pdf
- 淘股吧高手语录.docx VIP
- 2024~2025学年上学期七年级第一次月考数学试题(含答案).pdf VIP
- GB-T6284-1986化工产品中水分含量测定的通用方法重量法.pdf
- MSC:人工智能赋能可持续发展和投资白皮书.pdf VIP
- 24J306 窗井、设备吊装口、排水沟、集水坑图集.docx VIP
- 2014年深圳市坪山新区主要病媒生物监测及白纹伊蚊抗药性研究.pdf VIP
- T∕CBDA 69-2023 建筑装饰装修碳排放计算标准.pdf
- 国际私法(暨南大学)中国大学MOOC 慕课 章节测验 期末考试答案.docx VIP
文档评论(0)