華為筆試題之十五
tf的輸出問題
printf("%d",total);//this is right
printf(total);//this is wrong
printf("hello");//but this is right
2.整數類型的長度
char 1個子節,8位
unsigned short [int]
[signed] short int
short 2個字節,16位
[signed] int
unsigned int
int 型在vc裏是4個子節,32位,也可能是16位,2個字節
long [int]
unsigned long [int]
long型都是32位,4個字節
float 32 ,4
double 64,8
long double 128,16
char 8,一個字節,存放的實際上是字符的i碼
3、找出錯誤並改正
char *my_cpy(char* src, int len){
char dest[1024];
memcpy(dest, src, len);
return dest;
}
上面的函數是否有問題,如果有指出其所在,如果沒有,給出函數功能描述。
答案:
1。數組應該初始化
2。memcpy不判斷是否越界,所以調用前應該判斷是否越界
3。不應該返回rest,因為這個數組是在函數內部申請的,所以函數結束之後就會消失,指針也會變成“野指針”,所以指向非法地址
最後一個比較隱蔽
char *memcpy( char *dest, const char *src,int len)
{
char* pDest = (char*)dest;
char* pSrc = (char*)src;
int pos;
for(pos=0;pos
pDest[pos] = pSrc[pos];
}
return (char*)pDest;
}
存在地問題就是沒有判斷指針是否非法assert(dest !=NULL || src != NULL); 條件為FLASE 顯示
不調用其他函數,寫一個memcpy的函數,函數原型為
void *memcpy(void *dest, void *src, size_tlength);
-----------利用好斷言---------
void memcpy(void* pvTo, void* pvFrom, size_t size)
{
void* pbTo = (byte*)pvTo;
void* pbFrom = (byte*)pvFrom;
ASSERT(pvTo != NULL && pvFrom !=NULL);
ASSERT(pbTo>=pbFrom+size ||pbFrom>=pbTo+size);
while(size-->0)
*pbTo++ == *pbFrom++;
return(pvTo);
}
-----------------------
常見函數編程:
char *strcpy(char *strDest, const char *strSrc)
{
ASSERT(strDest != NULL && strSrc !=NULL);
char *addr = strDest;
while(*strDest++=*strSrc++)
NULL; //NULL可以省略,但更有利於編譯器發現錯誤
}
return addr;
}
void *memcpy(void *dest, const void *src, int count)
{
ASSERT(dest!= NULL && src!=NULL);
for(int i=0; i< cout; i++)
{
dest = src;
}
}
int strcmp(const char*str1, const char *str2)
{
while (str1 != NULL && str2 !=NULL)
{
if(*str1 < *str2) return -1;
else if(*str1 > *str2) return 1;
else { str1++; str2++;}
}
if(str1 == NULL && str2 !=NULL)
return -1;
else if(str1 != NULL && str2 ==NULL)
return 1;
else return 0;
}
//way2: morecompact
int strcmp(const char*str1, const char *str2)
{
int i = strlen( str1 );
int j;
for(j=0; j<=i; j++)
{
if(str1[j] > str2[j]) return 1; //if str2terminates, then str2[j]=0, str1[j]>str2[j], return1;
else if(str1[j] < str2[j]) return -1;
else if(str1[j] == ) return 0;
}
}
//way3: optimize again.
int strcmp(const char * str1, const char * str2 )
{
while(1)
{
if(*str1 > *str2) return 1;
else if(*str1 < *str2) return -1;
else if(*str1 == ) return 0;
str1++;str2++;
}
}
-
關於大綱調整MBA筆試應對策略
新大綱調整MBA筆試應對策略根據05年聯考新大綱的要求,華章將獲得的筆試第一手信息通知廣大考生以便於指導大家調整複習方向和方法。1.不單獨考管理,並不是不考管理。管理內容將在綜合能力測試中的寫作(論證有效性分析或文字材料綜述)中出現,學生需要綜合運用寫作能...
-
2015年人行經濟金融類考試筆試經驗
今年第二次報考人行,作為打醬油的學渣,很不幸地發現今年的筆試內容居然偏向微觀,妥妥地中招了,但既然考了就懷抱一份希望等待吧,廢話少説,下面講講這兩次的經驗。首先是題型有所改變,今年的`多選題多了幾道(大概5道吧,記不清了),最突出的是之前的簡答題變成了計算題,而且...
-
外管局單位筆試經驗分享
1、什麼是流動性陷阱有一種觀點:日本的貨幣政策無效是因為其投資回報率太低,如果日本的財政政策也無效,是否能説明日本不存在流動性陷阱?2、名詞解釋:貨幣數量論、貨幣幻覺、有效市場價説微觀經濟:給了兩家公司的支付矩陣,問是否存在納什均衡的`問題,投資分析:1、一家...
-
新華社2015國內分社筆試經驗
第一題:時政填空:1、-----(APEC)舉行第二十二屆工商領導人峯會(亞太經合組織)2、-------是依法治國的根本保證,本質特徵(黨的領導)3、南水北調工程----調到北京(揚州)4、-----病毒在西非(埃博拉)5、甲午戰爭-----週年1206、美國2015年開始停止原油出口-----因為美...