自考 高階程式語言設計 C語言

2022-05-03 16:36:12 字數 3365 閱讀 3408

1.rb:為輸入開啟乙個二進位制檔案;  

rb+  指為讀寫開啟乙個二進位制檔案;

rb為唯讀,對於不需要進行更新的檔案,可以防止使用者的錯誤的寫回操作,防止損毀原有資料。具有較高的安全性

檔案使用方式        意 義

「rt」      唯讀開啟乙個文字檔案,只允許讀資料

「wt」      只寫開啟或建立乙個文字檔案,只允許寫資料

「at」      追加開啟乙個文字檔案,並在檔案末尾寫資料

「rb」      唯讀開啟乙個二進位制檔案,只允許讀資料

「wb」       只寫開啟或建立乙個二進位制檔案,只允許寫資料

「ab」       追加開啟乙個二進位制檔案,並在檔案末尾寫資料

「rt+」      讀寫開啟乙個文字檔案,允許讀和寫

「wt+」      讀寫開啟或建立乙個文字檔案,允許讀寫

「at+」      讀寫開啟乙個文字檔案,允許讀,或在檔案末追加數 據

「rb+」      讀寫開啟乙個二進位制檔案,允許讀和寫

「wb+」      讀寫開啟或建立乙個二進位制檔案,允許讀和寫

「ab+」      讀寫開啟乙個二進位制檔案,允許讀,或在檔案末追加資料

2. 凡用「r」開啟乙個檔案時,該檔案必須已經存在, 且只能從該檔案讀出。

3. 用「w」開啟的檔案只能向該檔案寫入。 若開啟的檔案不存在,則以指定的檔名建立該檔案,若開啟的檔案已經存在,則將該檔案刪去,重建乙個新檔案。

4. 若要向乙個已存在的檔案追加新的資訊,只能用「a 」方式開啟檔案。但此時該檔案必須是存在的,否則將會出錯。

5. 在開啟乙個檔案時,如果出錯,fopen將返回乙個空指標值null。在程式中可以用這一資訊來判別是否完成開啟檔案的工作,並作相應的處理。因此常用以下程式段開啟檔案:

printf()

char *st="china\0beijing";

printf("%s",st);

結果 china

gets(字元陣列名);作用:從終端輸入乙個字串到字元陣列

#include

main()

#include

main()

eg:輸入:how are you?

分析可得:若要處理的字串包含空格字元,那麼必須用gets函式獲取這個字串!

math.h

數學函式庫,一些數學計算的公式的具體實現是放在math.h裡,具體有:

1、 三角函式

double sin(double);正弦

double cos(double);余弦

double tan(double);正切

2 、反三角函式

double asin (double); 結果介於[-pi/2,pi/2]

double acos (double); 結果介於[0,pi]

double atan (double); 反正切(主值),結果介於[-pi/2,pi/2]

double atan2 (double,double); 反正切(整圓值),結果介於[-pi,pi]

3 、雙曲三角函式

double sinh (double);

double cosh (double);

double tanh (double);

4 、指數與對數

double frexp(double value,int *exp);這是乙個將value值拆分成小數部分f和(以2為底的)指數部分exp,並返回小數部分f,即f*2^exp。其中f取值在0.5~1.0範圍或者0。

double ldexp(double x,int exp);這個函式剛好跟上面那個frexp函式功能相反,它的返回值是x*2^exp

double modf(double value,double *iptr);拆分value值,返回它的小數部分,iptr指向整數部分。

double log (double); 以e為底的對數

double log10 (double);以10為底的對數

double pow(double x,double y);計算以x為底數的y次冪

float powf(float x,float y); 功能與pow一致,只是輸入與輸出皆為浮點數

double exp (double);求取自然數e的冪

double sqrt (double);開平方

5 、取整

double ceil (double); 取上整,返回不比x小的最小整數

double floor (double); 取下整,返回不比x大的最大整數,即高斯函式[x]

6 、絕對值

int abs(int i); 求整型的絕對值

double fabs (double);求實型的絕對值

double cabs(struct complex znum);求複數的絕對值

7 、標準化浮點數

double frexp (double f,int *p); 標準化浮點數,f = x * 2^p,已知f求x,p (x介於[0.5,1])

double ldexp (double x,int p); 與frexp相反,已知x,p求f

8 、取整與取餘

double modf (double,double*); 將引數的整數部分通過指標回傳,返回小數部分

double fmod (double,double); 返回兩引數相除的餘數

9 、其他

double hypot(double x,double y);已知直角三角形兩個直角邊長度,求斜邊長度

double ldexp(double x,int exponent);計算x*(2的exponent次冪)

double poly(double x,int degree,double coeffs );計算多項式

int matherr(struct exception *e);數學錯誤計算處理程式

注意事項沒有現成的cot三角函式,可以使用tan(pi/2-x)來實現

double atan2(double y,double x);取值範圍在(pi,pi)之間;這是乙個不太常見的函式,主要用來返回y/x的反正切值。

強調一點,1-3類 傳參都是針對以弧度表示的數值,非角度表示的數值。

對於一般的對數求解,考慮利用數學上的對數轉換來實現。

兩個函式比較容易混淆,介紹一種方法,ceil與floor首字母分別是c與f,取值在c與f之間,所以對於ceil函式取最小整數,對於floor函式取最大整數。

關於fmod:考慮到%只適用與整型資料,這裡提出乙個專門針對實型資料的取餘運算的函式。

int rand(void) 用這函式的時候記得要給隨機種子哦,要不得出的不是真正的隨機數.產生隨機種子可以用srand((unsigned int)time(null));這就是由時間產生的隨機種子了。

C語言高階程式設計系列

關於c語言高階程式設計系列文章。筆者主要從事linux kernel bsp driver以及tcp ip方向工作,日常主要使用c語言。工作數年,感嘆c語言的簡潔卻不簡單,至今仍不敢說精通c,希望可以通過此系列文章的總結系統地提公升自己。更新於 20191124 目錄 c語言高階程式設計 預處理中的...

高階語言程式設計

最近接觸的一些事情以及想到的一些問題都讓自己覺得自己要學習一下高階語言程式設計。目前就暫時定為asp sql.最近,感覺到自己在技術方面根本就學的很淺,估計以後如果還得不到很大的提高的話,可能很難有很大的造詣。所以可能以後還是想自己去做一些簡單的事情。比如說去做點小生意,做點銷售,管理之類。所以,對...

C語言程式設計高階 逆序輸出

你的程式會讀入一系列的正整數,預先不知道正整數的數量,一旦讀到 1,就表示輸入結束。然後,按照和輸入相反的順序輸出所讀到的數字,不包括最後標識結束的 1。一系列正整數,輸入 1表示結束,1不是輸入的資料的一部分。輸出格式 按照與輸入相反的順序輸出所有的整數,每個整數後面跟乙個空格以與後面的整數區分,...