C语言程序设计实验及代码_第1页
C语言程序设计实验及代码_第2页
C语言程序设计实验及代码_第3页
C语言程序设计实验及代码_第4页
C语言程序设计实验及代码_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、西南林业大学C 语言程序设计实验题、代码、输出结果编写目的:学生的痛,大家都明白,特别是学渣的痛。呃,不过我渐渐从学渣成功逆袭,所以最后才会整理下这些信息,为了让后面的人在面对这C语言时不会那么脑大,不用像我们开始时候的茫然。认真享受在课堂上 GET知识的过程,接下去的事:作业考试也是水到渠成的事情,有的课程的却要花点时间,但就 像那句话说的:No pain,no get. 付出不一定会有收获,但是不付出一定会让你后悔。所以,认真听课,不仅仅只是C 语言,还有其他的课程。实验题 目及代 码 、 输 出 结 果 实验题目目录P1P6Printf 简单输出三角形P6给定圆半径值为5,编程求圆面积和

2、圆周长P6编写一个摄氏温度与华氏温度之间的转换程序P6编写程序,从键盘上输入两个电阻值,求它们并联电阻值和串联电阻值,输出结果保留两位小数。 P7 (有主函数子函数 P26)使用两种指定的方法打印正三角形数阵P7从键盘输入3 个数字字符,将它们分别转换为对应的整数值(即字符0转换为整数0,字符1转换为整数 1,依次类推),然后求3个整数的平均值。P8从键盘输入两个两位的正整数,按照以下格式组装成一个四位的正整数。P8 (指针变量 P19)输入三角形的三条边长,求三角形的面积。P9从键盘任意输入3 个整数,选出其中的最大数并打印。-P10从键盘输入三个正整数,判断否能构成三角形的三边?-P10从

3、键盘输入一个合法的算术运算符(+、-、*、/)及两个实数,使用if 语句编写程序,根据输入的运算符判断对这两个实数进行何种运算,弁打印运算结果(要求结果保留两位小数)。P11 (有主函数子函数P21)从键盘输入一个年份和一个月份,使用switch语句编程判断弁打印该月的天数P12从键盘输入1个整型的分数,使用switch语句编程,判断如果分数介于0 59分之间就打印“不及格”;如果介于60 79分之间就打印“及格”; 如果介于80 89之间就打印“良好”;如果介于90 100之间就打印“优 秀”。P13使用while语句编程求100以内能被5整除但不能同时被7整除的数,弁统计找到的数的个数。

4、P13从键盘输入一个正整数,使用 while语句编程求该整数是一个几位数。P14使用 while语句编程求 = 一的前 n项和P14使用for语句编程求 = 的前n项和P15使用for语句编程求 =的前 n项和P16使用for语句的嵌套结构编程打印九-九乘法表P16定义一个大小为10的整型一维数组,初始化所有数组元素,编程查找数组中的所有奇数,弁统计奇数的个数 P17定义一个大小为10的整型一维数组,初始化其中的 9个元素,这9个元素已经按照降序排列。 从键盘再输入1个整数,将该整数插入到已有的元素中,需保证这10个数仍然按照降序排序。P18利用指针编程,其功能是求电阻的弁联值和串联值。 P1

5、8利用指针编程,其功能是利用“除号”和“求余号”将输入的两个两位的正整数组合成一个新的四位的正整数。 P16定义一个大小为10的整型一维数组弁初始化数组元素,再定义一个指 针变量让其指向该数组,利用指针编程查找数组中的所有奇数。P20输入三角形的三条边长,定义一个子函数fun()求三角形的面积P21定义一个子函数fun()打印菱形。P22定义一个子函数fun(),其功能是求1累加到100的和P23定义一个子函数fun(),求表达式 =的前n项和P23定义一个fun()函数,其功能是:求两个整数的和、差、积、商。P26在主函数中输入一元二次方程ax2+bx+c=0的三个系数a、b、c,求方程的实

6、根。定义三个子函数fun1(卜fun2(卜fun3()分别处理方程有无实根、有两个相同实根、有两个不同实根的情况P27从键盘上输入一个的字符串,输出所有ASCII码为奇数的字符,弁统计这些字符的个数。 P28从键盘上输入一个由大写字母、小写字母、数字字符、其它字符构成的字符串,统计字符串中的大写字母个数、小写字母个数、数字字符个数、其它字符个数。P28从键盘输入两个字符串, 分别存到字符数组a和字符数组b中,编程将第二个字符串连接到第一个字符串末尾,形成一个新字符串。(不使用#include<string.h> 库函数)P29使用while语句编程求 二(n从0开始)前n项值,直到

7、某一项的值小于10-6就结束循环。P30使用for语句的嵌套结构编程打印行数为奇数的对称三教菱形P31从键盘输入一个正整数 X,编程求比x大的,最临近x的n个素数,例 如,为x和n分别输入数值1诉口 15,就表示求出比10大的,最临近10的15个素数。P31题目及答案printf()函数的编程练习格式1编程输出如图所示的三角形。void main()printf("*n ");printf("*n ");printf("*n ");printf("*n ");给定圆半径值为5,编程求圆面积和圆周长提示:(1)本题需

8、定义三个浮点型变量,如 double r = 5, s, l;(2)输出浮点型数据的格式说明符是lf(3) C语言中没有n这个符号,编写程序时直接使用3.14159(4) C语言中没有求次方的运算符,求次方可用连乘的方法#include<stdio.h>#define PI 3.14159 int main()float r=5;printf("圆半径=%lfn 圆面积=%fn 圆周长=%fn",r,PI*r*r,2*PI*r);(其中一个数的n次方可以用数学运算来算pow(r,n), “r”为底数,n为次数)scanf()函数、运算符编程练习编写一个摄氏温度与

9、华氏温度之间的转换程序,转换公式是:提示:该公式中的C'是一个从键盘输入的已知量;F” 是通过公式计算并打印出来的未知量#include <stdio.h> void main()double F,C;printf("请输入一个摄氏温度值:”,C);scanf("%lf",&C);F=1.8*C+32/或F=9/5*C+32若定义类型为int,则需要变为 F=9.0/5*C+32或 F=9/5.0*C+32或用强制类型转换 F= (double) (9/5) *C+32;原因是除号“ /”在运 算时为整型运算printf("对

10、应的华氏温度值是:%.2lf',F);编写程序,从键盘上输入两个电阻值,求它们并联电阻值和串联电阻值,输出结果保留 两位小数。运行结果如图所示:注:并联和串联的电阻值计算公式如下。(1)并联电阻RP =R1*R2R1+R2(2)串联电阻 RS = R1+R2提示:(1) scanf()函数可以写成 scanf("%d,%d", &r1, &r2);(2)结果保留两位小数的格式说明符是“ .2lf ”。#include <stdio.h>void main()double R1,R2,RP,RS;printf("请输入两个电阻值:

11、",R1,R2);scanf("%lf,%lf",&R1,&R2);RP=(R1*R2)/(R1+R2);RS=R1+R2;printf("并联电阻值:.2lf n串联电阻阻值:.2lf",RP,RS); 字符的输入和输出1、使用两种指定的方法打印如图所示图形。方法一:使用printf() 函数的%C'格式打印图形。方法二:使用printf()方法一:#include<stdio.h> void main() printf("%4dn %4dn %dn”,1,22 2,33333);%法二:#inc

12、lude<stdio.h>void main()char a,b,c;a='1'b='2'c='3'printf(" %cn", a);printf(" %c%c%cn", b,b,b);1、从键盘输入3个数字字符,将它们 分别转换为对应的整数值(即字符0' 转换为整数0,字符1'转换为整数1, 依次类推),然后求3个整数的平均值。 运行结果如图所示:提示:本题的变量定义可参考如下:char a, b, c; / 变量 a,b,c保存输入的3个数字字符int x, y, z; /

13、 变量 x,y,z保存转换后的3个整数double aver; / 变量 aver 保 存求出的平均值#include<stdio.h>#include<math.h>void main(void)double a,b,c,d;函数的%d格式打印图形printf("%c%c%c%c%cn",c,c,c,c, c);方法二的类似(运用 ASCL网)#include<stdio.h>void main()int a,b,c;a=49;b=50c=51;printf(" %cn", a);printf(" %c%c

14、%cn", b,b,b);printf("%c%c%c%c%cn",c,c,c,c, c);printf("请输入三个数字字符:");scanf("%lf,%lf,%lf',&a,&b,&c);d=(a+b+c)/3;printf("平均值=%lfn",d);#include <stdio.h>void main(void)(char a,b,c;int x,y,z;double aver;printf("请输入三个数字字符:”);scanf("%c,

15、%c,%c",&a,&b,&c);x=a-48;y=b-48;z=c-48;aver=(x+y+z)/3.0;printf(" 平 均 值 为:2lf',aver)提示:一个%C只能打印一个字符。从键盘输入两个两位的正整数,按照以下格式组装成一个四位的正整数。例如:输入12和34,组装成的四位数是1324。运行效果如右图所示:提示:(1)首先利用 除号”和求余号”分别把两个两位正整数的十位数、个位数分离开;再经过数学运算组装成一个四位数。(2) scanf()函数可以写成 scanf("%d%d", &a, &am

16、p;b);匕三 *C:estDebugprog. eze"请输入两个两位的正整数;12 34 里百成的四位正整数是:1324Press fliny key to< cant inueH#include<stdio.h>#include<math.h>void main(void)int a,b,z;printf("请输入两个两位数的正数:");scanf("%d %d",&a,&b);z=a/10*1000+b/10*100+a%10*10+b%10;printf("合成的四位正整数是:d

17、n",z);数学函数的使用1、输入三角形的三条边长,求三角形的面积。运行结果如图所示:提示:(1)本题的变量定义可参考如下:int a, b, c; double x, s;(2) scanf()函数可以写成scanf("%d,%d,%d", &a, &b, &c);(3)计算三角形面积的公式是:(4)求x的开方值的库函数是 sqrt(x),使扁心包含头文件math.h#include<stdio.h>#include<math.h>void main(void)int a,b,c;double x,s;printf

18、(" 请输入三角形的三边:");scanf("%d %d %d",&a,&b,&c);x=(a+b+c)/2;s=sqrt(x-a)*(x-b)*(x-c)*x);printf("s=%lfn",s);单分支 if 语句编程练习从键盘任意输入3 个整数,选出其中的最大数并打印。提示 :( 1) 要判断最大数,需对每两个数作两两比较。( 2) 可以使用3 个 单分支 if 语句编写程序。( 3) 从键盘输入2 个整数到变量a、 b 中,编程总是把较小的数放入a 中,较大的数放入b 中。#include <s

19、tdio.h>void main()int a,b,c,t;printf(" 请输入三个整数:");scanf("%d%d%d",&a,&b,&c);if(a<b)t=a;a=b;b=t;if(a<c)t=a;a=c;c=t;if(b<c)t=b;b=c;c=t;printf(" 最大数是:%dn",a);#include <stdio.h>void main()int a,b,t;printf(" 请输入两个整数到变量 a,b 中 ");scanf(&q

20、uot;%d%d",&a,&b);printf("a=%d,b=%dn",a,b);if(a>b)t=a;a=b;b=t;printf(" 运 行 结果 :a=%d,b=%dn",a,b);elseprintf(" 运 行 结果 :a=%d,b=%dn",a,b);从键盘输入三个 正整数,判断否能构成三角形的三边?如果能就按照以下提示 的数学公式计算三角形的面积;如果不能,就输出“不能构成二角形”的提示信息C提示:(1)该题属于 双分支if-else 语句”结构。(2)能构成三角形的逻辑条件是:任意的两

21、边之和均要大于第三边。(3)计算三角形面积的公式是:(4)本题的变量定义可参考如下:int a, b, c;其中 double x, s;(5)本题要用到求x开方值的数学库函数sqrt(x),需包含头文件math.h#include<stdio.h>#include<math.h>void main(void)int a,b,c,m,n,t;double x,s;printf("请输入三角形的三边:");scanf("%d %d %d",&a,&b,&c);m=a+b;n=b+c;t=a+c;if(m>

22、;c&&n>a&&t>b)x=(a+b+c)/2;s=sqrt(x-a)*(x-b)*(x-q*x);printf("构成的三角形面积是:%.2lfn",s);elseprintf("不能构成三角形n");从键盘输入一个合法的算术运算符(+、-、*、/)及两个实数,使用if语句编写程序,根据输入的运算符判断对这两个实数进行何种运算,并打印运算结果(要求结果保留两位小数)。程序运行效果如下图所示:提示:(1)该题属于多分支if语句”结构。(2)本题的变量定义可参考如下:char fu; /fu变量用来存放运算符d

23、ouble x, y, z; /x、y变量用来存放输入的2个实数,z存放运算结果(3)输入字符型数据的格式说明符是 c,实型数据的格式说明符是 %lf o(4)输出实数保留2位小数的格式说明符是 .2lf。(5)本题可参考教材P61例3.7 ,但是不允许使用switch语句编写该题程序。#include<stdio.h>void main()char fu;double x,y,z;int t,a;printf("请输入一个算数运算符和两个浮点数");scanf("%c %lf %lf",&fu,&x,&y);t=47

24、-fu;if(t=4)z=x+y;printf("%.2lf %c %.2lf = %.2lfn",x, fu ,y ,z);else if(t=5)z=x*y;printf("%.2lf %c %.2lf = %.2lfn",x, fu ,y ,z);else if(t=2)z=x-y;printf("%.2lf %c %.2lf = %.2lfn",x, fu ,y ,z);else if(t=0)z=x/y;printf("%.2lf%c %.2lf=%.2lfn",x,fu ,y ,z);elseprint

25、f(" 运算符非法,无法参与运算n");从键盘输入一个年份和一个月份,使用 switch 语句编程判断并打印该月的天数。程序运行效果如下所示: 提示:( 1)本题先使用if 语句 判断年份和月份是否有效。( 2)如果年份和月份有效,再嵌套switch 语句判断每个月份的天数。(3)对于2月份的处理需要判断闰年,闰年的判断方法请 参考教材P6第J3.8#include<stdio.h>void main()int year,month,day printf(" 请输入一个年份和一个月份:;");scanf("%d %d",&

26、amp;year,&month);if(month>0&&month<=12)switch(month)case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("%d 月有 31 天 n",month);break;case 4:case 6:case 9:case 11:printf("%d 月有 30 天 n",month);break;default:if(year%4=0&&year%100!=0)|(year%400=0)printf

27、("2 月有29 天 n");elseprintf("2 月有28 天 n");break;elseprintf(" 输入的月份值无效!");从键盘输入1 个整型的分数,使用 switch 语句编程 ,判断如果分数介于0 59“”; 如果介于60 79 分之间就打印“及格”; 如果介于80 89“”; 如果介于90 100 之间就打印“优秀”。#include<stdio.h>void main()int a,b;printf(" 请输入一个分数介于<0 100>间:");scanf(&qu

28、ot;%d",&a);if(a>0&&a<=100)b=a/10;switch(b)case 6:printf(" 及格 n");break;case 8:printf(" 良好 n");break;case 9:case 10:printf(" 优秀 n");break;default:printf(" 不及格 n");break;case 7:else效! n");printf("输入的分数份值无 使用while语句编程求100以内能被5整除但不

29、能同时被7整除的数,并统计找 到的数的个数。提示:(1)该题变量可定义为:int i=1, n=0;/ i是循环变量,n是统计个数的变量(2)整除问题应使用求余号“%而不能使用除号”/#include<stdio.h>void main()int i,n,b,c;i=1;n=0;printf("100以内能被5整除 但不能司时被7整除的数是:n");while(i<=100)b=i%5;从键盘输入一个正整数c=i%7; if(b=0&&c!=0) printf("%d ",i); n=n+1; i+;人 printf(&

30、quot;符合条件的数有 %d 个 n",n);使用while语句编程求该整数是一个几位数。程序运行效果如下所示:提示:(1)该题变量可定义为int x, n=0, m;其中,x保存输入的正整数,n统计位数,m暂存x的值。(2)每次循环将x的值缩小10倍,直到x缩小为0即结束循环,循环次数就是整数的位数。#include<stdio.h>void main()int x,n,m,i;n=0;printf("请输入一个正整数:");scanf("%d",&x);i=x;while(m!=0)m=x/10;n+;x=m;prin

31、tf("%d 是一个 d 位数 n",i,n);使用while语句编程求以下表达式的值,程序运行结果如图所示: 提示:(1)该题变量可定义为:int i;(2)本题的循环体里有3个通式:分母的通式、当前项的通式、求和的double mu, t, sum;sum=1/mu+t;t=sum;i+;mu=mu+i;printf("表达式的值为:n"); printf("sum= %fn",sum);如果从键盘输入20赋t=sqrt(i,2); b=b+t;通式、i自增的通式#include<stdio.h>void main()

32、int i;double mu,t,sum;mu=1;t=0;i=1;while(i<=10)for语句编程练习1、使用for语句编程求以下表达式的值,值给变量n,则运行效果如图所示: 提示:(1)该题变量可定义为int i, n; double t, sum;(2)本题需用到求开方值的数学函数 sqrt(),并包含头文件math.h#include<stdio.h>#include<math.h>void main()int i,n;double t,sum,b=0;printf("请输入整数值:");scanf("%d"

33、,&n);sum=0;for(i=0;i<=20;i+) sum=sum+b; printf("sum=%lfn",sum);使用for语句编程求以下表达式的值,程序运行结果如图所示:提示:(1)注意观察可知相邻两项中,后一项的分母是前一项的分母加i值(2)该题变量可定义为:int i;double mu, t, sum;其中i是循环变量,mu保存每一次循环的当前项的分母,t保存每一次循环的当前项,sum保存N项式的总和#include<stdio.h>void main()int i;double t=0,sum=0,mu=0;for(i=1;i

34、<=10;i+)mu=mu+i;t=1/mu;sum=sum+t;printf("表达式值为:n");printf("sum=%lfn",sum);循环的嵌套编程练习 使用for语句的嵌套结构编程打印九-九乘法表,程序运行效果如图所示:#include<stdio.h>void main()int i,m,n;for(i=1 ;i<10;i+)for(m=1;m<=i;m+)n=i*m;printf("%d*%d=%d ",m,i,n);printf("n");定义一个大小为10的整型

35、一维数组,初始化所有数组元素,编程查找数组中的所有奇数,并统计奇数的个数。运行效果如图所示: 提示:(1) 本题变量定义可参考如下int a10=2,4,5,6,9,11,13,16,17,19, i, sum=0;(2)首先用一个for循环打印10个数组元素的初值。(3)再用一个for循环嵌套if语句查找并打印数组中的奇数。(1)源程序粘贴在此处。#include<stdio.h>/#define N 10 void main() inta10=2,4,5,6,9,11,13,16,17,1 9, i,n=0;printf("数组中的初始值是:");for(i

36、=0;i<10;i+) printf("%d ",ai);printf("n");printf("n");printf("数组中的奇数是:");for(i=0;i<=10;i+)if(ai%2!=0) printf("%d ",ai);n+;printf("n");printf("n");printf(" 奇 数 个 数 是:dn",n);定义一个大小为10的整型一维数组,初始化其中的 9个元素,这9个元素已经按照降序排列。

37、从键盘再输入1个整数,将该整数插入到已有的元素中,需保证这10个数仍然按照降序排序。程序运行效果如下图所示: 提示:(1)本题变量定义可参考如下int a10=20, 18, 15, 12, 10, 9, 7, 5, 2, i, j, t;(2)本题使用冒泡法排序,先将键盘输入的1个整数放到数组元素a9中,然后#include<stdio.h> /#define N 10 void main()使用排序算法对这10个数进行降序排序。int a9= 20, 18, 15, 12, 10, 9, 7, 5, 2;int i,j,t,printf(" 数组中刖面9个兀素是:n&

38、quot;);for(i=0;i<9;i+) ");printf("%d ",ai);printf("n");printf("n");printf("请输入一个整数:scanf("%d",&a9);printf("n");printf(" 数组中的10个元 素是:n");for(i=0;i<10;i+)printf("%d ",ai);printf("n");printf("n"

39、;);for(i=0;i<10;i+)数为:for(j=0;j<9-i;j+) I!if(aj<aj+1)t=aj; aj=aj+1; aj+1=t; printf(" 降序排序后的整);for(i=0;i<10;i+)printf("%d ",ai);printf("n");利用指针编程,其功能是求电阻的并联值和串联值。程序运行效果如图所示: 要求:输入电阻值;计算并联串联值;打印结果都必须使用指针完成。提示:(1)该题的变量可定义为int r1, r2, *p1, *p2;double rp, rs, *pp, *p

40、s;其中指针pl、p2用来指向并操作变量ri、r2 ;指针pp、ps用来指向并操作变量rp、 rs o(2)在利用指针编程之前,应将指针指向对应的变量。#include<stdio.h> void main() int ri, r2, *p1, *p2;double rp, rs, *pp, *ps;printf("请输入两个电阻值");scanf("%d %d",&r1,&r2);p1=&r1;p2=&r2;rp=(double)(*p1 * *p2) / (double)(*p1 + *p2); rs=*p

41、1+*p2;pp=&rp;ps=&rs;printf(" 并联电阻组织=%lfn",*pp);print他串联电阻组织 =%lfn",*ps);利用指针编程,其功能是利用除号”和求余号”将输入的两个两位的正整数组合成一个新的四位的正整数。要求 :输入整数值;计算;打印结果都必须使用指针完成。提示 :该题的变量可定义为int a, b, c, *pa, *pb, *pc;其中指针pa、pb、pc分别用来指向并操作变量a、b、c。变量a、b用来存放输入的两个两位正整数,变量c 用来存放组合后的四位的正整数。 方法一 #include<stdio.

42、h>void main()int a,b,c,*pa,*pb,*pc;printf(" 请输入两个两位数的正整数:");scanf("%d %d",&a,&b);pa=&a;pb=&b;c=*pa/10*1000+*pb/10*100+*pa%10*10+*pb%10;pc=&c;printf(" 组合成的四位正整数是:%dn",*pc); 方法二 #include<stdio.h>void main()int a,b,c,*pa,*pb,*pc;printf(" 请

43、输入两个两位数的正整数:");pa=&a;pb=&b;scanf("%d %d",pa,pb);c=*pa/10*1000+*pb/10*100+*pa%10*10+*pb%10;pc=&c;printf("%dn",*pc);/ Int前不能空行,不然无法识别。定义一个大小为10的整型一维数组并初始化数组元素,再定义一个指针变量让其指向该数组,利用指针编程查找数组中的所有奇数 。运行效果如图所示: 提示:1) 该题变量可定义为int a10=2,4,5,6,9,11,13,16,17,19, *p, i;2)在使用指针

44、编程之前,应先将指针p 指向数组。要求: 使用“ 下标法 ”编程,即使用“pi 方法一 #include<stdio.h>void main()inta10=2,4,5,6,9,11,13,16,17,19,*p,i,n=0;p=&ai; ( p=a; )printf(" 数组中的初始值是:");for(p=a,i=0;i<10;i+)(for(i=0;i<10;i+)printf("%d ",pi);printf("n");printf("n");printf(" 数组中

45、的奇数是:");for(p=a,i=0;i<=9;i+)(for(i=0;i<=9;i+)if(pi%2!=0) printf("%d",pi);n+;printf("n");printf("n");printf(" 奇 数 个 数是: %dn",n); 方法二 #include<stdio.h> void main()int a10=2,4,5,6,9,11,13,16,17,1 9,*p,i,n=0;p=a;的形式引用数组元素。");for(i=0;i<10;i

46、+)printf("%d ",pi);printf("n");printf("n");printf(" 数组中的奇数是:");for(i=0;i<=9;i+)if(pi%2!=0) printf("%d",pi);n+;printf("n");printf("n");printf(" 奇 数 个 数printf(" 数组中的初始值是:是: %dn",n);输入三角形的三条边长,定义一个子函数 fun()求三角形的面积。运

47、行结果如图所示: 要求:(1)数据输入和结果打印都必须在main()函数中完成(2) fun()函数的功能是求三角形的面积。(1)计算三角形面积的公式是:1 ,,、x = (a b c) 2提示:s = Jx(x_a)(x-b)(x-c)其中计算x的开方值的库函数是 sqrt(xf",使用时需包含头文件 math.h(3) fun()函数的函数首部可参考如下double fun(int a, int b, int c)该函数有3个形参,返回值类型为double#include<stdio.h>#include<math.h>double fun(int a,i

48、nt b,int c)double m;double d,s;d=(a+b+c)/2;s=sqrt(d-a)*(d-b)*(d-c)*d);return(s);void main()int a,b,c;double m;printf("请输入三角形的三边:");scanf("%d %d %d",&a,&b,&c);m=fun(a,b,c);printf("三形面积=%lfn",m);定义一个子函数fun()打印菱形。运行结果如图所示: 要求:菱形的行数在main()函数中输入,根据输入的行数决定菱形打印几行提示

49、:( 1) fun( ) 函数的函数首部可参考如下void fun(int x) / 该函数有1 个形参,无返回值( 2)在fun( ) 函数内部,首先根据形参x 的值计算出正三角和倒三角的行数,然后再执行循环的嵌套结构分别打印正三角和倒三角。#include<stdio.h>void fun(int x)int i,j,k;for(i=1;i<=x/2+1;i+)for(k=1;k<=x/2+2-i;k+) printf(" ");for(j=1;j<=2*i-1;j+)printf("*");printf("n

50、");for(i=1;i<=x/2;i+)printf(" ");定义一个子函数fun( ) ,其功能是求要求 :结果在子函数打印。for(k=1;k<=i;k+)printf(" ");for(j=1;j<=x-2*i;j+)printf("*");printf("n");void main()int a;printf(" 请输入菱形的行数(注意:行数为奇数): ");scanf("%d",&a);fun(a);1 累加到 100 的和。

51、提示 : ( 1) fun( ) 函数写在前,main( ) 函数写在后。( 2) fun( ) 函数定义为无参、无返回值形式。#include<stdio.h> void fun()int i,sum=0;for(i=1;i<=100;i+)sum=sum+i;printf("1+2+3+100=%dn",sum);printf("n");void main()fun();定义一个子函数fun(),求表达式Sn = 1 + %,! , %! , %! + %!的值。主函数定义如下所示,请完成 fun()函数#include<st

52、dio.h> double fun(int n);void main()int n;double sum;printf("请输入n的值:");scanf("%d",&n);sum=fun(n);printf("sum=%lfn",sum);double fun(int n)int i;double a=1,b,sum=1;for(i=1;i<=n;i+)a=(double)a*i;b=(double)1/a;sum=sum+b;return(sum);2、定义一个子函数fun( ) 求算术表达式的解。要求 :运算符

53、(+, -, *, /, % )和两个整数在主函数输入,结果也在主函数打印。提示: ( 1)主函数内先判断运算符的有效性,如果运算符有效,就调用fun( )函数。如果运算符非法,就打印错误提示信息,不调用fun( ) 函数。( 2) fun( ) 函数的函数首部可以参考如下double fun(char fu, int a, int b)double fun(char fu, double x, double y ,int t)double ans;if(t=4)ans=x+y;else if(t=5)ans=x*y;else if(t=2)ans=x-y;else if(t=0) ans=x

54、/y; /* elseprintf("运算符非法,无法参与运算n");*/return (ans);#include<stdio.h>void main()char fu;double x,y,z;int t;printf("请输入一个算数运算符和两个浮点数");scanf("%c %lf %lf",&fu,&x,&y);t=47-fu;if(t=4|t=5|t=2|t=0)z=fun(fu,x,y,t);printf("%.21f %c %.2lf=%.2lfn",x ,fu

55、,y ,z);elseca "C:De 5kt opli.Debug T ewt. j二青领入2个电电喧:2, 3 并密电阻值=1.200000并携电阻值=S.000000Press any key to continue其中形参fu代表运算符,形参a、b代表参与运算的两个数,函数返回类型为double ,表示函数的运行结果是实数printf("运算符非法,无法参与运算n");传地址”方式编程参数的“传值”方式与“传地址”方式编程练习i、在主函数中输入2个电阻值,定义-个11mmi子函数求这2个电阻 M 4/的并联电阻值和串联电阻值,并在主函数中输出运算结果。程序

56、运行效果如图所示:提示:(1)主函数中的变量定义可参考如下double a, b, bing, chuan;(2)子函数为有参、无返回值的形式。#include<stdio.h>void fun(double a,double b)(double bing,chuan;bing=(a*b)/(a+b);chuan=a+b;printf("并联电阻阻值=%lfn",bing);g C:Docu>ent s an.printf(" 串联电阻阻值=%lfn",chuan);return;void main()double a,b,bing,c

57、huan;printf("请输入两个电阻值:");scanf("%lf%lf",&a,&b);fun(a,b);2、定义一个fun()函数,其功能是: 求两个整数的和、差、积、商。程序 运行效果如图所示:要求:两个整数值在主函数中输入,运算结果在主函数中输出。子函数是进行运算。提示:(1) main()函数的变量定义为int a, b, he, cha, ji; double shang ;(2)本题需使用参数的传地址方式,fun()函数有6个参数。fun() void fun(int a, int b, int *he, int *ch

58、a, int *ji, double *shang)#include<stdio.h>void fun(int a, int b, int *he, int *cha,int *ji, double *shang)*he=a+b;*cha=a-b;*ji=a*b;*shang=(double)a/(double)b;void main()int a, b, he, cha, double shang ;printf("请输入两个整数:");scanf("%d%d",&a,&b);fun(a,b,&he,&cha,&ji,&shang);printf("和:%d + %d = %d n",a,b,he); printf("差:%d - %d = %d n",a,b,cha);函数首部为:printf("积:%d * %d = %d n",a,b,ji);printf("商:d / %d%lf n",a,b,shang);在主函数中输入一元二次方程 ax2+bx+c=0的三个系数a、b、c,求方程的实根。定

温馨提示

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

评论

0/150

提交评论