C C 語言程式設計筆試面試題

2021-05-08 15:14:50 字數 2635 閱讀 7624

topfree131(白日?做夢!) ( ) 信譽:100 2006-4-17 10:18:33 得分: 0

有乙個陣列a[1000]存放0--1000;要求每隔二個數刪掉乙個數,到末尾時迴圈至開頭繼續進行,求最後乙個被刪掉

的數的原始下標位置。

以7個數為例:

0-->1-->2(刪除)-->3-->4-->5(刪除)-->6-->7-->0(刪除),如此迴圈直到最後乙個

數被刪除。

方法1:陣列

#include

using namespace std;

#define null 1000

int main()

while(arr[j]==null)

j=(++j)%1000;

cout

}方法2:鍊錶

#include

using namespace std;

#define null 0

struct node

; int main()

head->next=p;

while(p!=p->next)

cout

return 0;

} 方法3:通用演算法

#include

#define maxline 1000 //元素個數

/* maxline 元素個數

a 元素陣列

r 指標場

suffix 下標

index 返回最後的下標序號

values 返回最後的下標對應的值

start 從第幾個開始

k 間隔

*/ int find_n(int a,int r,int k,int& index,int& values,int s=0)

else

while(r[front_node]!=front_node)

int main(void)

r[i-1]=0;

find_n(a,r,k,index,values,2);

printf("the value is %d,%d\n",index,values);

return 0;

} 試題:

void test2()

strcpy( string, str1 );

} 解答:對試題2,如果面試者指出字元陣列str1不能在陣列內結束可以給3分;如果面試者指出strcpy(string,

str1)呼叫使得從str1記憶體起複製到string記憶體起所複製的位元組數具有不確定性可以給7分,在此基礎上指出庫函

數strcpy工作方式的給10分;

str1不能在陣列內結束:因為str1的儲存為:,沒有'\0'(字串結束符),所以不能結束

strcpy( char *s1,char *s2)他的工作原理是,掃瞄s2指向的記憶體,逐個字元付到s1所指向的記憶體,直到碰

到'\0',因為str1結尾沒有'\0',所以具有不確定性,不知道他後面還會付什麼東東。

正確應如下

void test2()

str[i]='\0';//加上結束符

strcpy( string, str1 );

} 第二個code題是實現strcmp

int strcmp(const char *str1, const char *str2)

做是做對了,沒有抄搞,比較亂

int strcmp(const char *str1, const char *str2)

if (*str1 && *str2)

return (*str1-*str2);

elseif (*str1 && *str2==0)

return 1;

elseif (*str1 = = 0 && *str2)

return -1;

else

return 0;

} int strcmp(const char *str1, const char *str2)

第三個code題是實現子串定位

int findsubstr(const char *mainstr, const char *substr)

做是做對了,沒有抄搞,比較亂

int mystrstr(const char* mainstr, const char* substr)

mainstr ++;

} return -1;

} 分析:

int arr = ;

int *ptr = arr;

*(ptr++)+=123;

printf(「 %d %d 」, *ptr, *(++ptr));

輸出:8 8

過程:對於*(ptr++)+=123;先做加法6+123,然後++,指標指向7;對於printf(「 %d %d 」, *ptr, *(++ptr));

從後往前執行,指標先++,指向8,然後輸出8,緊接著再輸出8

華為全套完整試題

高階題6、已知乙個單向鍊錶的頭,請寫出刪除其某乙個結點的演算法,要求,先找到此結點,然後刪除。

slnodetype *delete(slnodetype *head,int key){}中if(head->number==key)

C C 語言程式設計筆試面試題

五 編寫strcpy函式 10分 已知strcpy函式的原型是 char strcpy char strdest,const char strsrc 其中strdest是目的字串,strsrc是源字串。1 不呼叫c c的字串庫函式,請編寫函式 strcpy char strcpy char strd...

c c 程式設計面試題

c c 程式設計面試題07 c語言 c 程式設計面試題集錦 第七部分 1.介紹一下stl,詳細說明stl如何實現vector.answer stl 標準模版庫,standard template library.它由容器演算法迭代器組成。stl有以下的一些優點 可以方便容易地實現搜尋資料或對資料排序...

C C 筆試面試題目彙總

4.在什麼時候需要使用 常引用 如果既要利用引用提高程式的效率,又要保護傳遞給函式的資料不在函式中被改變,就應使用常引用。常引用宣告方式 const 型別識別符號 引用名 目標變數名 例1int a const int ra a ra 1 錯誤 a 1 正確 例2string foo void ba...