C语言实验指导书20163_第1页
C语言实验指导书20163_第2页
C语言实验指导书20163_第3页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计实验指导书电气与电子工程学院重要说明:上机实验目的和要求一实验报告要求每次实验,提交一份实验报告。具体格式见“实验报告格式文将代码和运行截图粘贴到“C改革实验指导书24学时word的相应位置。如以下图,程序运行的截图如下:I:28位脚双屏5度叩也语言改革教材任改革K案例改革初隔学生信息言理紊好青输入要查询的学生的学号;1学号姓名语文薮学英诸平均分=c=*=S=-=-=134S6.0778_023.0285.7按任意键进入王目录.二上机实验的目的上机实验的目的,绝不仅仅是为了验证教材和讲课的容,或者验证自己所编程序正确与否。学习程序语言,上机实验的目的如下:1加深对讲授容的理解,尤

2、其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,通过屡次上机,就能自然、熟练地掌握语法规定。2了解和熟悉C语言程序开发环境。熟悉一两种环境计算机系统的软件和硬件条件再遇到其他的系统时便会触类旁通,很快学会。3学会上机调试程序,也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能够正确地运行。要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,而且要求自己动手实践能力强。4在做实验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通过的程序上做一些调试和修改,看看会得到什么结果。多动脑筋思考,将会对你有很大帮助。三上机实验前的准备工作1了解所用的计算机系统的性能和

3、使用方法;2复习和掌握与本实验有关的教学容;3准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序;4准备好调试和运行时所需的数据。四上机实验的步骤1调出C语言编译系统,进入C语言工作环境;2输入自己编制好的程序;3检查输入是否有错,与时更正;4进展编译和连接;5运行程序,分析结果。重要说明:上机实验目的和要求0实验一C语言上机根底3实验二根本数据类型、运算符和表达式6实验三输入、输出函数的使用8实验四选择结构程序设计10实验五循环结构程序设计11实验六数组14实验七简单函数15实验八高级函数16实验九指针17实验十自定义数据、文件19附1:c语言函数库20实验一C语言上机根底特别

4、声明:为了教学的便捷以与学生自学的方便,我们选择了便丁下载和安装的MicrosoftVisualC+6.0软件作为编译环境。但在实际工作中使用的编译环境应该是visualstudio系歹0软件如visualstudio2010)。所以同学们课下必须自己K度(visualstudio2010使用手册),学习visualstudio的根本用法!PS:输入法必须切换成英文输入法!一实验目的1熟悉C语言运行环境MicrosoftVisualC+6.0中文版。2掌握C语言程序的书写格式和C语言程序的结构,初步了解C源程序的特点。3掌握C语言上机步骤,了解如何编辑、编译、调试和运行一个C程序的方法。4掌握

5、C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以与对他们赋值的方法。二实验容1C语言上机步骤开机,启动MicrosoftVisualC+6。建立工程文件:在“文件菜单中选择“新建命令项,在弹出的“新建对话框的“工程选项卡中选择“Win32ConsoleApplication选项,在“工程框中输入工程文件名sy1,在“g位置下拉框中输入或选择文件夹,单击“确定;在以下弹出的两个对话框中分别单击命令按钮“完成和“确定。建立C+褪文件:在“工程菜单中选择“添加到工程一“新建命令项,在弹出的“新建对话框的“文件选项卡中选择C+SourceFile,在右边的“文件框中输入文件名sy11后单击

6、“确定。输入源程序:在弹出的文件编辑窗口中输入下面的源程序:#includevoidmain()printf(Hello,World!n);printf(WelcometotheClanguageworld!n);printf(Everyonehasbeenwaitingfor.n);编译:用“编译菜单的“编译命令项对源文件sy11.cpp进展编译,如果程序有语法或语义错误,在屏幕下面的窗口会出现错误信息;这时候要修改源程序、保存后重新编译。直到修改了全部错误,屏幕下面的窗口会出现下面的信息:Configuration:sy1-Win32Debugm做典过编译,生成了目标程序sy11.obj。

7、即11.cpp调试:接下来进展调试,操作如以下图所示。唯成制孟敝行商部帅sj1.exe。syl-创天中文VC+-syll.cpp0文件遍辑查看工程编译工旦窗口帮助筐咨R#|瞪原山Global引Workspacesyl:1*is5111linniirillmilaM-Him-囹sy1fiks司_JSourceFilesfflsyll.cpp:IHeaderFiles1ResourceFile构件即1exe图重建全部拙构件清洁开蛤调远CE+F7F7调鼠程序远强连接!执行sylexeCtrl+F5成置可远行配置配置.简档,运行:最后用编译菜单的!执行sy1.exe命令项.exe。运行结果如下:运行可

8、执行程序文件sy锦译工具窗口Ctr!+F7踢牛珂由重建全部批恻.,清港F7开蛤调试卜调试程序远程侄接,也行sl.exeCtrl+FS敢置可远行配置.,.配置呻BlT45tepIritaFit4RuntopurserCtrl+FlOAttachtoProces5.(8)程序可能出错,要学会调试修改,详见VC+6.0使用方法中的7.调试程序PS:输入法必须切换成英文输入法!2完成下面程序的运行2)输入并运行下面的程序,运行后记录并分析结果。#includemain()charc1,c2;/*第2行*/c1=97;c2=98;/*第3行*/printf(%c%cn”,c1,c2);在此根底上:在程序

9、最后增加一个语句,再运行,并分析结果。printf(%d%dn,c1,c2);/ac9798将第2行改为:intc1,c2;再次运行,并分析结果。ac9798再将第3行改为:c1=305;c2=340;/1t305340N位二进制转成8位的char再使之运行,分析运行结果。2输入并运行下面的程序#includemain()charc1=a,c2=b,c3=c,c4=101,c5=116;printf(a%cb%ctc%ctabcn,c1,c2,c3);printf(ttb%c%cn,c4,c5);在上机前先用人工分析程序,写出应得结果,上机后将二者对照。一. 三案例项目1.输出你自己的生日,拼

10、音的首字母,用浮点型数输出你的年龄(如:20.8)实验二根本数据类型、运算符和表达式实验目的:1. 练习使用根本类型的变量进展编程二. 练习使用C的运算符实验容:1 .实验要求:熟练使用运算符+,-.分析与设计:求余运算符要求两个操作数都必须是整数;+和-要看活是先使用还是先自增减2. 源代码:程序1:取出一个三位整数的各个位,并输出main()/缺少#include(intx=123;charc1,c2,c3;c1=x%10;c2=x/10%10;c3=x/100;printf(d,%d,%dn,c3,c2,c1);/,输入法错误运行结果为:1, 2,3程序2:练习自增和自减运算符的使用#i

11、ncludemain()(inti,j,m,n;i=8;j=10;m=+i;/*第5行*/n=j+;/*第6行*/printf(%d,%d,%d,%dn”,i,j,m,n);运行程序,注意i、j、mn各变量的值;然后分别作以下改动并运行:将第5、6行改为如下以后再运行:m=i+;n=+j;将程序改为:#includemain()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+);/先执行

12、所有的i输出操作,再执行i+1将程序改为:#includemain()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);1. 案例项目(参考附1:c语言函数库)随机生成2个099之间的正整数,作为你2门课的成绩。平均成绩(如果结果是整数,要求转换成浮点数),计算所有成绩的标准差要求必须用数学库函数rand(),sqrt。标准差公式如下:修设有一蟾致值X.*,*.Xn皆为实数),其平均值算术平均值)为小公式切图1标准差也梭称为标准偈差.或者实受标在羞,公式为。二IN】i=l用数学库函数实现你学过的数学

13、公式,使用的库函数越多,考核分数越高实验三输入、输出函数的使用一. 实验目的:二. 熟练使用格式输出函数printf()和格式输入函数scanf()实验容:1. 实验要求:格式输入函数scanf()和格式输出函数printf()的使用2.分析与设计:输入函数中的普通字符需要原样输入,并注意分隔符的使用;输出函数中的格式控制符和输出项数要对应。2. 源代码:程序1:为使得a=1,b=2,c=A,d=5.5,在键盘上如何输入?#includemain()inta,b;charc;floatd;scanf(“a=%db=%d,&a,&b);scanf(“c%en,&c,&d);程序在运行时,输入:a

14、=1b=2A5.50程序2:判断下面程序的运行结果。main()intx=3,y=2,z=1;printf(d%dn,(+x,y+),z+2);运行结果:2,3分析得到此结果的原因。程序3:以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出。完成以下填空,并把程序调通,写出当输入为45,34.5,A回车时程序的运行结果。#includemain()(inta;floatb;charc;scanf(%d,%f,%c”,&a,&b,&c);printf(a=%dn”,a);printf(b=%fn”,b);printf(c=%cn”,c);程序4:指出以下程序的错

15、误并改正,并上机把程序调通。#includemain()(inta;scanf(%f,a);/scanf(%d”,a);printf(a=%f,a);/printf(a=%d,a);charc;c=A;/c=A;printf(%f,c)/printf(%c,c);三. 案例项目1. 用scanf,printf进展如下的输入和输出:1)输入自己的生日,拼音的首字母,年龄(如:20.8),然后输出。注意使用fflush(stdin)函数去除缓存区域,pp89,例4-6第15行2输入自己上学期所有课程的成绩(不一定跟真实成绩一模一样),计算平均成绩和标准差,将其输出。3)输出“学生管理系统的菜单,如

16、下:C:UsarDesktpCi言改童数材K改量,.C主厕i,请选择功能5亍我人占除.显查录氟键入功能刖的数字后,按姓实验四选择结构程序设计一. 实验目的:1.熟练掌握分支结构if语句与其嵌套二. 2.掌握分析具体问题的方法实验容:1.实验要求:利用if语句和scanf函数模拟简单的ATM取款机界面2. 分析与设计:用户先输入密码,密码正确后,可以进展的操作,如查询,取款等。3. 源代码:模拟ATMX款机界面#include/#includemain()intpassword,op,number=0,count=1000,n=0;printf(pleaseinputpassword:);sca

17、nf(%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(1:countn2:getmoneyn3:returnn);scanf(%d,&op);/*输入一种操作*/switch(

18、op)case1:printf(nyourcountis%d.n,count);gotoloop;/*查询*/case2:printf(npleaseinputcountthatyouwanttoget:);scanf(%d,&number);if(numbercount|number0)printf(nerror);elseprintf(nnow,youcantakemoney!);count-=number;gotoloop;/*取款*/case3:break;/*返回*/default:printf(noperateerror!);gotoloop;1. 案例项目输入3门课的成绩,并输出

19、所有成绩中最大的一门课。用逻辑,关系运算判断:2. 如果所有成绩中至少有一门课大丁90,那么输出good;先输入一个学生A的和生日,再输入一个学生B的和生日。用逻辑,关系运算判断:如果A,B的,生日都是正确的,那么输出yes,否那么输出no。3. 根据实验二中的“学生管理系统的菜单,如果输入1,那么输出“显示所有学员信息;如果输入2那么输出“查询学员信息;如果输如3,那么。用switch()语句完成,运行效果图如下:实验五循环结构程序设计1掌握在设计条件型循环结构时,如何正确地设定循环条件,以与如何正确地控制计数型循环结构的次数。2熟悉用while语句,do-while语句和for语句实现循环

20、的方法。3掌握在程序设计中用循环的方法实现各种算法(如穷举、选代、递推等)。4掌握选择结构与循环结构的嵌套。二实验容1程序分析下面是一个计算e的近似值使误差小于给定的a的程序。#includemain()doublee=1.0,x=1.0,y,delta;inti=1;printf(请输入给定的误差:”);scanf(%lf,&delta);y=1/x;while(y=delta)e=e+y;i+;x=x*i;y=1/x;printf(计算结果是:%12.10lfn,e);阅读上面的程序,写出程序所依据的计算公式。1+1/(1*2)+1/2*3+1/6*4当输入的delta是什么值时,能分别使

21、程序按下面的要求运行:i 不进入循环;delta1ii 只循环一次;delta1/2iii 只循环两次;1/2delta1/6iv 进入死循环(程序将永远循环下去)。Delta=0v 为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?printf(%dn,i);原程序中while语句中的y=delta,分别换成ydelta,y=delta,ydelta,y=detax观察程序运行将会有什么变化。把程序中的while结构改写成do-while结构,再运行程序,说明两种结构的区别。将程序改成用for循环结构,计算前50项,并运行程序,写出运行结果。2有一数列:2/1,3/2,5/3,8

22、/5,求出这个数列的前10项之和。#includemain()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);要求:跟踪执行,观察s、t、a、b的变化。方法:使用功能键F10单步跟踪执行程序,可以在监视窗口设置要观察的变量或表达式。停止调试运行的程序单步运行此处.案例项目1. 输入3门成绩,用for循环求平均值。2, 提示:每次循环输入一门成绩,并将其参加总和用do-while编写一个循环程序,用户不停的进展“学生管理系统菜单的选择,直到用户输入数字0。运行效果图如下:实验六数组实验目的1

23、掌握一维数组和二维数组的定义、赋值和输入输出的方法;2掌握字符数组和字符串函数的使用;3掌握与数组有关的算法特别是排序算法二、实验容编程序并上机调试运行。3个数输出这些整1调试以下错误程序,使之具有如下功能:输入12个整数,按每行数,最后输出12个整数的平均值。写出调试过程。#include#defineN12main()inti,aN,av;/av=0for(i=0;iN;i+)scanf(%d”,ai);/&aifor(i=0;iN;i+)printf(%d”,ai);if(i%3=0)printf(n);/if(i+1)%3=0)printf(n)for(i=0;i!=N;i+)av+=

24、ai;/av/=N;printf(av=%fN,av);/printf(av=%d”,av)上面给出的程序有错误和缺陷,请找出程序中的错误并改正。2. 按照下面算法编一个程序,将两个字符申连接起来,不能用strcat函数。(1)定义整型变量i、j,字符申s1、s2输入字符申s1、s2当字符申s1尚未完毕,改变字符申s1的下标,使之到s1完毕处当字符申s2尚未完毕,将字符申s2逐个字符连接到字符申s1的后面为字符申s1添加完毕标志输出连接后的字符申三.案例项目输入3门成绩,并用数组记录.在输入前显示提示文字“请输入第i门课成绩。然后用数组与循环语句求成绩的均值,并输出均值,每门课的成绩用二维数组

25、记录3个同学的所有成绩,并输出所有人的成绩用数组记录学生A的字符申,并输出。再输入一个学生B的字符申,与A的字符申比拟,如果一样那么输出yes,否那么no4(选做)用数组存放4个学生的学号,用冒泡排序法将学号升序放置在原数组中并输出数组数据实验七简单函数.实验目的:1. 理解函数的概念和应用。2. 掌握无参无返回函数的使用。3. 掌握无参有返回函数的使用。1. .案例项目完成主函数中的以下自定义函数:1) 无参无返回的函数inputInfo():/输入一个学生的信息(name,number,score3)2)无参无返回的函数OutputInfo();/输出一个学生的信息(name,number

26、,score3)3) 无参有返回的函数4) 无参有返回的函数5) 无参有返回的函数Average。:求成绩的均值.Max():求成绩的最大值.Standar():求成绩的方差.6)无参无返回的函数Sort():对成绩进展排序用上述自定义函数完成主函数的编写voidmain()/输入学生A的信息(name,number,score3)/输出学生A的信息(name,number,score3)/求成绩的均值,并输出/求成绩最大值,并输出/求成绩方差,并输出/对成绩进展排序,并将排序后的成绩输出/输入学生B的信息(name,number,score3)/输出学生B的信息(name,number,sc

27、ore3)/求成绩的均值,并输出/求成绩最大值,并输出/求成绩方差,并输出/对成绩进展排序,并将排序后的成绩输出实验八高级函数一. 实验目的:1. 理解函数形参和实参的概念和应用。2. 掌握有参无返回函数的使用。3. 掌握有参有返回函数的使用。三.案例项目定义一个带参数并有返回值的函数Average(intscore3),计算学生成绩score3的均值,并将其返回。然后在主程序中调用Average()求均值,并输出均值。1. 用一个数组Student1000,记录N个学生的学号。定义一个函数AddStudent(intnumber),向Student数组中添加一个学生的学号。然后用该函数添加3

28、个学生的学号,并输出所有学号。2. 用一个数组Student1000,记录N个学生的学号。定义一个函数modify(inti,intnumber),修改Studenti的学号为参数number,用主程序输入i和number,调用modify()函数,并输出用一个数组Student1000,记录N个学生的学号。定义一个函数del(inti),删除Studenti的学号,并把Student1000数组中的后续数据前移。用主程序输入i,调用del()函数,并输出删除后的所有学号。实验九指针一实验目的1了解指针的概念,学会定义和使用指针变量。2. 掌握函数的值调用和引用调用的含义掌握简单变量、数组和指

29、针作为函数参数进展传递的形式二、实验容1.运行以下程序,写出运行结果。#includestdio.hmain()(inta5,*p,j;for(j=0;j5;j+)aj=j+1;p=a;for(j=0;j5;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,&

30、b);pt1=&a;pt2=&b;if(ab)swap(pt1,pt2);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(a,b);printf(“

31、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. 案例项目用指针变量记录一门课的成绩a,并用指针输出a的值;用指针数组score记录两个学生的成绩a3,b3,并用score输出所有成绩.3(选做).输入学生课程的数目,并用指针与动态存分配函

32、数malloc()记录一个学生的成绩:pp2811)函数malloc实验十自定义数据、文件实验目的1掌握结构体类型的概念和定义方法与使用。1. 2掌握指向结构体变量的指针变量的概念和应用二案例项目完成以下自定义函数:1)定义一个学生信息结构体Student_Info(其成员变量有,学号,成绩数组,平均分),并在main()函数中用结构体变量记录一个学生的信息,然后输出该学生的所有信息。2) 用一个结构体数组Student_InfoStudent1000,记录N个学生的结构体变量。定义一个函数AddStudent(structStudent_Infos),向Student数组中添加一个学生的信息

33、。3) 定义一个函数find(intnumber)查找指定学号number的学员,并返回该学生在Student1000数组中的下标i,如果指定学号不存在,返回-1;定义一个函数voidquery(intnumber):用find(intnumber)函数根据学号查找学生在Student1000数组中的下标i,并显示该学员的所有信息。定义一个函数voiddel(intnumber),根据学号查找学生,并删除该学员信息定义一个函数voidmodify(intnumber),根据学号查找并修改学员的信息用上述自定义函数完成主函数的编写/定义一个结构体数组Student_InfoStudent1000

34、,main()/用AddStudent函数添加3个学生的信息,并输出所有学生的信息。/用query()函数查找一个学生,并输出该有学生的信息。/用del()函数删除一个学生,并显示删除后所有学生的信息1. /用modify()函数修改一个学生,并显示modify后所有学生的信息附1:c语言函数库abs、labs、fabs:求绝对值函数acos:反余弦函数asin:反正弦函数atan:反正切函数atan2:反正切函数ceil:向上舍入函数cos:余弦函数cosh:双曲余弦函数div、ldiv:除法函数exp:求e的x次籍函数floor:向下舍入函数fmod:求模函数frexp:分解浮点数函数hy

35、pot:求直角三角形斜边长函数Idexp:装载浮点数函数log、log10:对数函数modf:分解双精度数函数powApow1Q指数函数rand:产生随机整数函数sin:正弦函数sinh:双曲正弦函数sqrt:开平方函数srand:设置随机时间的种子函数tan:正切函数tanh:双曲正切函数abs、labs、fabs:求绝对值函数函数原型:intabs(intx);longlabs(longx);doublefabs(doublex);头文件:#include是否是标准函数:是函数功能:函数intabs(intx);是求整数x的绝对值;函数longlabs(longn);是求长整型数x的绝对值

36、;函数doublefabs(doublex);是求浮点数x的绝对值。返回值:返回计算结果。例程如下:计算整数的绝对值。#includeintmain(void)intx=-56;printf(number:%dabsolutevalue:%dn”,x,abs(x);return0;例程说明:本例程通过abs函数计算出整型数-56的绝对值56,并在屏幕上显示结果。本例程的运行结果为:number:-56absolutevalue:56例程如下:计算长整数的绝对值。#includeintmain(void)longx=-12345678L;printf(number:%ldabsolutevalu

37、e:%ldn,x,labs(x);return0;例程说明:本例程通过labs函数计算出长整型数-12345678的绝对值12345678,并在屏幕上显示结果。本例程的运行结果为:number:-12345678absolutevalue:12345678例程如下:计算浮点数的绝对值。#includeintmain(void)floatx=-128.0;printf(number:%fabsolutevalue:%fn,x,fabs(x);return0;例程说明:本例程通过fabs函数计算出浮点数-128.0的绝对值128.0,并在屏幕上显示结果。本例程的运行结果为:2. number:-1

38、28.000000absolutevalue:128.000000acos:反余弦函数函数原型:doubleacos(doublex);头文件:#include是否是标准函数:是函数功能:求x的反余弦值,这里,x为弧度,x的定义域为-1.0,1.0,arccosx的值域为0,兀。返回值:计算结果的双精度值。例程如下:求arccosx。#include#includeintmain(void)doubleresult;doublex=1.0;result=acos(x);printf(arccos%lf=%lfn,x,result);return0;例程说明:本例程应用函数acos计算1.0的反

39、余弦值,即:arccosl。返回计算结果的双精度值。本例程的运行结果是:3. arccos1.000000=0.000000asin:反正弦函数函数原型:doubleasin(doublex);头文件:#include是否是标准函数:是函数功能:求x的反正弦值,这里,x为弧度,x的定义域为-1.0,1.0,arcsinx值域为-兀/2,+兀/2。返回值:计算结果的双精度值。例程如下:求arcsinx。#include#includeintmain(void)doubleresult;doublex=1.0;result=asin(x);printf(arcsin%lfis%lfn”,x,res

40、ult);return(0);例程说明:本例程应用函数asin计算1.0的反正弦值,即:arcsin1。返回计算结果的双精度值。本例程的运行结果是:4. arcsin1.000000is1.570796atan:反正切函数函数原型:doubleatan(doublex);头文件:#include是否是标准函数:是函数功能:求x的反正切值,这里,x为弧度,x的定义域为(-00,+8),arctanx的值域为(-兀/2,+兀/2)。返回值:计算结果的双精度值。例程如下:求arctanx。#include#includeintmain(void)(doubleresult;doublex=1.0;r

41、esult=atan(x);printf(arctan%lf=%lfn,x,result);return(0);例程说明:本例程应用函数atan计算1.0的反正切值,即:arctan1。并返回计算结果的双精度值。本例程的运行结果是:arctan1.000000=0.7853985. atan2:反正切函数2函数原型:doubleatan2(doubley,doublex);头文件:#include是否是标准函数:是函数功能:求y/x的反正切值。返回值:计算结果的双精度值。例程如下:求arctan(x/y)。#include#includeintmain(void)doubleresult;do

42、ublex=10.0,y=5.0;result=atan2(y,x);printf(arctan%lf=%lfn,(y/x),result);return0;例程说明:本例程应用函数atan2计算10.0/5.0的反正切值,即:arctan0.5。并返回计算结果的双精度值。本例程的运行结果是:6. arctan0.500000=0.463648ceil:向上舍入函数函数原型:doubleceil(doublex);头文件:#include是否是标准函数:是函数功能:将双精度数x向上舍入,即:取它的最大整数。例如:ceil(123.400000)=124.000000。返回值:返回计算结果。例程

43、如下:数值的向上舍入。#include#includeintmain(void)doublenum=123.400000;doubleup;up=ceil(num);printf(Theoriginalnumber%lfn,num);printf(Thenumroundedup%lfn,up);return0;例程说明:本例程通过函数ceil将双精度数123.400000向上舍入,得到的结果为124.000000,并在屏幕上显示运算结果。本例程的运行结果为:7. Theoriginalnumber123.400000Thenumroundedup124.000000cos:余弦函数函数原型:d

44、oublecos(doublex);头文件:#include是否是标准函数:是函数功能:求x的余弦值,这里,x为弧度。返回值:计算结果的双精度值。例程如下:求cosx。#include#includeintmain(void)doubleresult;doublex=M_PI;result=cos(x);printf(cos(PI)is%lfn”,result);return0;例程说明:本例程应用cos函数计算兀的余弦值,即:cos兀,再返回计算结果的双精度值。本例程的运行结果是:8. cos(PI)is-1.000000cosh:双曲余弦函数函数原型:dlublecosh(doublex)

45、;头文件:#include是否是标准函数:是函数功能:计算x的双曲余弦值。其中ch(x)=(ex+e-x)/2。返回值:计算结果的双精度值。例程如下:求x的双曲余弦值ch(x)。#include#includeintmain(void)(doubleresult;doublex=0.5;result=cosh(x);printf(ch(%lf)=%lfn”,x,result);return0;例程说明:本例程应用函数cosh计算0.5的双曲余弦值,即:ch(0.5),并返回计算结果的双精度值。本例程的运行结果是:9. ch(0.500000)=1.127626div、ldiv:除法函数函数原型

46、:div_tdiv(intnumber,intdenom);ldiv_tldiv(longlnumer,longldenom);头文件:#include是否是标准函数:是函数功能:函数div是将两个整数numbe和denom相除,返回商和余数。函数ldiv是将两个长整数lnumbe和ldenom相除,返回商和余数。返回值:函数div返回div_t类型的值;函数ldiv返回ldiv_t类型的值。例程如下:两整数相除,求兄商和余数。#include#includediv_tx;intmain(void)(x=div(11,5);printf(11div5=%dremainder%dn,x.quot

47、,x.rem);return0;例程说明:本例程通过div函数将11和5相除,返回其商和余数。注意:div函数并不是中的函数,而是中的函数。中包含存储分配函数和一些杂项函数。但由丁div函数具有数学计算的功能,因此将其归类到数学函数中。div_t是中定义的数据类型,它是一个结构体,定义如下:typedefstruct(intquot;/*商*/intrem;/*余数*/div_t;其中包含两个域:商和余数。div函数将两个整数相除,返回一个div_t类型的值。该函数的运行结果是:11div2=5remainder1例程如下:两长整数相除,求其商和余数。#include#includeldiv_

48、tlx;intmain(void)lx=ldiv(200000L,70000L);printf(200000div70000=%ldremainder%ldn,lx.quot,lx.rem);return0;例程说明:本例程通过ldiv函数将长整数200000与70000相除,并返回其商和余数。注意:同函数div一样,函数ldiv是中的函数。ldiv_t是中定义的数据类型,它是一个结构体,定义如下:typedefstructlongquot;longrem;ldiv_t;公中包含两个域:商和余数。ldiv函数将两个长整数相除,返回一个ldiv_t类型的值。该函数的运行结果是:10. 20000

49、0div70000=2remainder60000exp:求e的x次籍函数函数原型:doubleexp(doublex);头文件:#include是否是标准函数:是函数功能:计算自然常数e的x籍。返回值:返回计算结果的双精度值。例程如下:计算ex说明:e=2.718281828.。#include#includeintmain(void)(doubleresult;doublex=3.0;result=exp(x);printf(eraisedtothepowerof%lf(eA%lf)=%lfn,x,x,result);return0;例程说明:本例程应用函数exp计算e3,该函数返回计算结

50、果的双精度值。本例程的运行结果为:11. eraisedtothepowerof3.000000(ea3.000000)=20.085537floor:向下舍入函数函数原型:doublefloor(doublex);头文件:#include是否是标准函数:是函数功能:将双精度数x向下舍入,即:取它的最小整数。例如:floor(123.400000)=123.000000。返回值:返回计算结果。例程如下:数值的向下舍入。#include#includeintmain(void)(doublenum=123.400000;doubleup;up=floor(num);printf(Theorigi

51、nalnumber%lfn,num);printf(Thenumroundeddown%lfn,up);return0;例程说明:12. 本例程通过函数floor将双精度数123.400000向下舍入,得到的结果为123.000000,并在屏幕上显示运算结果。本例程的运行结果为:Theoriginalnumber123.400000Thenumroundeddown123.000000fmod:求模函数函数原型:doublefmod(doublex,doubley);头文件:#include是否是标准函数:是函数功能:计算x对y的模,即x/y的余数。返回值:返回计算结果,即余数的双精度。例程如

52、下:计算两数的余数。#include#includeintmain(void)floatx,y;x=12.580000;y=2.600000;printf(12.580000/2.600000:%fn,fmod(x,y);getchar();return0;例程说明:本例程通过函数fmod求双精度数12.580000和2.600000的模,其结果为:2.180000。本例程的运行结果为:13. 12.580000/2.600000:2.180000frexp:分解浮点数函数函数原型:doublefrexp(doubleval,int*exp);头文件:#include是否是标准函数:是函数功能:把浮点数或双精度数val分解为数字局部尾数局部x和以2为底的指数局部n。即val=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论