【計算機專業必看】C語言常用函數

來源: StudyGate 2021-01-31 08:48:16 [] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (12674 bytes)

C 語言是一種通用的高級語言,最初是由丹尼斯·裏奇在貝爾實驗室為開發 UNIX 操作係統而設計的。C 語言最開始是於 1972 年在 DEC PDP-11 計算機上被首次實現。UNIX 操作係統,C編譯器,和幾乎所有的 UNIX 應用程序都是用 C 語言編寫的。由於各種原因,C 語言現在已經成為一種廣泛使用的專業語言。C語言的主要特征是:

  • 易於學習。
  • 結構化語言。
  • 它產生高效率的程序。
  • 它可以處理底層的活動。
  • 它可以在多種計算機平台上編譯。

那麽C語言的函數的特征是什麽呢?有哪些常用的函數呢?今天我們就來盤點一下,希望對大家學習和練習C語言有所幫助。

 

C語言函數定義

 

C 語言中的函數定義的一般形式如下:

return_type function_name( parameter list )

{

   body of the function

}

 

在 C 語言中,函數由一個函數頭和一個函數主體組成。下麵列出一個函數的所有組成部分:

返回類型:一個函數可以返回一個值。return_type 是函數返回的值的數據類型。有些函數執行所需的操作而不返回值,在這種情況下,return_type 是關鍵字 void。

 

函數名稱:這是函數的實際名稱。函數名和參數列表一起構成了函數簽名。

 

參數:參數就像是占位符。當函數被調用時,您向參數傳遞一個值,這個值被稱為實際參數。參數列表包括函數參數的類型、順序、數量。參數是可選的,也就是說,函數可能不包含參數。

 

函數主體:函數主體包含一組定義函數執行任務的語句。

 

C語言常用函數

 

1.I/O函數

 

(1)scanf函數:

 

int scanf(const char *format…..);

 

從標準輸入流stdin中按格式format將數據寫到參數表中;若操作成功,返回寫到參數表中的參數個數,否則返回EOF;

 

2)在while中加上%*c

 

While(scanf(“%d%*c”,&n)==1&&n!=0)即可

 

 2.數學函數

 

(1)求絕對值

 

double fabs(double );

 

float fabsf(float);

 

long double fabsl(long double);

 

int abs(int);

 

long int labs(long int);

 

(2)floor函數:返回不大於參數的整數

 

 float floor(float);

 

 double floor(double);

 

(3)ceil函數:返回不小於參數的整數

 

 float ceil(float);

 

 double floor(double);

 

(4)pow:返回X^Y;

 

 double pow(double x,double y);

 

(5)sqrt:返回x的開方

 

 double sqrt(double x);

 

(6)log2,log10:返回底數的自然對數值

 

 double log2(double x);

 

 double log10(double x);

 

3.字符串處理函數

 

(1)char *strchr(const char *str,int ch);

 

    返回str中第一次出現字符ch的位置指針,否則返回NULL;

 

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

 

   返回str1中第一次出現str2的位置指針,否則返回NULL;

 

(3)int stricmp(const char *str1,const char *str2);

 

   忽略字符的大小寫進行比較

 

(4)int strncmp(const char *str1,const char *str2,int count);

 

   將str1前n個字符與str2的前n個字符進行比較

 

(5)char *strncpy(char *str1,const char *str2,int count);

 

   將str2的前n個字符複製到str1中

 

(6)char *strrev(char *str);

 

   將字符串str逆序,並返回逆置後的結果 

 

4.常用使用函數

 

(1)double atof(const char *str);

 

    將字符串str表示的數轉換成浮點數

 

(2)int atoi(const char *str);

 

    將字符串str表示的數轉換成整數

 

(3)void qsort(void *buf,int count,int size,cmp);————>count為所需要進行排序的元素個數,size為每個元素所占用的空間

 

4. 輸入輸出函數(<stdio.h>)

(1)文件打開和關閉:

 

      FILE *fopen(const char *filename, const char *mode);

 

      int fclose(FILE * stream);

 

(2)字符輸入輸出:

 

      int fgetc(FILE *fp);

 

      int fputc(int c, FILE *fp);

 

   getc和putc與這兩個函數類似,但通過宏定義實現。通常有下麵定義:

 

      #define getchar()  getc(stdin)

 

      #define putchar(c) putc(c, stdout)

 

      int ungetc(int c, FILE* stream);//把字符 c 退回流 stream

 

(3)格式化輸入輸出:

 

      int scanf(const char *format, ...);

 

      int printf(const char *format, ...);

 

      int fscanf(FILE *stream, const char *format, ...);

 

      int fprintf(FILE *stream, const char *format, ...);

 

      int sscanf(char *s, const char *format, ...);

 

      int sprintf(char *s, const char *format, ...);

 

(4)行式輸入輸出:

 

      char *fgets(char *buffer, int n, FILE *stream);

 

      int fputs(const char *buffer, FILE *stream);

 

      char *gets(char *s);

 

      int puts(const char *s);

 

(5)直接輸入輸出:

 

      size_t fread(void *pointer, size_t size, size_t num, FILE *stream);

 

      size_t fwrite(const void *pointer, size_t size, size_t num, FILE *stream);

 

5. 常用函數bsearch和qsort

(1)二分法查找函數bsearch:

 

    void *bsearch(const void *key, const void *base, size_t n, size_t size, int (*cmp)(const void *keyval, const void *datum));

 

   函數指針參數cmp的實參應是一個與字符串比較函數strcmp類似的函數,確定排序的順序,當第一個參數keyval比第二個參數datum大、相等或小時分別返回正、零或負值。

 

(2)快速排序函數qsort:

 

     void qsort(void *base, size_t n, size_t size, int (*cmp)(const void *, const void *));

 

   Qsort對於比較函數cmp的要求與bsearch一樣。設有數組base[0],...,base[n-1],元素大小為size。用qsort可以把這個數組的元素按cmp確定的上升順序重新排列

 

由於專業性和英語學習,計算機專業對於留學生來說也是充滿挑戰的學科,想要進一步學好CS,可以尋求 online tutoring 等學術資源。

 

https://www.studygate.com/blog-cn/programming%E7%BC%96%E7%A8%8B%E4%BB%A3%E5%86%99/

 

https://www.studygate.com/blog-cn/%E4%BB%A3%E7%A0%81coding%E4%BB%A3%E5%86%99/

 

 

加跟帖:

  • 標題:
  • 內容(可選項): [所見即所得|預覽模式] [HTML源代碼] [如何上傳圖片] [怎樣發視頻] [如何貼音樂]