C语言程序设计项目7函数
- 格式:ppt
- 大小:554.00 KB
- 文档页数:16
实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。
例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。
注意:n 的值要求不大于100。
算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。
注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。
n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。
参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。
合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。
例如,当a=45,b=12,调用该函数后,c=5241。
算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。
C 语言程序设计主编:高立兵1职业教育“十二五”规划教材项目7 函数1项目8 指针2项目9 结构与联合3项目10 位运算4项目11 文件5 目 录项目1 C语言概述1项目2 数据类型、运算符与表达式2项目3 顺序结构程序设计3项目4 选择结构程序设计4项目5 循环结构程序设计5项目6 数组5附件5项目1 C语言概论1Ø项目导读Ø项目目标Ø项目任务本项目主要对C 语言的一些基础知识及其字符集和词汇进行介绍,使读者在学习C 语言之前对其有个全面的认识。
项目导读● 安装、配置TC2.0和VC++6.0,成功启动TC2.0和VC++6.0。
● 能编写一个简单的C 程序的源文件,并编译该源文件,链接目标文件得到可执行文件。
项目目标任务1.1 C语言的发展与特点C语言是1972年由美国的Dennis Ritchie设计发明的,并首次在配备了UNIX操作系统的DEC PDP-11计算机上实现。
它由早期的编程语言BCPL(Basic Combined Programming Language)发展演变而来。
C语言的特点1、C语言是中级语言2、C语言是结构化语言3、C语言功能齐全4、C语言适用范围广任务1.2 认识C语言本任务通过几个简单的C程序,介绍C语言的基本组成和格式。
案例1.1main( ){printf(“This is a c program.\n”);}本程序的功能是输入下列一行信息:This is a c program.任务2.2 数据类型2.2.3 浮点型数据浮点型数据是用来表示具有小数点的实数的。
浮点数类型包括float(单精度浮点型)、double(双精度浮点型)、long double (长双精度浮点型)。
(1)float型(单精度浮点型)。
编译系统为每一个float型变量分配4个字节,数值以规范化的二进制数值形式存放在存储单元中。
在存储时,系统将实型数据分成小数部分和指数部分两个部分,分别存放。
C语⾔程序设计实验(5-7)实验41. 以下⼏段源程序有错,请调试修改正确。
①/*源程序实现的功能:输⼊两个实数,按从⼩到⼤的顺序输出*/ main(){ float a,b,t;scanf(“%f,%f”,&a,&b);if (a>b)t=a;a=b;b=tprintf(“%5.2f,%5.2f”,a,b);}#includeint main(){float a,b,t;scanf("%f,%f",&a,&b);if (a>b){t=a;a=b;b=t;}printf("%5.2f,%5.2f",a,b);}②该源程序实现的功能是:有如下函数关系:x (x>0)y= ? 2 (x=0)3x (x<0)根据输⼊的x值,求出y的值。
main( ){ int x,y;printf(“Enter x:”);scanf(“%d”,&x);if x>0 y=x;else if(x=0) y=2;else y=3*x;printf(“x=%d y=%d\n”,x,y);}#includeprintf("Enter x:");scanf("%d",&x);if(x>0)y=x;else if(x==0)y=2;else y=3*x;printf("x=%d y=%d\n",x,y);}#includeint main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x<10)y=2*x-1;elsey=3*x-11;printf("y=%d",y);}某物品原有价值为p, 由于使⽤使其价值降低,价值的折扣率根据时间t(⽉数)确定如下:t<3,⽆折扣3<=t<6,2%折扣6<=t<12,5%折扣12=t>=21,10%折扣编程实现:根据输⼊的时间和原有价值计算物品的现有价值。