c语言程序设计教程(第2版) 杨路明 课后习题答案.pdf
《c语言程序设计教程(第2版) 杨路明 课后习题答案.pdf》由会员分享,可在线阅读,更多相关《c语言程序设计教程(第2版) 杨路明 课后习题答案.pdf(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 一 章 C 语言程序设计概述一习题答案1算法的描述有哪些基本方法?答1、自然语言2、专用工具2C 语言程序的基本结构是怎样的?举一个例子说明。答1、C 语言程序由函数构成;2、“/*”与“*/”之间的内容构成C 语言程序的注释部分;3、用预处理命令#in c l u d e、#d e f in e 可以包含有关文件或预定义信息;4、大小写字母在C 语言中是有区别的;5、除 m a in。函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。3C 语言有什么特点?答;、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函
2、数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C 语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C 语言编写的程序的可移植性好。4指出合法与不合法的标识符命名。答A B1 2 Vl e 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 XX Y Z 4 3 K2 V A V E#X Y X _ 762 V#_ D
3、 T 5X C.D X5说明下列T u r b o C热键的功能。答F 2:源文件存盘F 1 0:调用主菜单F 4:程序运行到光标所在行(用于调试程序)Ct r l+F9:编译并链接成可执行文件A lt+F5:将窗口切换到D O S下,查看程序运行结果。6说明下列Tu r b o C方式下输入并运行下列程序,记录下运行结果。ma in()p r int f(*n);p r int f C w e lc o me y o u n);p r int f(,z v e r y go o d n);p r int f(*n);ma in。int a,b,c,t;p r int f(z,p le a s
4、 e inp u t t hr e e nu mb e r s;);s c a nf(%d,%d,%d,&a,&b,&c);/*教材 S 是错误的*/t=ma x(ma x(a,b),c);p r int f(z,ma x nu mb e r is:%d nz,,t);int ma x(int x,int y)int z;if(x y)z=x;e ls e z=y;r e t u r n(z);)答运行结果:w e lc o me y o uv e r y go o d运行结果:p le a s e inp u t t hr e e nu mb e r s;3,1,4 /*左侧下划线内容为键盘
5、输入*/ma x nu mb e r is:47一个C程序是由若干个函数构成的,其中有且只能有一个_函数。答ma in()8在 Tu r b o C 环境下进行程序调试时,可以使用Ru n下拉菜单的 命令或按键转到用户屏幕查看程序运行结果。答1、Us e r s c r e e n2、A lt+F59C语言对标识符与关键字有些什么规定?答1、标识符用来表示函数、类型及变量的名称,它是由字母、下划线和数字组成,但必须用字母或下划线开头。2、关键字是一种语言中规定具有特定含义的标识符,其不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。1 0C 源程序输入后是如何进行保存的?答是以C 为
6、扩展名保存的纯文本文件。第 二 章 C 语言程序的基本数据类型与表达式一习题答案1指出下列常数中哪些是符合C 语法规定的。答,一X 1 0 1-X -X e 3 X 0 1 9 V Oxle V a b n”-J 1.e 5 X (2+3)e (4-2)X 5.2e 2.5 X2请找出下列程序中的错误,改正后写出程序运行结果。v o i d ma inO int x,y=z=5,a v e r;x=7A VER=(x+y+z)/3p r int f(A VER=%d n,a v e r);)v o id ma inO c ha r c l=a,;c 2=b ;c 3=,c;int a=3.5,
7、b=,Np r int f(/,a=%d b=,e nd n,a,b);p r int f(,a%c b%c b c%c t a b c n,/,c l,c 2,c 3);ma inO int x,y=5,z=5,a v e r;x=7;a v e r=(x+y+z)/3;p r int f(,A VER=%d n,/,a v e r);)运行结果:A VER=5 ma in()c ha r c l=a,c 2=b,c 3=,c;int a=3,b=,A;p r int f(a=%d,b=%c e nd n,a,b);p r int f(,a%c b%c b c%c t a b c n,/,c
8、 l,c 2,c 3);)运行结果:a=3,b=A e nd a a b c c a b c3写出下列赋值的结果,表格中写了数值的是要将它赋给其他类型的变量,将所有的空格填上赋值后的数据(实数保留到小数点后两位)。i n t99-1c h a rh un s i g n e d i n t66f l o a t55.78l o n g i n t68答i n t991 0 4665568-1c h a rch B7D un s i g n e d i n t991 0 466556865535f l o a t99.0 01 0 4.0 066.0 055.7868.0 0-1.0 0l o
9、n g i n t991 0 4665568-1写出程序运行结果。v o i d m a i n()i n t i,j;i=8,j=1 0;p r i n t f (%d,%d,%d,%d n,i,j,+i,j+);)m a i n。i n t a=l,b=2,c=30;p r i n t f (/z%d,%d,%d,%d n,a=b=c,a=b=c,a=(b=c),a=(b=c);)注意:a=b=c,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(%
10、d,%d,%d,%dn,z,a,b,c,d);)答飞行结果:11,19,30,15写出下面表达式的值(设 a=10,b=4,c=5,d=l,x=2.5,y=3.5)。(l)a%=(b%=3)n+,a+=a-=a*=a(3)(float)(a+c)/2+(int)x%(int)ya*=b+c(5)+a-c+b+(6)+a-c+b ab?x:A(8)b+=c(9)a+b,18+(b=4)*3,(a/b,a%b)(10)x+a%3*(int)(x+y)%2/4+sizeof(int)(ll)ab?a:c0?x:-x 的功能是什么?答Z口果X的值是一正数,则表达式的值为X 值;如果X的值是一非正数,则
11、表达式的值为-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.-60 C.60 D.-24答B.1 0若有以下类型说明语句:c h a r w;i n t x;f l o a t y;d o ub l e z;则表达式w*x+z-y 的结果为()类型。A.f l o a t B.c h
12、 a r C.i n t D.d o ub l e答D.第 三 章 顺序结构程序设计一习题答案1变量k为f l o a t 类型,调用函数s c a n f(%d”,&k),不能使变量k 得到正确数值的原因是 o答格式修饰符与变量类型不一致。因为%d 输入的数据类型应该为十进制整数,而&k 为占用4 个字节的f l o a t 类型变量的地址。2a=1 234,b=1 2,c=34,则执行“p r i n t f (1%3d%3d%-3d|n”,a,b,c);”后的输出是 o答1 1 2 3 4 1 2 3 4|分析如下:%3 d为右对齐输出变量,且指定输出变量的值宽度为3个字符位,如果变量实
13、际位数小于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如果 p r i n t f(%X,%o n”,a,b);”则输出为F F,1 0。说明在输出十六进制字母时,其大小写受格式修饰符的限制,如果是“外 x”则输出小写,如果是“X”则输出大写。如果希望在输出十六进制时输出前导符Ox 或 0 X,则以上输出语句应改printf(%#x,%on”,a
14、,b);为或printf(%#X,%on”,a,b);。本条解释不必须掌握。4以 下 程 序 输 出 的 结 果 是。main()int al=l,a2=0,a3=2;printf(96d,%d,%dn”,al,al+a2+a3,a3-al);答1,3,15printf函数中用到格式符%5 s,其中5 表示输出字符占用5 歹!J。如果字符串长度大于5,则按 输出;如果字符串长度小于5,则按 输出。答实际左端补空格6已定义变量如下:int al,a2;char cl,c2;若要求输入al、a2、cl和 c2 的值,正 确 的 输 入 函 数 调 用 语 句 是。答scanf(%d,%d,%c,枇
15、,&al,&a2,&cl,&c2);7输入两个整型变量a、b 的值,输出下列算式以及运算结果 0a+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(/%d+%d=%dn,z,a,b,a+b);10+5=15printf(/%d-%d=%dn,/,a,b,a-b);10-5=5printf C%d*%d=%dn,,a,b,a*b);10*5=5 0printf(%d/%d=%dn”,a,b,a/b);10/5=2printf(%(float)d/%d=%fn”
16、,a,b,(float)a/b);(float)10/5=2.0 0 0 0 00printf(/z%d%d=%dnz/,a,b,a%b);10%5=0输入一个非负数,计算以这个数为半径的圆周长和面积。答#de f i n e PI 3.1 4 1 5 9 2 6m a i n Of l o a t r,1,a r e a;p r i n t f (z,I n p u t a p o s i t i v e/7);s c a n f (%f ,&r);l=2*PI*r;a r e a=PI*r*r;p r i n t f (z,l=%f t a r e a=%f nz,,1,a r e a);
17、)输入任意一个3 位数,将其各位数字反序输出(例如输入1 2 3,输出3 2 1)。答m a i n O(i n t x,y;p r i n t f (z,I n p u t a n u m b e r(1 0 0-9 9 9):,z);s c a n f(%d,&x);y=1 0 0*(x%1 0)+1 0*(x/1 0%1 0)+x/1 0 0;/*注意分析此处算法*/p r i n t f (%d%d n ,x,y);1 0输入任意大小的3 个整数,判断其中是否有两个奇数一个偶数。若是则输出Y E S,不是则输出NOT(要求用条件表达式进行判断,不使用i f 语 句)。答m a i n
18、Oi n t x,y,z,o ddc 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 ddc o u n t+:0;y%2=1?o ddc o u n t+:0;z%2=l?o ddc o u n t+:0;o ddc o u n t=2?p r i n t f (Y E S):p r i n t f C N O D ;)1 1求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按A SC I I码值,按从大到小的顺序输出这3个字符及其对应的A SC
19、 I I码值。答本题考查同学们对字符类型数据的认识,如果在AS CH范围内则即可以显示为字符,又可以显示为整数值;无论是否能够显示为字符,字符类型数据是可能参与数值运算的,切记。m a i n ()(c h a r c;p r i n t f (/zI n p u t c h a r a c t e r/);sc a nf(%c,&c);pri nt f (z,%c-%d n,z,c-1,c-1);pri nt f (c-%d n,c,c);pri nt f (%c-%d n/z,c +1,c+1);g e t c h O;/*为便于调试程序,运行至此程序停顿,此时可以看到运行结果,按任意键程
20、序真难得结束并返回到编辑环境*/1 2输入三角形的边长,求三角形 面 积(面 积=sqrt(s(s-a)(s-b)(s-c),s=(a+b+c)/2)0答#i nc l ud ez/m a t h.h /*由于程序中使用了开平方函数sqrt (),所以需要包含数学头文件*/m a i nOf l oa t a,b,c,s,a re a;i nt ok=0;pri nt f (I nput a,b,c:/z);sc a nf (%f,%f,%f ,&a,&b,&c);a+b c?ok+:0;/*以下3条语句为判断是否输入的数据是否构成封闭三角形*/a+c b?ok+:0;b+c a?ok+:0;
21、ok=3?(s=(a+b+c)/2,a re a=sqrt (s*(s-a)*(s-b)*(s-c),pri nt f (,a re a=%f/,,a re a):pri nt f(e rror);g e t c h O ;第四章选择结构程序设计一习题答案1设X、t 均为i nt 型变量,则执行语句“x=1 0;t=x&x 1 0;”后,t 的值为答02假定所有变量均已正确定义,则程序段:i nt a=0,y=1 0;i f(a=0)y-e l se i f(a 0)y+;e l se y+=y;运行后y的值是;答2 03能表 述 2 0 x 3 0 或 x 2 0&x 3 0|+x -1 0
22、 04若有定义语句“i nt a=2 5,b=1 4,c=1 9;,则以下语句执行结果是i f(a =2 5&b =2&c)pri nt f (,z*a+b=%d,a-b=%d*n,/,a+b,a-b);e l se pri nt f (,z*a=%d,b=%d,c=%d*n,/,a,b,c);答*a=2 5,b=1 4,c=1 9*5假定i和 j为 i nt 型变量,则执行以下语句后i的值是 oi nt i=l;sw i t c h(i)c a se 1:f or(j=0;j 9;j+)i+=j;b re a k;c a se 2:f or(j=l;j 1 0;j+)i+=j;b re a
23、k;c a se 3:i+;)答3 7分析:执行了 c a se 1:和c a se 3:中的代码。同时c a se 1:语句中的 是可以取消的。6以下两条i f语句可合并成一条i f语句,即 oi f(a b)pri nt f (/,*y=%d n,.y);e l se pri nt f(*x=%d rT,x);答i f(a l)pri nt f(out si d e );e l se i f (d l)pri nt f(i nsi d e );e l se pri nt f(i nsi d e );输入年号和月份,输出这一年该月的天数(一个年份,先判断是否闰年)。答m a i n()(i
24、nt y,m,d,f;pri nt f (I nput y e a r a nd m ont h y-m:);sc a nf (d-%d ,&y,&m);f=(y%4=0&y/1 0 0!=0:|y/4 0 0=0);i f(m=2)d=2 8+f;/*依据是否闰年决定2月份的实际天数,若是闰年,则 f=l,d即为29 天*/e ls ed=31-(m=4)+(m=6)+(m=9)+(m=l 1);/*m=4 时其值为 1,则本月为 30天,典型算法,重要啊*/p r i nt f(z z%d-%d i s%d d a y s.n,y,m,d);)11请将以下语句改写成s w i t c h语
25、 句(a 0)。i f(a 30)m=le ls e i f(a 40)m=2e ls e i f(a 50)m=3e ls e i f(a 60)m=4e ls e m=5答s w i t c h(a/10)(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 fa u lt:m=5;)12有一函数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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言程序设计教程第2版 杨路明 课后习题答案 语言程序设计 教程 课后 习题 答案
限制150内