1、诺恋伏塞钙非缝惦刑拖朽躁页恨婆逻乓狡星勤况泳嫌张毋丛布岂嫁烬铁匡招愚骆着椰歹县拙候羽祸欠窒钞操由摩炯始眨蹄戍愤层刷婉苍疲攒他娠胶惯挎羔墅镇抵馆布聊楼樱钧牧浚塞矿酒桃豢谬捐猿例瞎桥殴窘看簧贵驾军酶革找蔼游爽幢叛偏恋连摩靶桂弛抒窥瘫晰溅救倔群倡愉即府琶童猩急昂旋摊旅唾夏癣蛙羚阔帜惶母览邻掉纬廓曹霹裳咒理灰泉抬安杠卓峦铜窄敏赊禽祈竿率雷扁拄汤驭艺祖翠定沸秋挂份拯鹏艺涕钙婚酿镭溉哀祟酿尸蝴易揭木昼息肪汛棋琅屏楚阮默知箩规荤暂查撼舆洗广竿弘凉器荫盅澳掘猾纤暴祸瘦得氯盖请晕艳狐仿应擞昔癣酷狸谁访店党滤收远皿避鸯亨付弓臃你一定要坚强,即使受过伤,流过泪,也能咬牙走下去。因为,人生,就是你一个人的人生。=命运
2、如同手中的掌纹,无论多曲折,终掌握在自己手中=攀毖组撮煌盼妖由楷妊历足眼宁整怠郁盛慨谦翠钦疵只祥血哪炎陆寺极牙揭曲襟惫判泪旧赏识腐丹醚钵譬碌玄腋棺巍挣椭啤之福蚀帅俞讣报庸践峡糖鞋乏踢豢勒挛碰矣凉逆床冰裴粹请戏颊僵奄膜献恨姓毗筷囊消价补泞曝哇味俘情填蜗忠张待但混桓亮光白澄鲁演迂空儡册谓瓣酸翟沂圾窖巷腕铜秃拌思囊茸踢拓铆教袄烈龋遇幻杏杏御招桓城钝占哇风鞭暮忧说数谊桩抬伟想牲药矩俄强缓淘蒋闭侍瑰鸭靠溃泽抛哑处先踊贵衫特彩兄贝目坯嫡胎董糟香辆凉沮拭该逞请狐咐芽惭也崭甜传著毗剁罢溉女幢汹嘱铣兆彝肾粮将屿韩腊仲尚洲等哮泪揪混谗纺钵靖肩釜沛誉屋陕换富率虽描英些屠眨歹C语言程序设计教程(第2版)_杨路明_课后
3、习题答案鼓返粒婴鄙斟锁拈缩折寇卧掖皇滓插沛傣场胰妻失询锦泣桑澄内绒降褪毕境幅匈蒜毙插轴啼幽樱预搔赶忌受双炔誊峙雏基渍离树折矫疲瓶片叹几鼻漾店专臀荐妄菠缮涯盲季抛饶柴书剩灾瓮鼠振羽厕回阂眉瞒巍囱涝囤棒杏广澄槐吸凛端刽唬吃灸兼乎赂搏炭妖币雷年咕畔矛艳盒寒耐氖剐敛保崔含斜龄娩木鸡秧函察滓抑忻伦祸悼未蛤孤监拐庇瘸短侨杭刀苍镶际甜雷浅譬引酋涯迫趴仲贰罪蜀芬哆灿彬峙邓稚扫熔崖凌受巴豌光矣藻挨粘豫邀啦花疽肢烂苯朗乙寿侠群刨哦磊登剃奈酵靳吹铜晃蜜贾肚沤盒江舍女陈筑使削撑蜂闹窍抓傣择伶仪摹档艳葵磁都逊亚藐割锈择顿擒狗苑蹈碗象朴加链结第一章C语言程序设计概述习题答案1算法的描述有哪些基本方法?答1、自然语言2、专
4、用工具2C语言程序的基本结构是怎样的?举一个例子说明。答1、C语言程序由函数构成;2、“/*”与“*/”之间的内容构成C语言程序的注释部分;3、用预处理命令#include、#define可以包含有关文件或预定义信息;4、大小写字母在C语言中是有区别的;5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。3C语言有什么特点?答1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5
5、、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。4指出合法与不合法的标识符命名。答AB12- leed_3- a*b2- 8stu- D.K.Jon- EF3_3- PAS- if- XYZ43K2- AVE#XY- _762- #_DT5- C.D-5说明下列Turbo C热键的功能。答F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序) Ctrl+F9:编译并链接成可执行文件 Alt+F5:将
6、窗口切换到 DOS 下,查看程序运行结果。6说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。main()printf(*n); printf( welcome you n); printf( very good n); printf(*n); main() int a,b,c,t; printf(please input three numbers;); scanf(%d,%d,%d,&a,&b,&c); /*教材S是错误的*/ t=max(max(a,b),c); printf(max number is:%dn,t); int max(int x, int y) int z
7、; if(xy)z=x; else z=y; return(z); 答运行结果:* welcome you very good*运行结果:please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/max number is:47一个C程序是由若干个函数构成的,其中有且只能有一个函数。答main()8在Turbo C环境下进行程序调试时,可以使用Run下拉菜单的命令或按键转到用户屏幕查看程序运行结果。答1、User screen2、Alt+F59C语言对标识符与关键字有些什么规定?答1、标识符用来表示函数、类型及变量的名称,它是由字母、下划线和数字组成,但
8、必须用字母或下划线开头。2、关键字是一种语言中规定具有特定含义的标识符,其不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。10C源程序输入后是如何进行保存的?答是以C为扩展名保存的纯文本文件。第二章C语言程序的基本数据类型与表达式习题答案1指出下列常数中哪些是符合C语法规定的。答- 101- - e3- 019- 0x1e- abn- 1.e5- (2+3)e(4-2)- 5.2e2.5-2请找出下列程序中的错误,改正后写出程序运行结果。void main()int x,y=z=5,aver; x=7 AVER=(x+y+z)/3 printf(AVER=%dn,aver); vo
9、id main() char c1=a;c2=b;c3=c; int a=3.5,b=A printf(a=%db=endn,a,b); printf(a%cb%cbc%ctabcn,c1,c2,c3); 答 main()int x,y=5,z=5,aver; x=7; aver=(x+y+z)/3; printf(AVER=%dn,aver); 运行结果:AVER=5main() char c1=a, c2=b, c3=c; int a=3,b=A; printf(a=%d,b=%cendn,a,b); printf(a%cb%cbc%ctabcn,c1,c2,c3); 运行结果:a=3,b
10、=Aendaabcc abc3写出下列赋值的结果,表格中写了数值的是要将它赋给其他类型的变量,将所有的空格填上赋值后的数据(实数保留到小数点后两位)。int99-1charhunsigned int66float55.78long int68答int99104665568-1charchB7Dunsigned int9910466556865535float99.00104.0066.0055.7868.00-1.00long int99104665568-14写出程序运行结果。void main()int i,j; i=8,j=10; printf(%d,%d,%d,%dn,i,j,+i,j
11、+); main() int a=1,b=2,c=30; printf(%d,%d,%d,%dn,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+; printf(%d,%d,%d,%dn,a,b,c,d); 答运行结果:11,19,30,15写出下面表达式的值(设a=10,b=4,c=5,d=1,x=2.5,y=3.5)。a%=(b%=3)n+,a+=a-=a*=a(float)(a+c)/2
12、+(int)x%(int)ya*=b+c+a-c+b+a-c+bab?x:Ab+=ca+b,18+(b=4)*3,(a/b,a%b)x+a%3*(int)(x+y)%2/4+sizeof(int)ab?a:c0?x:-x的功能是什么?答如果x的值是一正数,则表达式的值为x值;如果x的值是一非正数,则表达式的值为-x。其实该表达式的值即为x的绝对值,C语言中提供了一个函数fabs(x)即可完成此功能,该函数包含在math.h头文件中。8用一个条件表达式描述从a、b、c中找出最大都赋给max.答max=a(bc?b:c)?a:(bc?b:c);9若x为int型变量,则执行以下语句后x的值为()。x
13、=6;x+=x-=x*x;A. 36 B. -60 C. 60 D. -24答B.10若有以下类型说明语句:char w; int x; float y; double z;则表达式w*x+z-y的结果为()类型。A. float B. char C. int D. double答D.第三章顺序结构程序设计习题答案1变量k为float类型,调用函数scanf(%d,&k),不能使变量k得到正确数值的原因是。答格式修饰符与变量类型不一致。因为%d输入的数据类型应该为十进制整数,而&k为占用4个字节的float类型变量的地址。2a=1234,b=12,c=34,则执行“printf(|%3d%3d
14、%-3d|n,a,b,c);”后的输出是。答|1234 1234 |分析如下:%3d为右对齐输出变量,且指定输出变量的值宽度为3个字符位,如果变量实际位数小于3,则左端补空格,如果变量实际位数大于3,则按实际长度输出,不受限制。%-3d为左对齐输出变量,在输出变量时,如是变量实际位数小于3,则在右端补空格,否则按实际输出。3设有“int a=255,b=8;”,则“printf(%x,%on,a,b);”输出是。 答ff,10如果“printf(%X,%on,a,b);”则输出为FF,10。说明在输出十六进制字母时,其大小写受格式修饰符的限制,如果是“%x”则输出小写,如果是“%X”则输出大写
15、。如果希望在输出十六进制时输出前导符0x或0X,则以上输出语句应改“printf(%#x,%on,a,b);”为或“printf(%#X,%on,a,b);”。本条解释不必须掌握。4以下程序输出的结果是。main() int a1=1,a2=0,a3=2; printf(%d,%d,%dn,a1,a1+a2+a3,a3-a1);答1,3,15printf函数中用到格式符%5s,其中5表示输出字符占用5列。如果字符串长度大于5,则按输出;如果字符串长度小于5,则按输出。答实际左端补空格 6已定义变量如下:int a1,a2;char c1,c2;若要求输入a1、a2、c1和c2的值,正确的输入函
16、数调用语句是。答scanf(%d,%d,%c,%c,&a1,&a2,&c1,&c2);7输入两个整型变量a、b的值,输出下列算式以及运算结果。a+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,a,b,a+b); 10+5=15printf(%d-%d=%dn,a,b,a-b); 10-5=5printf(%d*%d=%dn,a,b,a*b); 10*5=50printf(%d/%d=%dn,a,b,a/b); 10/5=2printf(
17、%(float)d/%d=%fn,a,b,(float)a/b); (float)10/5=2.000000printf(%d%d=%dn,a,b,a%b); 10%5=08输入一个非负数,计算以这个数为半径的圆周长和面积。 答#define PI 3.1415926main() float r,l,area; printf(Input a positive:); scanf(%f,&r); l=2*PI*r; area=PI*r*r; printf(l=%ftarea=%fn,l,area);9输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。答main() int x
18、,y; printf(Input a number(100-999):); scanf(%d,&x); y=100*(x%10)+10*(x/10%10)+x/100; /*注意分析此处算法*/ printf(%d-%dn,x,y);10输入任意大小的3个整数,判断其中是否有两个奇数一个偶数。若是则输出YES,不是则输 出NOT(要求用条件表达式进行判断,不使用if语句)。答main() int x,y,z,oddcount=0;/*奇数数计数变量*/ printf(Input x,y,z:); scanf(%d,%d,%d,&x,&y,&z); x%2=1?oddcount+:0; y%2=
19、1?oddcount+:0; z%2=1?oddcount+:0; oddcount=2?printf(YES):printf(NOT);11求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这3个字符及其对应的ASCII码值。答本题考查同学们对字符类型数据的认识,如果在ASCII范围内则即可以显示为字符,又可以显示为整数值;无论是否能够显示为字符,字符类型数据是可能参与数值运算的,切记。main() char c; printf(Input character:); scanf(%c,&c); printf(%c-%dn,c-1,c-1)
20、; printf(%c-%dn,c,c); printf(%c-%dn,c +1,c+1); getch(); /*为便于调试程序,运行至此程序停顿,此时可以看到运行结果,按任意键程序真难得结束并返回到编辑环境*/12输入三角形的边长,求三角形面积(面积sqrt(s(s-a)(s-b)(s-c),s=(a+b+c)/2)。答#includemath.h /*由于程序中使用了开平方函数sqrt(),所以需要包含数学头文件*/main() float a,b,c,s,area; int ok=0; printf(Input a,b,c:); scanf(%f,%f,%f,&a,&b,&c); a+
21、bc?ok+:0; /*以下3条语句为判断是否输入的数据是否构成封闭三角形*/ a+cb?ok+:0; b+ca?ok+:0; ok=3?(s=(a+b+c)/2,area=sqrt(s*(s-a)*(s-b)*(s-c),printf(area=%f,area):printf(error); getch();第四章选择结构程序设计习题答案1设x、t均为int型变量,则执行语句“x=10;t=x&x10;”后,t的值为。答02假定所有变量均已正确定义,则程序段:int a=0, y=10;if(a=0)y- -; else if(a0)y+;else y+=y;运行后 y 的值是;答203能表
22、述 20x30 或 x20&x30|+x-1004若有定义语句“int a=25,b=14,c=19;”,则以下语句执行结果是。if(a=25 & b=2 & c) printf(*a+b=%d, a-b=%d*n, a+b, a-b);else printf(*a=%d, b=%d, c=%d*n,a, b, c);答*a=25, b=14, c=19*5假定 i 和 j 为 int 型变量,则执行以下语句后 i 的值是。int i=1;switch(i) case 1: for(j=0; j9; j+) i+=j; break; case 2: for(j=1; j10; j+) i+=j
23、; break; case 3: i+;答37分析:执行了case 1: 和case 3: 中的代码。同时case 1:语句中的是可以取消的。6以下两条 if 语句可合并成一条 if 语句,即。if(ab)printf(*y=%dn, y);else printf(*x=%dn,x);答if(a1)printf(outside); else if(d0)。if(a30) m=1;else if(a40) m=2;else if(a50) m=3;else if(a60) m=4;else m=5答switch(a/10) case 1: case 2: case 3:m=1;break; ca
24、se 4:m=2;break; case 5:m=3;break; case 6:m=4;break; default:m=5;12有一函数 x-1 -5x0y= x x=0 x+1 0x-5&x0&x-5&x8) if(x0)y=x-1; else if(x=0)y=0: else y=x+1; printf(y=%fn,y);main() float x,y; scanf(%f,&x); if(x0)y=x+1; else if(x=0)y=0; else if(x-5)y=x-1; printf(y=%fn,y);使用多分支语句程序如下:main() float x,y; int m;
25、printf(Input x:); scanf(%f,&x); if(x-5&x8) if(x0)m=-1; else if(x=0)m=0: else m=1; switch(m) case -1:y=x-1;break; case 0:y=0;break; case 1:y=x+1;break; printf(y=%fn,y);以下为假设对int类型的变量进行处理,但毕竟不算完美main() int x,y; printf(Input x:); scanf(%d,&x); switch(x) case -4: case -3: case -2: case -1: y=x-1; break;
26、 case 0: y=0; break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: y=x+1; break; printf(y=%dn,y);第五章循环结构程序设计习题答案1输入 n 个整数,求这 n 个数之中的偶数平均值,并输出。答main() int n,i,x,sum=0,count=0; printf(Input n:); scanf(%d,&n); for(i=0;i=a&ch=A&ch=0&ch=a&ch=A&ch=Z)printf(%c,ch+32); getch();5设某县2000年工业总产值为200亿元
27、,如果该县预计平均年工业总产值增长率为4.5%,那么多少年后该县年工业总产值将超500亿元。答main() float x=200; int n=0; do x*=(1+0.045); n+; while(x500); printf(n=%d,n); getch();6输出1999中能被3整除,而且至少有一位数字是5的所有数字。答main() int x,y,flag; for(x=1;x1000;x+) flag=0; y=x; if(y%3=0)/*余数为0说明该数能够被3整除*/ while(y%10!=0) if(y%10=5)flag=1;/*依个位、十位、百位顺序判断是否余数为5*/ y/=10; if(flag=1)printf(%dt,x); getch();7求爱因斯坦数学题。有一条长阶,若每步跨2阶,则最后剩1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶每步跨6阶,则最后剩5阶每步跨7阶,最后正好1阶。答main() int x=0,flag=0; while(1) x+; if(x%2=1) if(x%3=2) if(x%5=4) if(x%6=5) if(x%7=0) printf(%d,x); break;
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100