C语言第二版)谭浩强习题解答

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

k第一章1.5请参照本章例题,编写一个C程序,输出以下信息:******************************VeryGood!******************************1.6编写一个C程序,输入a、b、c3个值,输出其中最大者。第三章3.3请将下面各数用八进制和十六进制(补码)表示:(1)10(2)32(3)75(4)-617(5)-111(6)2483(7)-28654(8)210033.5字符常量与字符串常量有什么区别?3.6写出以下程序运行的结果。main(){charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c%c”,c4,c5);}3.7要将”China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母”A”后面第4个字母是”E”,用”E”代替”A”。因此,”China”应译为”Glmre”。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。3.8例3.6能否改成如下:main(){intc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}3.9求下面算术表达式的值。(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.53.10写出程序运行结果main(){inti,j,m,n;i=8;j=10;m=++I;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);}3.12写出下面表达式运算后a的值,设原来a=12。设a和已定义为整型变量。(1)a+=a(2)a-=2(3)a*=2+3(4)a/=a+a(5)a%=(n%=2),n的值等于5(6)a+=a-=a*=a第四章4.3C语言为什么要把输入输出的功能作为函数,而不作为语言的基本部分?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=□3□□b=□4□□c=□5x=1.200000,y=2.400000,z=-3.600000x+y=□3.60□□y+z=-1.20□□z+x=-2.40u=□51274□□n=□□□128765c1=’a’□or□97(ASCII)c2=’b’□or□97(ASCII)4.5请写出下面程序的输出结果:#includestdio.hmain(){inta=5,b=7;floatx=67.8564,y=-789.124;charc='A';longn=1234567;unsignedu=65535;printf(%d%d\n,a,b);printf(%3d%3d\n,a,b);printf(%f,%f\n,x,y);printf(%-10f,%-10f\n,x,y);printf(%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n,x,y,x,y,x,y);printf(%e,%10.2e\n,x,y);printf(%c,%d,%o,%x\n,c,c,c,c);printf(%ld,%lo,%x\n,n,n,n);printf(%u,%o,%x,%d\n,u,u,u,u);printf(%s,%5.3s\n,COMPUTER,COMPUTER);}4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序。4.9输入一个华氏温度,要求输出摄氏温度。公式为)32(95Fc输出要有文字说明,取2位小数。4.10编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型或整型?抑二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整型变量与字符变量是否在任何情况下都可以互相代替?如charc1,c2;与intc1,c2;是否无条件地等价?第五章5.3写出下面各逻辑表达式的值。设a=3,b=4,c=5。(1)a+bc&&b==c(2)a||b+c&&b-c(3)!(ab)&&!c||1(4)!(x=a)&&(y=b)&&0(5)!(a+b)+c-1&&b+c/25.4有3个整数a、b、c,由键盘输入,输出其中最大的数。5.5有一函数:))10(113101(12)1(xxxxxxy,写一程序,输入x,输出y值。5.6给出一百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。90分以上为’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。5.8企业发放的奖金根据利润提成。利润I低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元(100000I≤200000)时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万元I≤40万元时,低于20万元的部分仍按上述办法提成(下同),高于20万元的部分按5%提成;40万元I≤60万元时,高于40万元的部分按3%提成;60万元I≤100万元时,高于60万元的部分按1.5%提成;I100万元时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。5.9输入4个整数,要求按由小到大的顺序输出。5.10有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。6.1输入两个正整数m和n,求其最大公约数和最小公倍数。6.2输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。6.3求annaaaaaaaaaS个之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。6.4求201!nn(即求1!+2!+3!+4!+…+20!)。22-2-2206.5求100150110121nkkkkk。6.6打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。6.7一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:6itsfactorsare1,2,36.8有一分数序列,1321,813,58,35,23,12求出这个数列的前20项之和。6.9一球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?6.10猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩下一个桃子了。求第一天共摘了多少桃子。6.11用迭代法求ax。求平方根的迭代公式为)(211nnnxaxx要求前后两次求出的x的差的绝对值小于10-5。(可不做)6.12用牛顿迭代法求下面方程在1.5附近的根。(可不做)2x3-4x2+3x-6=06.13用二分法求下面方程在(-10,10)之间的根。(可不做)2x3-4x2+3x-6=06.14打印出以下图案。*************************6.15两个乒乓球队进行比赛,各出3人。甲队为A、B、C3人,乙队为X、Y、Z3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编程序找出3对赛手的名单。《C程序设计》习题解答第一章1.5main(){printf(******************************\n);printf(\n);printf(VeryGood!\n);printf(\n);printf((******************************\n);}1.6main(){inta,b,c,max;printf(inputa,b,c:\n);scanf(%d,%d,%d,&a,&b,&c);max=a;if(maxb)max=b;if(maxc)max=c;printf(max=%d,max);}第二章习题解略第三章第三章要点:1、C语言的数据类型P38图2、常量、变量的约定及各类数据常量、变量使用的约定。3、运算符及表达式的约定和应用。难点:自加、自减的用法及其运算后的值。逗号运算符及逗号表达式的用法3.3(1)、(10)10=(12)8=(a)16(2)、(32)10=(40)8=(20)16(3)、(75)10=(113)8=(4b)16(4)、(-617)10=(176627)8=(fd97)16(5)、(-111)10=(177621)8=(ff91)16(6)、(2483)10=(4663)8=(9B3)16(7)、(-28654)10=(110022)8=(9012)16(8)、(21003)10=(51013)8=(520B)163.4略3.5字符常量是一个字符,用单引号括起来。字符串常量是由0个或若干个字符组合而成,用双引号把它们括起来,存储时自动在字符串最后加一个结束符号‘0’。3.6运行结果为:aabbccabcAN3.7main(){charc1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf(“密码是%c%c%c%c%c\n”,c1,c2,c3,c4,c5);}3.8可以。因为在可输出的字符范围内,用整型和用字符型作用相同。3.9(1)2.5(2)3.53.10结果为:9,11,9,103.12(1)24(2)10(3)60(4)0(5)0(6)0第三章第四章要点:1、C语句分类2、赋值语句的用法3、数据输入输出的语句的用法。特别注意格式输入、输出语句的用法,要看到语句能写出输入、输出结果,给出输入、输出结果能写出语句。4、顺序程序的概念、结构。4.3不把输入输出作为C语言提供的语句的目的是使C语言编译系统简单,因为将语句翻译成二进制的指令是在编译阶段完成的,没有输入输出语句就是可以避免在编译阶段处理与硬件有关的问题,可以使编译系统简化,而且通用性强,可移植性好,对各种型号的计算机都适用,便于在各种计算机上实现。4.4main(){inta,b,c;longintu,n;floatx,y,z;charc1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1=’a’;c2=’b’;printf(“\n”);printf(“a=%2db=%2dc=%2d\n”,a,b,c);printf(“x=%8.6f,y=%8.6f,z=%9.6f\n”,x,y,z);printf(“x+y=%5.2fy+z=%5.2fz+x=%5.2f\n”,x+y,y+z

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功