對(duì)于C語(yǔ)言中的函數(shù)類(lèi)型,一般可以分為以下兩類(lèi):
創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比呼中網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式呼中網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋呼中地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴(lài)。
1. 庫(kù)函數(shù)(Library Function):也稱(chēng)為內(nèi)置函數(shù)(Built-in Function),是由C語(yǔ)言提供的、已經(jīng)封裝好的函數(shù)。庫(kù)函數(shù)通常具有標(biāo)準(zhǔn)化、通用化的特點(diǎn),包括數(shù)學(xué)運(yùn)算、字符串處理、文件操作等方面。例如`printf()`和`scanf()`是C語(yǔ)言中常用的庫(kù)函數(shù)。
2. 用戶自定義函數(shù)(User-Defined Function):也稱(chēng)為外置函數(shù)(External Function),是程序員根據(jù)需求自行編寫(xiě)的函數(shù)。用戶自定義函數(shù)可以將某一段需要重復(fù)使用的代碼封裝成一個(gè)函數(shù),在其他地方調(diào)用該函數(shù)即可實(shí)現(xiàn)相同的功能,起到了復(fù)用代碼的作用。在需要多次執(zhí)行特定任務(wù)時(shí),使用自定義函數(shù)可以使程序結(jié)構(gòu)更加清晰、易于理解。
2.long labs(long n); 求長(zhǎng)整型數(shù)的絕對(duì)值。
3.double fabs(double x); 求實(shí)數(shù)的絕對(duì)值。
4.double floor(double x); 求不大于x的最大整數(shù),它相當(dāng)于數(shù)學(xué)函數(shù)[x]。
5.double ceil(double x); 求不小于x的最小整數(shù)。
6.double sqrt(double x); 求x的平方根。
7.double log10(double x); 求x的常用對(duì)數(shù)。
8.double log(double x); 求x的自然對(duì)數(shù)。
9.double exp(double x); 求歐拉常數(shù)e的x次方。
10.double pow10(int p); 求10的p次方。
11.double pow(double x, double y); 求x的y次方。
12.double sin(double x); 正弦函數(shù)。
13.double cos(double x); 余弦函數(shù)。
14.double tan(double x); 正切函數(shù)。
15.double asin(double x); 反正弦函數(shù)。
16.double acos(double x); 反余弦函數(shù)。
17.double atan(double x); 反正切函數(shù)。
C語(yǔ)言輸入輸出函數(shù)有很多,標(biāo)準(zhǔn)I/O函數(shù)中包含了如下幾個(gè)常用的函數(shù):
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是從文件中讀出一個(gè)字符.常用的判斷文件是否讀取結(jié)束的語(yǔ)句為
(ch
=
getc(fp))
!=
EOF.EOF為文件結(jié)束標(biāo)志,定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當(dāng)fp為stdin時(shí),getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch寫(xiě)到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int
getchar(void)
getchar主要是從標(biāo)準(zhǔn)輸入流讀取一個(gè)字符.默認(rèn)的標(biāo)準(zhǔn)輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時(shí)又涉及到緩沖的問(wèn)題,所以并不是在屏幕中敲上一個(gè)字符程序就會(huì)運(yùn)行,一般是通過(guò)在屏幕上敲上回車(chē)鍵,然后將回車(chē)前的字符串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個(gè)一個(gè)的讀字符.當(dāng)然也可以在while循環(huán)中指定終止字符,如下面的語(yǔ)句:while
((c
=
getchar())
!=
'#')這是以#來(lái)結(jié)束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch寫(xiě)到標(biāo)準(zhǔn)流stdout中去.
char
*
gets(char
*str)
gets主要是從標(biāo)準(zhǔn)輸入流讀取字符串并回顯,讀到換行符時(shí)退出,并會(huì)將換行符省去.
int
puts(char
*str)
puts主要是把字符串str寫(xiě)到標(biāo)準(zhǔn)流stdout中去,并會(huì)在輸出到最后時(shí)添加一個(gè)換行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放讀入的字符數(shù)組指針,num是最大允許的讀入字符數(shù),fp是文件指針.fgets的功能是讀一行字符,該行的字符數(shù)不大于num-1.因?yàn)閒gets函數(shù)會(huì)在末尾加上一個(gè)空字符以構(gòu)成一個(gè)字符串.另外fgets在讀取到換行符后不會(huì)將其省略.
int
fputs(char
*str,
file
*fp)
fputs將str寫(xiě)入fp.fputs與puts的不同之處是fputs在打印時(shí)并不添加換行符.
int
fgetc(FILE
*fp)
fgetc從fp的當(dāng)前位置讀取一個(gè)字符.
int
fputc(int
ch,
file
*fp)
fputc是將ch寫(xiě)入fp當(dāng)前指定位置.
int
fscanf(FILE
*fp,
char
*format,
輸入列表)
fscanf按照指定格式從文件中出讀出數(shù)據(jù),并賦值到參數(shù)列表中.
int
fprintf(FILE
*fp,
char
*format,
輸出列表)
fprintf將格式化數(shù)據(jù)寫(xiě)入流式文件中.
數(shù)據(jù)塊讀寫(xiě)函數(shù)
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
參數(shù)說(shuō)明:
buffer:是一個(gè)指針。
對(duì)fread
來(lái)說(shuō),它是讀入數(shù)據(jù)的存放地址。
對(duì)fwrite來(lái)說(shuō),是要輸出數(shù)據(jù)的地址(均指起始地址)。
size:
要讀寫(xiě)的字節(jié)數(shù)。
count:
要進(jìn)行讀寫(xiě)多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng)。
fp:
文件型指針。