C语言实验指导书(新)2016.3_第1页
C语言实验指导书(新)2016.3_第2页
C语言实验指导书(新)2016.3_第3页
C语言实验指导书(新)2016.3_第4页
C语言实验指导书(新)2016.3_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、C 语言程序设计实验指导书电气与电子工程学院重要说明:上机实验目的和要求一实验报告要求每次实验,提交一份实验报告。具体格式见“实验报告格式范文”将代码和运行截图粘贴到“C改革实验指导书24学时” word的相应位 置。如下图,15电7班企且1实验扌艮告.doc程序运行的截图如下:旨-C:UserswdDeskto卩垃谴言改革救材垃改華匚家例改30鵬学生信息营酩野请输A.要查询的学生的学号律号 姓名语文数学英语平均分13456.6778-023.0285.7按任意键进入主目录-i二 上机实验的目的 上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编程序正确 与否。学习程序语言,

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

3、考,将会对你有很大帮助。三 上机实验前的准备工作1 了解所用的计算机系统的性能和使用方法;2 复习和掌握与本实验有关的教学内容;3 准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序;4 准备好调试和运行时所需的数据。四 上机实验的步骤1调出C语言编译系统,进入 C语言工作环境;2 输入自己编制好的程序;3 检查输入是否有错,及时更正;4 进行编译和连接;5 运行程序,分析结果。13重要说明:上机实验目的和要求 0实验一C 语言上机基础 4实验二基本数据类型、运算符和表达式 7实验三输入、输出函数的使用 9实验四选择结构程序设计 11实验五循环结构程序设计 13实验六数组 16实

4、验七简单函数 18实验八高级函数 19实验九指针 20实验十自定义数据、文件 22附 1: c 语言函数库 24实验一 C语言上机基础特别声明:为了教学的便捷以及学生自学的方便,我们选择了便于下载和安装的 Microsoft Visual C+ 6.0软件作为编译环境。但在实际工作中使用的编译环境应该是visual studio 系列软件(如visual studio 2010)。所以同学们课下必须 自己百度(visual studio 2010使用手册),学习visual studio 的基本用法!PS:输入法必须切换成英文输入法! !一实验目的1 熟悉C语言运行环境Microsoft Vi

5、sual C+ 6.0中文版。2掌握C语言程序的书写格式和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 <stdio.h>void mai n() printf( " Hello,World!n ”);printf( " Welcome to the C Ian guage world!n");p

7、rintf(" Every one has bee n wait ing for.n"); 编译:用“编译”菜单的“编译”命令项对源文件syll.cpp进行编译,如果程序有语法或语义错误,在屏幕下面的窗口会出现错误信息;这时候要修改源程序、保存后重新编 译。直到修改了全部错误,屏幕下面的窗口会出现下面的信息:Configuration * 利1 - Win32 DebugCompiling51/11 Tcppsy11.obj - 0 error(s), D uarning(s)IL | H J._ ”T” syl -创天中ZStVC+ - yll.tpp文忡盘揖查看插入工程

8、編谭工貝窗口帮助胆 OS Q 1 GlobalzJ|(AI1g迪件 syl.ewe 因重建全部批构件F7Workspaccf 'syj'! 1 -53 syl files$ _j Source Files 国 syl 1 .cpp 口 Header Files _| Resource File牙始调试调试程芋远程连接! syl.exe Ctrl+F5啟潼可远行配直配養箧档小( Step IntoFU* Run tfi Cursor Ctrl+FIDattach h? Processn,. 运行:最后用“编译”菜单的“!执行 sy1.exe ”命令项运行可执行程序文件sy.exe

9、。运行结果如下:阿"E:sy 1 Debugsyi.exe*He LLu.Uorld!Ueleone to the C language world!Everyone h技w been waiting for.Ppess any key to continue耐I 縮译XM窗口藉肋砂编桂 l+F7拘件 syl.exe F7全部批构件漬洁开躺调试週试程序远程连接执行钉l,e汨 Ctrl+FE蝕置可远行配萱 配養債档(8)程序可能出错,要学会调试修改,详见VC+6.0使用方法中的7.调试程序PS : 输入法必须切换成英文输入法!2 完成下面程序的运行2) 输入并运行下面的程序,运行后记录

10、并分析结果。#include <stdio.h>main() char c1,c2; /* 第 2 行 */ c1=97;c2=98; /* 第 3 行 */ printf ( "%c %cn ",c1,c2);在此基础上: 在程序最后增加一个语句,再运行 , 并分析结果。 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 位的 c

11、har 再使之运行 , 分析运行结果。2 输入并运行下面的程序#include <stdio.h>main() char c1= 'a',c2='b',c3='c',c4='101',c5= '116 'printf( " a%c b%ctc%ctabcn " ,c1, c2, c3); printf( " ttb%c%cn " , c4, c5); 在上机前先用人工分析程序,写出应得结果,上机后将二者对照。三 案例项目( 如: 20.8)1. 输出你自己的生日,

12、姓名拼音的首字母,用浮点型数输出你的年龄实验二 基本数据类型、运算符和表达式一实验目的:1练习使用基本类型的变量进行编程2练习使用 C 的运算符 二实验内容 :1实验要求 :熟练使用运算符 (%, +,- )2分析与设计 : 求余运算符要求两个操作数都必须是整数; +和- 要看 清是先使用还是先自增(减)3源代码: 程序 1:取出一个三位整数的各个位,并输出 main()/缺少 #include <stdio.h>int x=123; char c1,c2,c3;c1=x%10; c2=x/10%10; c3=x/100; printf( “%n”,c3,c2,c1); / “”,

13、输入法错误 运行结果为: 1,2,3程序 2:练习自增和自减运算符的使用#include <stdio.h>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;将程序改为:#i nclude <stdio.h>main () int i,j;i=8;j=10;printf(" %d,

14、%dn" ,i+,j+);/* 第 5行 */ 在的基础上,将第 5行printf 语句改为:printf( " %d,%dn ",+i,+j);再将printf 语句改为:printf(" %d,%d,%d,%dn" ,i,j,i+,j+);/先执行所有的i输出操作,再执行i+1 将程序改为:#i nclude <stdio.h>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);三案例项目

15、(参考附1: c语言函数库)1. 随机生成2个099之间的正整数,作为你2门课的成绩。平均成绩(如果结果是整数,要求转换成浮点数),计算所有成绩的标准差 要求必须用数学库函数rand() , sqrt。标准差公式如下:标准计算公式:亘设有一组数直冷&冷.xn (皆为实数),其平均恒(.轉.术平均備)为小 公式如图仁标准差也被称为标准幣差,或者实验标准差,公式为二112. 用数学库函数实现你学过的数学公式,使用的库函数越多,考核分数越高实验三输入、输出函数的使用一. 实验目的:熟练使用格式输出函数printf()和格式输入函数seanf()二. 实验内容:1.实验要求:格式输入函数sea

16、nf()和格式输出函数printf() 的使用2分析与设计:输入函数中的普通字符需要原样输入,并注意分隔符的使用;输出函数中的格式控制符和输出项数要对应。3.源代码: 程序1:为使得a=1,b=2,e= A' ,d=5.5,在键盘上如何输入?#i nclude <stdio.h>mai n()int a,b;char c;float 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

17、,y=2,z=1;printf( “%d n”,(+x,y+),z+2); 运行结果:2, 3分析得到此结果的原因。程序3:以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出。完成以下填空,并把程序调通,写出当输入为45,34.5,A<回车时程序的运行结果。#in clude <stdio.h>main () int a; float b; char c;scanf("%d,%f,%c",&a, &b, &cprintf("a=%dn" ,a);printf("b=%f

18、n" ,b);printf("c=%cn" ,c);程序4:指出以下程序的错误并改正,并上机把程序调通。#in elude <stdio.h>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)输入

19、自己的生日,姓名拼音的首字母,年龄(如:20.8),然后输出。注意使用fflush(stdin)函数清除缓存区域,pp89,例4-6第15行2)输入自己上学期所有课程的成绩(不一定跟真实成绩一模一样),计算平均 成绩和标准差,将其输出。3)输出“学生管理系统”的菜单,如下:实验四 选择结构程序设计一实验目的: 1熟练掌握分支结构 if 语句及其嵌套2 掌握分析具体问题的方法 二实验内容:1实验要求: 利用if语句和seanf函数模拟简单的ATM取款机界面 2分析与设计 :用户先输入密码,密码正确后,可以进行帐户的操作,如查询,取款等。3源代码 : 模拟 ATM 取款机界面 #inelude &

20、lt;stdio.h> /#inelude <eonio.h> main()int password,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(&q

21、uot;password error!please input again:"); seanf("%d",&password); loop: printf("nweleome! Please ehoiee one operate:(1,2,3)n"); printf("1:eountn2:get moneyn3:returnn"); seanf("%d",&op); /* 输入一种操作 */ switeh(op)ease 1:printf("nyour eount is %d.n

22、",eount);goto loop;/* 帐户查询 */ease 2:printf("n please input eount that you want to get:"); seanf("%d",&number); if(number>eount|number<0)printf("nerror");else printf("nnow ,you ean take money!");eount-=number; goto loop;/*取款*/case 3:break;/*返回*/d

23、efault:pri ntf("n operate error!");goto loop;三案例项目1. 输入3门课的成绩,并输出所有成绩中最大的一门课。用逻辑,关系运算判断: 如果所有成绩中至少有一门课大于90,则输出good;B的姓名和生日。用逻辑,则输出 yes否则输出no2. 先输入一个学生A的姓名和生日,再输入一个学生 关系运算判断:如果A,B的姓名,生日都是正确的,3. 根据实验二中的“学生管理系统”的菜单,如果输入 1,则输出“显示所有学 员信息”;如果输入2则输出“查询学员信息”;如果输如 3,贝U 0 0 0 0 0 用switch()语句完成,运行效果图

24、如下:实验五 循环结构程序设计一 目的和要求1 掌握在设计条件型循环结构时,如何正确地设定循环条件,以及如何正确地控制计数 型循环结构的次数。2 熟悉用 while 语句, do-while 语句和 for 语句实现循环的方法。3 掌握在程序设计中用循环的方法实现各种算法( 如穷举、选代、递推等 ) 。4 掌握选择结构与循环结构的嵌套。实验内容1 程序分析F面是一个计算 e的近似值(使误差小于给定的S )的程序。#include <stdio.h>main() double e=1.0,x=1.0,y,delta;int i=1;printf( " 请输入给定的误差: &

25、quot; );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 不进入循环;delta>1ii 只循环一次;delta>1/2iii 只循环两次;1/2>delta>1/6iv 进入死循环(程序将永远循环下去)。

26、Delta=0V为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?printf( " %dn " ,i); 原程序中 while 语句中的 y>=delta,分别换成 y>delta,y=delta,y<delta,y<=detax观察程序运行将会有什么变化。 把程序中的while结构改写成do-while结构,再运行程序,说明两种结构的区别。 将程序改成用for循环结构,计算前 50项,并运行程序,写出运行结果。2有一数列:2/1,3/2,5/3,8/5, 求出这个数列的前 10项之和。#in clude <stdio.h>

27、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);要求:跟踪执行,观察s、t、a、b的变化。方法:使用功能键 F10单步跟踪执行程序,可以在监视窗口设置要观察的变量或表达式。j專倉环国g囱币眇P | (ftf |園画園匡停止调试运行的程序单步运行此处include <stdio耐inf) int n ;Float,s=0;c>For(n=1 ;n<1 0;n+)<5-S+a/b;aa+b;b=t;案例项目

28、1输入3门成绩,用for循环求平均值。 提示:每次循环输入一门成绩,并将其加入总和2,用do-while编写一个循环程序,用户不停的进行“学生管理系统”菜单的选择, 直到用户输入数字0。运行效果图如下:25实验六 数组实验目的1 掌握一维数组和二维数组的定义、赋值和输入输出的方法;2 掌握字符数组和字符串函数的使用;3 掌握与数组有关的算法(特别是排序算法)二、实验内容编程序并上机调试运行。1 调试下列错误程序,使之具有如下功能:输入 12 个整数,按每行 3 个数输出这些整 数,最后输出 12 个整数的平均值。写出调试过程。#include <stdio.h>#define N

29、12main() int i,aN,av;/av=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) 上面给

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

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

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

33、score 3)/输出学生 B 的信息 (name,number,score 3) /求成绩的均值,并输出 /求成绩最大值,并输出/求成绩方差,并输出 /对成绩进行排序,并将排序后的成绩输出实验八 高级函数一实验目的:1理解函数形参和实参的概念和应用。2. 掌握有参无返回函数的使用。3. 掌握有参有返回函数的使用。三案例项目1. 定义一个带参数并有返回值的函数 Average( int score3),计算学生成绩score3的均值,并将其返回。然后在主程序中调用Average。求均值,并输出均值。2. 用一个数组 Student1OOO,记录N个学生的学号。定义一个函数 AddStudent

34、(int number),向Student数组中添加一个学生的学号。然后用该函数添加 3个学生的 学号,并输出所有学号。3. 用一个数组 Student1OOO记录N个学生的学号。定义一个函数 modify(int i,int number)修改Studenti的学号为参数 number,用主程序输入i和number,调用 modify() 函数,并输出4. 用一个数组Student1OOO,记录N个学生的学号。定义一个函数 del(int i),删除 Studenti的学号,并把Student1OOO数组中的后续数据前移。用主程序输入 i,调 用del()函数,并输出删除后的所有学号。实验九

35、 指针一 实验目的1 了解指针的概念,学会定义和使用指针变量。2掌握函数的值调用和引用调用的含义3掌握简单变量、数组和指针作为函数参数进行传递的形式二、实验内容1. 运行下列程序,写出运行结果。#include " stdio.h "main() int a5,*p,j;for(j=0;j<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 指向小者,以下程序能否实 现

36、此目的?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; int *pt1,*pt2 ;scanf( " %d,%d" ,&a,&b);pt1=&a; pt2=&b ;if(a<b) swap(pt1,pt2);printf( " %d,%d n " ,*pt1,*pt2) ;上机调试此程序。如果不能实现题目要求,指出原因并修改之。1编写自定义函数:进行两个数据之间的交换。分析与设计: 使

37、用两种参数传递方法,进行数据的交换,比较下面程序的运行结果有何不同。程序 1:参数的值传递。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);printf(“ a=%dtb=%dn” ,a,b);程序 2:参数的地址传递。void swap(int *x,int *y)int t;t=*x; *x=*y; *y=t;printf(“ x=%d

38、ty=%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=%dtb=%dn” ,a,b);三案例项目1用指针变量记录一门课的成绩a,并用指针输出a的值;2.用指针数组score记录两个学生的成绩a3, b3,并用score输出所有成绩.3 (选做).输入学生课程的数目,并用指针与动态内存分配函数 malloc()记录一个学 生的成绩: pp2811)函数 malloc实验十 自定义数据、文

39、件实验目的1 掌握结构体类型的概念和定义方法与使用。2 掌握指向结构体变量的指针变量的概念和应用 二 案例项目1. 完成下列自定义函数:1)定义一个学生信息结构体 Stude nt_lnfo(其成员变量有姓名,学号,成绩数组,平 均分),并在main()函数中用结构体变量记录一个学生的信息,然后输出该学生的所 有信息。2)用一个结构体数组 Student_lnfo Student1000记录N个学生的结构体变量。定义 一个函数 AddStudent(struct Student_lnfo s),向 Student数组中添加一个学生的信 息。3)定义一个函数find(int number)查找指

40、定学号number的学员,并返回该学生在Student1000擞组中的下标i,如果指定学号不存在,返回-1;4) 定义一个函数void query(int number):用find(int number)函数根据学号查找学生在Student1000数组中的下标i,并显示该学员的所有信息。5) 定义一个函数void del(int number),根据学号查找学生,并删除该学员信息6) 定义一个函数 void modify(int number) ,根据学号查找并修改学员的信息2. 用上述自定义函数完成主函数的编写 /定义一个结构体数组 Student_Info Student1000, ma

41、in() /用AddStudent函数添加3个学生的信息,并输出所有学生的信息。 用query()函数查找一个学生,并输出该有学生的信息。/用 del()函数删除一个学生,并显示删除后所有学生的信息/用 modify() 函数修改一个学生,并显示 modify 后所有学生的信息 附 1:c 语言函数库1. abs、labs、fabs:求绝对值函数2. acos: 反余弦函数3. asin: 反正弦函数4. ata n:反正切函数5. ata n2:反正切函数6. ceil:向上舍入函数7. cos :余弦函数8. cosh: 双曲余弦函数9. div、 ldiv :除法函数10. exp :求

42、e的x次幕函数11. floor:向下舍入函数12. fmod :求模函数13. frexp :分解浮点数函数14. hypot:求直角三角形斜边长函数15. ldexp :装载浮点数函数16. log、log10:对数函数17. modf :分解双精度数函数18. pow、pow10 :指数函数19. rand:产生随机整数函数20. sin:正弦函数21. sinh: 双曲正弦函数22. sqrt:开平方函数23. srand:设置随机时间的种子函数24. tan: 正切函数25. tanh:双曲正切函数1. abs labs、fabs:求绝对值函数函数原型: int abs(int x)

43、; long labs(long x); double fabs(double x);头文件: #include<math.h> 是否是标准函数:是函数功能:函数int abs(int x);是求整数x的绝对值;函数long labs(long n);是 求长整型数x的绝对值;函数double fabs(double x);是求浮点数x的绝对值。返回值:返回计算结果。 例程如下: 计算整数的绝对值。#include <math.h> int main(void)int x = -56;printf("number: %d absolute value: %dn

44、",x, abs(x); return 0;例程说明:本例程通过abs函数计算出整型数-56的绝对值56,并在屏幕上显示结果。本 例程的运行结果为:number: -56 absolute value: 56 例程如下:计算长整数的绝对值。#include <math.h>int main(void)long x = -L;printf("number: %ld absolute value: %ldn", x,labs(x); return 0;例程说明:本例程通过labs函数计算出长整型数-的绝对值,并在屏幕上显示结果。本例 程的运行结果为:num

45、ber: - absolute value: 例程如下:计算浮点数的绝对值。#include <math.h>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.0000003. asin: 反正弦函数函数原型: double

46、 asin(double x);头文件: #include<math.h>是否是标准函数:是函数功能:求x的反正弦值,这里,x为弧度,x的定义域为-1.0,1.0, arcsinx值域为-n /2, +n /2。返回值:计算结果的双精度值。例程如下:求 arcsinx。#include <stdio.h>#include <math.h>int main(void)double result;double x = 1.0;result = acos(x);printf("arccos %lf=%lfn", x, result);retur

47、n 0; 例程说明:本例程应用函数acos计算1.0的反余弦值,即:arccosl。返回计算结果的双精度 值。本例程的运行结果是:arccos 1.000000=0.000000#include <math.h>int main(void)double result;double x = 1.0;result = asin(x);printf("arcsin %lf is %lfn", x, result);return(0);例程说明:本例程应用函数asin计算1.0的反正弦值,即:arcsinl。返回计算结果的双精度值。 本例程的运行结果是:arcsin 1

48、.000000 is 1.570796274. ata n:反正切函数函数原型: double atan(double x);头文件: #include<math.h>是否是标准函数:是函数功能:求x的反正切值,这里,x为弧度,x的定义域为(-g,+g), arctanx的值域为(-n /2, +n /2)。返回值:计算结果的双精度值。例程如下: 求 arctanx。#include <stdio.h>#include <math.h>int main(void)double result;double x = 1.0;result = atan(x);pr

49、intf("arctan %lf = %lfn", x, result);return(0);例程说明:本例程应用函数atan计算1.0的反正切值,即:arctan1。并返回计算结果的双精度 值。本例程的运行结果是:arctan 1.000000 = 0.785398#6. ceil:向上舍入函数函数原型: double ceil(double x);头文件: #include<math.h>是否是标准函数:是5. atan2:反正切函数2函数原型: double atan2(double y, double x); 头文件: #include<math.

50、h> 是否是标准函数:是 函数功能:求 y/x 的反正切值。 返回值:计算结果的双精度值。例程如下:求 arctan(x/y)。#include <stdio.h>#include <math.h>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并返回

51、计算结果 的双精度值。本例程的运行结果是:arctan0.500000 = 0.46364831函数功能: 将双精度数 x 向上舍入,即: 取它的最大整数。例如: ceil(123.400000)=124.000000。返回值:返回计算结果。例程如下: 数值的向上舍入。#include <math.h>#include <stdio.h>int main(void)double num = 123.400000;double up;up = ceil(num);printf("The original number %lfn", num);print

52、f("The num rounded up %lfn", up);return 0;例程说明:本例程通过函数 ceil 将双精度数 123.400000 向上舍入,得到的结果为 124.000000,并在屏幕上显示运算结果。本例程的运行结果为: The original number 123.400000The num rounded up 124.0000007. cos :余弦函数 函数原型: double cos(double x); 头文件: #include<math.h> 是否是标准函数:是 函数功能:求 x 的余弦值,这里, x 为弧度。 返回值:

53、计算结果的双精度值。 例程如下: 求 cosx。#include <stdio.h>#include <math.h>int main(void)double result;double x = M_PI;result = cos(x);printf("cos(PI) is %lfn", result);return 0; 例程说明:本例程应用cos函数计算n的余弦值,即:cosn,再返回计算结果的双精度值。 本例程的运行结果是: cos(PI) is -1.0000008. cosh: 双曲余弦函数函数原型: dluble cosh(double

54、x);头文件: #include<math.h> 是否是标准函数:是 函数功能:计算 x 的双曲余弦值。其中 ch(x)=(ex+e-x)/2 。 返回值:计算结果的双精度值。 例程如下: 求 x 的双曲余弦值 ch(x)。#include <stdio.h>#include <math.h>int main(void)double result;double x = 0.5;result = cosh(x);printf("ch(%lf) = %lfn", x, result);return 0;例程说明:本例程应用函数cosh计算0.

55、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<stdlib.h> 是否是标准函数:是 函数功能:函数 div 是将两个整数 numbe 和 denom 相除, 返回商和余数。函 数 ldiv 是将两个长整数 lnumbe 和 ldenom 相除 , 返回商和余数。返回值:函数 div

56、 返回 div_t 类型的值;函数 ldiv 返回 ldiv_t 类型的值。 例程如下:两整数相除,求其商和余数。#include <stdlib.h>#include <stdio.h>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函数并不是<math.h>中的函数,而是<stdlib.h>中的函

57、数。<stdlib.h> 中包含存储分配函数和一些杂项函数。 但由于 div 函数具有数学计算的功能, 因此 将其归类到数学函数中。div_t是<stdlib.h>中定义的数据类型,它是一个结构体,定义如下:typedef structint quot;/* 商*/int rem;/* 余数*/div_t;其中包含两个域:商和余数。div函数将两个整数相除,返回一个div_t类型的 值。该函数的运行结果是:11 div 2 = 5 remainder 1 例程如下:两长整数相除,求其商和余数。#include <stdlib.h>#include <stdio.h>ldiv_t lx;int main(void)lx = l

温馨提示

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

评论

0/150

提交评论