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

下载本文档

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

文档简介

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

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

3、10 从键盘输入三个正整数,判断否能构成三角形的三边?-P10从键盘输入一个合法的算术运算符( +、-、*、/ )及两个实数, 使用 if 语句编写程序, 根据输入的运算符判断对这两个实数进行何种运算,并打印运算结果(要求结果保留两位小数) 。P11 (有主函数子函数 P21)从键盘输入一个年份和一个月份, 使用 switch 语句编程判断并打印该月的天数 P12从键盘输入 1个整型的分数, 使用 switch 语句编程, 判断如果分 数介于 0 59分之间就打印 “不及格”;如果介于 60 79分之间 就打印“及格”;如果介于 80 89之间就打印“良好” ;如果介于 90 100 之间就打

4、印“优秀” 。 P13使用 while 语句编程求 100以内能被 5 整除但不能同时被 7 整除的数,并统计找到的数的个数。 P13从键盘输入一个正整数,使用 while 语句编程求该整数是一个几位数。P14使用 while语句编程求 = 的前 n 项和P14使用 for 语句编程求 =的前 n 项和 P15使用 for 语句编程求 =的前 n项和 P16使用 for 语句的嵌套结构编程打印九 -九乘法表 P16定义一个大小为 10 的整型一维数组,初始化所有数组元素,编程查找数组中的所有奇数,并统计奇数的个数 P17定义一个大小为 10 的整型一维数组,初始化其中的 9 个元素, 这 9

5、个元素已经按照降序排列。 从键盘再输入 1 个整数, 将该整 数插入到已有的元素中,需保证这 10 个数仍然按照降序排序。 P18利用指针编程,其功能是求电阻的并联值和串联值。 P18利用指针编程,其功能是利用“除号”和“求余号”将输入的两 个两位的正整数组合成一个新的四位的正整数。 P16定义一个大小为 10 的整型一维数组并初始化数组元素,再定义 一个指针变量让其指向该数组, 利用指针编程查找数组中的所有 奇数。 P20输入三角形的三条边长,定义一个子函数 fun( )求三角形的面积 P21定义一个子函数 fun( )打印菱形。 P22P23定义一个子函数 fun( ),其功能是求 1 累

6、加到 100的和定义一个子函数 fun( ) ,求表达式 = 的前 n 项和 P23定义一个 fun( )函数,其功能是:求两个整数的和、差、积、商。 P26在主函数中输入一元二次方程 ax2+bx+c=0 的三个系数 a、b、c, 求方程的实根。定义三个子函数 fun1( )、fun2( )、fun3( ) 分别处 理方程有无实根、有两个相同实根、有两个不同实根的情况 P27 从键盘上输入一个的字符串,输出所有 ASCII 码为奇数的字符, 并统计这些字符的个数。 P28从键盘上输入一个由大写字母、小写字母、数字字符、其它字符 构成的字符串,统计字符串中的大写字母个数、小写字母个数、 数字字

7、符个数、其它字符个数。 P28从键盘输入两个字符串,分别存到字符数组 a和字符数组 b 中, 编程将第二个字符串连接到第一个字符串末尾, 形成一个新字符串。(不使用 #include 库函数) P29使用 while 语句编程求 = (n 从 0 开始)前 n 项值,直到某一项的值小于 10-6 就结束循环。 P30使用 for 语句的嵌套结构编程打印行数为奇数的对称三教菱形 P31从键盘输入一个正整数 x,编程求比 x 大的,最临近 x 的 n 个素 数,例如, 为 x 和 n 分别输入数值 10和15,就表示求出比 10大的, 最临近 10的 15个素数。 P31题目及答案printf(

8、) 函数的编程练习格式 1编程输出如图所示的三角形。给定圆半径值为 5,编程求圆面积和圆周长提示:1) 本题需定义三个浮点型变量,如double r = 5, s, l;2) 输出浮点型数据的格式说明符是%lf3) C语言中没有这个符号,编写程序时直接使用 3.141594) C语言中没有求次方的运算符,求次方可用连乘的方法#include #define PI 3.14159int main()float r=5;printf( 圆半径 =%lfn 圆面积 =%fn 圆周长 =%fn,r,PI*r*r,2*PI*r);( 其中一个数的 n 次方可以用数学运算来算 pow(r,n) ,“ r

9、”为底数, n 为次数 )scanf( ) 函数、运算符编程练习编写一个摄氏温度与华氏温度之间的转换程序,转换公式是: F 9C 32 提示:该公式中的“5C”是一个从键盘输入的已知量;“F”是通过公式计算并打印出来的未知量。v# oinidcl umdaein d ouble F,C;编写程序, 从键盘上输入两个电阻值, 求它们并联电阻值和串联电阻值, 输出结 果保留两位小数。运行结果如图所示: 注:并联和串联的电阻值计算公式如下。1)并联电阻R1*R2RP = R1+R2(2)串联电阻 提示: ( 1) scanf( )RS = R1+R2函数可以写成 scanf(%d,%d, &r1,

10、&r2);( 2)结果保留两位小数的格式说明符是“ %.2lf ”。 #include v oid main()d ouble R1,R2,RP,RS;值 :,R1,R2);i:ntf%(.2lfR电S)阻; 值 :%.2lf n串联电阻阻字符的输入和输出1、使用两种指定的方法打印如图所示图形。方法一 :使用 printf( )函数的“%c”格式打印图形提示 :一个%c”只能打印一个字符。方法二 :使用 printf( )函数的“%d”格式打印图形#方in法cl一ud:ev oid mai3n ) ;p r%indtf(n%,14,d22n2 ,333%34d #A方iSn法 #方in法cl二

11、ud:e v oid main() c har a,b,c;ini,nct,fc(,c%,cc,c%);c %c%类似(运用 ude id main() b,c;ca=);p 3ri;n tf( an); , bp,bri,nbt)f;( %cn,%c%c%cint cba= a )c ;=p rintf( an); , bp,bri,nbt)f;( n, bp,bri,nbt)f;( %cn, %c%c%c c%c%1、从键盘输入 3个数字字符,将它们 分别转换为对应的整数值(即字 符0转换为整数 0,字符 1转换 为整数 1,依次类推),然后求 3个整 数的平均值。运行结果如图所示:提示:

12、本题的变量定义可参考如下:char a, b, c; / 变量 a,b,c 保存输入的 3个数字字符int x, y, z; / 变量 x,y,z保存转换后的 3个整数 double aver; / 变量 aver 保 #iinn存cc求lluu出dd的ee平 #include v oid main(void) pd数 roi字nutbf字(le 符 a,:b请),c; ,输d; 入三个 ,sdp=数&cr=%iaa字n(la,ntf&f字+f(n(bb,符%,+&dccl)f):;),/ %;3) ; l fe,%lf平均值#include void main(void)ch ar a,b,

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

14、, &b);#include #include 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( 合成的四位正整数是: %dn,z);数学函数的使用1、输入三角形的三条边长,求三角形的面积。运行结果如图所示:1x (a b c)2提示:1) 本题的变量定义可参考如下: int a, b, c; double x, s;2) scanf( ) 函数可以写成 scanf(%d,%d,%d, &a, &b, &c);3) 计算三角

15、形面积的公式是: s x(x a)(x b)(x c) 其中4) 求 x 的开方值的库函数是 sqrt(x) ,使用时需包含头文件 math.h#include#include void main(void)int a,b,c;double x,s;printf( 请输入三角形的三边: ); 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

16、)可以使用 3个单分支 if 语句编写程序。( 3) 从键盘输入 2 个整数到变量 a、b 中,编程总是把较小的数放入 a 中,较 大的数放入 b 中。in 请输入三 f(%d%d%d,&aoid main() int a,fb(,t; 请 到f(变量请整pr数in输a,b入两中b);s canf(%d%d,&a,& bn);p ,ari,nbt)f;( a=%d,b=%dfcat (=a=atc; c )f (bc)i%ntdf(n,a);最 大ab=tb;结 printf( 运 行 结果 :a=%d,b=%dn,a,b ); 结 else printf( 运 行 结果 :a=%d,b=%d

17、n,a,binclude 从键盘输入三个 正整数 ,判断否能构成三角形的三边?如果能, 就按照以下提示 的数学公式计算三角形的面积; 如果不能,就输出“不能构成三角形”的提示信息 提示:(1) 该题属于“双分支 if-else 语句 ”结构。( 2) 能构成三角形的逻辑条件是: 任意的两边之和均要大于第三边。( 3) 计算三角形面积的公式是:1s x(x a)(x b)(x c) 其中 x 2 (a b c)double x, s;4)本题的变量定义可参考如下: int a, b, c;5)本题要用到求 x 开方值的数学库函数 sqrt(x) ,需包含头文件 math.hclude clude

18、 id main(void) int a,b,c,m,n,t; douspmcbr=ialneant f+fx(b,s%; ; d请 %输 m=a+b; tn=ab+cc; ; itf= (ma+cc;& &na&tb) x =(a+b+c s=入%三d,&c););x)三; 角是:%.p2 rlifnntf(,s()x;-aelsper intf( 不能构成三角形 n);形面积从键盘输入 一个合法的算术运算符( +、- 、*、/ )及两个实数,使用 if 语句编 写程序 ,根据输入的运算符判断对这两个实数进行何种运算, 并打印运算结果(要 求结果保留两位小数)。程序运行效果如下图所示: 提示

19、: (1)该题属于“多分支 if 语句 ”结构。 (2)本题的变量定义可参考如下:char fu; /fu 变量用来存放运算符double x, y, z; /x 、y 变量用来存放输入的 2个实数, z 存放运算 结果( 3)输入字符型数据的格式说明符是 %c,实型数据的格式说明符是 %lf 。 (4)输出实数保留 2 位小数的格式说明符是 %.2lf 。(5)本题可参考教材 P61例 3.7 ,但是不允许使用 switch 语句编写该题程序。#includev oid main()icdnhot aut,rba lf;eu ;x ,y,z;点数int pt),r;a in; tf( 请输入

20、一个算数运算符和两个浮 点数s)c; anf(%c %lf %lf,&fu,&x,&y);t=47-fu;= %.if (t=4) p2rlfiznn=tfx(,x+%,y ;.f 2ul f ,y ,z);lf%c%.2lfe lse if(t=5)= %.2 lfzpn=rixn,x*tf,y( ; f%u . 2,ylf ,z);e lse if(t=2)fzpn=rixn,x-tyf,( ; f%u . 2,ylf ,z);lse if(t=0)z=x/y;p= %.2l%c%c%.2lf%.2lf= %.2 lfzn=xp,x/ry,i n; ftuf( %,y. 2,lzf );n

21、); elsper intf( 运 算 符 非 法 ,无 法 参 与 运 算%c%.2lf从键盘输入一个年份和一个月份, 使用 switch 语句编程判断并打印该月的天数。 程序运行效果如下所示: 提示:(1)本题先使用 if 语句 判断年份和月份是否有效。( 2)如果年份和月份有效,再嵌套 switch 语句判断每个月份的天数。(3)对于2月份的处理需要判断闰年,闰年的判断方法请 参考教材 P62例3.8 #include void main()io.hitch(month)入一个r年,&份mo和n一th)个; 月份: );prin bre case 4 case 6 case 9 case

22、 1%d月有 31 天n,month);%d月有 30 天 n,month);default:if(year%4=0&year%100!=0)|(year%400= =0) elsper intf(2 月有 29 天n);eblrsepear kin; tf(2 月有 28 天n);elsper intf(输入的月份值无效! );从键盘输入 1个整型的分数, 使用 switch 语句编程,判断如果分数介于 0 59 分之间就打印“不及格”;如果介于 60 79分之间就打印“及格;”如果介于 80 89 之间就打印“良好;”如果介于 90 100 之间就打印“优秀。”#includevoid m

23、ain()int a,b;printf( 请 输 入 一 个分数介于 间:);scanf(%d,&a);if(a0&a=100)b=a/10;switch(b)case 6:case 7:printf( 及格n);break;case 8:printf( 良 好n);break;case 9:case 10:printf( 优 秀n);break; default:printf( 不 及格n);break;elseprintf( 输 入 的 分数份值无效! n);使用 while 语句编程 求 100以内能被 5整除但不能同时被 7 整除的数,并统计找 到的数的个数提示:1)该题变量可定义为:

24、 int i=1, n=0;/ i 是循环变量 , n 是统计个数的变量2)整除问题应使用求余号“ %,”而不能使用除号“/#include v oid main() int ii=,n1,;b ,c;in=10; ;if(b= =0&c!=0) ; printf(%d ; n=n+1;i+;从键盘输入一个正整数, 使用 while 语句编程 求该整数是几位数。程序运行效果如下所示:提示:( 1)该题变量可定义为int x, n=0, m;个其中, x 保存输入的正整数, n 统计位数, m暂存 x 的值2)每次循环将 x的值缩小 10倍,直到 x 缩小为 0即结束循环, 循环次数就是整数的位

25、数。#includev oid main() inn=t 0x;, n,m,i;pnr=in0t;f ( 请输入一个正整数: ); scanf(%d,&x);i=x;while(m!=0)m=x/10;n+;x=m;p rintf(%d 是一个 %d 位数 n,i,n);使用 while 语句编程 求以下表达式的值,程序运行结果如图所示:11231 2 . 101sum 112提示:1)该题变量可定义为: int i;double mu, t, sum;2)本题的循环体里有 3 个通式:分母的通式、当前项的通式、求和的通式、 i 自增的通式。#include v oid main() int

26、i;dmouu=b1le; mu,t,sum;=10)sum=1/mu+t; t=sum; i+;mu=mu+i;r:intf(n); 表 达 式 的r:intf(ns)u; m=%fn值为:值 ,s为purm:in)t;如果从键盘输入 20for 语句编程练习1、使用 for 语句编程 求以下表达式的值,赋值给变量 n,则运行效果如图所示: 提示:1)该题变量可定义为 int i, n; double t, sum;2)本题需用到求开方值的数学函数 sqrt( ) ,并包含头文件 math.hS 1 (1 2) (1 2 3) (1 2 3 n)cclluuddee数值: );e t,id

27、main()spcrianntffso urm(i=00;i =20;i+) tb=sbq+rtt(; i,2); sum=sum+b; p rintf(sum=%lfn,sum);使用 for 语句编程 求以下表达式的值,程序运行结果如图所示:1 1 1 sum 1 .1 2 1 2 3 1 2 . 10提示:#include v oid main( int i; t=0d,osuumble= 0tm=u1=/mmuu; +i; sum=sum+t;,mu=0;for(i=1;i=10;i+=为 %:lfpnnrin,stfu(ms)u; 表 达 式 值 ; sum( 1)注意观察可知相邻两

28、项中,后一项的分母是前一项的分母加i 值2)该题变量可定义为:int i; double mu, t, sum;其中 i 是循环变量,mu保存每一次循环的当前项的分母, t 保存每一次循环的当前项, sum保存 N 项式的总和循环的嵌套编程练习使用 for 语句的嵌套结构 编程打印九 - 九乘法表,程序运行效果如图所示:ifno tr (ii,=m1includeoid main(),n;i10;i+) =1;m=i;m+) n=i*m;p rintf(%d*%d=%d ,m,i,n); printf(n); 定义一个大小为 10 的整型一维数组,初始化所有数组元素,编程查找数组中的 所有奇数

29、,并统计奇数的个数。运行效果如图所示: 提示:( 1) 本题变量定义可参考如下int a10=2,4,5,6,9,11,13,16,17,19, i, sum=0;(2) 首先用一个 for 循环打印 10个数组元素的初值。( 3) 再用一个 for 循环嵌套 if 语句查找并打印数组中的奇数。or值printf(,ai);printf(npri(1)源程序粘贴在此处。 /#/i#ndcelufidnee v oid main() i,a,1n13=in,001t ;6= ,127,4,1,59,6, ,9,11 print是f(: 数); 组 中 的 (i=是0;:i10); i+) ,ai

30、 )p; rintf(%d pprriinnttff(nn);奇数pr是int:f( ); 数 组 中 的 )奇 数for是(i=:0;i);= 10;i+ ) if (pariin%tf(2%!=d0 )n+;rintf(n);%ntdf(n,n);)奇 ; 数 个 数定义一个大小为 10的整型一维数组,初始化其中的 9 个元素,这 9个元素已经按照降序排列。 从键盘再输入 1个整数, 将该整数插入到已有的元素中, 需保证 这 10 个数仍然按照降序排序。程序运行效果如下图所示:提示:1)本题变量定义可参考如下 int a10= 20, 18, 15, 12, 10, 9, 7, 5, 2,

31、 i, j, t;2)本题使用冒泡法排序, 先将键盘输入的 1个整数放到数组元素 a9 中,然后使用排序算法对这 10个数进行降序排序。/#/i#ndcelufidnee v oid main() 12 5;,i n 1t 2a, 910=, 9 2, 07, 158, , 2;i nt i,j,t; p个ri元ntf素(是:数组n中); 前面 个元fo r素(i=是0;:i9;ni+)+; ) ,ai )p; rintf(%d pprriinnttff(nn);一个整pr数int:f( ); 请 输 入 ;一 个sc整an数f(:%d,&a9) ; printf(int i,j,t; p个r

32、i元ntf素(的 10p个rin元tf(素 是:数 n组);中for( i=0;i10;i+),ai); printf(%d iinn0tt;ffi(1nn0;)i+; +)prin pri (i=fo r for(j=0;j9-i;j+ if(aj aj+1) taa=jja+=1ja; =j+t;1 ;序后的for的pr整int数f(为:降)序; 排( i=0;i10;i+),ai);printf(%dprintf(n);利用指针编程 ,其功能是求电阻的并联值和串联值。程序运行效果如图所示:要求:输入电阻值;计算并联串联值;打印结果都必须使用指针完成。提示:1)该题的变量可定义为 int

33、r1, r2, *p1, *p2;double rp, rs, *pp, *ps;其中指针 p1、 p2用来指向并操作变量 r1 、r2 ;指针 pp、ps 用来指向并操作变量 rp、 rs 。2)在利用指针编程之前,应将指针指向对应的变量2;阻值 );#include v oid main()rrsp=*(pd1ou+b*ple2);( *p1 * *p2) / (double)(*p1 + *p2); ppsp=&rrsp;电电阻阻组组织织 = %llffnn,*rriinnttff并串联联串联利用指针编程 ,其功能是利用“除号”和求“余号”将输入的两个两位的正整数组合成一个新的四 位的正

34、整数。要求:输入整数值;计算;打印结果都必须使用指针完成 提示:该题的变量可定义为 int a, b, c, *pa, *pb, *pc;其中指针 pa、pb、 pc 分别用来指向并操作变量 a、b、c。变量 a、b 用来存放输入的两个两位正整数,变量 c 用来存放组合后的四位的正整数。#include void main(),c,*位数的正整数: );10;=*pa/10*1000+*pb/10*100+*pa%10*10+*pb%合成的四位正整数ridn,*pc组); 方法二 #includev oid main() ippnrati n=at&,fb(a,;c ,*p请a,输*p入b,两

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

36、用“下标法 ”编程,即使用“pi 一 #includ方estdio.h 法 v oid main() ,a131,016=,127,4,1,59,6,*,9p,1i,1 值a是f(i:; (数); p组=a中; )的 r 值(p是=a:,i=0);i 10;(for (i =0;i10;i+) printf(%d ,pi ); 奇数p r是inpptrr:fii(nnttff(); nn数);组 中的 i奇+数f)o r 是(p:=a,i)=; 0;i=9; i(+fo+r) ( i =0;i=9;i+) ,pi ); i f ( p pnrii+n%+tf;(2 %!=d0 ) n+; n+

37、;printf(n);是:pprrii%nnttdff(nn,n);)奇 ; 数 个 数 的形式引用数组元素 void main() int a10=2,4,5,6,9,11 ,13,16,17,19,*p,i, n=0;p=a;printf( 数 组 中 的 初始值是: );for(i=0;i10;i+)printf(%d,pi);printf(n); 方法二 #includeprintf(n);printf( 数 组 中 的 奇数是: );for(i=0;i=9;i+)if(pi%2!=0) printf(%d,pi);n+;printf(n);printf( 奇 数 个 数 是: %dn

38、,n); printf(n);输入三角形的三条边长,定义一个子函数 fun( ) 求三角形的面积。运行结果如图所示: 要求: ( 1)数据输入和结果打印都必须在 main( ) 函数中完成(2)fun( ) 函数的功能是求三角形的面积。提示:1)计算三角形面积的公式是: 1x (a b c)s x(x a)(x b)(x c) 其中 2计算 x 的开方值的库函数是 sqrt(x) ,使用时需包含头文件 math.h2)fun( ) 函数的函数首部可参考如下double fun(int a, int b, int c)/ 该函数有 3 个形参,返回值类型为double#include #incl

39、ude double fun(int a,int b,int c)dd oouubbllee dm,;s ; d=(a+b+c)/2;-a)*(d-b)*(d-c)*d);void main(),cm; ;:);形面积 =%lfn,m);定义一个子函数 fun( ) 打印菱形。运行结果如图所示:要求:菱形的行数在 main( ) 函数中输入,根据输入的行数决定菱形打印几行。 提示:( 1) fun( ) 函数的函数首部可参考如下 void fun(int x) / 该函数有 1 个形 参,无返回值( 2)在 fun( ) 函数内部,首先根据形参 x 的值计算出正三角和倒三角的行数,然后再执行循

40、环的嵌套结构分别打印正三角和倒三角。#include 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); for(i=1;i=x/2;i+ +)printf( );for(k=1;k=i;k+)printf( );j+)printf(*); printf(n);void main()int a;printf( 请 输 入 菱 形的行数(注意:行数 为奇数):);scanf(%d,&a);for(j=1;j=x-2*i

41、;fun(a);定义一个子函数 fun( ) ,其功能是求 1累加到 100的和要求:结果在子函数打印。提示:(1)fun( ) 函数写在前, main( ) 函数写在后。2)fun( ) 函数定义为 无参、无返回值 形式。#include 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 11! 12! 13! 14!1n!的值。主函数定义如下所示,请完成 fun( ) 函数#inclu

42、de 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;2、定义一个子函数 fun( ) 求算术表达式的解要求:运算符( +, -, *, /, %印return(sum);)和两个整数在主函数输入,结果也在主函数打提示:(1)主函

43、数内先判断运算符的有效性,如果运算符有效,就调用fun( )函数。如果运算符非法,就打印错误提示信息,不调用 fun( ) 函数2)fun( ) 函数的函数首部可以参考如下double fun(char fu, int a, int b)其中形参 fu 代表运算符,形参 a、b 代表参与运算的 两个数,函数返回类型为 double ,表示函数的运行结 scanf(%c %lf %lf,&fu,&x,&y); t=47-fu;double fun(char fu, double x, double y ,int t)double ans;if(t=4)ans=x+y;else if(t=5)an

44、s=x*y;ans=x/y;/* elseprintf( 运算符非法,无法参与运算 n);*/return (ans);#includevoid main()char fu;double x,y,z;int t;else if(t=2)ans=x-y;else if(t=0)printf( 请输入一个算数运算符和两个浮点数 );if(t=4|t=5|t=2|t=0)z=fun(fu,x,y,t);printf(%.2lf %c %.2lf= %.2lfn,x ,fu ,y ,z);elseprintf( 运算符非法,无法参与运算 n);参数的“传值”方式与“传地址”方式编程 练习1、在主函数中

45、输入 2 个电阻值,定义一个子函数求这 2 个电阻的并联电阻void main() 值和串联电阻值,并在主函数中输出运算结果。程序运行效果如图所示:提示:double1)主函数中的变量定义可参考如下double a, b, bing, chuan;2)子函数为有参、 无返回值的形式。#include void fun(double a,double b)double bing,chuan; bing=(a*b)/(a+b); chuan=a+b;a,b,bing,chuan; printf( 请 输 入 两 个 电阻值: ); scanf(%lf%lf,&a,& b);fun(a,b);2、定

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

47、 *cha, int *ji, double *shang)#include 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/(d ouble)b;void main()int a, b, he, cha, ji; double shang ; printf( 请 输 入 两 个整数: ); scanf(%d%d,&a,&b)fun(a,b,&he,&cha,&j i,&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,求方程的实根。定义三个子函数 fun1( ) 、 fun2( ) 、 fun3( ) 分别处理方程有无实根、有 两个相同实根、有两个不同实根的情况。要求:2)方程的根需在 main 函数中打印。1)a

温馨提示

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

评论

0/150

提交评论