谭浩强c语言程序设计教程第三版习题答案

所需积分/C币:24 2011-12-12 08:17:11 3.18MB PDF
12
收藏 收藏
举报

谭浩强c语言程序设计教程第三版习题答案
void main o harc1=a',c2='b,c3='c,c4-\101’,c5-\16: printf( a%c b%c\ tc%c\tabc\n", c1, c2, c3) printf(\t\b%c %c\n", c4, c5) 解:程序的运行结果为: aabb cc abc 3.7将"〔hina"译成密码.密码规律:用原来的字母后面第4个字母代替原来的字母, 例如,字母"A"后面第4个字母是"E",用"E”代替"A".因此," China"应译为" Glare 请编一程序,用赋初值的议程使c1,c2,c3,c4,c5分别变成`G,'1’,’m,’r',’e',并 输出 main Ichar c1="C, c2=h, c3=i", c4=n, c5=a cl+=4 c2+=4; 3+=4 C4+=4 C5+=4 printf("密码是%c%c%c%c%cⅦn",c1,c2,c3,c4,c5) 3.8例3.6能否改成如下: #inc ludestdio. h> voId maIn intc1,c2;(原为 char cl,c2) C 98 printf(%oc%c\n", cl, c2) printf( %d%d\n", cl, c2) 解:可以.因为在可输出的字符范围内,用整型和字符型作用相同. 3.9求下面算术表达式的值 (1)x+a%3*(int)(x+y)%2/4=2.5(x=2.5,a=7,y=4.7) (2)( float)(a+b)/2+(int)x%(int)y=3.5(设a=2,b-=3,x=3.5,y=2.5) 3.10写出下面程序的运行结果 #includesstdio, h> d maino nt 1,J,m,n printf(%d, %d, %d, %d\n", i,j, m,n); 解:结果 第4章 4.4.a-=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2'b.恕得 到以下的输出格式和结果,请写出程序要求输出的结果如下 a=3b=4 x-1.200000,y-2.40000,2--3.600000 x+y=3.60y+2=-1.202+x=-2.40 u51274n=128765 c1=’a’or97( ASCII) 2=B 98(ASCID 解 in( int a b c long int u,n; float char c1 c2 a=3;b=4;C=5; x=1.2;y=2.4;z=-3.6 u=51274;n=128765 cl=a. c2=b print printf("a=‰db=‰2dc=‰2d\n",a,b,c); printf("x=‰%8,6f,y=%8.6f,z=%9.6f\n",x,y,z); printf(x+y=5. 2f y=z=95 2f z+x=5. 2f\n" x+y, y+2, z+x) printf( u=%6ld n=%9ld\n", u, n) printf (cl or %d(ASCII)\n", cl, c2) printf( c2='%c' or %d(ASCII)\n", c2, c2) 4.5请写出下面程序的输出结果 结果 57 67.856400,-789.123962 67,856400,-789,123962 67,86,-789.12,67.856400,-789.123962,67,856400,-789.123962 6.785640e+001,-7.89:+002 A,65,101,41 1234567,4553207,d687 65535,17777,ffff,-1 COMPUTER. COM 4.6用下面的 scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=’a’, 问在键盘上如何输入? maln int a b float x char cl c2 scanf("a=%d b=%d, &a, &b) scanf("x-yf' y-c", &x, &y) scanf("c1=%c c2=%c",&cl, &c2) 解:可按如下方式在键盘上输入 x=8.5y=71.82 Cl=A c2=a 说明:在边疆使用一个或多个 scaf函数时,第一个输入行末尾输入的"回车"被第二 个 scanf函数吸收,因此在第二\三个 scant函数的双引号后设一个空格以抵消上行 入的"回车”″.如果没有这个空格,按上面输入薮据会出错,读者目前对此只留有 初步概念即可,以后再进一步深入理解. 4.7用下面的 scant函数输入数据使a=10,b=20,c1=A’,c2=’a’,x=1.5,y=-3.75,z=57.8,请问 在键盘上如何输入数据? scant("%5d%5d%c%c%f为十%*%士”",&a,kb,&c1,&C2,&y,kz) 解 maIn( float char cl c2 scanf("965d%5d %c%c%f%f, &a, &b, &cl, &c2, &x, &y, &2) 运行时输入: 1020Aa1.53.75+1.5,67.8 注解:按‰d格式的要求输入a与b时,要先键入三个空格,而后再打入10与20。%*f是用 来禁止赋值的。在输入时,对应于%f的地方,随意打入了一个数1.5,该值不会赋给任何变 量 3.8设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,國球表面积,圆球体积,區柱体积,用 scanf 输入数据,输出计算结果,输出时要求冇文字说明,取小数点后两位数字.请编程 解: maino TlOL pi, h, r, l, s, sy, vy, v%; pi=3.1415926 printf("请输入圆半径r圆柱高h:Ⅶn"); scanf(%f, %f,&r,&) g =4kpi*rkr vq=4.0/3.0米i*r*r*r; VPi printf("圆周长为:=%6.2f\n",1); printf("圆面积为 =%6.2f\n",s) printf("圆球表面积为:=%6.2f\n",sq printf("圆球体积为:=%6.2f\n",vz) 4.9输入一个华氏温度,要求输出摄氏温度,公式为C=5/9(F-32),输出要有文字说明取两位 小数 解:main( float c f printf("请输入一个华氏温度:n"); scanf(%f, &f) c=(5.0/9.0)*(f-32); printf("摄氏温度为:‰5.2f\n",c) 第五章逻辑运算和判断选取结构 5.4有三个整数a,b,o,由键盘输入,输出其中最大的数. maln ant a.b.c printf("请输入三个数:"); scanf(%d, %d,%d if(a<b) if(b<c) printf( max=d\n", c) else printf( max=9d\n", b) else if(ac) printf( "max=%d\n", c) printf( max-d\n, a) 方法2:使用条件表达式 main( [int a, b, c, termp, max 请输入A,B,C:") scanf(%d, %d, %d", &a, &b, &c) printf(a=%d, B=%d, C=%d\n", a, b, c) temp=(a)b)?a: b max=(temp>c)? temp: c printf("A,B,C中最大数是%d,",max) main int x printf("输入x:") f("%d",&x) f(x<1) printf(X-od, Y-X-%od \n, x, y) else if (x(10) printf( X=%d, Y=2*X-1=%d\n, X, y) 3*x-11 printf("x=5d, Y=3*x-11=%d \n", x, y) 5.7给一个不多于5位的正整数,要求:1.求它是几位数2.分别打印出每一位数字3.按逆序 打印出各位数字.例如原数为321,应输出123 aln long int num int indiv, ten, hundred, housand, tenthousand, place: printf ("请输入一个整数(0-9999:"); scanf(%1d &num if(num)9999 place else if(num>999) place=4 else if (num/99) place=3 else if (num>9) ace else place=1 printf( place=d\n", place) printf("每位数字为:") ten thousand=num/10000 LhOusarndl-=(rIum-LenI ThOuSand *10000)/1000 hundred=(num-tenthousand*10000-thousand* 1000)/100 ten=(num-tenthousand*10000-thousand*1000-hundred*100)/10 indiv=num-tenthousand:k 10000-thousand:k1000-hundred 100-ten*k1C switch(place) [case 5: printf("%d,%d, %d, %d, %d", tenthousand, thousand, hundred, ten, : ndiv printf("\n反序数字为:"); printf( %d%d%d%d%d\n", indiv, ten, hundred, thousand, tenthousand break case 4: printf("%d, %d, %d, %d", thousand, hundred, ten, indiv) printf("n反序数字为:"); printf(%d%d%d%d\n", indiv, ten, hundred, thousand) casc 3: printf ("%d, %d, %d\n", hundred, ten, indiv) printf("n反厅数字为:") printf("%d%d%d\t", indiv, ten, hundred case 2: printf("%d, %d\n", ten, indiv printf("\n反序数字为:"); printf(%d%d\n", indiv, ten) case 1: printf("%d\n", indiv) printf("n反序数字为:") printf( %d\n", indiv) 5.81.if语句 main ng 1 float bonus, bonl, bone, bond, bone, bon10 /*初始化变量* bonl=100000*0.1; bon2=100000*0.075+bon1; bon4=200000米0,05+bon2 on6=200000米0.03+bon4 bon10=400000*0.015+bon6 printf("请输入利润") scanf(%ld,&1) /*计算*/ if(i<=1e5) bonus=is*0. 1 else if(i<2e5) bonus=bon1+(1-100000)*0.075 else if(i<=4e5 bonus=bon2+(i-200000)*0.05 else if(i<=6e5) borIus=bon4+(i-400000*0.0.3; se if (i<=le6) bonus=bon6+(-60000)0*0.015 bonus=bon10+(1-1000000)0.01 printf("奖金是%10.2f", bonus) 用 switch语句编程序 main( [long i float bonus, bon1. bon2, bon 4. bon6, bon10 nt branch /*初始化变量* bon1-100000*0,1 bon2=bonl+100000*0.075 bon4=bon2+200000*0.05 bon6=bon4+200000*0.03 bon10=bon6+400000*0.015 printf("请输入利润:"); scanf(%ld,&1) branch=i/100000 if(branch>10) branch=10 /华计算*/ switch(branch) Icase 0: bonus=1*0. 1: break case 1: bonus=bon1+(1-100000)=0. 075; break case case 3: bonus-bon2I(i 200000)*0.05:break case 4. case 5: bonus=bond+(1-400000)*0. 03; break case b case case case 9: bonus=bon6+(i-600000)*0. 015: break case 10: bonus=bon10+(i-1000000)*0.01 printf("奖金是%10.2f", bonus); 5.9输入四个整数,按大小顺序输出 ma ln Hint t, a, b, c, d printf("请输入四个数:") scanf(%d, %d, %d, %d", &a, &b, &c, &d) prinTf(\r\r i=dl, b=%dl, (: =%d, d=%d \r", i, b, c, d) if(a>b) It=a; a=b; b=t: 1 if(a>c) (t=a;a=c;c=t; 1 if(a>d) [t=a; a=d; d=t if(b>c) It=b; b=c:c=t if(b>d) [t=b; b=d; d=t; 1 f(c>d) it=c: c=d: d=t: printf("\n排序结果如下:\n"); printf( %d %d %d %d \n", a, b, c, d) 5.10 塔 maino int h=10 float X, y, x0=2, y0=2, d1, d2, d3, d4: printf("请输入一个点(x,y):"); scanf(%f, %f,&x, &y) d1=(x-x0)*(x-x0)+(y-y0)(y-y d2=(x-x0)*(x-x0)+(y+y0)(y+yo) d3=(x+x0)*(x+x0)+(y-y0)*(y-y0); d=(x+x0)*(x+x0)+(y+y0)*(y+y0) f(d11&&d2>1&&d3>1&&d4>1) h=0 printf("该点高度为%",h); 第六章循环语句 6.1输入两个正数,求最大公约数最小公倍数 main( int a, b m1, num2, temp printf("请输入两个正整数:n"); scanf(%d, %d",&num1, &num2) if(num1(num2 temp=numl num1=num2 numa=temp; E=rum.b=ru2 while(bl=0) a=b b=temp:

...展开详情
试读 37P 谭浩强c语言程序设计教程第三版习题答案
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
上传资源赚积分or赚钱
    最新推荐
    谭浩强c语言程序设计教程第三版习题答案 24积分/C币 立即下载
    1/37
    谭浩强c语言程序设计教程第三版习题答案第1页
    谭浩强c语言程序设计教程第三版习题答案第2页
    谭浩强c语言程序设计教程第三版习题答案第3页
    谭浩强c语言程序设计教程第三版习题答案第4页
    谭浩强c语言程序设计教程第三版习题答案第5页
    谭浩强c语言程序设计教程第三版习题答案第6页
    谭浩强c语言程序设计教程第三版习题答案第7页
    谭浩强c语言程序设计教程第三版习题答案第8页

    试读结束, 可继续读4页

    24积分/C币 立即下载 >