




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计实验指导书电气与电子工程学院重要说明:上机实验目的和要求i一实验报告要求每次实验,提交一份实验报告。具体格式见“实验报告格式范文”将代码和运行截图粘贴到“C改革实验指导书24学时”word的相应位 置。如下图,程序运行的截图如下:旨-C:UserswdDeskto卩垃谴言改革救材垃改華匚家例改30鵬学生信息营酩野请输A.要查询的学生的学号律号 姓名语文数学英语平均分13456.6778-023.0285.7按任意键进入主目录-15 电 7 班企且 1 实验扌艮告.doc2二上机实验的目的上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编程序正确 与否。学习程序语
2、言,上机实验的目的如下:1加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记 住,通过多次上机,就能自然、熟练地掌握语法规定。2了解和熟悉C语言程序开发环境。 熟悉一两种环境 (计算机系统的软件和硬件条件) 再遇到其他的系统时便会触类旁通,很快学会。3学会上机调试程序,也就是善于发现程序中的错误,并且能很快地排除这些错误,使 程序能够正确地运行。要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法, 而且要求自己动手实践能力强。4在做实验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通过的程序 上做一些调试和修改,看看会得到什么结果。多动脑筋思考,将会
3、对你有很大帮助。三上机实验前的准备工作1了解所用的计算机系统的性能和使用方法;2复习和掌握与本实验有关的教学内容;3准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序;4准备好调试和运行时所需的数据。四上机实验的步骤1调出C语言编译系统,进入C语言工作环境;2输入自己编制好的程序;3检查输入是否有错,及时更正;4进行编译和连接;5运行程序,分析结果。3重要说明:上机实验目的和要求.0实验一C语言上机基础.4实验二基本数据类型、运算符和表达式.7实验三输入、输出函数的使用.9实验四选择结构程序设计.11实验五循环结构程序设计.13实验六数组.16实验七简单函数.18实验八高级函数.
4、19实验九指针.20实验十自定义数据、文件.22附1:c语言函数库.244实验一 C 语言上机基础特别声明:为了教学的便捷以及学生自学的方便,我们选择了便于下载和安装的MicrosoftVisual C+ 6.0软件作为编译环境。但在实际工作中使用的编译环境应该是visual studio系列软件(如visual studio 2010)。所以同学们课下必须 自己百度(visualstudio 2010使用手册),学习visual studio的基本用法!PS:输入法必须切换成英文输入法! !一实验目的1熟悉C语言运行环境-Microsoft Visual C+ 6.0中文版。2掌握C语言程序
5、的书写格式和C语言程序的结构,初步了解C源程序的特点。3掌握C语言上机步骤,了解如何编辑、编译、调试和运行一个C程序的方法。4掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对他们赋 值的方法。二实验内容1C语言上机步骤 开机,启动Microsoft Visual C+ 6。 建立工程文件:在“文件”菜单中选择“新建”命令项,在弹出的“新建”对话框 的“工程”选项卡中选择Win 32 Con sole Applicatio n”选项,在工程”框中输入工程文件名sy1,在“c:位置”下拉框中输入或选择文件夹,单击“确定”;在以下弹出的两个对话 框中分别单击命令按钮“完成”和“确
6、定”。 建立C+源文件:在“工程”菜单中选择“添加到工程”一“新建”命令项,在弹出 的“新建”对话框的“文件”选项卡中选择“C+ Source File”,在右边的“文件”框中输入文件名sy11后单击“确定”。 输入源程序:在弹出的文件编辑窗口中输入下面的源程序:#in clude void mai n() printf( Hello,World!n ”);printf( Welcome to the C Ian guage world!n);printf( Every one has bee n wait ing for.n);5 编译:用“编译”菜单的“编译”命令项对源文件syll.cpp
7、进行编译,如果程序有语法或语义错误,在屏幕下面的窗口会出现错误信息;这时候要修改源程序、保存后重新编 译。直到修改了全部错误,屏幕下面的窗口会出现下面的信息:Configuration *利1 - Win32 Debugsy11.obj - 0 error(s), D uarning(s)IL |H J._ ”T” syl -创天中ZStVC+ - yll.tpp文忡盘揖查看插入工程編谭工貝窗口帮助Compiling51/11Tcpp胆 OS Q1 GlobalzJ|(AI1g迪件syl.ewe因重建全部批构件F7Workspaccf syj! 1-53 syl files$ _j Sourc
8、e Files国syl1 .cpp口Header Files_| Resource File牙始调试调试程芋远程连接! syl.exe Ctrl+F5啟潼可远行配直配養箧档小( Step IntoFU* Runtfi Cursor Ctrl+FIDattach h? Processn,.6PS: 输入法必须切换成英文输入法!2完成下面程序的运行2)输入并运行下面的程序,运行后记录并分析结果。#include main() char c1,c2; /*第2行*/ c1=97;c2=98; /*第3行*/ printf ( %c %cn ,c1,c2);在此基础上: 在程序最后增加一个语句,再运行
9、,并分析结果。printf ( %d %dn , c1, c2);/a c 97 98 将第2行改为:int c1,c2;再次运行,并分析结果。a c 97 98 再将第3行改为:c1=305;c2=340; / 1 t 305 340 N位二进制转成8位的char再使之运行,分析运行结果。2输入并运行下面的程序#include main() char c1= a,c2=b,c3=c,c4=101,c5= 116 ; 运行:最后用“编译”菜单的“!执行sy1.exe”命令项运行可执行程序文件sy.exe。运行结果如下:阿E:sy 1 Debugsyi.exe*He LLu.Uorld!Uele
10、one to the C language world!Everyone h技 wbeen waiting for.Ppess any key to continue耐I.縮译XM窗口藉肋砂编桂l+F7拘件syl.exe F7全部批构件漬洁开躺调试执行钉l,e汨Ctrl+FE蝕置可远行配萱配養債档(8)程序可能出错,要学会调试修改,详见VC+6.0使用方法中的7.调试程序7printf( a%c b%ctc%ctabcn ,c1, c2, c3); printf( ttb%c%cn , c4, c5);在上机前先用人工分析程序,写出应得结果,上机后将二者对照。三 案例项目1.输出你自己的生日,
11、姓名拼音的首字母,用浮点型数输出你的年龄实验二 基本数据类型、运算符和表达式一实验目的:1练习使用基本类型的变量进行编程2练习使用C的运算符 二实验内容:1实验要求 :熟练使用运算符 (%,+,-)2分析与设计 : 求余运算符要求两个操作数都必须是整数;+和-要看 清是先使用还是先自增(减)3源代码: 程序1:取出一个三位整数的各个位,并输出main()/缺少#includeint x=123; char c1,c2,c3;c1=x%10; c2=x/10%10; c3=x/100; printf(“%n”,c3,c2,c1); /“”,输入法错误运行结果为:1,2,3程序2:练习自增和自减运
12、算符的使用#include main() int i,j,m,n;i=8;j=10;m=+i;/*第5行*/n=j+;/*第6行*/printf( %d,%d,%d,%dn ,i,j,m,n);运行程序,注意i、j、m、n各变量的值;然后分别作以下改动并运行: 将第5、6行改为如下以后再运行:m=i+;n=+j;(如:20.8)8将程序改为:#i nclude main () int i,j;i=8;j=10;printf( %d,%dn ,i+,j+);/*第5行*/ 在的基础上,将第5行printf语句改为:printf( %d,%dn ,+i,+j);再将printf语句改为:print
13、f( %d,%d,%d,%dn ,i,j,i+,j+);/先执行所有的i输出操作,再执行i+1将程序改为:#i nclude main () int i,j,m=0,n=0;i=8;j=10;m+=i+; n 二-j;printf(i=%d,j=%d,m=%d,n=%din ,i,j,m,n);三案例项目(参考附1:c语言函数库)1.随机生成2个099之间的正整数,作为你2门课的成绩。平均成绩(如果结果是整数,要求转换成浮点数),计算所有成绩的标准差 要求必须用数学库函数rand(),sqrt。标准差公式如下:标准计算公式:亘设有一组数直冷&冷.xn(皆为实数),其平均恒(.轉.术平均
14、備)为小 公式如图仁标准差也被称为标准幣差,或者实验标准差,公式为二1192.用数学库函数实现你学过的数学公式,使用的库函数越多,考核分数越高实验三输入、输出函数的使用一.实验目的:熟练使用格式输出函数printf()和格式输入函数seanf()二.实验内容:1.实验要求:格式输入函数seanf()和格式输出函数printf()的使用2分析与设计:输入函数中的普通字符需要原样输入,并注意分隔符的使用;输出函数中的格式控制符和输出项数要-对应。3.源代码:程序1:为使得a=1,b=2,e=A,d=5.5,在键盘上如何输入?#i nclude mai n()int a,b;char c;float
15、 d;scanf(“a=%d b=%d,&a,&b);scanf(“%c %e n”,&c,&d);程序在运行时,输入:a=1 b=2A 5.5 0程序2:判断下面程序的运行结果。mai n()int x=3,y=2,z=1;printf(“%d n”,(+x,y+),z+2);运行结果:2,3分析得到此结果的原因。程序3:以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出。完成以下填空,并把程序调通,写出当输入为45,34.5,A回车时程序的运行结果。#in clude main () int a; float b; char
16、 c;scanf(%d,%f,%c,&a, &b, &cprintf(a=%dn ,a);printf(b= %fn ,b);printf(c=%cn ,c);10程序4:指出以下程序的错误并改正,并上机把程序调通。#in elude main () int a;scanf( %f ,a); scanf(%d ,a);printf(a=%f, a);/ printf(a=%d, a);char c;c=A;c=A;printf(%f,c) printf(%c,c);三案例项目1.用scanf, printf进行如下的输入和输出:1)输入自己的生日,姓名拼音的首字母,年龄
17、(如:20.8),然后输出。注意使用fflush(stdin)函数清除缓存区域,pp89,例4-6第15行2)输入自己上学期所有课程的成绩(不一定跟真实成绩一模一样),计算平均 成绩和标准差,将其输出。3)输出“学生管理系统”的菜单,如下:11实验四 选择结构程序设计一实验目的:1熟练掌握分支结构if语句及其嵌套2掌握分析具体问题的方法 二实验内容:1实验要求:利用if语句和seanf函数模拟简单的ATM取款机界面2分析与设计:用户先输入密码,密码正确后,可以进行帐户的操作,如查询,取款等。3源代码:模拟ATM取款机界面#inelude /#inelude main()int password
18、,op,number=0,eount=1000,n=0; printf(please input password:);seanf(%d,&password);while(password!=1234)/*有三次输入密码的机会*/ n+;if(n=3)printf(you have input 3,ean not input again!n);geteh();return;printf(password error!please input again:); seanf(%d,&password);loop: printf(nweleome! Please ehoiee one
19、 operate:(1,2,3)n); printf(1:eountn2:get moneyn3:returnn); seanf(%d,&op); /*输入一种操作*/ switeh(op)ease 1:printf(nyour eount is %d.n,eount);goto loop;/*帐户查询*/ease 2:printf(n please input eount that you want to get:); seanf(%d,&number);if(numbereount|number0)printf(nerror);else printf(nnow ,you e
20、an take money!);eount-=number; goto loop;12/*取款*/case 3:break;/*返回*/default:pri ntf(n operate error!);goto loop;三案例项目1.输入3门课的成绩,并输出所有成绩中最大的一门课。用逻辑,关系运算判断: 如果所有成绩中至少有一门课大于90,则输出good;2.先输入一个学生A的姓名和生日,再输入一个学生 关系运算判断:如果A,B的姓名,生日都是正确的,3.根据实验二中的“学生管理系统”的菜单,如果输入1,则输出“显示所有学 员信息”;如果输入2则输出“查询学员信息”;如果输如3,贝 U 0
21、 0 0 0 0 用switch()语句完成,运行效果图如下:B的姓名和生日。用逻辑,则输出yes否则输出no13实验五 循环结构程序设计一 目的和要求1掌握在设计条件型循环结构时,如何正确地设定循环条件,以及如何正确地控制计数 型循环结构的次数。2熟悉用while语句,do-while语句和for语句实现循环的方法。3掌握在程序设计中用循环的方法实现各种算法(如穷举、选代、递推等)。4掌握选择结构与循环结构的嵌套。实验内容1程序分析F面是一个计算e的近似值(使误差小于给定的S)的程序。#include main() double e=1.0,x=1.0,y,delta;int i=1;pri
22、ntf( 请输入给定的误差: );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是什么值时,能分别使程序按下面的要求运行:i不进入循环;delta1ii只循环一次;delta1/214iii只循环两次;1/2delta1/6iv进入死循环(程序将永远循环下去)。Delta=0V为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?printf
23、( %dn ,i); 原程序中while语句中的y=delta,分别换成ydelta,y=delta,ydelta,y=detax观察程序运行将会有什么变化。 把程序中的while结构改写成do-while结构,再运行程序,说明两种结构的区别。 将程序改成用for循环结构,计算前50项,并运行程序,写出运行结果。2有一数列:2/1,3/2,5/3,8/5,求出这个数列的前10项之和。#in clude main () int n,t;float a=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);要求:跟踪执
24、行,观察s、t、a、b的变化。方法:使用功能键F10单步跟踪执行程序,可以在监视窗口设置要观察的变量或表达式。j專倉环国 g 囱币眇 P |(ftf |園画園匡停止调试运行的程序单步运行此处include For(n=1 ;n1 0;n+)5-S+a/b;aa+b;b=t;15案例项目1输入3门成绩,用for循环求平均值。 提示:每次循环输入一门成绩,并将其加入总和2,用do-while编写一个循环程序,用户不停的进行“学生管理系统”菜单的选择, 直到用户输入数字0。运行效果图如下:16实验六 数组实验目的1掌握一维数组和二维数组的定义、赋值和输入输出的方法;2掌握字符数组和字符串函数的使用;
25、3掌握与数组有关的算法(特别是排序算法)二、实验内容编程序并上机调试运行。1调试下列错误程序,使之具有如下功能:输入12个整数,按每行3个数输出这些整 数,最后输出12个整数的平均值。写出调试过程。#include #define N 12main() int i,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+=ai;/av/=N;printf(
26、av=%fN ,av); /printf( av=%d ,av)上面给出的程序有错误和缺陷,请找出程序中的错误并改正。172.按照下面算法编一个程序,将两个字符串连接起来,不能用strcat函数。 定义整型变量i、j,字符串s1、s2 输入字符串s1、s2 当字符串s1尚未结束,改变字符串s1的下标,使之到s1结束处 当字符串s2尚未结束, 将字符串s2逐个字符连接到字符串si的后面 为字符串s1添加结束标志 输出连接后的字符串三案例项目1.输入3门成绩,并用数组记录.在输入前显示提示文字 “请输入第i门课成绩” 然后用数组与循环语句求成绩的均值,并输出均值,每门课的成绩2.用二维数组记录3个
27、同学的所有成绩,并输出所有人的成绩3.用数组记录学生A姓名的字符串,并输出。再输入一个学生B的姓名字符串, 与A的姓名字符串比较,如果一样则输出yes,否则no4 (选做)用数组存放4个学生的学号,用冒泡排序法将学号升序放置在原数组中 并输出数组数据18实验七 简单函数实验目的:1理解函数的概念和应用。2.掌握无参无返回函数的使用3.掌握无参有返回函数的使用。案例项目1.完成主函数中的下列自定义函数1)无参无返回的函数inputInfo( ):/输入一个学生的信息(name,number,score 3)2)无参无返回的函数OutputInfo();/输出一个学生的信息(name,number
28、,score 3)Average():求成绩的均值. Max():求成绩的最大值.Standar()求成绩的方差.Sort():对成绩进行排序2.用上述自定义函数完成主函数的编写void main() /输入学生A的信息(name,number,score 3) /输出学生A的信息(name,number,score 3) /求成绩的均值,并输出/求成绩最大值,并输出/求成绩方差,并输出/对成绩进行排序,并将排序后的成绩输出/输入学生B的信息(name,number,score 3)/输出学生B的信息(name,number,score 3) /求成绩的均值,并输出/求成绩最大值,并输出/求成
29、绩方差,并输出/对成绩进行排序,并将排序后的成绩输出实验八 高级函数一实验目的:1理解函数形参和实参的概念和应用。2.掌握有参无返回函数的使用。3.掌握有参有返回函数的使用。3)无参有返回的函数4)无参有返回的函数5)无参有返回的函数6)无参无返回的函数19三案例项目1.定义一个带参数并有返回值的函数Average( int score3),计算学生成绩score3的均值,并将其返回。然后在主程序中调用Average。求均值,并输出均值。2.用一个数组Student1OOO,记录N个学生的学号。定义一个函数AddStudent(intnumber),向Student数组中添加一个学生的学号。然
30、后用该函数添加3个学生的 学号,并输出所有学号。3.用一个数组Student1OOO记录N个学生的学号。定义一个函数modify(int i,intnumber)修改Studenti的学号为参数number,用主程序输入i和number,调用modify()函数,并输出4.用一个数组Student1OOO,记录N个学生的学号。定义一个函数del(int i),删除Studenti的学号,并把Student1OOO数组中的后续数据前移。用主程序输入i,调 用del()函数,并输出删除后的所有学号。20实验九 指针一 实验目的1了解指针的概念,学会定义和使用指针变量。2掌握函数的值调用和引用调用的
31、含义3掌握简单变量、数组和指针作为函数参数进行传递的形式二、实验内容1.运行下列程序,写出运行结果。#include stdio.h main() int a5,*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;/ int a; a=*p1;*p1=*p2;*p2=a;main() int a,b;
32、 int *pt1,*pt2 ;scanf( %d,%d ,&a,&b);pt1=&a; pt2=&b ;if(ab) swap(pt1,pt2);printf( %d,%d n ,*pt1,*pt2) ;21上机调试此程序。如果不能实现题目要求,指出原因并修改之。1编写自定义函数:进行两个数据之间的交换。分析与设计:使用两种参数传递方法,进行数据的交换,比较下面程序的运行结果有何不同。程序1:参数的值传递。void swap(int x,int y)int t; t=x; x=y; y=t;printf(“x=%dty=%dn”,x,y);main()int
33、a,b;printf(“please input a,b:”);scanf(“%d,%d”,&a,&b);swap(a,b);printf(“a=%dtb=%dn”,a,b);程序2:参数的地址传递。void swap(int *x,int *y)int t;t=*x; *x=*y; *y=t;printf(“x=%dty=%dn”,*x,*y);main()int a,b;printf(“please input a,b:”);scanf(“%d,%d”,&a,&b); swap(a,b);/ swap(&a,&b);printf(“a=%dt
34、b=%dn”,a,b);三案例项目1用指针变量记录一门课的成绩a,并用指针输出a的值;2.用指针数组score记录两个学生的成绩a3, b3,并用score输出所有成绩.223 (选做).输入学生课程的数目,并用指针与动态内存分配函数malloc()记录一个学 生的成绩:pp2811)函数malloc实验十 自定义数据、文件实验目的1掌握结构体类型的概念和定义方法与使用。2掌握指向结构体变量的指针变量的概念和应用 二 案例项目1.完成下列自定义函数:1)定义一个学生信息结构体Stude nt_lnfo(其成员变量有姓名,学号,成绩数组,平 均分),并在main()函数中用结构体变量记录一个学生
35、的信息,然后输出该学生的所 有信息。2)用一个结构体数组Student_lnfo Student1000记录N个学生的结构体变量。定义 一个函数AddStudent(struct Student_lnfo s),向Student数组中添加一个学生的信 息。3)定义一个函数find(int number)查找指定学号number的学员,并返回该学生在Student1000擞组中的下标i,如果指定学号不存在,返回-1;4)定义一个函数void query(int number):用find(int number)函数根据学号查找学生在Student1000数组中的下标i,并显示该学员的所有信息。5
36、)定义一个函数void del(int number),根据学号查找学生,并删除该学员信息6)定义一个函数void modify(int number),根据学号查找并修改学员的信息2.用上述自定义函数完成主函数的编写/定义一个结构体数组Student_InfoStudent1000, main() /用AddStudent函数添加3个学生的信息,并输出所有学生的信息。 用query()函数查找一个学生,并输出该有学生的信息。/用del()函数删除一个学生,并显示删除后所有学生的信息23/用modify()函数修改一个学生,并显示modify后所有学生的信息24附 1:c 语言函数库1.abs
37、、labs、fabs:求绝对值函数2.acos: 反余弦函数3.asin: 反正弦函数4.ata n:反正切函数5.ata n2:反正切函数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、log10:对数函数17. modf:分解双精度数函数18. pow、pow10:指数函数19. rand:产生随机整数函数20. sin:
38、正弦函数21. sinh: 双曲正弦函数22. sqrt:开平方函数23. srand:设置随机时间的种子函数24. tan: 正切函数25. tanh:双曲正切函数251. abs labs、fabs:求绝对值函数函数原型:int abs(int x); long labs(long x); double fabs(double x);头文件:#include是否是标准函数:是函数功能:函数int abs(int x);是求整数x的绝对值;函数long labs(long n);是 求长整型数x的绝对值;函数double fabs(double x);是求浮点数x的绝对值。返回值:返回计算结
39、果。 例程如下: 计算整数的绝对值。#include int main(void)int x = -56;printf(number: %d absolute value: %dn,x, abs(x);return 0;例程说明:本例程通过abs函数计算出整型数-56的绝对值56,并在屏幕上显示结果。本 例程的运行结果为:number: -56 absolute value: 56例程如下:计算长整数的绝对值。#include int main(void)long x = -L;printf(number: %ld absolute value: %ldn, x,labs(x);return
40、0;例程说明:本例程通过labs函数计算出长整型数-的绝对值,并在屏幕上显示结果。本例 程的运行结果为:number: - absolute value:例程如下:计算浮点数的绝对值。#include int main(void)float x = -128.0; printf(number: %f absolute value: %fn, x, fabs(x);return 0;例程说明:本例程通过fabs函数计算出浮点数-128.0的绝对值128.0,并在屏幕上显示结 果。本例程的运行结果为:number: -128.000000 absolute value: 128.0000002.
41、acos: 反余弦函数函数原型:double acos(double x);头文件:#include是否是标准函数:是函数功能:求x的反余弦值,这里,x为弧度,x的定义域为-1.0,1.0, arccosx的值域为0, n。返回值:计算结果的双精度值。例程如下: 求arccosx。#include 26#include int main(void)double result;double x = 1.0;result = acos(x);printf(arccos %lf=%lfn, x, result);return 0;例程说明:本例程应用函数acos计算1.0的反余弦值,即:arccos
42、l。返回计算结果的双精度 值。本例程的运行结果是:arccos 1.000000=0.000000#include 3. asin: 反正弦函数函数原型:double asin(double x);头文件:#include是否是标准函数:是函数功能:求x的反正弦值,这里,x为弧度,x的定义域为-1.0,1.0, arcsinx值域为-n/2,+n/2。返回值:计算结果的双精度值。例程如下:求arcsinx。#include 27int main(void)double result;double x = 1.0;result = asin(x);printf(arcsin %lf is %lf
43、n, x, result);return(0);例程说明:本例程应用函数asin计算1.0的反正弦值,即:arcsinl。返回计算结果的双精度值。本例程的运行结果是:arcsin 1.000000 is 1.5707964. ata n:反正切函数函数原型:double atan(double x);头文件:#include是否是标准函数:是函数功能:求x的反正切值,这里,x为弧度,x的定义域为(-g,+g), arctanx的值域为(-n/2,+n/2)。返回值:计算结果的双精度值。例程如下: 求arctanx。#include 28#include int main(void)double
44、 result;double x = 1.0;result = atan(x);printf(arctan %lf = %lfn, x, result);return(0);例程说明:本例程应用函数atan计算1.0的反正切值,即:arctan1。并返回计算结果的双精度 值。本例程的运行结果是:arctan 1.000000 = 0.7853986. ceil:向上舍入函数函数原型:double ceil(double x);头文件:#include是否是标准函数:是295. atan2:反正切函数2函数原型:double atan2(double y, double x);头文件:#incl
45、ude是否是标准函数:是 函数功能:求y/x的反正切值。 返回值:计算结果的双精度值。例程如下:求arctan(x/y)。#include #include int main(void)double result;double x = 10.0, y = 5.0;result = atan2(y, x);printf(arctan%lf = %lfn, (y / x), result);return 0;例程说明:本例程应用函数atan2计算10.0/5.0的反正切值,即:arctan0.5o并返回计算结果 的双精度值。本例程的运行结果是:arctan0.500000 = 0.46364830
46、函数功能: 将双精度数x向上舍入,即: 取它的最大整数。例如:ceil(123.400000)=124.000000。返回值:返回计算结果。例程如下: 数值的向上舍入。#include #include int main(void)double num = 123.400000;double up;up = ceil(num);printf(The original number %lfn, num);printf(The num rounded up %lfn, up);return 0;例程说明:本例程通过函数ceil将双精度数123.400000向上舍入,得到的结果为124.000000
47、,并在屏幕上显示运算结果。本例程的运行结果为:The original number 123.400000The num rounded up 124.0000006. ceil:向上舍入函数函数原型:double ceil(double x);头文件:#include是否是标准函数:是317. cos:余弦函数 函数原型:double cos(double x);头文件:#include是否是标准函数:是 函数功能:求x的余弦值,这里,x为弧度。 返回值:计算结果的双精度值。 例程如下: 求cosx。#include #include int main(void)double result;
48、double x = M_PI;result = cos(x);printf(cos(PI) is %lfn, result);return 0;例程说明:本例程应用cos函数计算 n 的余弦值,即:cosn,再返回计算结果的双精度值。本例程的运行结果是:cos(PI) is -1.000000328. cosh: 双曲余弦函数函数原型:dluble cosh(double x);头文件:#include是否是标准函数:是 函数功能:计算x的双曲余弦值。其中ch(x)=(ex+e-x)/2。 返回值:计算结果的双精度值。 例程如下: 求x的双曲余弦值ch(x)。#include #includ
49、e int main(void)double result;double x = 0.5;result = cosh(x);printf(ch(%lf) = %lfn, x, result);return 0;例程说明:本例程应用函数cosh计算0.5的双曲余弦值,即:ch(0.5),并返回计算结果的双 精度值。本例程的运行结果是:ch(0.500000) = 1.127626339. div、ldiv:除法函数函数原型:div_t div(int number, int denom);ldiv_t ldiv(long lnumer, long ldenom);头文件:#include是否是标
50、准函数:是 函数功能:函数div是将两个整数numbe和denom相除,返回商和余数。函 数ldiv是将两个长整数lnumbe和ldenom相除,返回商和余数。返回值:函数div返回div_t类型的值;函数ldiv返回ldiv_t类型的值。 例程如下:两整数相除,求其商和余数。#include #include div_t x;int main(void)x = div(11,5);printf(11 div 5 = %d remainder %dn, x.quot, x.rem);return 0;例程说明:本例程通过div函数将11和5相除,返回其商和余数。注意:div函数并不是中的函数,
51、而是中的函数。中包含存储分配函数和一些杂项函数。 但由于div函数具有数学计算的功能, 因此 将其归类到数学函数中。div_t是中定义的数据类型,它是一个结构体,定义如下:typedef structint quot;/*商*/int rem;/*余数*/div_t;其中包含两个域: 商和余数。div函数将两个整数相除,返回一个div_t类型的 值。该函数的运行结果是:11 div 2 = 5 remainder 1例程如下:两长整数相除,求其商和余数。#include #include ldiv_t lx;int main(void)lx = ldiv(200000L, 70000L);pr
52、intf(200000 div 70000 = %ld remainder %ldn, lx.quot, lx.rem);return 0;34例程说明:本例程通过ldiv函数将长整数200000与70000相除,并返回其商和余数。注意:同函数div样,函数Idiv是stdlib.h中的函数。ldiv_t是stdlib.h中定义的数据类型,它是一个结构体,定义如下:typedef struct longquot;longrem; ldiv_t;其中包含两个域:商和余数。ldiv函数将两个长整数相除,返回一个ldiv_t类 型的值。该函数的运行结果是:200000 div 70000 = 2 r
53、emainder 6000010. exp:求e的x次幕函数函数原型:double exp(double x);头文件:#include是否是标准函数:是函数功能:计算自然常数e的x幕。35返回值:返回计算结果的双精度值。例程如下:计算ex(说明:e=2.8.)。#include #include int main(void)double result;double x = 3.0;result = exp(x);prin tf(e raised to the power of %lf (eA%lf) = %lfn, x, x, result);return 0;例程说明:本例程应用函数exp
54、计算e3,该函数返回计算结果的双精度值。本例程的运 行结果为:e raised to the power of 3.000000 (e A 3.000000) = 20.0855373611. floor:向下舍入函数函数原型:double floor(double x);头文件:#include是否是标准函数:是 函数功能: 将双精度数x向下舍入,即:取它的最小整数。例如:floor(123.400000)=123.000000。返回值:返回计算结果。 例程如下:数值的向下舍入。#include #include int main(void)double num = 123.400000;d
55、ouble up;up = floor(num);printf(The original number %lfn, num);printf(The num rounded down %lfn, up);return 0;例程说明:本例程通过函数floor将双精度数123.400000向下舍入,得到的结果为123.000000,并在屏幕上显示运算结果。 本例程的运行结果为:The original number 123.400000 The numrounded down 123.000000是否是标准函数:是函数功能:把浮点数或双精度数val分解为数字部分(尾数部分)x和以2为底的指数部分n。
56、即val=x*2n,其中n存放在exp指向的变量中。返回值:返回尾数部分x的双精度值,且0.5Wxv1。例程如下: 应用函数frexp分解浮点数。3712. fmod:求模函数函数原型:double fmod(double x, double y);头文件:#include是否是标准函数:是 函数功能:计算x对y的模,即x/y的余数。 返回值:返回计算结果,即余数的双精度。 例程如下:计算两数的余数。#include #include int main(void)float x,y; x=12.580000; y=2.600000; printf(12.580000/2.600000: %fn
57、,fmod(x,y);getchar();return 0;例程说明:本例程通过函数fmod求双精度数1 2 .580000和2 .600000的模,其结果为:2.180000。本例程的运行结果为:12.580000/2.600000: 2.1800003813. frexp:分解浮点数函数函数原型:double frexp(double val, int *exp);头文件:#include#include #include int main(void)float x;int exp;x=frexp(64.0,&exp);prin tf(64.0=%.2f*2A%d,x,exp);g
58、etchar();return 0;例程说明:本例程通过函数frexp将浮点数64.0分解为尾数0.5和以2为底的指数7。该 函数将指数7存放在变量exp中,并返回一个双精度的尾数0.500000。本例程的 运行结果为:64.0=0.50*27是否是标准函数:是函数功能:把浮点数或双精度数val分解为数字部分(尾数部分)x和以2为底的指数部分n。即val=x*2n,其中n存放在exp指向的变量中。返回值:返回尾数部分x的双精度值,且0.5Wxv1。例程如下: 应用函数frexp分解浮点数。3914. hypot:求直角三角形斜边长函数函数原型:double hypot(double x, do
59、uble y);头文件:#include是否是标准函数:是 函数功能:x,y为给定的直角三角形两直角边,求该直角三角形的斜边。 返回值:返回计算结果的双精度值。例程如下: 根据两直角边求斜边的长。#include #include int main(void)double result;double x = 3.0;double y = 4.0;result = hypot(x, y);printf(The hypotenuse is: %lfn, result);return 0;例程说明:本例程中,已知两直角边长度:x = 3.0; y = 4.0,应用函数hypot求出其斜边 长度。本例
60、程的运行结果为:The hypotenuse is: 5.000000函数功能:求对数。函数log是求以e为底的x的对数(自然对数)即:Inx;函数loglO是求以10为底的x的对数,即:Iog10 x。返回值:返回计算结果的双精度值。例程如下: 计算lnx。#include 4015. Idexp:装载浮点数函数函数原型:double ldexp(double val, int exp);头文件:#incIude是否是标准函数:是 函数功能:功能与函数frexp相反,将给定的尾数,指数装载成相应的双精度 数或浮点数。即计算vaI*2n,其中n为参数exp的值。返回值:返回vaI*2n的计算结果。 例程如下:应用函数frexp装载浮点数。#incIude #incIude int main(void)doubIe vaIue;doubIe x = 3.000000;vaIue
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 惠州布袋风管施工方案
- 武汉学校智能地暖施工方案
- 隧洞竖井管棚施工方案
- 云浮无尘车间净化施工方案
- 卫生间防水上墙施工方案
- 2012年7月国家开放大学汉语言文学本科《中国现代文学专题》期末纸质考试试题及答案
- 提升农业生产技术的创新与应用实施方案
- 绿色就业与劳动市场转型策略
- 加强污染防治和生态建设未来展望与持续改进措施
- 加强跨部门协作与整合资源的策略及实施路径
- 2025年徐州生物工程职业技术学院单招职业技能测试题库含答案
- 2025年湖南铁道职业技术学院单招职业技能测试题库新版
- 新媒体运营课件
- 《鼹鼠的月亮河》考试题附答案
- 2025年内蒙古巴彦淖尔市交通投资集团有限公司招聘笔试参考题库附带答案详解
- 2025年新公司法知识竞赛题库与答案
- 2025年新人教版物理八年级下册全册教案
- 微量注射泵培训
- 形象设计师三级习题库及答案
- 2025年度能源行业员工聘用合同范本
- 户外广告安装安全施工方案
评论
0/150
提交评论