C语言面试题大汇总之华为面试题6.doc

C语言面试题大汇总之华为面试题6.doc

ID:51401571

大小:48.50 KB

页数:4页

时间:2020-03-23

C语言面试题大汇总之华为面试题6.doc_第1页
C语言面试题大汇总之华为面试题6.doc_第2页
C语言面试题大汇总之华为面试题6.doc_第3页
C语言面试题大汇总之华为面试题6.doc_第4页
资源描述:

《C语言面试题大汇总之华为面试题6.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、试题5:编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefgh”  函数头是这样的://pStr是指向以''结尾的字符串的指针//steps是要求移动的nvoidLoopMove(char*pStr,intsteps){ //请填充...}  解答:  正确解答1:voidLoopMove(char*pStr,intsteps){ intn=strlen(pStr)-steps; chartmp[MAX_LEN]; strcpy(tmp,pStr+n); strcpy(tmp+steps,pStr); 

2、*(tmp+strlen(pStr))=''; strcpy(pStr,tmp);}  正确解答2:voidLoopMove(char*pStr,intsteps){ intn=strlen(pStr)-steps; chartmp[MAX_LEN]; memcpy(tmp,pStr+n,steps); memcpy(pStr+steps,pStr,n); memcpy(pStr,tmp,steps);}  剖析:  这个试题主要考查面试者对标准库函数的熟练程度,在需要的时候引用库函数可以很大程度上简化程序编写的工作量。  最频繁被使用的库函数包括:  (1)strcpy  (2)me

3、mcpy  (3)memset  试题6:已知WAV文件格式如下表,打开一个WAV文件,以适当的数据结构组织WAV文件头并解析WAV格式的各项信息。  WAVE文件格式说明表偏移地址字节数数据类型内容文件头00H4Char"RIFF"标志04H4int32文件长度08H4Char"WAVE"标志0CH4Char"fmt"标志10H4过渡字节(不定)14H2int16格式类别16H2int16通道数18H2int16采样率(每秒样本数),表示每个通道的播放速度1CH4int32波形音频数据传送速率20H2int16数据块的调整数(按字节算的)22H2每样本的数据位数24H4Char数据标

4、记符”data”28H4int32语音数据的长度  解答:  将WAV文件格式定义为结构体WAVEFORMAT:typedefstructtagWaveFormat{ charcRiffFlag[4]; UIN32nFileLen; charcWaveFlag[4]; charcFmtFlag[4]; charcTransition[4]; UIN16nFormatTag; UIN16nChannels; UIN16nSamplesPerSec; UIN32nAvgBytesperSec; UIN16nBlockAlign; UIN16nBitNumPerSample; charcDa

5、taFlag[4]; UIN16nAudioLength;}WAVEFORMAT;  假设WAV文件内容读出后存放在指针buffer开始的内存单元内,则分析文件格式的代码很简单,为:WAVEFORMATwaveFormat;memcpy(&waveFormat,buffer,sizeof(WAVEFORMAT));  直接通过访问waveFormat的成员,就可以获得特定WAV文件的各项格式信息。  剖析:  试题6考查面试者组织数据结构的能力,有经验的程序设计者将属于一个整体的数据成员组织为一个结构体,利用指针类型转换,可以将memcpy、memset等函数直接用于结构体地址,进行结

6、构体的整体操作。透过这个题可以看出面试者的程序设计经验是否丰富。  试题7:编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:classString{ public:  String(constchar*str=NULL);//普通构造函数  String(constString&other);//拷贝构造函数  ~String(void);//析构函数  String&operate=(constString&other);//赋值函数 private:  char*m_data;//用于保存字符串};  解答://普通构造函数String::String

7、(constchar*str){ if(str==NULL) {  m_data=newchar[1];//得分点:对空字符串自动申请存放结束标志''的空  //加分点:对m_data加NULL判断  *m_data=''; } else {  intlength=strlen(str);  m_data=newchar[length+1];//若能加NULL判断则更好  strcpy(m_data,str); }}//String的析构函

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。