當前位置:學問谷 >

職場範例 >面試 >

c面試題大綱

c面試題大綱

1、給一個字符串,例如“ababc”要求返回“ab”,因為“ab”連續重複出現且最長 好長時間不編程序了,剛開始的時候編不出來,想開別人寫的,可悲的是看不懂,後來自己編了一個,效率不能有其他的人的好,自己編的還是記錄下來了。 #include

c面試題大綱

#include#includeint search(char *str,char * substr) { int l_str = strlen(str); int l_substr = strlen(substr); int sum = 0; if(l_str

} void main() { char str[]="ababc"; char sb[]="ab"; int sum =search(str,sb); printf("str:%s,sum:%dn",sb,sum); f(str); }

2、關於中文漢字截斷

由於漢字是2個字符(這裏不討論可變字符的情形),因此,在C語言中,用一個固定長度的buffer 存放包含漢字的字符串,就有漢字被截斷從而導致半個漢字的情形的出現。半個漢字的'存在,對字符串的後續處理,會帶來一定的麻煩,比如在xml文檔、或者 SQL語句中,如果存在半個漢字,就會導致xml解析失敗,或者sql執行錯誤的異常。為了解決這個問題,有必要找到並刪除半個漢字,或者存放的時候,即 便截斷,也不產生新的半個漢字。

char str[]="中國china";

printf("%s,%dn",str,strlen(str));

//scanf("%s %s",&str,&substr);

int len = strlen(str);

int n=0;

for(int i=0;i{

if(!(str[i]&0x80))

{

break;

}

n++;

}

printf("%dn",n);

4、對序列1,1,3,5,8,13......是Fab..數列2,3,4,13...是Fab..質數數列,因為他們與自己前面的Fab數列都互質給出k,返回第k小的Fab..質數。

自己的答案:

#include

#include

#include

#include

bool f1(int n)

{

bool flag = true;

for(int i=2;i<=sqrt(n);i++)

{

if(n%i ==0)

{

flag = false;

break;

}

}

return flag;

}

int ff(int k)

{

int a = 1;

int b = 1;

int n = 1;

while(1)

{

int temp = b;

b = a+b;

a = temp;

printf("|%dn",b);

if(f1(b)) n++;

if(n==k) return b;

}

}

void main()

{

int k;

scanf("%d",&k);

int b = ff(k);

printf("%dn",b);

}

#include

#include

#include

#include

bool f1(int n)

{

bool flag = true;

for(int i=2;i<=sqrt(n);i++)

//備註:一個數如果不能被比它平方根小的所有質數整除,那麼它就是質數。

//i從2開始,編程的時候,隨便寫了個0,就捅了婁子。

{

if(n%i ==0)

{

flag = false;

break;

}

}

return flag;

}

void ff(int k)

{

int a = 1;

int b = 1;

while(a+b<=k)

{

int temp = b;

b = a+b;

a = temp;

}

while(!f1(b))

{

printf("hen");

int temp = b;

b = a;

a = temp - b;

}

printf("%dn",b);

}

void main()

{

int k;

scanf("%d",&k);

ff(k);

}

標籤: 面試題 大綱
  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flzc/mianshi/jk92o7.html