C语言程序设计教程(第2版)课后习题答案1.pdf

上传人:无*** 文档编号:90893356 上传时间:2023-05-18 格式:PDF 页数:46 大小:4.35MB
返回 下载 相关 举报
C语言程序设计教程(第2版)课后习题答案1.pdf_第1页
第1页 / 共46页
C语言程序设计教程(第2版)课后习题答案1.pdf_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《C语言程序设计教程(第2版)课后习题答案1.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计教程(第2版)课后习题答案1.pdf(46页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第 一 章 C 语言程序设计概述一习题答案1算法的描述有哪些基本方法?答1、自然语言2、专用工具2 C 语言程序的基本结构是怎样的?举一个例子说明。答1、C 语言程序由函数构成;2、“/*”与“*/”之间的内容构成C 语言程序的注释部分;3、用预处理命令#in c lu d e、d e f in e 可以包含有关文件或预定义信息;4、大小写字母在C 语言中是有区别的;5、除m a in。函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。3 C 语言有什么特点?答1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数

2、可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C 语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C 语言编写的程序的可移植性好。4指出合法与不合法的标识符命名。答A B 1 2 Vle e d _3 a*b 2 X 8s t u X D.K.Jo n X E F 3 _3 V PA S V if X X Y Z 4 3 K2 V A V E#X Y X _762 V#_D T 5

3、 X C.D X5说明下列T u r b o C 热键的功能。答F 2:源文件存盘 F 1 0:调用主菜单 F 4:程序运行到光标所在行(用于调试程序)Ct r l+F9:编译并链接成可执行文件 A lt+F5:将窗口切换到DOS下,查看程序运行结果。6说明下列Tu r b o C 方式下输入并运行下列程序,记录下运行结果。m a i n ()p r i n t f(*n );p r i n t f(z/w e lc o m e y o u n );p r i n t f C ve r y go o d n):p r i n t f(*n );)m a i n ()i n t a,b,c,t;

4、p r i n t f(p le a s e i n p u t t hr e e n u m b e r s;z/);s c a n f(%d,%d,%d ,&a,&b,&c);/*教材 S 是错误的*/t=m a x(m a x(a,b),c);p r i n t f(z/m a x n u m b e r i s:%d nz,,t);)i n t m a x(i n t x,i n t y)i n t z;i f(x y)z=x;e ls e z=y;r e t u r n(z);)答运行结果:w e lc o m e y o uve r y go o d运行结果:p le a s e

5、i n p u t t hr e e n u m b e r s;3,1,4 /*左侧下划线内容为键盘输入*/m a x n u m b e r i s:47一个C 程序是由若干个函数构成的,其中有且只能有一个 函数。答m a i n()8在 Tu r b o C 环境下进行程序调试时,可以使用Ru n 下拉菜单的 命令或按 键转到用户屏幕查看程序运行结果。答1、Us e r s c r e e n2、A lt+F59 C语言对标识符与关键字有些什么规定?答1、标识符用来表示函数、类型及变量的名称,它是由字母、下划线和数字组成,但必须用字母或下划线开头。2、关键字是一种语言中规定具有特定含义的

6、标识符,其不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。1 0C 源程序输入后是如何进行保存的?答是以C 为扩展名保存的纯文本文件。第 二 章C语言程序的基本数据类型与表达式一习题答案1指出下列常数中哪些是符合C语法规定的。答一义、一 义 e 3 X 0 1 9 V Ox le V a b n”-J 1.e 5 X (2+3)e (4-2)X 5.2 e 2.5 X2请找出下列程序中的错误,改正后写出程序运行结果。vo i d m a i n()i n t x,y=z=5,a ve r;x=7A VER=(x+y+z)/3p r i n t f(A VER=%d n”,a ve

7、r);)vo i d m a i n()c ha r c l=,a;c 2=b ;c 3=c ;i n t a=3.5,b=,A p r i n t f(z/a=%d b=e n d n ,a,b);p r i n t f(,/a%c b%c b c%c t a b c n/,,c l,c 2,c 3);)答m a i n()i n t x,y=5,z=5,a ve r;x=7;a ve r=(x+y+z)/3;p r i n t f(,/A VER=%d n,/,a ve r);)运行结果:A VER=5 m a i n ()c ha r c l=a ,c 2=b ,c 3=c ;i n t

8、 a=3,b=,A);p r i n t f(,/a=%d,b=%c e n d n ,a,b);p r i n t f(z/a%c b%c b c%c t a b c nz z,c l,c 2,c 3);)运行结果:a=3,b=A e n d a a b c ca b c3写出下列赋值的结果,表格中写了数值的是要将它赋给其他类型的变量,将所有的空格填上赋值后 的 数 据(实数保留到小数点后两位)。i n t99-1c h a r,h u n s i g n e d i n t6 6f l o a t55.7 8l o n g i n t6 8分口i n t991046 6556 8-1c h

9、 a rJ ,c h,B,7,,D u n s i g n e d i n t991046 6556 86 5535f l o a t99.00104.006 6.0055.7 86 8.00-1.00l o n g i n t991046 6556 8-1写出程序运行结果。vo i d m a i n()i n t i,j;i=8,j=10;p r i n t f (d,%d,%d,%d nz z,i,j,+i,j+);m a i n。i n t a=l,b=2,c=30;p rin tf(%d,%d,%d,%dn,a=b=c,a=b=c,a=(b=c),a=(b=c);)注意:a二b=c,

10、a=b=c之间应为逗号,教材有误答口运行结果:9,11,9,10运行结果:30,1,0,0void main()int a=10,b=20,c=30,d;d=+a=20|c+;p rin tf(,z%d,%d,%d,%dn,a,b,c,d);)答 运行结果:11,19,30,15写出下面表达式的值(设a=10,b=4,c=5,d=l,x=2.5,y=3.5)。a%=(b%=3)(2)n+,a+=a-=a*=a(float)(a+c)/2+(int)x%(int)y(4)a*=b+c+a-c+b+(6)+a-c+b ab?x:A(8)b+=c(9)a+b,18+(b=4)*3,(a/b,a%b)

11、(10)x+a%3*(int)(x+y)%2/4+sizeof(int)(ll)ab?a:c0?x:-x 的功能是什么?答口如果x的值是一正数,则表达式的值为x 值;如果x的值是一非正数,则表达式的值为-x。其实该表达式的值即为X的绝对值,C 语言中提供了一个函数f a b s(x)即可完成此功能,该函数包含在m a t h.h 头文件中。8用一个条件表达式描述从a、b、c中找出最大都赋给m a x.答m a x=a(b c?b:c)?a:(b c?b:c);9若x 为 i n t 型变量,则执行以下语句后x的值为()。x=6;x+=x-=x*x;A.36 B.-6 0 C.6 0 D.-24

12、答B.10若有以下类型说明语句:c h a r w;i n t x;f l o a t y;d o u b l e z;则表达式w*x+z-y 的结果为()类型。A.f l o a t B.c h a r C.i n t D.d o u b l e答D.第三章顺序结构程序设计一习题答案1变量k 为门o a t 类型,调用函数s c a n f (级d”,&k),不能使变量k 得 到 正 确 数 值 的 原 因 是。答格式修饰符与变量类型不一致。因为刎输入的数据类型应该为十进制整数,而&k 为占用4 个字节的f l o a t 类型变量的地址。2a=1 2 3 4,b=1 2,c=3 4,则执行

13、“p r i n t f (|%3 d%3 d%-3 d|n”,a,b,c);”后 的 输 出 是。答1 1 2 3 4 1 2 3 4|分析如下:%3 d 为右对齐输出变量,且指定输出变量的值宽度为3 个字符位,如果变量实际位数小于3,则左端补空格,如果变量实际位数大于3,则按实际长度输出,不受限制。%-3 d 为左对齐输出变量,在输出变量时,如是变量实际位数小于3,则在右端补空格,否则按实际输出。3设有 i n t a=2 5 5,b=8;,则 p r i n t f (%x,%o n”,a,b);“输出是,_ _ _ _ _。答f f,1 0如果O r i n t f (级X,%o n”

14、,a,b);”则输出为F F,1 0。说明在输出十六进制字母时,其大小写受格式修饰符的限制,如果是“%x”则输出小写,如果是“外 X”则输出大写。如果希望在输出十六进制时输出前导符O x或 0 X,则以上输出语句应改“p r i n t f (x,%o n”,a,b);为 或 p r i n t f (9 6#X,%o n”,a,b);。本条解释不必须掌握。4以下程序输出的结果是 om a i n ()(i n t a l=l,a 2=0,a 3=2;p r i n t f(%d,%d,%d n”,a l,a l+a 2+a 3,a 3-a l);答1,3,15p r i n t f 函数中用

15、到格式符%5 s,其中5 表示输出字符占用5 歹 U。如果字符串长度大于5,则按输出;如果字符串长度小于5,则按 输出。答口实际左端补空格6已定义变量如下:int al,a2;char cl,c2;若要求输入al、a2、cl和 c2的值,正确的输入函数调用语句是答scanf(d,%d,%c,%c,&al,&a2,&cl,&c2);7输入两个整型变量a、b 的值,输出下列算式以及运算结果 oa+b、a-b a*b、a/b(float)a/b a%b每个算式占一行。如 a=10,b=5,a+b输出为:10+5=15答设 int a=10,b=5;以下为输出语句及结果:printf(,z%d+%d=

16、%dnz/,a,b,a+b);10+5=15printf(/z%d-%d=%dnz/,a,b,a-b);10-5=5printf(%d*%d=%dn,a,b,a*b);10*5=50printf(/z%d/%d=%dnz/,a,b,a/b);10/5=2printf(%(float)d/%d=%fn,a,b,(float)a/b);(float)10/5=2.000000printf(,%d%d=%dn,/,a,b,a%b);10%5=08输入一个非负数,计算以这个数为半径的圆周长和面积。答ftdefine PI 3.1415926main()(float r,1,area;printf(z,

17、Input a positive:z,);scanf&r);l=2*PI*r;area=PI*r*r;printf(,zl=%ftarea=%fn,z,1,area);)9输入任意一个3 位数,将其各位数字反序输出(例如输入123,输出321)。答main()(int x,y;printf(Input a number(100-999):z,);scanf(%d,&x);y=100*(x%10)+10*(x/10%10)+x/100;/*注意分析此处算法*/printf(%d-%dn,/,x,y);10输入任意大小的3 个整数,判断其中是否有两个奇数一个偶数。若是则输出YE S,不是则输出N

18、O T (要求用条件表达式进行判断,不使用i f 语 句)。答m a i n ()(i n t x,y,z,o d d c o u n t=0;/*奇数数计数变量*/p r i n t f (I n p u t x,y,z:);s c a n f (%d,%d,%d ,&x,&y,&z);x%2=l?o d d c o u n t+:0;y%2=l?o d d c o u n t+:0;z%2=l?o d d c o u n t+:0;o d d c o u n t=2?p r i n t f (Z,YE SZ,):p r i n t f (N O T );)1 1求前驱字符和后继字符。输入一

19、个字符,找出它的前驱字符和后继字符,并按A S C H 码值,按从大到小的顺序输出这3 个字符及其对应的A S C I I 码值。答本题考查同学们对字符类型数据的认识,如果在A S C I I 范围内则即可以显示为字符,又可以显示为整数值;无论是否能够显示为字符,字符类型数据是可能参与数值运算的,切记。m a i n ()(c h a r c;p r i n t f (I n p u t c h a r a c t e r:,z);s c a n f(%c ,&c);p r i n t f (z/%c-%d n,z,c-l,c-l);p r i n t f (z z%c-%d nz,,c,c)

20、;p r i n t f (%c-%d n ,c +1,c+1);g e t c h O;/*为便于调试程序,运行至此程序停顿,此时可以看到运行结果,按任意键程序真难得结束并返回到编辑环境*/)12输入三角形的边长,求三角形面积(面积=s q r t (s(s-a)(s-b)(s-c),s=(a+b+c)/2)。答#in cl u demat h.h/*由于程序中使用了开平方函数s q r t (),所以需要包含数学头文件*/main()fl o at a,b,c,s,ar ea;in t o k=0;p r in t f(I n p u t a,b,c:);s can f(%f,%f,%f,

21、&a,&b,&c);a+bc?o k+:0;/*以下3 条语句为判断是否输入的数据是否构成封闭三角形*/a+cb?o k+:0;b+ca?o k+:0;o k=3?(s=(a+b+c)/2,ar ea=s q r t(s*(s-a)*(s-b)*(s-c),p r in t f(ar ea=%f,ar ea):p r in t f(er r o r);g et chO ;)第四章选择结构程序设计一习题答案1设x、t均为in t型变量,则执行语句“x=10;t=x&x 10;”后,t的值为答02假定所有变量均已正确定义,则程序段:in t a=0,y=10;if(a=0)y-;el s e if

22、(a0)y+;el s e y+=y;运行后y的值是;答203能表 述20 x 30或x 20&x 30|+x -1004若有定义语句“in t a=25,b=14,c=19;,则 以 下 语 句 执 行 结 果 是(if(a=25&b=2&c)p r in t f(*a+b=%d,a-b=%d*n,a+b,a-b);el s e p r in t f(*a=/d,b=%d,c=%d*n,a,b,c);答*a=25,b=14,c=19*5假定i和j为i n t型变量,则执行以下语句后i的值是 0in t i=l;s w it ch(i)(cas e 1:fo r(j=0;j 9;j+)i+=j

23、;br eak;cas e 2:fo r(j=l;j 10;j+)i+=j;br eak;cas e 3:i+;答37分析:执行了 cas e 1:和cas e 3:中的代码。同时cas e 1:语句中的 是可以取消的。6以下两条i f语句可合并成一条i f语句,即。if(ab)p r in t f(w*y=%d n/,y);el s e p r in t f(*x=%d n”,x);答if(al)p r in t f(o u t s ide);el s e if(d 0)。i f(a 3 0)m=l;e ls e i f(a 4 0)m=2;e ls e i f(a 5 0)m=3;e ls

24、 e i f(a 6 0)m=4;e ls e m=5答s w i t c h(a/1 0)(c a s e 1:c a s e 2:c a s e 3:m=l;b r e a k;c a s e 4:m=2;b r e a k;c a s e 5:m=3;b r e a k;c a s e 6:m=4;b r e a k;d e f a u lt:m=5;1 2有一函数x-l-5 x 0y=x x=0 x+1 0 x -5&x 0&x -5&x 8)i f(x 0)y=x-l;e ls e i f(x=0)y=0:e ls e y=x+l;p r i n t f C y=%f n,,y);m

25、 a i n Of lo a t x,y;s c a n f (%f,&x);i f(x 0)y=x+l;e ls e i f(x=0)y=0;e ls e i f(x -5)y=x-l;p r i n t f C y=%f n,,y);使用多分支语句程序如下:m a i n ()(f lo a t x,y;i n t m;p r i n t f(z,In p u t x:);s c a n f&x);i f(x -5&x 8)i f (x 0)m=-l;e ls e i f(x=0)m=0:e ls e m=l;s w i t c h(m)(c a s e -1:y=x-l;b r e a

26、k;c a s e 0:y=0;b r e a k;c a s e 1:y=x+l;b r e a k;)p r i n t f(V%f n,,y);)以下为假设对i n t类型的变量进行处理,但毕竟不算完美m a i n()(i n t x,y;p r i n t f(z,In p u t x:);s c a n f (%d,&x);s w i t c h(x)(c a s e -4:c a s e -3:c a s e -2:c a s e -1:y=x-l;b r e a k;c a s e 0:y=0;b r e a k;c a s e 1:c a s e 2:c a s e 3:c

27、a s e 4:c a s e 5:c a s e 6:c a s e 7:y=x+l;b r e a k;p r i n t f C y=%d n,/,y);第五章循环结构程序设计一习题答案1 输 入n个整数,求 这n个数之中的偶数平均值,并输出。答m a i n ()(i n t n,i,x,s u m=O,c o u n t=0;p r i n t f(,zIn p u t n:);s c a n f(%d,&n);f o r(i=0;i n;i+)p r i n t f(In p u t%d :,i+1);scanf&x);i f(x%2=0)s u m+=x;c o u n t+;)

28、p r i n t f (z/Av e r a g e i s:%f nz/,(f lo a t)s u m/c o u n t);g e t c h();2输入一串字符,直到输入一个星号(*)为止,统计(输出)其中的字母个数和数字字符个数。答#i n c lu d e s t d i o.h m a i n ()(c h a r c h;i n t c h a r c n t=0,n u m c n t=0;w h i le(c h=g e t c h a r()!=*)(i f (c h=a&c h =A&c h=,0&c h=,a&c h =A&c h =Z )p r i n t f (

29、%c”,c h+3 2);)g e t c h O;)5设某县2 0 0 0 年工业总产值为2 0 0 亿元,如果该县预计平均年工业总产值增长率为4.5%,那么多少年后该县年工业总产值将超5 0 0 亿元。答m a i n ()(f lo a t x=2 0 0;i n t n=0;d ox*=(l+0.0 4 5);n+;w h i le(x 5 0 0);p r i n t f(,/n=%d,In);g e t c h O;6输出1 9 9 9 中能被3 整除,而且至少有一位数字是5的所有数字。m a i n ()(i n t x,y,f la g;f o r(x=l;x 1 0 0 0;

30、x+)f la g=0;y=x;i f(y%3=0)/*余数为0 说明该数能够被3 整除*/(w h i le(y%1 0!=0)i f(y%1 0=5)f la g=l;/*依个位、十位、百位顺序判断是否余数为5*/y/=1 0;)i f(f la g=l)p r i n t f(,%d t/,,x);)g e t c h();)求爱因斯坦数学题。有一条长阶,若每步跨2 阶,则最后剩1 阶,若每步跨3 阶,则最后剩2 阶,若每步跨5 阶,则最后剩4阶每步跨6阶,则最后剩5 阶每步跨7 阶,最后正好1 阶。答m a i n ()i n t x=0,f la g=0;w h i le(l)(x+

31、;i f(x%2=l)i f(x%3=2)i f(x%5=4)i f(x%6=5)i f(x%7=0)(p r i n t f(%d”,x);b r e a k;)g e t c h();输入一个3 位数,判断是否是一个“水仙花数”。水仙花数是指3 位数的各位数字的立方和等于这个3位数本身。例如,1 5 3=1*1*1+5*5*5+3*3*3答m a i n()(i n t x,a,b,c;p r i n t f(Z/In p u t n u m b e r:);s c a n f(%d,&x);a=x/1 0 0;/*变量a中记录x的百位数字*/b=x/1 0%1 0;/*变量b中记录x的十

32、位数字*/c=x%1 0;/*变量c中记录x的个位数字*/i f(a*a*a+b*b*b+c*c*c=x)(p r i n t f (/%d=%d*%d*%d+%d*%d*%d+%d*%d*%d n/,x,a,a,a,b,b,b,c,c,c);p r i n t f(Y E S);)e ls ep r i n t f(N OT);g e t c h();9计算斐波那契分数序列前n项之和(n是某个常数,波那契分数序列为2/1,3/2,5/3,8/5,答m a i n O(i n t i,n=1 0;f lo a t f l=l,f 2=2,f,s u m=0;f o r(i=0;i n;i+)(

33、s u m+=f 2/f l;f=f l+f 2;f l=f 2;f 2=f;)p r i n t f (/zt o t a l=%d n s u m=%fz/,n,s u m);g e t c h O;)1 0输入一个正整数,各输出n行的正(倒)三角形宝塔图案。答m ai n ()i n t n,i,j;p r i n t f(I n p u t n:);sca nf&n);fo r (i=0;i n;i+)fo r(j=i+l;jn;j+)p r i n t f C );fo r(j=0;j2*i+l;j+)p r i n t f(*);p r i n t f(n);)fo r (i=0;

34、i n-l;i+)fo r(j=0;ji+l;j+)p r i n t f;fo r(j=2*i-l;jn+l;j+)p r i n t f(*);p r i n t f(n);)get c h();1 1输出九九乘法表。答m ai n()(i n t i,j;fo r(i=l;i=9;i+)fo r(j=l;j=O&c h=9)(x=1 0*x+c h-O;y=1 0*y;i f(x!=0 U 1 0*x y)f=0;c o n t i n u e;)els e(i f(x!=0)i f(f=l)x=-x;n s u m+=x;n c n t+;)els e(p s u m+=x;p c n

35、 t+;)p r i n t f(绘dn”,x);)f=O;x=O;y=l;c o n t i n u e;)i f(x!=0)i f(f=l)x=-x;n s u m+=x;n c n t+;)els e(p s u m+=x;p c n t+;p r i n t f(%dn,x);p r i n t f(n-n);p r i n t f(P lu s:n);p r i n t f(,zC o u n t=%dn,z,p en t);p r i n t f(A v er age二%fn,p s u m/p en t);p r i n t f(-n);p r i n t f(N egat i

36、v e:n/z);p r i n t f(C o u n t=%dr T,p en t);p r i n t f(A v er age二%fn,n s u m/n en t);get c h();1 3一个整数等于该数所有因子之和,则称该数是一个完数。例如,6和2 8都是完数。因为6=1+2+3,2 8=1+2+4+7+1 4。输出3位数中所有的完数。答m ai n ()i n t kl,k2,k3,k4,k5,k6,k7,k8,k9,klO;i n t i,a,n,s;fo r (a=1 0 0;a=999;a+)n =0;/*n累计因子的个数*/s=a;/*s存放未求出的因子之和,初值为被

37、测数本身*/fo r (i =1;i 1)p r i n t f C M%dv,kl,k2);/*n l 表示 a 至少有 2 个因子*/i f(n 2)p r i n t f r,%d k3);/*注意以下i f的用法,追加的方法*/i f(n 3)p r i n t f(,%d”,i f(n 4)p r i n t f(,%d”,i f(n 5)p r i n t fi f(n 6)p r i n t f(,%d”,i f(n 7)p r i n t fi f(n 8)p r i n t f(,%d,i f(n 9)p r i n t fk4);k5);k6);k7);k8);k9);kl

38、O);p r i n t f(n);)get c hO ;1 4编写程序按下列公式计算e的值(精度为l e-6)。e=l+l/l!+l/2!+l/3!.+l/n!答m ai n()(i n t i;do u ble e=0,t=l;fo r(i=l;t 0.0 0 0 0 0 1;i+)(fo r(j=l;j=i;j+)t*=j;t=l/t;e+=t;)p r i n t f(e=M n,e);get c hO ;)1 5用二分法求方程2 x 3-4 x 2+3 x=0在(T O,1 0)附近的根(二分法:先找到a、b,使f(a)、f(b)异号,说明在区间(a,b)内一定有零点,然后求f(a+

39、b)/2,现在假设f(a)0,a b,如果f(a+b)2=0,该点就是零点,如果f(a+b)/2 k0,则在区间(a+b)/2,b)内有零点,按上述方法再求该区间中点的函数值,通过每次把f(x)的零点所有小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,该值即是方程的根)。答#i n c lu dez,m at h.hm ai n()(do u ble x,fx,fa,fb,a=-1 0,b=1 0,z=0.0 0 0 1;fa=2*a*a*a-4*a*a+3*a;f b=2*b*b*b 4*b*b+3*b;i f(fa*fb0)(do(x=(a+b)/2;fx=2

40、*x*x*x-4*x*x+3*x;i f(fx z);p r i n t f(/zT he r o o t i s:%lfn,x);)get c hO ;第六章函数与编译预处理一习题答案写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。m ai n ()u n s i gn ed i n t m,n,p,q;fo r(;)p r i n t f(m,n=);s c an f(zz%d,%d,&m,&n);i f(m 0|n n)i=m;m=n;n=i;fo r(i=m;i 0;i-)i f(m%i=0&n%i=0)r et u r n(

41、i);i n t fu n q(i n t m,i n t n)(i n t i;i f(m n)i=m;m=n;n=i;fo r(i=m;i 47&c=A&c =Z|c=a&c 二 z)z m+;e l s e qt+;pr i n t f (/za m=%d,s z=%d,k g=%d,qt=%d nz z,z m,s z,k g,qt);)制作函数,利用函数调用:#i n c l u d e/zs t d i o.h i n t a n a l y s(c h a r c h);m a i n()i n t i,z m=0,s z=0,qt=0,c;pr i n t f(,zIn pu

42、t a s t r i n g:);w h i l e(c=g e t c h a r()!=,n)(i=a n a l y s(c);s w i t c h(i)c a s e 1:z m+;b r e a k;c a s e 2:s z+;b r e a k;c a s e 3:qt+;pr i n t f (/z m=%d,s z=%d,qt=%d n,z,z m,s z,qt);)i n t a n a l y s(c h a r c h)(i f (c h=,A&c h=,a&c h 47&c h 58)r e t u r n 2;r e t u r n 3;)3按照第5章第8题的要

43、求编写判断水仙花数的函数,从主函数输入正整数n,在主函数中调用判断水仙花数的函数,找出n以内所有的水仙花数。【输入一个3位数,判断是否是一个“水仙花数”。水仙花数是指3位数的各位数字的立方和等于这个 3 位数本身。例如,153=1*1*1+5*5*5+3*3*3答m a i n ()(i n t x,i,f;pr i n t f(In pu t n u m b e r:);scanf&x);f o r(i=0;i=x;i+)(f=0;f=f u n(i);i f (f F)pr i n t f (%d t”,i);)g e t c h O ;)i n t f u n(i n t x)(i n

44、t a,b,c;a=x/100;b=x/10%10;c=x%10;i f(a*a*a+b*b*b+c*c*c=x)r e t u r n 1;e l s e r e t u r n 0;4定义一个宏,实现将两个数互换,并写出程序,输入两个数作为使用参数,并显示结果。套口#d e f i n e f (a,b)(a=a+b,b=a-b,a=a-b)m a i n()i n t x,y;pr i n t f (z,In pu t x,y:);s c a n f (d,%d ,&x,&y);pr i n t f (d,%d ,x,y);f (x,y);pr i n t f (,z 一%d,%d n

45、,x,y);g e t c h O ;)5已知二阶Fi b o n a c c i 数列:0若 n=0Fi b(n)=1 若 n=lFi b(n-l)+Fi b(n-2)其它情况定义递归函数求Fi b(n)o答m a i n ()(i n t i,n;pr i n t f(In pu t n:);scanf&n);f o r (i=0;i=n;i+)pr i n t f(d t ,f i b(i);g e t c h O ;)i n t f i b(i n t n)(i f(n=0)r e t u r n 0;e l s e i f(n=l)r e t u r n 1;e l s e r e

46、t u r n (f i b(n-1)+f i b(n-2);)6定义函数求F=(n+m)!+n!,m、n 均为任意正整数。要求使用递归调用。答l o n g i n t f(i n t x);m a i n O(i n t i,m,n;l o n g i n t s u m;pr i n t f (In pu t m,n:);s c a n f (d,%d ,&m,&n);s u m=f (n+m)+f (n);pr i n t f (z/%l d,z,s u m);g e t c h O ;)l o n g i n t f(i n t x)i n t i,j;i f(x=O|x=l)r e

47、 t u r n 1;e l s e r e t u r n(x*f(x-1);)7定义一个函数完成第5章 第1 1题的功能。【输出九九乘法表。】答m a i n ()(f u n();g e t c h O ;)f u n ()(i n t i,j;f o r(i=l;i=9;i+)(f o r(j=l;j=i;j+)pr i n t f C%d*%d=%-3d,,j,i,i*j);pr i n t f(n);8如果有两个数,每一个数的所有约数(除了它本身以外)的和正好等于对方,则称这两个数为互满数,求 出30000以内所有的互满数,并显示输出,求一个数它的所有约数(除了它本身以处)的和,用

48、函数实现。答m a i n ()(i n t x,y;f o r(x=l;x 30000;x+)(f o r(y=l;y x;y+)(i f(f a c s u m(x)=y&f a c s u m(y)=x)pr i n t f C(%d,x,y);)g e t c h O ;)f a c s u m(i n t n)i n t i,s u m=0;f o r (i=l;i n;i+)i f(n%i=O)s u m+=i;)r e t u r n s u m;)9编写以下函数:输入职工的姓名和职工号;按职工号由小到大排序,姓名顺序也随之调整;输入一个职工号,找出该职工的姓名。在主函数中调用这

49、些函数。答10设计程序完成下列计算。已经:y=f (x,n)/(f (x+2.3,n)+f (x-3.2,n+3)其中:f (x,n)=l-x 2/2!+x 4/4-.+(T)n x 2n/(2n)!(n 20)当:x=5.6,n=7 时,求:y要求通过嵌套调用完成计算。答#i n c l u d e f l o a t f(f l o a t x,i n t n);f l o a t f l(f l o a t x,i n t m);f l o a t f 2(i n t m);m a i n ()(f l o a t x=5.6,y;i n t n=7,i;y=l+f (x,n)/(f (

50、x+2.3,n)+f (x-3.2,n+3);pr i n t f (尸%f n n,y);)f l o a t f(f l o a t x,i n t n)f l o a t s u m=0.0;i n t i;f o r (i=l;i=n;i+)(s u m+=f 1(-1,i)*f l(x,2*i)/f 2(2*i);)r e t u r n s u m;)f l o a t f l (f l o a t x,i n t m)(i n t i;f l o a t y=l.0;f o r (i=l;i=m;i+)y*二x;)r e t u r n y;)f l o a t f 2(i n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com