C语言程序设计第三版谭浩强课后习题题目.pdf

上传人:无*** 文档编号:90863450 上传时间:2023-05-18 格式:PDF 页数:63 大小:5.64MB
返回 下载 相关 举报
C语言程序设计第三版谭浩强课后习题题目.pdf_第1页
第1页 / 共63页
C语言程序设计第三版谭浩强课后习题题目.pdf_第2页
第2页 / 共63页
点击查看更多>>
资源描述

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

1、C 语言程序设计第三版谭浩强课后习题题目+答案完整版1.5 请参照本章例题,编写一个C 程序,输出以下信息:Very G ood!解:mia n()print f(*);print f(a n);print f(Very G ood!n;print f(n);print f(*);)1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。解:mia n()int a,b,c,ma x;print f(“请输入三个数 a,b,c:n );sca nf(%d,%d”,&a,&b,&c);ma x=a;if(ma x b)ma x 二 b;if(ma x,cl,c2,c3);print f(t

2、 b%c%c”,c4,c5);解:a a M b b M LJ M cc L I i l L I M L J M a b cA M N3.7要将China 译成密码,译码规律是:用原来字母后面的第4 个字母代替原来的字母.例如,字母A后面第4 个字母是E.竺代替A。因此,China 应译为G lmre。请编一程序,用 赋 初 值 的 方 法 使 c l、c 2、c 3、c 4、c 5五 个 变 量 的 值 分 别为,C、h、i、n、a,经过运算,使 cl、c2、c3、c4、c5 分别变为G、1、m、r、e,并输出。解:#inclu de ma in()cha r cl=,C ,c2=,h ,c

3、3=i ,c4=,n ,c5=,a;cl+=4;c2+=4;c3+=4;c4+=4;c5+=4;print f(密码是c%c%c%c%c n,cl,c2,c3,c4,c5);)运行结果:密码是G lmre3.9 求下面算术表达式的值。(1)x+a%3*(int)(x+y)%2/4设 x=2.5,a=7,y=4.7(2)(floa t)(a+b)/2+(int)x%(int)y设 a=2f b=3,x=3.5,y=2.5(1)2.5(2)3.53.10写出程序运行的结果。ma in()int i,j,m,n;i=8;j=10;m=+i;n=j+;print f(u%d,%d,%d,%d”,i,j

4、,m,n);解:9,11,9,103.12写出下面表达式运算后a的值,设原来a=12。设 a和 n 都已定义为整型变量。(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解:(1)24(2)10(3)60(4)0(5)0(6)0第四章4.4 若 a=3,b=4,c=5,x=l.2,y=2.4,z=-3.6,u=5 1274,n=128765,cl=a ,c2二 b。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。a=_ 3_ _ _ b=_ 4_ _ _ c=_ 5x=l.200000,y=

5、2.400000,z=-3.600000 x+y=3.600_ _ _ y+z=-l.20 _ z+x=-2.40cl=za c&b=c(2)a|b+c&b-c(3)!(ab)&!c|1(4)!(x=a)&(y=b)&0(5)!(a+b)+c-l&b+c/2解:(1)0(2)1(3)1(4)0(5)15.4 有 3 个整数a、b、c,由键盘输入,输出其中最大的数。解:方法一Sinclu de main()int a,b,c;p rintf(“请输入3 个整数:”);scanf(z,%d,%d,%d,&a,&b,&c);if(a b)if(b c)p rintf(max=%d n”,c);els

6、e p rintf(max=%d n”,b);else if(a c)p rintf(max=%d n”,c);else p rintf(max=%d n”,a);)方法二:使用条件表达式,可以使程序更加简明、清晰。程序如下:#inclu de main()int a,b,c,temp,max;p rintf(请输入3 个整数:scanf(*%d,%d,%d”,&a,&b,&c);temp=(ab)?a:b;/*将 a 和 b 中的大者存人temp 中*/max=(temp c)?temp:c;/*将 a 和 b 中的大者与c 比较,取最大者*/p rintf(z/3 个整数的最大数是%d n

7、”,max);)5.5 有一函数:写一程序,输入X值,输 出y值。解:#inclu de main()int x,y;p rintf(输入 x:);scanf(d,&x);if(x l)/*x l*/)else if(x 10)/*I W x T O */t y=x;p rintf(x=%3d,y=x=%d n”,x,y);y=2*x-l;p rintf(z/x=%3d,y=2*x T=%d n,x,y);Jelse/*x 2 10 */y=3*x-ll;p rintf(x=%3d,y=3*x T l二%d n,x,y);I5.6给一个百分制成绩,要求输出等级A、B、C、D、E。9 0分以上为

8、A,8 0 9 0分 为 B ,7 0 7 9分 为 C ,6 0分以下为D。解:程序如下:#inclu de main()float score;char grade;p rintf(请输入学生成绩:);scanf(%f&score);w hile(score10 0 1 I(score 0)p rintf(n输入有误,请重新输入:);scanf(%f,&score);)sw itch(int)(score/10)case 10:case 9:grade=A;break;case 8:grade=B ;break;case 7:grade=C ;break;case 6:grade=D ;b

9、reak;case 5:case 4:case 3:case 2:case 1:case 0:grade=E;p rintf(成绩是%5.I f,相应的等级是%c。nz,,score,grade);)说明:对输入的数据进行检查,如小于0或大于10 0,要求重新输入。(int)(score/10)的作用 是 将(score/10)的值进行强制类型转换,得到一个整型值。5.7给定一个不多于5位的正整数,要求:求它是几位数;分别打印出每一位数字;按逆序打印出各位数字。例如原数为32 1,应输出12 3o解:#inclu de main()long int nu m;int indiv,ten,hu

10、ndred,thou sand,ten_ thou sand,p lace;/*分别代表个位、十位、百位、千位、万位和位数*/p rintf(请输入一个整数(0 9 9 9 9 9):);s c a n f&n um);if(nu m9 9 9 9)p lace=5;else if(nu m9 9 9)p lace=4;else if(nu m9 9)p lace=3;else if(nu m9)p lace=2;else p lace=1;p rintf(p lace=%d n,z,p lace);ten-thou sand=nu m/10 0 0 0;thou sand=nu m/l0 0

11、 0%10;hu ndred=nu m/10 0%10;ten=nu m%10 0/10;indiv=nu m%10;sw itch(p lace)case 5:p rintf(%d,%d,%d,%d,%d,ten_ thou sand,thou sand,hu ndred,ten,indiv);p rintf(n反序数字为;);p rintf(,%d%d%d%d%d n/,,indiv,ten,hu ndred,thou sand,ten_ thou sand);break;case 4:p rintf(%d,%d,%d,%d,thou sand,hu ndred,ten,indiv);p

12、rintf(n反序数字为:);p rintf(%d%d%d%d n,indiv,ten,hu ndred,thou sand);break;case 3:p rintf(%d,%d,%d,hu ndred,ten,indiv);p rintf(n反序数字为:);p rintf(,/%d%d%d n,/,indiv,ten,hu ndred);break;case 2:p rintf(%d,%d,ten,indiv);p rintf(n反序数字为:);p rintf(%d%d n,indiv,ten);break;case 1:p rintf(%d,indiv);p rintf(n反序数字为:)

13、;p rintf C%d nz/,indiv);break;)5.8企业发放的奖金根据利润提成。利 润I低于或等于10万元时,奖金可提成10%;利润高 于10万元,低 于2 0万 元(10 0 0 0 0 GW 2 0 0 0 0 0)时,其 中10万元按10%提成,高 于10万元的部分,可提成7.5%;2 0 0 0 0 0 1 4 0 0 0 0 0时,其中2 0万元仍按上述办法提成(下同),高于2 0万元的部分按5%提成;4 0 0 0 0 0 1 6 0 0 0 0 0时,高于4 0万元的部分按3%提成;6 0 0 0 0 0IW 10 0 0 0 0 0时,高于6 0万的部分按1.5

14、%提成;D10 0 0 0 0 0时,超 过10 0万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句编程序;(2)用sw itch语句编程序。解:计算利润时,要特别注意不同利润的不同提成比例。例如,利 润 为15万元,其中有10万元按10%的比例提成,另外5万元则按7.5%提成。(1)用i f语句编程序。#i n c l u d e m a i n()l o n g i;f l o a t b o n u s,b o n l,b o n 2,b o n 4,b o n 6,b o n l O;b o n l=100000*0.1;b o n 2=b o n

15、1+100000*0.075;b o n 4=b o n 2+200000*0.05;b o n 6=b o n 4+200000*0.03;b o n l 0=b o n 6+400000*0.015;p r i n t f (“请输入利润i:);s c a n f&i);i f(i=100000)b o n u s二i*0.1;/*利润为10万元时的奖金*/*利润为2 0万元时的奖金*/*利润为4 0万元时的奖金*/*利润为60万元时的奖金*/*利润为100万元时的奖金*/*利润在10万元以内按0.1提成奖金*/e l s e i f(i=200000)b o n u s=b o n l+

16、(i-100000)*0.075;/*利润在 10 万至 20 万元时的奖金*/e l s e i f(i=400000)b o n u s=b o n 2+(i-200000)*0.05;/*利润在 20 万至 40 万元时的奖金*/e l s e i f(i=600000)b o n u s=b o n 4+(i-400000)*0.03;/*利润在 40 万至 60 万元时的奖金*/e l s e i f(i=1000000)b o n u s=b o n 6+(i-600000)*0.015;/*利润在 60 万至 100 万元时的奖金*/e l s eb o n u s=b o n

17、l 0+(i-1000000)*0.01;/*利润在 100 万元以上时的奖金*/p r i n t f (w 奖金是10.2f n”,b o n u s);此题的关键在于正确写出每一区间的奖金计算公式。例如利润在10万元至20万时,奖金应由两部分组成:利润为10万元时应得的奖金。即 100000 x 0.1;10万元以上部分应得的奖金。即(n u m-100000)x 0.075。同理,20万 40万这个区间的奖金也应由两部分组成:利润为20万元时应得的奖金,即100000 x 0.1x 10万 x 0.075;20万元以上部分应得的奖金,即(n u m-200000)x 0.05。程序中先

18、把10万、20万、40万、60万、100万各关键点的奖金计算出来,即b o n l、b o n 2、b o n 4、b o n 6、h o n l O;然后再加上各区间附加部分的奖金。(2)用 s w i t c h 语句编程序。输入利润i,确定相应的提成等级b r a n c h根据b r a n c h 确定奖金值0 奖金=i*0.11 奖金=b o n l+(i-105)*0.0752 奖金=b o n 2+(i-2*105)*0.0534 奖金=b o n 4+(i-4*105)*0.0356 奖金=b o n 6+(i-6*105)*0.01578910 奖金=b o n l 0+(

19、i-106)*0.01输出奖金#i n c l u d e m a i n()l o n g i;f l o a t b o n u s,b o n l,b o n 2,b o n 4,b o n 6,b o n l O;i n t c;b o n l=100000*0.1;b o n 2=b o n 1+100000*0.075;b o n 4=b o n 2+200000*0.05;b o n 6=b o n 4+200000*0.03;b o n l 0=b o n 6+400000*0.015;p r i n t f (请输入利润i:);s c a n f (l d,&i);c=i/1

20、00000;i f(c 10)c=10;s w i t c h(c)c a s e 0:b o n u s=l*0.1;b r e a k;c a s e 1:b o n u s=b o n l+(i-100000)0.075;b r e a k;c a s e 2:c a s e 3:b o n u s=b o n 2+(i-200000)*0.05;b r e a k;c a s e 4:c a s e 5:b o n u s=b o n 4+(i-400000)*0.03;b r e a k;c a s e 6:c a s e 7:c a s e 8:c a s e 9:b o n u

21、s=b o n 6+(i-600000)*0.015;b r e a k;c a s e 10:b o n u s=b o n l 0+(i-1000000)*0.01;)p r i n t f (奖金是 10.2f”,b o n u s);)5.9输入4个整数,要求按由大到小的顺序输出。解:此题采用依次比较的方法排出其大小顺序。在学习了循环和数组以后,可以有更多的排序方法。t t i n c l u d e m a i n()i n t t,a,b,c,d;p r i n t f (请输入4个整数:);s c a n f C%d,%d,%d,%d,&a,&b,&c,&d);p r i n t

22、 f (n a=%d,b=%d,c=%d,d=%d n,a,b,c,d);i f(a b)i f(a c)t=a;a=b;b=t;t=a;a=c;c=t;i f(a d)t=a;a=d;d=t;i f(b c)t=a;b=c;c=t;i f(b d)t=b;b=d;d=t;i f(c d)t=c;c=d;d=t;p r i n t f(排序结果如下:n);p r i n t f (d,%d,%d,%d n”,a,b,c,d);5.1 0有4个圆塔,圆心分别为(2,2)、(-2,2)、(2,-2)、(-2,-2),圆半径为1。这4个塔的高度分别为10m。塔以外无建筑物。今输入任一点的坐标,求该点

23、的建筑高度(塔外的高度为零)。程序如下:#i n c l u d e m a i n()i n t h=10;f l o a t x l=2,y l=2,x 2=2,y 2=2,x 3=-2,y 3=-2,x 4=-2,y 4=-2,x,y,d l,d 2,d 3,d 4;p r i n t f (请输入一个点(x,y):);s c a n f (%f,%fz/,&x,&y);d l=(x-x l)*(x-x l)+(y-y 1)*(y-y 1);/*求该点到各中心点的距离*/d 2=(x-x 2)*(x-x 2)+(y+y 2)*(y+y 2);d 3=(x+x 3)*(x+x 3)+(y-

24、y 3)*(y-y 3);d 4=(x+x 4)*(x-x 4)*(y+y 4)*(y+y 4);i f(d l l&d 2l&d 3l&d 4l)h=0;/*判断该点是否在塔外*/p r i n t f (该点高度为%d n,h);第六章第六章循环控制#i n c l u d e v o i d m a i n()l o n g m,n,i=l,j,s;s c a n f (zz%l d,%l d,&m,&n);f o r(;i 二m&i=n;i+)i f(m%i =0&n%i =0)s=i;j=m*n/s;p r i n t f (z,s=%l d,j=%l d n,s,j);6.1输入两

25、个正整数m和 n,求其最大公约数和最小公倍数。m a i n()l o n g m,n,i=l,j,s;s c a n f (l d,%l dz,,&m,&n);f o r (;i=m&i=n)j=m;e l s e j=n;f o r(;!(j%m=0&j%n=0);j+);p r i n t f (z,s=%l d,j=%l d n”,s,j);)6.2 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#i n c l u d ez,s t d i o.h m a i n()c h a r c;i n t i=0,j=0,k=0,1=0;w h i l e(c=g e t

26、 c h a r()!=,n,)i f(c=65&c=97&c=48&c=57)j+;e l s e i f (c=32)k+;e l s e 1+;p r i n t f (i=%d,j 二%d,k=%d,l=%d n ,i,j,k,1);)6.3 求 S n=a+a a+a a a+,+a a ,a a a (有 n 个 a )之 值,其 中 a 是 一个 数 字。例 如:2+22+222+2222+22222(n=5),n 山键盘输入。#i n c l u d ez/m a t h.h m a i n()i n t n,s u m=0,i=l,s=2;s c a n f(d ,&n);w

27、 h i l e (i=n)s u m=s u m+s;s=s+2*p o w(10,i);i+;p r i n t f (s u n i=%d n ,s u m);)6.4 求,(即求 l!+2!+3!+4!+5!+20!)m a i n()i n t n,i=l;l o n g s u m=0,s=l;s c a n f(d ,&n);w h i l e(i=n)s=s*i;s u m=s u m+s;i+;p r i n t f (,s u m=%l d nz,,s u m);)6.5 求m a i n()d o u b l e i=l,j=l,k=l,s l=0,s 2=0,s 3=0

28、,s u m;f o r(;i=100;i+)s l=s l+i;f o r(;j=50;j+)s 2=s 2+j*j;f o r (;k=100&x 1000)a=0.01*x;b=10*(0.01*x-a);c=x T 00*a T 0*b;i f(x=(p o w(a,3)+p o w(b,3)+p o w(c,3)p r i n t f(%5d”,x);x+;)6.7 一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6 的因子为1、2、3,而 6=1+2+3,因此6 是完数。编程序找出1000之内的所有完数,并按下面格式输出其因子:6 i t s f ac t o r s ar

29、 e 1、2、3m ai n()i n t m,i,j,s;f o r(m=6;m l 0000;m+)s=l;f o r (i=2;i m;i+)i f(m%i=0)s=s+i;i f(m-s=0)p r i n t f (%5d i t s f as t o r s ar e 1 ,m);f o r(j=2;j m;j+)i f (m%j-0)p r i n t f(d ,j);p r i n t f(n );)或m ai n()i n t m,i,j,s;f o r(m=6;m 1000;m+)s=n r l;f o r(i=2;i m;i+)i f(m%i=0)s=s-i;i f(s=

30、0)p r i n t f (%5d i t s f as t o r s ar e 1 ,m);f o r (j=2;j m;j+)i f (m%j 0)p r i n t f C%d ,j);p r i n t f Cn );)6.8 有一分数序列:求出这个数列的前20项之和。m ai n()i n t i=l,n;d o u bl e t,x=l,y=2,s,s u m=0;s c an f&n);w h i l e(i=n)s=y/x;s u m=s u m+s;t=y;y=y+x;x=t;i+;p r i n t f (z,%f n,?,s u m);)6.9 一球从100米高度自由

31、下落,每次落地后返回原高度的一半,再落下。求它在第10次落地时共经过多少米?第 10次反弹多高?m ai n()i n t i,n;d o u bl e h=100,s=100;sca nf&n);f o r(i=l;i=n;i+)h*=0.5;i f(i=l)c o n t i n u e;s=2*h+s;)p r i n t f (z/h=%f,s 二%f n ,h,s);)6.10猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了 半,还不过瘾,又多吃了一一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到 第 10天早上想再吃时,见只剩下一个桃

32、子了。求第一天共摘多少桃子。m ai n()i n t i=l,s u m=O;f o r (;i=0.00001);p r i n t f (/z%.3f n ,x l);)6.1 2用牛顿迭代法求方程在1.5附近的根。m ai n()d o u bl e x,y;x=l.5;d o y=2*x*x*x-4*x*x+3*x-6;x=x-y/(6*x*x-8*x+3);w h i l e (y!=0);p r i n t f (,zx=%.3f n,x);)6 13用二分法求方程在(T O,1。之间的根m ai n()d o u bl e x l,x 2,y l,y 2;x l=-10;x 2

33、=10;d o y l=2*x l*x l*x l-4*x l*x l+3*x l-6;x 1=x 1-y 1/(6*x 1*x 1-8*x 1+3);w h i l e (y l!=0);d o y 2=2*x 2*x 2*x 2-4*x 2*x 2+3*x 2-6;x 2=x 2-y 2/(6*x 2*x 2-8*x 2+3);w h i l e(y 2!=0);p r i n t f (z,x l=%.3f,x 2=%.3f n,x l,x 2);)6.14打印以下图案*#i n c l u d e m at h.h m ai n()i n t i,j,k;f o r(i=0;i=3;i

34、+)f o r(j=0;j=2-i;j+)p r i n t f();f o r(k=0;k=2*i ;k+)p r i n t f,*);p r i n t f(n );f o r(i=0;i=2;i+)f o r(j=0;j=i;j+)p r i n t f (,z;f o r(k=0;k=4-2*i;k+)p r i n t f (*);printf;)第七章第 七 章 数 组7.1 用筛法求之内的素数。m ai n O i n t i,j,a100;f o r(i=2;i 100;i+)ai=i;f o r(j=2;j=i;j+)i f(j i)i f(ai%j=O)br e ak;i

35、 f(ai-j=O)p r i n t f(%5d ,ai);)p r i n t f(n );或#i n c l u d e m at h.h m ai n O s t at i c i n t i,j,k,a98;f o r(i=2;i 100;i+)ai=i;k=s q r t(i);f o r(j=2;j=ai;j+)i f(j=k+l)p r i n t f (5d,ai);p r i n t f(n);)7.2用选择法对10个整数从小到大排序。m ai n()i n t i,j,a10,t;f o r (i=0;i 10;i+)scanf;f o r(j=l;j 10;j+)f o

36、 r(i=0;i ai+l)t=ai+l;ai+l=ai;ai=t;f o r (i=0;i 10;i+)p r i n t f(5d,ai);)或m ai n()s t at i c i n t a10,i,j,k,t;f o r(i=l;i l l;i+)s c an f (,%d,/,;f o r(j=l;j 10;j+)f o r(i=l;i ai+l)t=ai+l ;ai+l=ai ;ai=t;f o r (i=l;i l l;i+)printfa i);p r i n t f(n);7.3求一个3 X 3矩阵对角线元素之和。m ai n()i n t i=0,j=0,a33,s i

37、,s 2;f o r(i=0;i 3;i+)f o r(j=0;j 3;j+)sca nf&a i j);s l=a0 0+al l+a2 2;s 2=a0 2+al l+a2 0;p r i n t f(s i=%d,s 2=%d n”,s i,s 2);)或m ai n()s t at i c i n t i,j,s i,s 2,a3 3;f o r(i=l;i=3;i+)f o r(j=l;j 0;i)i f (ai ai-l)t=ai-l ;ai-l=ai ;ai=t;f o r (i=0;i 10;i+)p r i n t f(%5d ,ai);p r i n t f(n );或m

38、ai n()(s t at i c i n t a5=l,4,5,6,7;i n t i,t,b;sca nf&b);f o r(i=0;i 5;i+)i f(b=ai j)t=ai;ai=b;b=t;Jp r i n t f(%d ,ai);p r i n t f(%d ,b);7.5 将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,U 要求改为:1,4,5,6,8om ai n()i n t i,b10;f o r(i=0;i-l;i-一)p r i n t f(5d ,bi);p r i n t f (z,n,z);7.6 打印出以下杨辉三角形(要求打印出10行)。11

39、11 2 113 3 11 4 6 4 11 5 10 10 5 1m ai n()s t at i c i n t m,n,k,b15 15;bOl=l;f o r(m=l;m 15;m+)f o r(n=l;n=m;n+)bm n=bm-l n-l+bm-l n;p r i n t f(-5d ,bm n);p r i n t f(n);)或m ai n()i n t i,j,n,k,a10 10;s t at i c =f o r (k=2,k l l;k+)f o r(i=2;i=k;i+)f o r(j=2;j=i;j+)ai j=ai-l j-l+ai-l j;f o r(k=l;

40、k l l;k+)f o r(i=l;i=k;i+)f o r(j=l;j=i;j+)p r i n t f(%d,ai j);7.7 打 印“魔方阵”,所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为8 1 63 5 74 9 2要求打印出由1 n 2的自然数构成的魔方阵。解:t t i n c l u d e m ai n()i n t a1616,i,j,k,p,m,n;P二 l;w h i l e(p=l)/*要求阶数为1 15的商数*/p r i n t f (En t e r n(n=l 15):);s c an f (%d ,&n);i f(n!

41、=0)&(n=15)&(n%2!=0)p=0;f o r(i=l;i=n;i+)f o r(j=l;j=n;j+)ai j=0;j=n/2+l;a f o r(k=2;k=n*n;k+)i=i T;j=j+l;i=i+2;j=j-l;)e l s e i f(i n)j=l;)i f (a i j 0)a i j =k;e l s e i=i+2;j=j-l;a i j =k;)/*初始化*/*建立魔方阵*/f o r(i=l;i =n;i+)f o r(j=l;j =n;j+)p r i n t f(%4 d ,a i j );p r i n t f(n );/*输出魔方阵*/)7.8找出一

42、个二位数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。m a i n()i n t a 5 5 ,b 5 ,c 5 ,d 5 5 ,k=0,1=0;i n t i,j;f o r(i=0;i 5;i+)f o r(j=0;j 5;j+)scanf&d i j);f o r(i=0;i 5;i+)f o r(j=0;j 5;j+,a i j =d i j );f o r(i=0,k=0;i 5;i+,k+)f o r(j=0;j =a i j+1)b k =a i j+l =a i j :e l s eb k =a i j+1;)f o r(j=0,l=0;j 5;j+

43、,1+)f o r(i=0;i 4;i+)i f(a i j =a i+l j )c l =a i+l j =a i j ;e l s ec l =a i+l j ;)f o r(i=0,k=0;i 5;i+,k+)f o r(j=0,l=0;j 5;j+,1+)i f(d i j -b k =O)i f(d i j -c l =0)p r i n t f (zzd%d%d =%d n,z,i,j,d i j );e l s ep r i n t f (zzd%d%d =%d i s n o t a n d i n,i,j,d i j );7.9有 个15数按由小到大顺序存放在一个数组中,输入

44、一个数,要求用折半查找法找出该数组中第几个元素的值。如果该数不在数组中,则打印出无此数#i n c l u d e,zm a t h.h m a i n()s t a t i c i n t i,j,m,a 15 =l,4,9,13,21,3 4,5 5,8 9,14 4,23 3,3 7 7,5 7 0,6 7 1,7 03,8 12;s c a n f(%d,&m);f o r(j=0;j 15;j+)p r i n t f(4 d ,a j );p r i n t f(n);i=7;wh i l e(f a b s(i-7)8)i f(m a 7 )i f(a i -m=0)p r i

45、n t f (,zi t i s a t (%d)n,i+1);b r e a k;i+;e l s ep r i n t f(8 n);)i f(f a b s(i-7)-8=0)p r i n t f (Th e r e i s n o t n,z);7.10有一篇文章,共 有3行文字,每行有个8 0字符。要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。m a i n()i n t i,j=0,k=0,1=0,m=0,n=0;c h a r s t r 03 01,s t r l 100,s t r 2100,s t r 3 100;g e t s (s t r 1);g

46、 e t s(s t r 2);g e t s(s t r 3);s t r c a t(s t r O,s t r l);s t r c a t(s t r O,s t r 2);s t r c a t(s t r O,s t r 3);f o r(i=0;s t r O i !=,0;i+)i f(s t r O i =6 5&s t r 0i =9 7&s t r 0i =4 8&s t r 0i =5 7)1+;e l s e i f(s t r O i =3 2)m+;e l s e n+;p r i n t f(D a xi e Xi a o xi e Sh u zi K o n

47、g g e Qi t a n);p r i n t f (,z%5 d%7 d%5 d%6 d%4 d n,j,k,1,m,n);)7.11打印以下图案*m a i n0(i n ti,j,k;c h a ra 5 5 ;f o r(i=0;i 5;i+)f o r(j=0;j 5;j+)a i j =;p r i n t f (zz%c/z,a i j );)p r i n t f(n);f o r(k=l;k Z a-zB-Y b-yC-X c-x即第一个字母变成第2 6个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变,要求编程序将密码回原文,并打印出密码和原文。m a i

48、n()i n t i;c h a r s t r l 100,s t r 2100;g e t s (s t r l);f o r(i=0;s t r l i !=,0;i+)i f(s t r l i =6 5&s t r l i =9 7&s t r l i 0;j+)s t r 3 j+i =s t r 2j ;p r i n t f C/%s n%s n%s n,/,s t r l,s t r 2,s t r 3);7.14 编一个程序,将两个字符串S1和 S 2 比较,如果S1 S2,输出一个正数;S1=S2,输出0;S K S 2,输出一个负数。不要用s t r c p y函数。两

49、个字符串用g e t s 函数读入。输出的i E 数或负数的绝对值应是相比较的两个字符串相对应字符的A S C H 码的差值。例如,A 与 C 相比,由于A Y C,应输出负数,由于N与C 的码差值为2,因此应输出-2。同理:A n d 和 A i d 比较,根据第2 个字符比较结果,n 比 i 大 5,因此应输出5 。#i n c l u d e#i n c l u d e m a i n()i n t i,r e s u;c h a r s i 100,s 2100;p r i n t f (,zn i n p u t s t r i n g l:);g e t s (s i);p r i

50、 n t f(n I n p u t s t r i n g 2:);g e t s(s 2);i=0;wh i l e(s l i =s 2i&s l i !=,0f)i+;i f(s i i =,0&s 2i =O)r e s u=0;e l s e r e s u=s l i -s 2i ;p r i n t f (n r e s u l t:%d n,/,r e s u);)7.15 编写一个程序,将字符数组s 2中的全部字符拷贝到字符数组s i 中,不用s t r c p y函数。拷贝时,0也要拷贝过去,0后面的字符不拷贝。解:#i n c l u d e -s t d i o.h

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

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

本站为文档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