c语言面试题大汇总之华为面试题,计算机c语言面试题大汇总之华为面试题6.doc...
試題5:編寫一個函數,作用是把一個char組成的字符串循環右移n個。比如原來是“abcdefghi”如果n=2,移位后應該是“hiabcdefgh” 函數頭是這樣的:
//pStr是指向以''結尾的字符串的指針//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 ) ) = ''; 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 試題6:已知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]; UIN16 nAudioLength;} WAVEFORMAT;
假設WAV文件內容讀出后存放在指針buffer開始的內存單元內,則分析文件格式的代碼很簡單,為:
WAVEFORMAT waveFormat;memcpy( &waveFormat, buffer,sizeof( WAVEFORMAT ) );
直接通過訪問waveFormat的成員,就可以獲得特定WAV文件的各項格式信息。 剖析: 試題6考查面試者組織數據結構的能力,有經驗的程序設計者將屬于一個整體的數據成員組織為一個結構體,利用指針類型轉換,可以將memcpy、memset等函數直接用于結構體地址,進行結構體的整體操作。透過這個題可以看出面試者的程序設計經驗是否豐富。 試題7:編寫類String的構造函數、析構函數和賦值函數,已知類String的原型為:
class String{ public: String(const char *str = NULL); // 普通構造函數 String(const String &other); // 拷貝構造函數 ~ String(void); // 析構函數 String & operate =(const String &other); // 賦值函數 private: char *m_dat
總結
以上是生活随笔為你收集整理的c语言面试题大汇总之华为面试题,计算机c语言面试题大汇总之华为面试题6.doc...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言 int和字母,[求助]从一个包含
- 下一篇: c 语言切换源码,C转换为pas - 源