欢迎来到天天文库
浏览记录
ID:51401571
大小:48.50 KB
页数:4页
时间:2020-03-23
《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的析构函
此文档下载收益归作者所有