版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计实验指导书电气与电子工程学院重要说明:上机实验目的和要求 一实验报告要求每次实验,提交一份实验报告。具体格式见“实验报告格式范文”将代码和运行截图粘贴到“C改革实验指导书24学时” word的相应位置。如下图,鲂15电7班小组1实会报告口匚程序运行的截图如下:,911$”$丫川口”盘叩(:语言改革教材(:改革(:案例改革初稿学生信息管理系等请输入要查询的学生的学号:1学号姓名 语文 数学 英语 平均分 MMWW MM*MM« W1345G.0?78.023.0285.7按任意键进入主目录.二上机实验的目的上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所
2、编程 序正确与否。学习程序语言,上机实验的目的如下:1加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味 乂难以记住,通过多次上机,就能自然、熟练地掌握语法规定。2 了解和熟悉C语言程序开发环境。熟悉一两种环境(计算机系统的软件和硬 件条件),再遇到其他的系统时便会触类旁通,很快学会。3学会上机调试程序,也就是善于发现程序中的错误,并且能很快地排除这些 错误,使程序能够正确地运行。要真正掌握计算机应用技术,就不仅应当了解和熟悉 有关理论和方法,而且要求自己动手实践能力强。4在做实验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通 过的程序上做一些调试和修改,看看会得到
3、什么结果。多动脑筋思考,将会对你有很 大帮助。三上机实验前的准备工作1 了解所用的计算机系统的性能和使用方法;2复习和掌握与本实验有关的教学内容;3准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序:4准备好调试和运行时所需的数据。四上机实验的步骤1调出C语言编译系统,进入C语言工作环境;2输入自己编制好的程序;3检查输入是否有错,及时更正;4进行编译和连接;5运行程序,分析结果。实验一 C语言上机基础特别声明:为了教学的便捷以及学生自学的方便,我们选择了便于下载和安装的 Microsoft Visual C+软件作为编译环境。但在实际工作中使用的编译环境应该是 visual s
4、tudio系列软件(如visual studio 2010) o所以同学们课下必须自己百度 (visual studio 2010使用手册),学习visual studio的基本用法!PS:输入法必须切换成英文输入法! !一实验目的1 熟悉C语言运行环境Microsoft Visual C+中文版。2掌握C语言程序的书写格式和C语言程序的结构,初步了解C源程序的特点。3掌握C语言上机步骤,了解如何编辑、编译、调试和运行一个C程序的方法。4掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及 对他们赋值的方法。二实验内容1 C语言上机步躲 开机,启动 Microsoft Visua
5、l C+ 6。 建立工程文件:在“文件”菜单中选择“新建”命令项,在弹出的“新建” 对话框的“工程”选项卡中选择“Win32 Console Application选项,在“工程” 框中输入工程文件名syl,在“g:位置”下拉框中输入或选择文件夹,单击“确定”; 在以下弹出的两个对话框中分别单击命令按钮“完成”和“确定”。(3)建立C+源文件:在“工程”菜单中选择“添加到工程”一“新建”命令项, 在弹出的“新建”对话框的“文件”选项卡中选择“C+ Source File”,在右边的 “文件”框中输入文件名syll后单击“确定”。(4)输入源程序:在弹出的文件编辑窗口中输入下面的源程序:ftin
6、clude <>void main() printf ("Hello, World!n");printf(Welcome to the C language world!n");printf(Everyone has been waiting for. n");) 编译:用“编译”菜单的“编译”命令项对源文件进行编译,如果程序有语 法或语义错误,在屏幕下面的窗口会出现错误信息;这时候要修改源程序、保存后重 新编译。直到修改了全部错误,屏幕下面的窗口会出现下面的信息:XJlCompilingsy11 .cppConfiguration: sy1
7、 - Win32 Debugsy11 .obj - 0 error(s), 0 uarning(s)FTN编译/调试查找文件i 查找文件2】“;表示已通过编译,生成了目标程序。(6)调试:接下来进行调试,操作如下图所示。完成调试后,生成可执行程序文件。syl -创天中文VC+ - syll.cpp区I文件编辑查看插入工程编译工具窗口颦助窗|除Q目|/能唱|除j(Globals)三)Mig第编译彻件 syl.exe 重建全部Ctrl+F7F7Workspace 'sy1 ': 1白号 sy1 files日S Source Files图 syll.cpp O Header File
8、s Q Resource File批构件 清洁开始调试去F5调试程序远程连接!执行 syl.exe Ctrl+F5放置可远行配置配置简档Step IntoFil彳 Run to Cursor Ctrl+Fl 0Attach to Process. 运行:最后用“编译”菜单的“!执行”命令项编译工具窗口费助啰编译CW+F7物件 syLexe F7圈重建全部批构件清洁开始调试调试程序远程连接执行 sy 1. exe Ctrl4-F5运行可执行程序文件sy.exeo运行结果如下:放置可远行配置配置简档(8)程序可能出错,要学会调试修改,详见VC+使用方法中的7.调试程序PS:输入法必须切换成英文输入
9、法! !2完成下面程序的运行2)输入并运行下面的程序,运行后记录并分析结果。ttinclude <>main() char cl, c2;/* 第 2 行 */cl=97;c2=98;/* 第 3行 */printf ("%c %cn*, cl, c2);)在此基础上:在程序最后增加一个语句,再运行,并分析结果。printf ("%d%dn”, cl, c2);机生成2个099之间的正整数,作为你2门课的成绩。平均成绩(如果结果是整数,要求转换成浮点数),计算所有成绩的标准差。要求必须用数学库函数rand(), sqrto标准差公式如下:标准计嵬公式:假设有一组
10、数值XlXz,X3,Xn (皆为实效),其平均值(算术平均值)为斯公式如图1。标准差也被称为标准漏蓄,或者实验标稚差,公式为(J二2,用数学库函数实现你学过的数学公式,使用的库函数越多,考核分数越高实验三 输入、输出函数的使用实验目的:熟练使用格式输出函数printf ()和格式输入函数scanf ()二.实验内容:1 .实验要求:格式输入函数scanf ()和格式输出函数printf ()的使用2 .分析与设计:输入函数中的普通字符需要原样输入,并注意分隔符的使用; 输出函数中的格式控制符和输出项数要一一对应。3 .源代码:程序1:为使得a=l, b=2, c='A' ,d二
11、,在键盘上如何输入#include <>main()int a, b;char c;float d;scanf( ua=%d b=%d" , &a, &b);scanf( u%c %env , &c, &d);)程序在运行时,输入:a=l b=2A0程序2:判断下面程序的运行结果。main()int x=3, y=2,z=l;printf( u%d, %dn”,什+x, y+), z+2);运行结果:2, 3分析得到此结果的原因。程序3:以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符 型数,并把他们在屏幕上输出。完成以下填空,并
12、把程序调通,写出当输入为45, A< 回车)时程序的运行结果。ttinclude <>main () int a; float b; char c;scanf ("%d, %f, %c“,&a, &b, &c);printf ("a=%dn*, a);printf (*b=%fn”, b);printf (*c=%cn”, c);)程序4:指出以下程序的错误并改正,并上机把程序调通。ttinclude <>main() int a;scanf (*%f*, a); scanf, printf进行如下的输入和输出:1)输入
13、自己的生日,姓名拼音的首字母,年龄(如:,然后输出。注意使用fflush (stdin)函数清除缓存区域,pp89,例4-6第15行2)输入自己上学期所有课程的成绩(不一定跟真实成绩一模一样),计算平均成绩 和标准差,将其输出。3)输出“学生管理系统”的菜单,如下:r' JU sersv/dDeskto pC语言改堇教材C改革C案例i=学员信息管理系统= 以下是程序主目录,请选择功能示我人显查12 3 4 5 6 0键入功能前的数字后,按“ En,键:实验四选择结构程序设计实验目的:1 .熟练掌握分支结构if语句及其嵌套2 .掌握分析具体问题的方法二.实验内容:1 .实验要求:利用if
14、语句和scanf函数模拟简单的ATM取款机界面2 .分析与设计:用户先输入密码,密码正确后,可以进行帐户的操作,如查询, 取款等。3 .源代码:模拟ATM取款机界面#include <> rT,count);goto loop;/*帐户查询*/case 2:printf Cn please input count that you want to get:);scanf(d,ftnumber);if(number>count number<0)printf (nerror); else printf (z/nnow , you can take money!z,) ;
15、count-=number; goto loop;/*取款*/case 3:break;/*返回*/default:printf(,zn operate error!);goto loop;)三.案例项目1 .输入3门课的成绩,并输出所有成绩中最大的一门课。用逻辑,关系运算判断:如 果所有成绩中至少有一门课大于90,则输出good;2 .先输入一个学生A的姓名和生日,再输入一个学生B的姓名和生日。用逻辑,关系 运算判断:如果A, B的姓名,生日都是正确的,则输出yes,否则 输出n。3 .根据实验二中的“学生管理系统”的菜单,如果输入1,则输出“显示所有学员信 息”;如果输入2则输出“查询学员
16、信息”;如果输如3,则。°。°。用switch。语句完成,运行效果图如下:情选择菜单2查询学员信息实验五循环结构程序设计一目的和要求1掌握在设计条件型循环结构时.,如何正确地设定循环条件,以及如何正确地 控制计数型循环结构的次数。2熟悉用while语句,do-while语句和for语句实现循环的方法。3掌握在程序设计中用循环的方法实现各种算法(如穷举、选代、递推等)。4掌握选择结构与循环结构的嵌套。二实验内容1程序分析下面是一个计算e的近似值(使误差小于给定的8)的程序。#include <>main() double e=, x=, y, delta;int
17、i=l;printf ("请输入给定的误差:");scanf ("%lf”, fedelta);y=l/x;while(y>=delta) e=e+y;i+;x=x*i;y=l/x;printf ("计算结果是:n”, e);)阅读上面的程序,写出程序所依据的计算公式。1+1/(1*2)+1/2*3+1/6*4 当输入的delta是什么值时,能分别使程序按下面的要求运行:i不进入循环;delta>lii 只循环一次;delta>l/2iii 只循环两次;l/2>deltal/6iv进入死循环(程序将永远循环下去)。Delta=OV
18、为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句printf("%dn", i);(3) 原程序中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项之和。ftinclude <>main() int n,
19、t;float a=2, b=l, s=0;for (n=l;n<=10;n+) s=s+a/b;t=a;a=a+b;b=t;printf("%fn", s);要求:跟踪执行,观察s、t、a、b的变化。方法:使用功能键F10单步跟踪执行程序,可以在监视窗口设置要观察的变量或 表达式。中R小*7叙羽荻国匡ttinclude <stdio.h> main() < int n ,t;float a=2,b=1,s=8; For(n=1;n<=16;n+) s=s+a/b;t=a;a=a+b;printF('2fn'',s);b
20、=t;三.案例项目1.输入3门成绩,用for循环求平均值。提示:每次循环输入一门成绩,并将其加入总和。2,用do-while编写一个循环程序,用户不停的进行“学生管理系统”菜单的选择, 直到用户输入数字0。运行效果图如下:实验六数组一实验目的1掌握一维数组和二维数组的定义、赋值和输入输出的方法;2掌握字符数组和字符串函数的使用;3掌握与数组有关的算法(特别是排序算法)二、实验内容编程序并上机调试运行。1调试下列错误程序,使之具有如下功能:输入12个整数,按每行3个数输出 这些整数,最后输出12个整数的平均值。写出调试过程。ttinclude <>#define N 12main (
21、) int i,aN,av;按照下面算法编一个程序,将两个字符串连接起来,不能用strcat 函数。 定义整型变量i、j,字符串si、s2输入字符串si、s2(3)当字符串si尚未结束,改变字符串si的下标,使之到si结束处 当字符串s2尚未结束,将字符串s2逐个字符连接到字符串si的后面为字符串si添加结束标志(6)输出连接后的字符串三.案例项目1 .输入3门成绩,并用数组记录.在输入前显示提示文字“请输入第i门课成绩”。然后用数组与循环语句求成绩的均值,并输出均值,每门课的成绩2 .用二维数组记录3个同学的所有成绩,并输出所有人的成绩3 .用数组记录学生A姓名的字符串,并输出。再输入一个学
22、生B的姓名字符串,与A 的姓名字符串比较,如果一样则输出yes,否则no4 (选做)用数组存放4个学生的学号,用冒泡排序法将学号升序放置在原数组中,并输出数组数据实验七简单函数一.实验目的:1 .理解函数的概念和应用。2 .掌握无参无返回函数的使用。3 .掌握无参有返回函数的使用。二.案例项目1 .完成主函数中的下列自定义函数:1)无参无返回的函数inputlnfo( ): /输入一个学生的信息(name, number, score 3)2)无参无返回的函数Outputlnfo。; 4)无参有返回的函数Max():求成绩的最大 值.5)无参有返回的函数StandarO:求成绩的方差.6)无参
23、无返回的函数Sort。:对成绩进行排序2 .用上述自定义函数完成主函数的编写 void main() /输入学生 A 的信息(name, number, score 3)掌握有参无返回函数的使用。3 .掌握有参有返回函数的使用。三.案例项目1 .定义一个带参数并有返回值的函数Average( int score3),计算学生成绩score3 的均值,并将其返回。然后在主程序中调用Average。求均值,并输出均值。2 .用一个数组Student 1000,记录N个学生的学号。定义一个函数AddStudent (int number1),向Student 数组中添加一个学生的学号。然后用该函数添
24、加3个学生的 学号,并输出所有学号。3 .用一个数组Student 1000,记录N个学生的学号。定义一个函数modify (int i, int number),修改Studenti_的学号为参数number,用主程序输入i和number,调用modify ()函数,并输出4 .用一个数组Student1000,记录N个学生的学号。定义一个函数del (int i),删除Student i的学号,并把Student1000数组中的后续数据前移。用主程序输入i, 调用del()函数,并输出删除后的所有学号。实验九指针一实验目的1 了解指针的概念,学会定义和使用指针变量。2 .掌握函数的值调用和
25、引用调用的含义3 .掌握简单变量、数组和指针作为函数参数进行传递的形式二、实验内容1 .运行下列程序,写出运行结果。#include ""main () int a5, *p,j;for(j=0;j<5;j+) aj=j+l;PF;for(j=0; j<5; j+) printf ("* (p+%d) =%dn", j, * (p+j);想使指针变量 pt 1 指向 a 和 b中的大者,pt2指向小者,以下程序能否实现此目的swap (int *pl, int *p2) int *p;p=pl;pl=p2;p2=p;指针数组score记录两个
26、学生的成绩a3, b3,并用score输出所有成绩.3(选做).输入学生课程的数目,并用指针与动态内存分配函数mallocO记录一个学 生的成绩:pp281 1)函数malloc实验十自定义数据、文件一实验目的1掌握结构体类型的概念和定义方法与使用。2掌握指向结构体变量的指针变量的概念和应用。二案例项目L完成下列自定义函数:1)定义一个学生信息结构体Student_Inf。(其成员变量有姓名,学号,成绩数组,平 均分),并在main。函数中用结构体变量记录一个学生的信息,然后输出该学生的所有 信息。2)用一个结构体数组Studentnfo Student 1000,记录N个学生的结构体变量。定
27、 义一个函数 AddStudent (struct Studentnfo s),向 Student口数组中添加一个学 生的信息。3)定义一个函数find(int number)查找指定学号number的学员,并返回该学生在Student1000数组中的下标i,如果指定学号不存在,返回-1;4)定义一个函数void query(int number):用find(int number)函数根据学号查找 学生在Student1000数组中的下标i,并显示该学员的所有信息。5)定义一个函数void del (int number),根据学号查找学生,并删除该学员信息6)定义一个函数void modi
28、fy (int number),根据学号查找并修改学员的信息2 .用上述自定义函数完成主函数的编写abs、labs、fabs:求绝对值函数2. acos:反余弦函数3. asin:反正弦函数4. at an:反正切函数5. atan2:反正切函数6. ceil:向上舍入函数7. cos :余弦函数8. cosh:双曲余弦函数9. div、Idiv:除法函数10. exp:求e的x次愚函数11. floor:向下舍入函数12. fmod:求模函数13. frexp:分解浮点数函数14. hypot:求直角三角形斜边长函数15. Idexp:装载浮点数函数16. logs loglO:对数函数17
29、. modf:分解双精度数函数18. pow> powlO:指数函数19. rand:产生随机整数函数20. sin:正弦函数21. sinh:双曲正弦函数22. sqrt:开平方函数23. srand:设置随机时间的种子函数24. tan:正切函数25. tanh:双曲正切函数1. abs、labs、fabs:求绝对值函数函数原型:int abs(int x);long labs(long x);double fabs(double x);头文件:#include<>是否是标准函数:是函数功能:函数int abs(int x);是求整数x的绝对值;函数long labs (
30、long n); 是求长整型数x的绝对值;函数double fabs (double x);是求浮点数x的绝对值。返回值:返回计算结果。例程如下:计算整数的绝对值。#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例程如下:计算长整数的绝对值。Sinclude <>
31、;int main(void)long x 二一L;printf (""number: %ld absolute value:%ldrT, x, labs(x);return 0;例程说明:本例程通过labs函数计算出长整型数-的绝对值,并在屏幕上显示结果。本例程 的运行结果为:number: - absolute value:例程如下:计算浮点数的绝对值。Sinclude <>int main(void)float x 二;printf ("'number: %f absolute value: %fn,x, fabs(x);return 0
32、;例程说明:本例程通过fabs函数计算出浮点数的绝对值,并在屏幕上显示结果。本例程的运行结果为:number: absolute value:double x =;2. acos:反余弦函数函数原型:double acos (double x);头文件:#include<>是否是标准函数:是函数功能:求X的反余弦值,这里,x为弧度,x的定义域为,arccosx的值 域为0,五。返回值:计算结果的双精度值。例程如下:求arccosx。#include <>Sinclude <>int main(void)result = acos(x);printf C
33、9;arccos %lf=%lfn/,, x, result);return 0;例程说明:本例程应用函数acos计算的反余弦值,即:arccosK返回计算结果的双精度值。本例程的运行结果是: arccos3. asin:反正弦函数函数原型:double asin(double x);头文件:#include<>是否是标准函数:是函数功能:求X的反正弦值,这里,x为弧度,x的定义域为,arcsinx值域 为一丸/2, + n /2 o返回值:计算结果的双精度值。例程如下:求arcsinx。#include <>Sinclude <>int main(void
34、)result = asin(x);printf (z,arcsin %lf is %lfn,x, result);return (0);例程说明:本例程应用函数asin计算的反正弦值,即:arcsinlo返回计算结果的双精度值。本例程的运行结果是: arcsin isdouble x =;函数原型:double atan(double x);头文件:#include<>是否是标准函数:是函数功能:求X的反正切值,这里,x为弧度,x的定义域为(-8,+8), arctanx 的值域为(-五/2, 十五/2) o返回值:计算结果的双精度值。例程如下:求arctanx。#include
35、 <>Sinclude <>int main(void)result = atan (x);printf C'arctan %lf =x, result);return (0);例程说明:本例程应用函数atan计算的反正切值,即:arctanlo并返回计算结果的双精度值。本例程的运行结果是: arctan5. atan2:反正切函数2函数原型:double atan2(double y, double x);头文件:#include<>是否是标准函数:是函数功能:求y/x的反正切值。返回值:计算结果的双精度值。例程如下:求arctan (x/y)。S
36、include <>#include <>int main(void)(double result;double x 二,y 二;result = atan2(y, x);printf (,zarctan%lf =%lfrT, (y / x), result);return 0;例程说明:本例程应用函数atan2计算的反正切值,即:。并返回计算结果的双精度值。本例程 的运行结果是:函数原型:double ceil (double x);头文件:#include<>是否是标准函数:是函数功能:将双精度数x向上舍入,即:取它的最大整数。例如:ceil=o返回值:
37、返回计算结果。例程如下:数值的向上舍入。#include <>Sinclude <>int main(void)(double num =;double up;up = ceil(num);printf (/zThe original number%lfn,num);printf (,zThe num rounded up%lfn,up);return 0;例程说明:本例程通过函数ceil将双精度数向上舍入,得到的结果为,并在屏幕上显示运算结果。本例程的运行结果为:The original numberThe num rounded up7. cos :余弦函数函数原型
38、:double cos (double x);头文件:SincludeO是否是标准函数:是函数功能:求X的余弦值,这里,X为弧度。返回值:计算结果的双精度值。例程如下:求COSX。#include <>Sinclude <>int main(void)(double result;double x = M_PI;result = cos(x);printf (z,cos (PI) is %lfrT, result);return 0;例程说明:本例程应用cos函数计算/的余弦值,即:cosn,再返回计算结果的双精度值。本例程的运行结果是: cos(PI) is函数原型:
39、dluble cosh (double x);头文件:#include<>是否是标准函数:是函数功能:计算X的双曲余弦值。其中ch(x)=(ex+e-x)/2。返回值:计算结果的双精度值。例程如下:求x的双曲余弦值ch(x) o#include <>Sinclude <>int main(void)(double result;result = cosh(x);printf (z,ch(%lf) =x, result);return 0;例程说明:本例程应用函数cosh计算的双曲余弦值,即:ch,并返回计算结果的双精度值。本例程的运行结果是: ch =函数原
40、型:div_t div(int number, int denom);ldiv_t Idiv(long Inumer, long 1denom);头文件:SincludeO是否是标准函数:是函数功能:函数div是将两个整数numbe和denom相除,返回商和余数。函数Idiv 是将两个长整数Inumbe和1 denom相除,返回商和余数。返回值:函数div返回div_t类型的值;函数Idiv返回ldiv_t类型的值。例程如下:两整数相除,求其商和余数。Sinclude <>Sinclude <>div_t x;printf (z,ll div 5 = %d remain
41、der %dn,,;return 0;例程说明:本例程通过div函数将11和5相除,返回其商和余数。注意:div函数并不是中的函数,而是中的函数。中包含存储分配函数和 一些杂项函数。但由于div函数具有数学计算的功能,因此将其归类到数学函数中。div_t是中定义的数据类型,它是一个结构体,定义如下:typedef structint quot;/*商*/int rem;/*余数*/其中包含两个域:商和余数。div函数将两个整数相除,返回一个div_t类型的 值。该函数的运行结果是:11 div 2=5 remainder 1例程如下:两长整数相除,求其商和余数。#include <>
42、;Sinclude <>ldiv_t lx;int main(void)(lx = ldiv(200000L, 70000L);printf(“200000 div 70000 = %ld remainder %ldrT,return 0;例程说明:本例程通过Idiv函数将长整数200000与70000相除,并返回其商和余数。注意:同函数div一样,函数Idiv是中的函数。ldiv_t是中定义的数据类型,它是一个结构体,定义如下:typedef struct long quot;long rem; ldiv_t;其中包含两个域:商和余数。Idiv函数将两个长整数相除,返回一个ldi
43、v_t类 型的值。该函数的运行结果是:200000 div 70000 = 2 remainder 6000010. exp:求e的x次幕函数函数原型:double exp (double x);头文件:SincludeO是否是标准函数:是函数功能:计算自然常数e的x塞。返回值:返回计算结果的双精度值。例程如下:计算ex (说明:e=.)。#include <>Sinclude <>int main(void)(double result;double x =;result = exp (x);printf C' e raised to the power of
44、 %lf (e - %lf) =x, x, result);return 0;例程说明:本例程应用函数exp计算e3,该函数返回计算结果的双精度值。本例程的运行结 果为:e raised to the power of (e函数原型:double floor (double x);头文件:#include<>是否是标准函数:是函数功能:将双精度数x向下舍入,即:取它的最小整数。例如:floor:。返回值:返回计算结果。例程如下:数值的向下舍入。#include <>Sinclude <>int main(void)(double num =;double u
45、p;up = floor(num);printf (/zThe original number %lfn,num);printf (,zThe num rounded down %lfn/z, up);return 0;例程说明:本例程通过函数fl。!'将双精度数向下舍入,得到的结果为,并在屏幕上显示运算结果。本例程的运行结果为:The original numberThe num rounded down12. fmod:求模函数函数原型:double fmod(double x, double y);头文件:SincludeO是否是标准函数:是函数功能:计算x对y的模,即x/y的余
46、数。返回值:返回计算结果,即余数的双精度。例程如下:计算两数的余数。#include <>Sinclude <>int main(void)float x, y;y二;printf (:%fn, fmod (x, y);getchar ();return 0;例程说明:本例程通过函数fmod求双精度数和的模,其结果为:。本例程的运行结果为:函数原型:double frexp(double val, int *exp);头文件:#include<>是否是标准函数:是函数功能:把浮点数或双精度数val分解为数字部分(尾数部分)x和以2为底 的指数部分no即val
47、=x*2n,其中n存放在exp指向的变量中。返回值:返回尾数部分x的双精度值,且Wxl。例程如下:应用函数frexp分解浮点数。#include <>Sinclude <>int main(void)float x;int exp;x=frexp,&exp);printf (二虬 2f*2飞d,x, exp);getchar ();return 0;例程说明:本例程通过函数frexp将浮点数分解为尾数和以2为底的指数7o该函数将指数 7存放在变量exp中,并返回一个双精度的尾数。本例程的运行结果为:14. hypot:求直角三角形斜边长函数函数原型:double
48、 hypot (double x, double y);头文件:#include<>是否是标准函数:是函数功能:x,y为给定的直角三角形两直角边,求该直角三角形的斜边。返回值:返回计算结果的双精度值。例程如下:根据两直角边求斜边的长。#include <>Sinclude <>int main(void)(double result;double x =;double y =;result = hypot (x, y);printf C'The hypotenuse is: %lfn,z, result);return 0;例程说明:本例程中,己知两
49、直角边长度:x=;y二,应用函数hypot求出其斜边长度。本例程的运行结果为:The hypotenuse is:15. Idexp:装载浮点数函数函数原型:double Idexp(double val, int exp);头文件:#include<>是否是标准函数:是函数功能:功能与函数frexp相反,将给定的尾数,指数装载成相应的双精度数 或浮点数。即计算val*2n,其中n为参数exp的值。返回值:返回val*2n的计算结果。例程如下:应用函数frexp装载浮点数。#include <>Sinclude <>int main(void)double
50、value;double x =;value = Idexp (x,3);printf C'The Idexp value is: %lfn,value);getchar ();return 0;例程说明:本例程通过函数Idexp将尾数与指数3装载成相应的双精度数。即:*23=o该 函数返回一个双精度数。本例程的运行结果为:The Idexp value is:16. log、loglO:对数函数函数原型:double log (double x);double loglO(double x);头文件:SincludeO是否是标准函数:是函数功能:求对数。函数log是求以e为底的x的对
51、数(自然对数)即:Inx; 函数loglO是求以10为底的x的对数,B|J: loglOxo返回值:返回计算结果的双精度值。例程如下:计算Inx。Sinclude <>#include <>int main(void)double result;double x = M_E;result = log(x);printf (/zThe natural log of %lf is %lfn/z, x, result);return 0;例程说明:本例程应用函数log计算双精度数M_E的自然对数,其中M_E为中定义的常数#define M_E就等于e,因此,本例程的运行结果为
52、:The natural log of is例程如下:计算loglOx。Sinclude <>#include <> int main(void)double result;double x 二;result = loglO(x);printf (,zThe common log of %lf is %lfnz x, result);return 0;)例程说明:本例程应用函数loglO计算双精度数的以10为底的对数,该函数返回的结果仍 是双精度数。本例程的运行结果为:The common log of is17. modf:分解双精度数函数函数原型:double mo
53、df (double num, double *i);头文件:#include<>是否是标准函数:是函数功能:把双精度数num分解为整数部分和小数部分,并把整数部分存到i指 向的单元中。返回值:返回num的小数部分的双精度值。例程如下:应用函数modf分解双精度数。#include <>Sinclude <>int main(void)double fraction, integer;double number =;fraction = modf(number, ftinteger);printf(Z/The integer and the fraction
54、 of %lf are %lf and %lfnz/,number, integer, fraction);return 0;)例程说明:本例程将双精度数分解为整数部分和小数部分,并将整数部分存入变量integer 中,返回小数部分。最后在屏幕上显示结果。本例程的运行结果为:The integer and the fraction of are and18. pow、powlO:指数函数函数原型:double pow(double x, double y);double powlO(int x);头文件:SincludeO是否是标准函数:是函数功能:指数函数。函数pow是求X的y次方;函数po
55、wlO相当于pow, X),是 求10的x次方。返回值:返回计算结果的双精度值。例程如下:计算xy。Sinclude <>#include <>int main(void)printf (/zThe result of %lf raised to %lf is %lfnz,, x, y, pow(x, y);return 0;例程说明:本例程中,应用函数POW计算210,并将结果的双精度值返回。本例程的运行结 果为:The result of raised to is例程如下:计算10xoSinclude <>Sinclude <>double x =;printf (,zThe result of 10 raised to %lf isx, powlO(x);return 0;本例程中,应用函数powlO计算102,并将结果的双精度值返回。本例程的运行结果为:The result of 10 raised to is19. rand:产生随机整数函数函数原型:int rand (void);头文件:#include<>是否是标准函数:是函数功能:产生-90到32767之间的随机整数。返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 喉角化不全症护理查房
- 徐家汇租房合同
- 2026年国企内部遴选工作人员笔试试题及答案解析
- 盐池中学2025-2026学年高一下学期期中考试生物 试卷
- 成人白内障手术操作规范总结2026
- 《结构设计原理》课件-无锡高架桥侧翻事故
- 2026年二年级乘除法入门
- 预算管理办法
- 展架代理销售合作合同协议书
- 2026七年级数学下册 不等式与不等式组应用实例三
- 2026云南玉溪通海县供销合作社社有企业招聘4人考试参考题库及答案解析
- 五月志愿服务课件:青春建功新时代 志愿奉献谱华章
- 堆与堆排序课件
- 破碎岩石施工方案(3篇)
- GB/T 17889.7-2026梯子第7部分:可分离式平台梯
- 中国遗传咨询指南(2025版)
- 深度解析(2026)《NBT 10096-2018电力建设工程施工安全管理导则》
- 2026春译林8下单词表【Unit1-8】(可编辑版)
- 2026年全国硕士研究生招生考试英语(一)试题 附答案
- 建筑工程进场材料、构配件和设备质量控制工作标准
- 雨课堂学堂云在线《预防医学(中国医大 )》单元测试考核答案
评论
0/150
提交评论