C語言面試題(2)

2021-10-24 08:44:59 字數 2126 閱讀 8888

char * strcpy( char* str1,const char* str2)

這個函式把字串src複製到一分配好的字串空間dst中,複製的時候包括標誌字串結尾的空字元一起複製。操作成功,返回dst,否則返回null.

char

*my_strcpy

(char

* str1,

const

char

* str2)

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

比較字串str1和自str2是否相同。如果相同則返回0;

如果不同,str1的字元大於str2的字元,則返回1,否則返回-1

void

my_strcmp

(char

*str1,

char

*str2)

int t;

t=*str1-

*str2;

if(t==0)

return0;

if(t>0)

return1;

if(t<0)

return-1

;}

char *strstr(char *str1,char *str2);

在字串str1中,尋找字串str2,若找到返回找到的位置,否則返回null。

char

*strstr

(const

char

*str1,

const

char

*str2)

else

}return

null

;}

首先介紹atoi函式的功能:該函式的作用是將引數字串轉換為乙個整數。

(1)如果引數字串以數字開頭,則一直往後讀,直到讀到非數字字元或\0。然後將這些數字以整數形式返回。如:「62562hja」,返回整數62562。「1331」,返回整數1331。

(2)如果引數字串以正負號開頭,則往後讀取,如果緊接著讀到數字,此時與(1)相同。只是在返回整數時要加正負號。如果正負號後面不是數字字元,則返回0。如:「+4245sja」,返回4245。「-463hsda」,返回-463。「-gab」和「+hakjs」返回0。

(3)如果引數字串以空格字元開頭(\n,\r,\t,\f,\v),則跳過空格字元,再按照(1)和(2)進行判斷。如:

「 425jhad」,返回425。

(4)如果不是以上的三種情況,則返回0。如「jajs4676」,「jsab」,均返回0。

int

myatoi

(char arr)

int index =0;

//記錄陣列下標

int num =0;

//存放最終要返回的值

int flag =1;

//設定符號標誌位

while

(arr[index]

==' '

)//是空格返回非零值(不一定是1),否則返回0

if(arr[index]

=='-'

)//注意:正負號不算作1

if(arr[index]

=='-'

|| arr[index]

=='+'

)//如果遇到正負號,說明可以往後繼續走

while

(arr[index]

>=

'0'&& arr[index]

<=

'9')

//如果遇到的數字說明可以繼續往下走

return flag*num;

}

對任意陣列進行排序

#include

intmain()

; b =

sizeof

(a)/

sizeof

(a[0])

;//計算出陣列個數

for(i=

0;i}for

(i=0

;i)printf

("\n");

return0;

}

C語言面試題

基礎篇 1 區域性變數能否和全域性變數重名?可以2 如何引用乙個已經定義過的全域性變數?直接呼叫並初始化 3 全域性變數可不可以定義在可被多個.c檔案包含的標頭檔案中?為什麼?可以,6 堆和棧有什麼區別?7 什麼是預編譯,何時需要預編譯 8 c和c 中的struct有什麼不同?9 memset me...

C語言面試題

1.求某一年的某一天 includestruct sdate int main int i 0,nday dt.nday while i2 nday printf 這是 d年的第 d天 n dt.nyear,dt.nday return 0 將列印和演算法抽象成不同函式 includestruct ...

C語言面試題

1.要求使用一維陣列,輸入10名同學的序號和成績,並進行排序。題目1196 成績排序 題目描述 用一維陣列儲存學號和成績,然後,按成績排序輸出。輸入 輸入第一行包括乙個整數n 1 n 100 代表學生的個數。接下來的n行每行包括兩個整數p和q,分別代表每個學生的學號和成績。輸出 按照學生的成績從小到...