C語言程序設計實驗指導書(新)_第1頁
C語言程序設計實驗指導書(新)_第2頁
C語言程序設計實驗指導書(新)_第3頁
C語言程序設計實驗指導書(新)_第4頁
C語言程序設計實驗指導書(新)_第5頁
免費預覽已結束,剩余50頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C語言程序設計實驗指導書重要說明:上機實驗目的和要求一實驗報告要求每次實驗,提交一份實驗報告.具體格式見“實驗報告格式范文將代碼和運行截圖粘貼到“C改革實驗指導書24學時word的相應位置.如以下圖,|勒15電礎的讀域告.doc程序運行的截圖如下:C:u扉rs,.小語基改革觸材C改.C案例改至動用學生信息苣理票壽著輸入要查詢的學生的學號:1上號姓名語文數學英語平均分134S6.0778.023,0285.7按任意鍵進入主目錄.二上機實驗的目的上機實驗的目的,絕不僅僅是為了驗證教材和講課的內容,或者驗證自己所編程序正確與否.學習程序語言,上機實驗的目的如下:1加深對講授內容的理解,尤其是一些語法

2、規(guī)定,光靠課堂講授,既枯燥無味又難以記住,通過屢次上機,就能自然、熟練地掌握語法規(guī)定.2了解和熟悉C語言程序開發(fā)環(huán)境.熟悉一兩種環(huán)境計算機系統(tǒng)的軟件和硬件條件再遇到其他的系統(tǒng)時便會觸類旁通,很快學會.3學會上機調試程序,也就是善于發(fā)現程序中的錯誤,并且能很快地排除這些錯誤,使程序能夠正確地運行.要真正掌握計算機應用技術,就不僅應當了解和熟悉有關理論和方法,而且要求自己動手實踐水平強.4在做實驗時千萬不要在程序通過后就認為萬事大吉,完成任務了,應當在通過的程序上做一些調試和修改,看看會得到什么結果.多動腦筋思考,將會對你有很大幫助.三上機實驗前的準備工作1了解所用的計算機系統(tǒng)的性能和使用方法;2

3、復習和掌握與本實驗有關的教學內容;3準備好上機所用的程序,切忌自己不思考、不編制程序或抄襲別人的程序;4準備好調試和運行時所需的數據.四上機實驗的步驟1調出C語言編譯系統(tǒng),進入C語言工作環(huán)境;2輸入自己編制好的程序;3檢查輸入是否有錯,及時更正;4進行編譯和連接;5運行程序,分析結果.重要說明:上機實驗目的和要求0實驗一C語言上機根底4實驗二根本數據類型、運算符和表達式7實驗三輸入、輸出函數的使用9實驗四選擇結構程序設計11實驗五循環(huán)結構程序設計13實驗六數組16實驗七簡單函數18實驗八高級函數19實驗九指針20實驗十自定義數據、文件22附1:c語言函數庫24實驗一C語言上機根底特別聲明:為了

4、教學的便捷以及學生自學的方便,我們選擇了便于下載和安裝的MicrosoftVisualC+6.0軟件作為編譯環(huán)境.但在實際工作中使用的編譯環(huán)境應該是visualstudio系列軟件(如visualstudio2021).所以同學們課下必須自己百度(visualstudio2021使用手冊),學習visualstudio的根本用法!PS:輸入法必須切換成英文輸入法!一實驗目的1熟悉C語言運行環(huán)境MicrosoftVisualC+6.0中文版.2掌握C語言程序的書寫格式和C語言程序的結構,初步了解C源程序的特點.3掌握C語言上機步驟,了解如何編輯、編譯、調試和運行一個C程序的方法.4掌握C語言數據

5、類型,熟悉如何定義一個整型、字符型和實型的變量,以及對他們賦值的方法.二實驗內容1C語言上機步驟開機,啟動MicrosoftVisualC+6.建立工程文件:在“文件菜單中選擇“新建命令項,在彈出的“新建對話框的“工程"選項卡中選擇"Win32ConsoleApplication"選項,在"工程"框中輸入工程文件名sy1,在“c:位置下拉框中輸入或選擇文件夾,單擊“確定;在以下彈出的兩個對話框中分別單擊命令按鈕“完成和“確定.建立C+礴文件:在“工程菜單中選擇“添加到工程一“新建命令項,在彈出的“新建對話框的“文件選項卡中選擇“C+Source

6、File:在右邊的“文件框中輸入文彳名sy11后單擊“確定.(4)輸入源程序:在彈出的文件編輯窗口中輸入下面的源程序:#include<stdio.h>voidmain()printf("Hello,World!n");printf("WelcometotheClanguageworld!n");printf("Everyonehasbeenwaitingfor.n");編譯:用“編譯菜單的“編譯命令項對源文件syll.cpp進行編譯,如果程序有語法或語義錯誤,在屏幕下面的窗口會出現錯誤信息;這時候要修改源程序、保存后重新

7、編譯.直到修改了全部錯誤,屏幕下面的窗口會出現下面的信息:丹ConFiguratisy1-Jin32Debug-心哦樂蛔過編譯,生成了目標程序syll.obj.SLjII.Epp(6)調試:接下來進行調試,操作如以下圖所示.syl-創(chuàng)天中文VC+-syll.tpp卜一因文件漏輯直看插入工程編譯工具時口第助闡言辭色11GlobalsUpAiTgV/orkspacGsylTTI-mimraminI-rffms?mmmiin-國sy1files自口SourceFitesEsyll.cppIHeaderFilesiResourceFileF11*RuntopurserCtrl+FlOAttachtoP

8、roces5.不5tepInto調試程序遠程連接!執(zhí)行“1敵cCtrl+F5放置可遠行配置配置僮搭運行:最后用“編譯菜單的“!執(zhí)行sy1.exe命令項運行可執(zhí)行程序文件sy編譯工具簞口相助.exe.運行結果如下:既噩譯Ctr!+F7皙件州L歌eF7圈事建全都批構件清潔開始調試調試程序遠程連琴執(zhí)行卯1,敬ECtrl+FS放置可遠行配置配置簡檔(8)程序可能出錯,要學會調試修改,詳見?VC+6.0使用方法?中的7.調試程序PS:輸入法必須切換成英文輸入法!2完成下面程序的運行2)輸入并運行下面的程序,運行后記錄并分析結果.#include<stdio.h>main()charc1,c2

9、;/*第2行*/c1=97;c2=98;/*第3行*/printf("%c%cn",c1,c2);)在此根底上:在程序最后增加一個語句,再運行,并分析結果.printf("%d%dn",c1,c2);/ac9798將第2行改為:intc1,c2;再次運行,并分析結果.ac9798再將第3行改為:c1=305;c2=340;/1t305340N位二進制轉成8位的char再使之運行,分析運行結果.2輸入并運行下面的程序#include<stdio.h>main()charc1='a',c2='b',c3='

10、c',c4='101',c5='116'printf("a%cb%ctc%ctabcn",c1,c2,c3);printf("ttb%c%cn",c4,c5);)在上機前先用人工分析程序,寫出應得結果,上機后將二者對照.三案例工程1.輸出你自己的生日,姓名拼音的首字母,用浮點型數輸出你的年齡(如:20.8)實驗二根本數據類型、運算符和表達式1 .實驗目的:1 .練習使用根本類型的變量進行編程2 .練習使用C的運算符2 .實驗內容:1 .實驗要求:熟練使用運算符(+,-)2 .分析與設計:求余運算符要求兩個操作數都必

11、須是整數;+和-要看清是先使用還是先自增(減)3 .源代碼:程序1:取出一個三位整數的各個位,并輸出main()/缺少#include<stdio.h>intx=123;charc1,c2,c3;c1=x%10;c2=x/10%10;c3=x/100;printf("n,c3,c2,c1);/,輸入法錯誤運行結果為:1, 2,3程序2:練習自增和自減運算符的使用#include<stdio.h>main()inti,j,m,n;i=8;j=10;m=+i;/*第5行*/n=j+;/*第6行*/printf("%d,%d,%d,%dn",i,

12、j,m,n);)運行程序,注意i、j、mn各變量的值;然后分別作以下改動并運行:將第5、6行改為如下以后再運行:m=i+;n=+j;將程序改為:#include<stdio.h>main()inti,j;i=8;j=10;printf("%d,%dn",i+,j+);/*第5行*/)在的根底上,將第5行printf語句改為:printf("%d,%dn",+i,+j);再將printf語句改為:printf("%d,%d,%d,%dn",i,j,i+,j+);/先執(zhí)行所有的i輸出操作,再執(zhí)行i+1將程序改為:#includ

13、e<stdio.h>main()inti,j,m=0,n=0;i=8;j=10;m+=i+;n-=-j;printf("i=%d,j=%d,m=%d,n=%dn",i,j,m,n);)3 .案例工程(參考附1:c語言函數庫)1 .隨機生成2個099之間的正整數,作為你2門課的成績.I平均成績(如果結果是整數,要求轉換成浮點數),計算所有成績的標準差.要求必須用數學庫函數rand(),sqrt.標準差公式如下:標準計算公式:II受設有一絲數值.Xn,.皆為實蒙J,算平崗值(算大平均值)為由公式如圖標程要也植林為標漉,維,或者實受標準捶,公式為O=、b£(

14、品-戶了.2 .用數學庫函數實現你學過的數學公式,使用的庫函數越多,考核分數越高實驗三輸入、輸由函數的使用1 .實驗目的:熟練使用格式輸出函數printf()和格式輸入函數scanf()2 .實驗內容:1 .實驗要求:格式輸入函數scanf()和格式輸出函數printf()的使用2 .分析與設計:輸入函數中的普通字符需要原樣輸入,并注意分隔符的使用;輸出函數中的格式限制符和輸出項數要對應.3 .源代碼:程序1:為使得a=1,b=2,c='A',d=5.5,在鍵盤上如何輸入?#include<stdio.h>main()inta,b;charc;floatd;scan

15、f("a=%db=%d,&a,&b);scanf("c%en,&c,&d);程序在運行時,輸入:a=1b=2A5.50程序2:判斷下面程序的運行結果.main()intx=3,y=2,z=1;printf("d,n",(+x,y+),z+2);運行結果:2,3分析得到此結果的原因.程序3:以下程序的功能是從鍵盤輸入一個整型數,一個實型數和一個字符型數,并把他們在屏幕上輸出.完成以下填空,并把程序調通,寫出當輸入為45,34.5,A<回車>時程序的運行結果.#include<stdio.h>main(

16、)inta;floatb;charc;scanf("%d,%f,%c",&a,&b,&c);printf("a=%dn",a);printf("b=%fn",b);printf("c=%cn",c);程序4:指出以下程序的錯誤并改正,并上機把程序調通.#include<stdio.h>main()inta;scanf("%f",a);/scanf("%d,a);printf("a=%f,a);/printf("a=%d,a);ch

17、arc;c=A;c='A'printf("%f,c)/printf("%c,c);3 .案例工程1 .用scanf,printf進行如下的輸入和輸出:1輸入自己的生日,姓名拼音的首字母,年齡如:20.8,然后輸出.注意使用fflushstdin函數去除緩存區(qū)域,pp89,例4-6第15行2輸入自己上學期所有課程的成績不一定跟真實成績一模一樣,計算平土勻成績和標準差,將其輸出.3輸出“學生治理系統(tǒng)的菜單,如下:,*C:,Usersv,學員信息治理系統(tǒng)以下是程序主目錄請選擇功能示我人改顯查錄修>>>>>>>入功能前的數字

18、后,按鍵:實驗四選擇結構程序設計一.實驗目的:1 .熟練掌握分支結構if語句及其嵌套2 .掌握分析具體問題的方法二.實驗內容:1 .實驗要求:利用if語句和scanf函數模擬簡單的ATM取款機界面2 .分析與設計:用戶先輸入密碼,密碼正確后,可以進行帳戶的操作,如查詢,取款等.3 .源代碼:模才AATM取款機界面#include<stdio.h>/#include<conio.h>main()intpassword,op,number=0,count=1000,n=0;printf("pleaseinputpassword:");scanf(&quo

19、t;%d,&password);while(password!=1234)/*有三次輸入密碼的時機*/n+;if(n=3)printf("youhaveinput3,cannotinputagain!n");getch();return;printf("passworderror!pleaseinputagain:");scanf("%d",&password);loop:printf("nwelcome!Pleasechoiceoneoperate:(1,2,3)n");printf("

20、1:countn2:getmoneyn3:returnn");scanf("%d",&op);/*輸入一種操作*/switch(op)case1:printf("nyourcountis%d.n",count);gotoloop;/*帳戶查詢*/case2:printf("npleaseinputcountthatyouwanttoget:");scanf("%d,&number);if(number>count|number<0)printf("nerror");e

21、lseprintf("nnow,youcantakemoney!");count-=number;gotoloop;/*取款*/case3:break;/*返回*/default:printf("noperateerror!");gotoloop;)三.案例工程1 .輸入3門課的成績,并輸出所有成績中最大的一門課.用邏輯,關系運算判斷:如果所有成績中至少有一門課大于90,那么4出good;2 .先輸入一個學生A的姓名和生日,再輸入一個學生B的姓名和生日.用邏輯,關系運算判斷:如果A,B的姓名,生日都是正確的,那么輸出yes,否那么輸出no:3 .根據實驗

22、二中的“學生治理系統(tǒng)的菜單,如果輸入1,那么輸出“顯示所有學員信息;如果輸入2那么輸出“查詢學員信息;如果輸如3,那么.用switch()語句完成,運行效果圖如下:凄選擇菜單宣詢學員信息實驗五循環(huán)結構程序設計一目的和要求1掌握在設計條件型循環(huán)結構時,如何正確地設定循環(huán)條件,以及如何正確地限制計數型循環(huán)結構的次數.2 熟悉用while語句,do-while語句和for語句實現循環(huán)的方法.3 掌握在程序設計中用循環(huán)的方法實現各種算法如窮舉、選代、遞推等.4 掌握選擇結構與循環(huán)結構的嵌套.二實驗內容1程序分析下面是一個計算e的近似值使誤差小于給定的8的程序.#include<stdio.h&g

23、t;maindoublee=1.0,x=1.0,y,delta;inti=1;printf"請輸入給定的誤差:";scanf"%lf",&delta;y=1/x;whiley>=deltae=e+y;i+;x=x*i;y=1/x;printf"計算結果是:%12.10lfn",e;閱讀上面的程序,寫出程序所依據的計算公式.1+1/1*2+1/2*3+1/6*4當輸入的delta是什么值時,能分別使程序按下面的要求運行:i 不進入循環(huán);delta>1ii 只循環(huán)一次;delta>1/2iii 只循環(huán)兩次;1/2

24、>delta>1/6iv 進入死循環(huán)程序將永遠循環(huán)下去.Delta=0v為了能知道程序循環(huán)了多少次,應該在程序中增加一條什么樣的語句?printf("%dn",i);原程序中while語句中的y>=delta,分別換成y>delta,y=delta,y<delta,y<=detax觀察程序運行將會有什么變化.(4)把程序中的while結構改寫成do-while結構,再運行程序,說明兩種結構的區(qū)別.將程序改成用for循環(huán)結構,計算前50項,并運行程序,寫出運行結果.有一數列:2/1,3/2,5/3,8/5,求出這個數列的前10項之和.#in

25、clude<stdio.h>main()intn,t;floata=2,b=1,s=0;for(n=1;n<=10;n+)s=s+a/b;t=a;a=a+b;b=t;printf("%fn",s);要求:跟蹤執(zhí)行,觀察s、t、a、b的變化.方法:使用功能鍵F10單步跟蹤執(zhí)行程序,可以在監(jiān)視窗口設置要觀察的變量或表達式.停止調試運行的程序單步運行此處劑3上下|mainNamea5Valuea.ssaou35.000003.0OOOUValueTTaooaS3.00000囂.5曲麗Leidals監(jiān)視窗口>latch!/Watch'.案例工程1.輸

26、入3門成績,用for循環(huán)求平均值.提示:每次循環(huán)輸入一門成績,并將其參加總和菜單的選擇,2,用do-while編寫一個循環(huán)程序,用戶不停的進行“學生治理系統(tǒng)直到用戶輸入數字0o運行效果圖如下:實驗六數組一實驗目的1掌握一維數組和二維數組的定義、賦值和輸入輸出的方法;2掌握字符數組和字符串函數的使用;3掌握與數組有關的算法(特別是排序算法)二、實驗內容編程序并上機調試運行.1調試以下錯誤程序,使之具有如下功能:輸入12個整數,按每行3個數輸出這些整數,最后輸出12個整數的平均值.寫出調試過程.#include<stdio.h>#defineN12main()inti,aN,av;/a

27、v=0for(i=0;i<N;i+)scanf("%d,ai);/&aifor(i=0;i<N;i+)printf("%d,ai);if(i%3=0)printf("n");/if(i+1)%3=0)printf("n")for(i=0;i!=N;i+)av+=ai;av/=N;printf("av=%fN",av);printf("av=%d',av)上面給出的程序有錯誤和缺陷,請找出程序中的錯誤并改正.2.根據下面算法編一個程序,將兩個字符串連接起來,不能用strcat函數

28、.(1)定義整型變量i、j,字符串s1、s2輸入字符串s1、s2當字符串s1尚未結束,改變字符串s1的下標,使之到s1結束處當字符串s2尚未結束,將字符用s2逐個字符連接到字符串s1的后面為字符用s1添加結束標志輸出連接后的字符串三.案例工程1 .輸入3門成績,并用數組記錄.在輸入前顯示提示文字“請輸入第i門課成績然后用數組與循環(huán)語句求成績的均值,并輸出均值,每門課的成績2 .用二維數組記錄3個同學的所有成績,并輸出所有人的成績3 .用數組記錄學生A姓名的字符串,并輸出.再輸入一個學生B的姓名字符串,與A的姓名字符串比擬,如果一樣那么輸出yes,否那么no4 選做用數組存放4個學生的學號,用冒

29、泡排序法將學號升序放置在原數組中并輸出數組數據實驗七簡單函數.實驗目的:1 .理解函數的概念和應用.2 .掌握無參無返回函數的使用3 .掌握無參有返回函數的使用.二.案例工程1 .完成主函數中的以下自定義函數:1)無參無返回的函數inputInfo():/輸入一個學生的信息(name,number,score3)3)4)5)6)無參有返回的函數無參有返回的函數無參有返回的函數無參無返回的函數2)無參無返回的函數OutputInfo();輸出一個學生的信息(name,number,score3)Average():求成績的均值.Max():求成績的最大值.Standar()求成績的方差.Sort

30、():對成績進行排序2 .用上述自定義函數完成主函數的編寫voidmain()/輸入學生A的信息(name,number,score3)輸出學生A的信息(name,number,score3)/求成績的均值,并輸出/求成績最大值,并輸出/求成績方差,并輸出/對成績進行排序,并將排序后的成績輸出輸入學生B的信息(name,number,score3)/輸出學生B的信息(name,number,score3)/求成績的均值,并輸出/求成績最大值,并輸出/求成績方差,并輸出/對成績進行排序,并將排序后的成績輸出實驗八高級函數一.實驗目的:1 .理解函數形參和實參的概念和應用.2 .掌握有參無返回函數

31、的使用.3 .掌握有參有返回函數的使用.三.案例工程1 .定義一個帶參數并有返回值的函數Average(intscore3)計算學生成績score3的均值,并將其返回.然后在主程序中調用Average.求均值,并輸出均值.2 .用一個數組Student1000,記錄N個學生的學號.定義一個函數AddStudent(intnumber),向Student口數組中添加一個學生的學號.然后用該函數添加3個學生的學號,并輸出所有學號.3 .用一個數組Student1000,記錄N個學生的學號.定義一個函數modify(inti,intnumber),修改Studenti的學號為參數number,用主程

32、序輸入i和number,調用modify()函數,并輸出4 .用一個數組Student1000,記錄N個學生的學號.定義一個函數del(inti),刪除Studenti的學號,并把Student1000做組中的后續(xù)數據前移.用主程序輸入i,調用del()函數,并輸出刪除后的所有學號.實驗九指針一實驗目的1 了解指針的概念,學會定義和使用指針變量.2 .掌握函數的值調用和引用調用的含義3 .掌握簡單變量、數組和指針作為函數參數進行傳遞的形式二、實驗內容1 .運行以下程序,寫出運行結果.#include"stdio.h"main()inta5,*p,j;for(j=0;j<

33、;5;j+)aj=j+1;p=a;for(j=0;j<5;j+)printf("*(p+%d)=%dn",j,*(p+j);/*(p+j)改為pj2 .想使指針變量pt1指向a和b中的大者,pt2指向小者,以下程序能否實現此目的?swap(int*p1,int*p2)int*p;p=p1;p1=p2;p2=p;/inta;a=*p1;*p1=*p2;*p2=a;)main()inta,b;int*pt1,*pt2;scanf("%d,%d,&a,&b);pt1=&a;pt2=&b;if(a<b)swap(pt1,pt2)

34、;printf("%d,%dn",*pt1,*pt2);)上機調試此程序.如果不能實現題目要求,指出原因并修改之.1 .編寫自定義函數:進行兩個數據之間的交換.分析與設計:使用兩種參數傳遞方法,進行數據的交換,比擬下面程序的運行結果有何不同.程序1:參數的值傳遞.voidswap(intx,inty)intt;t=x;x=y;y=t;printf("x=%dty=%dn",x,y);)main()inta,b;printf("pleaseinputa,b:");scanf("d,%d,&a,&b);swap(

35、a,b);printf("a=%dtb=%dn",a,b);)程序2:參數的地址傳遞.voidswap(int*x,int*y)intt;t=*x;*x=*y;*y=t;printf("x=%dty=%dn",*x,*y);)main()inta,b;printf("pleaseinputa,b:");scanf("d,%d,&a,&b);swap(a,b);/swap(&a,&b);printf("a=%dtb=%dn",a,b);)三.案例工程1 .用指針變量記錄一門課

36、的成績a,并用指針輸出a的值;2 .用指針數組score記錄兩個學生的成績a3,b3,并用score輸出所有成績.3 (選做).輸入學生課程的數目,并用指針與動態(tài)內存分配函數malloc()記錄一個學生的成績:pp2811)函數malloc實驗十自定義數據、文件一實驗目的1掌握結構體類型的概念和定義方法與使用.2掌握指向結構體變量的指針變量的概念和應用.二案例工程1 .完成以下自定義函數:1)定義一個學生信息結構體Student_Info(其成員變量有姓名,學號,成績數組,平均分),并在main()函數中用結構體變量記錄一個學生的信息,然后輸出該學生的所有信息.2)用一個結構體數組Studen

37、t_InfoStudent1000,記錄N個學生的結構體變量.定義一個函數AddStudent(structStudent_Infos),向Student口數組中添加一個學生的信3)定義一個函數find(intnumber)查找指定學號number的學員,并返回該學生在Student1000數組中的下標i,如果指定學號不存在,返回-1;4)定義一個函數voidquery(intnumber):用find(intnumber)函數根據學號查找學生在Student1000散組中白下標i,并顯示該學員的所有信息.5)定義一個函數voiddel(intnumber),根據學號查找學生,并刪除該學員信息

38、6)定義一個函數voidmodify(intnumber),根據學號查找并修改學員的信息2 .用上述自定義函數完成主函數的編寫/定義一個結構體數組Student_InfoStudent1000,main()/用AddStudent函數添加3個學生的信息,并輸出所有學生的信息./用query()函數查找一個學生,并輸出該有學生的信息./用del()函數刪除一個學生,并顯示刪除后所有學生的信息/用modify()函數修改一個學生,并顯示modify后所有學生的信息附1:c語言函數庫1. abs、labs、fabs:求絕對信函數2. acos:反余弦函數3. asin:反正弦函數4. atan:反正

39、切函數5. atan2:反正切函數6. ceil:向上舍入函數7. cos:余弦函數8. cosh:雙曲余弦函數9. div、ldiv:除法函數10. exp:求e的x次幕函數11. floor:向下舍入函數12. fmod:求模函數13. frexp:分解浮點數函數14. hypot:求直角三角形斜邊長函數15. ldexp:裝載浮點數函數16. log、10g10:對數函數17. modf:分解雙精度數函數18. pow、pow10:指數函數19. rand:產生隨機整數函數20. sin:正弦函數21. sinh:雙曲正弦函數22. sqrt:開平方函數23. srand:設置隨機時間的

40、種子函數24. tan:正切函數25. tanh:雙曲正切函數1. ab&labs、fabs:求絕對信函數函數原型:intabs(intx);longlabs(longx);doublefabs(doublex);頭文件:#include<math.h>是否是標準函數:是函數功能:函數intabs(intx);是求整數x的絕對值;函數longlabs(longn);是求長整型數x的絕對值;函數doublefabs(doublex);是求浮點數x的絕對值.返回值:返回計算結果.例程如下:計算整數的絕對值.#include<math.h>intmain(void)i

41、ntx=-56;printf("number:%dabsolutevalue:%dn",x,abs(x);return0;例程說明:本例程通過abs函數計算出整型數-56的絕對值56,并在屏幕上顯示結果.本例程的運行結果為:number:-56absolutevalue:56例程如下:計算長整數的絕對值.#include<math.h>intmain(void)longx=-12345678L;printf("number:%ldabsolutevalue:%ldn",x,labs(x);return0;例程說明:本例程通過labs函數計算出

42、長整型數-12345678的絕對值12345678,并在屏幕上顯示結果.本例程的運行結果為:number:-12345678absolutevalue:12345678例程如下:計算浮點數的絕對值.#include<math.h>intmain(void)floatx=-128.0;printf("number:%fabsolutevalue:%fn",x,fabs(x);return0;)例程說明:本例程通過fabs函數計算出浮點數-128.0的絕對值128.0,并在屏幕上顯示結果.本例程的運行結果為:number:-128.000000absoluteval

43、ue:128.0000002. acos:反余弦函數函數原型:doubleacos(doublex);頭文件:#include<math.h>是否是標準函數:是函數功能:求x的反余弦值,這里,x為弧度,x的定義域為-1.0,1.0,arccosx的值域為0,九.返回值:計算結果的雙精度值.例程如下:求arccosx.#include<stdio.h>#include<math.h>intmain(void)doubleresult;doublex=1.0;result=acos(x);printf("arccos%lf=%lfn",x,r

44、esult);return0;例程說明:本例程應用函數acos計算1.0的反余弦值,即:arccos1.返回計算結果的雙精度值.本例程的運行結果是:arccos1.000000=0.0000003. asin:反正弦函數函數原型:doubleasin(doublex);頭文件:#include<math.h>是否是標準函數:是函數功能:求x的反正弦值,這里,x為弧度,x的定義域為-1.0,1.0,arcsinx值域為-兀/2,+兀/2.返回值:計算結果的雙精度值.例程如下:求arcsinxo#include<stdio.h>#include<math.h>i

45、ntmain(void)doubleresult;doublex=1.0;result=asin(x);printf("arcsin%lfis%lfn",x,result);return(0);例程說明:本例程應用函數asin計算1.0的反正弦值,即:arcsin1.返回計算結果的雙精度值.本例程的運行結果是:arcsin1.000000is1.5707964. atan:反正切函數函數原型:doubleatan(doublex);頭文件:#include<math.h>是否是標準函數:是函數功能:求x的反正切值,這里,x為弧度,x的定義域為(-°&#

46、176;,+oo),arctanx的值域為(-兀/2,+兀/2).返回值:計算結果的雙精度值.例程如下:求arctanx.#include<stdio.h>#include<math.h>intmain(void)doubleresult;doublex=1.0;result=atan(x);printf("arctan%lf=%lfn",x,result);return(0);例程說明:本例程應用函數atan計算1.0的反正切值,即:arctan1.并返回計算結果的雙精度值.本例程的運行結果是:arctan1.000000=0.7853985. a

47、tan2:反正切函數2函數原型:doubleatan2(doubley,doublex);頭文件:#include<math.h>是否是標準函數:是函數功能:求y/x的反正切值.返回值:計算結果的雙精度值.例程如下:求arctan(x/y)0#include<stdio.h>#include<math.h>intmain(void)doubleresult;doublex=10.0,y=5.0;result=atan2(y,x);printf("arctan%lf=%lfn",(y/x),result);return0;)例程說明:本例程

48、應用函數atan2計算10.0/5.0的反正切值,即:arctan05并返回計算結果的雙精度值.本例程的運行結果是:arctan0.500000=0.4636486. ceil:向上舍入函數函數原型:doubleceil(doublex);頭文件:#include<math.h>是否是標準函數:是函數功能:將雙精度數x向上舍入,即:取它的最大整數.例如:ceil(123.400000)=124.00000Q返回值:返回計算結果.例程如下:數值的向上舍入.#include<math.h>#include<stdio.h>intmain(void)doublen

49、um=123.400000;doubleup;up=ceil(num);printf("Theoriginalnumber%lfn,num);printf("Thenumroundedup%lfn",up);return0;例程說明:本例程通過函數ceil將雙精度數123.400000向上舍入,得到的結果為124.000000,并在屏幕上顯示運算結果.本例程的運行結果為:Theoriginalnumber123.400000Thenumroundedup124.0000007. cos:余弦函數函數原型:doublecos(doublex);頭文件:#includ

50、e<math.h>是否是標準函數:是函數功能:求x的余弦值,這里,x為弧度返回值:計算結果的雙精度值.例程如下:求cosx.#include<stdio.h>#include<math.h>intmain(void)doubleresult;doublex=M_PI;result=cos(x);printf("cos(PI)is%lfn",result);return0;例程說明:本例程應用cos函數計算冗的余弦值,即:costt,再返回計算結果的雙精度值.本例程的運行結果是:cos(PI)is-1.0000008. cosh:雙曲余弦函

51、數函數原型:dlublecosh(doublex);頭文件:#include<math.h>是否是標準函數:是函數功能:計算x的雙曲余弦值.其中ch(x)=(ex+e-x)/2.返回值:計算結果的雙精度值.例程如下:求x的雙曲余弦值ch(x)0#include<stdio.h>#include<math.h>intmain(void)doubleresult;doublex=0.5;result=cosh(x);printf("ch(%lf)=%lfn",x,result);return0;例程說明:本例程應用函數cosh計算0.5的雙曲

52、余弦值,即:ch(0.5),并返回計算結果的雙精度值.本例程的運行結果是:ch(0.500000)=1.1276269. div、ldiv:除法函數函數原型:div_tdiv(intnumber,intdenom);ldiv_tldiv(longInumer,longIdenom);頭文件:#include<stdlib.h>是否是標準函數:是函數功能:函數div是將兩個整數numbe和denom相除,返回商和余數.函數ldiv是將兩個長整數lnumbe和ldenom相除,返回商和余數.返回值:函數div返回div_t類型的值;函數ldiv返回ldiv_t類型的值.例程如下:兩整數

53、相除,求商和余數.#include<stdlib.h>#include<stdio.h>div_tx;intmain(void)x=div(11,5);printf("11div5=%dremainder%dn,x.quot,x.rem);return0;例程說明:本例程通過div函數將11和5相除,返回其商和余數.注意:div函數并不是<math.h>中的函數,而是<stdlib.h>中的函數.<stdlib.h>中包含存儲分配函數和一些雜項函數.但由于div函數具有數學計算的功能,因此將其歸類到數學函數中.div_t是&

54、lt;$1叱上>中定義的數據類型,它是一個結構體,定義如下:typedefstruct-intquot;/*商*/intrem;/*余數*/div_t;其中包含兩個域:商和余數.div函數將兩個整數相除,返回一個div_t類型的值.該函數的運行結果是:11div2=5remainder1例程如下:兩長整數相除,求其商和余數.#include<stdlib.h>#include<stdio.h>ldiv_tlx;intmain(void)lx=ldiv(200000L,70000L);printf("200000div70000=%ldremainder%

55、ldn",lx.quot,lx.rem);return0;例程說明:本例程通過ldiv函數將長整數200000與70000相除,并返回其商和余數.注意:同函數div一樣,函數ldiv是$1叱.卜中的函數.ldiv_t是$1叱上中定義的數據類型,它是一個結構體,定義如下:typedefstructlongquot;longrem;ldiv_t;費中包含兩個域:商和余數.ldiv函數將兩個長整數相除,返回一個ldiv_t類型的值.該函數的運行結果是:200000div70000=2remainder6000010. exp:求e的x次幕函數函數原型:doubleexp(doublex);

56、頭文件:#include<math.h>是否是標準函數:是函數功能:計算自然常數e的x幕.返回值:返回計算結果的雙精度值.例程如下:計算ex(說明:e=2.718281828.).#include<stdio.h>#include<math.h>intmain(void)doubleresult;doublex=3.0;result=exp(x);printf("'e'raisedtothepowerof%lf(eA%lf)=%lfn",x,x,result);return0;)例程說明:本例程應用函數exp計算e3,該函數返回計算結果的雙精度值.本例程的運行結果為:'e'raisedtothepowerof3.000000(ea3.000000)=20.08553711. floor:向下舍入函數函數原型:doublefloor(doublex);頭文件:#include<math.h>是否是標準函數:是函數功能:將雙精度數x向下舍入,即:取它的最小整數.例如:floor(123.400000)=123.000000.返回值:返回計算結

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論