《C语言程序设计第三版谭浩强主编课后习题答案.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计第三版谭浩强主编课后习题答案.pdf(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、L 5 请参照本章例题,编写一个C 程序,输出以下信息:Ver y Go o d!解:m i an ()p r i n t f (*);p r i n t f(“n”);p r i n t f (Ver y Go o d!n );p r i n t f(“n”);p r i n t f (*”);)1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。解:m i an ()i n t a,b,c,m ax;p r i n t f (“请输入三个数 a,b,c:n );s can f (u%d,%d,%d”,&a,&b,&c);m ax 二 a;i f(m ax b)m ax=b;i f
2、(m ax c)m ax=c;p r i n t f (最大数为:“d,m ax);第三章3.6写出以下程序运行的结果。m ai n()ch ar cl=,a,c2=b,c3=c,c4=10P,c5=,116,;p r i n t f(wa%cb%ct c%ct abcnw,cl,c2,c3);p r i n t f (at b%c%c”,c4,c5);)解:aa i-J bb M M L J cc U M M L J M L J abcA L I N3.7 要将C h i n a译成密码,译码规律是:用原来字母后面的第4 个字母代替原来的字母.例如,字母A后面第4 个字母是E.竺代替A。因此
3、,C h i n a应译为Gl m r e。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,C、h、,n、a,经过运算,使 cl、c2、c3、c4、c5分别变为G、1、m、r、e 并输出。解:t t i n cl u de m ai n()ch ar cl=C ,c2=,h ,c3=,i ,c4=,n ,c5=,acl+=4;c2+=4;c3+=4;c4+=4;c5+=4;p r i n t f (密码是%c%c%c%c%cn ,cl,c2,c3,c4,c5);运行结果:密码是Gl m r e3.9 求下面算术表达式的值。(1)x+a%3*(i n t)(x+y)%
4、2/4设 x=2.5,a=7,y=4.7(2)(f l o at)(a+b)/2+(i n t)x%(i n t)y设 a=2,b=3,x=3.5,y=2.5(1)2.5(2)3.53.10写出程序运行的结果。m ai n()i n t i,j,m,n;i=8;j=10;m=+i;n=j+;p r i n t f (%d,%d,%d,%dJ,i,j,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*
5、=a解:(1)24(2)10(3)6 0(4)0(5)0(6)0第四章4.4 若 a=3,b=4,c=5,x=l.2,y=2.4,z=-3.6,u=5127 4,n=1287 6 5,cl=a,c2=b。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。a=3 b=4 c=5x=l.200000,y=2.400000,z=-3.6 00000 x+y=_3.6 00_y+z=-l.20_z+x=-2.40cl=zaz_o r _97(AS C I I)c2=b _o r _98(AS C l Dm ai n()i n t a=3,b=4,c=5;l o n g i n t u
6、=5127 4,n=1287 6 5;f l o at x=l.2,y=2.4,z=3.6;ch ar cl=,a*,c2=,b ;p r i n t f (z,a=%2d b=%2d c=%2dn”,a,b,c);p r i n t f (z/x=%f,y=%f,z=%f n”,x,y,z);p r i n t f(x+y=5.2f y+z=%5.2f z+x=%5.2f n ,x+y,y+z,z+x);p r i n t f C,u=%6 1d n=%91dnzz,u,n);p r i n t f C%s%s%d%s n,cl=a,o r,cl,(AS C H)”);p r i n t f
7、 (/z%s%s%d%s n,c2=a,o r,c2,(AS C I I);4.7 用 s can f 下面的函数输入数据,使 a=3,b=7,x=8.5,y=7 1.82,cl 二A ,c2=a ,问在键盘上如何输入?m ai n()(i n t a,b;f l o at x,y;ch ar cl c2;s can f (a=%d_b=%d,&a,&b);s can f (_x 二 f _y 二%e,&x,&y);s can f (,z_cI=%c_c2=%c,z,&cl,&c2);)a=3_b=7_x=8.5_y=7 1.82_cl=A_c2=a4.8 设圆半径厂1.5,圆柱高h=3,求圆
8、周长、圆面积、圆球表面积、圆球体积、圆柱体积。用 s can f 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。m ai n()f l o at r,h,C l,S a,S b,Va,Vb;s can f (%f,%f,z,&r,&h);C l=2*3.14*r;S a=3.14*r*r;S b=4*S a;Va=4*3.14*r*r*r/3;Vb=S a*h;p r i n t f(C 1二%.2f n ,C l);p r i n t f(S a=%.2f n S b=%.2f n Va=%.2f n Vb=%.2f n”,S a,S b,Va,Vb);4.9 输
9、入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9输出要求有文字说明,取位2 小数。m ai n()f l o at F,c;s can f&F);c=5*(F-32)/9;p r i n t f (/zc=%.2f ,c);4.10编程序,用 g et ch ar 函数读入两个字符给cl、c 2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1 )变量cl、c2应定义为字符型或整形?抑二者皆可?(2)要求输出cl 和 c2值的AS C I I 码,应如何处理?用 p u t ch ar 函数还是p r i n t f 函数?(3)整形变量与字符变量是否在任何情况下都可以互
10、相代替?如:ch ar cl,c2;与i n t cl,c2;是否无条件的等价?#i n cl u de,zs t di o.h m ai n()ch ar cl,c2;cl=g et ch ar();c2=g et ch ar();p u t ch ar(cl);p u t ch ar(,nf);p u t ch ar(c2);p u t c h a r n );)#i n cl u de/zs t di o.h m ai n()ch ar cl,c2;cl=g et ch ar ();c2=g et ch ar ();p r i n t f (,zcl=%d c2二%dn ,cl,c2);
11、p r i n t f (z/cl=%c c2=%cnz,cl,c2);第五章5.1 什么是算术运算?什么是关系运算?什么是逻辑运算?解:略。5.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?解:设有一个逻辑表达式,若其结果为“真”,则 以 1 表示;若其结果为“假”,则以0 表示。但是判断一个逻辑量的值时,以0 代 表“真”,以非0 代 表“假”。例如3&5 的值为“真”,系统给出3&5 的值为k5.3 写出下面各逻辑表达式的值。设 a=3,b=4,c=5o(1)a+bc&b=c(2)a|b+c&b-c(3)!(ab)&!c|l(4)!(x=a)&(y=b)&40(
12、5)!(a+b)+c-l&b+c/2解:(1)0(2)1(3)1(4)0(5)15.4 有3个整数a、b、c,由键盘输入,输出其中最大的数。解:方法一#i n clu de mai n()i n t a,b,c;pr i n t f(请输入3个整数:);s can f(d,%d,%d,&a,&b,&c);i f(ab)i f(bc)pr i n t f(max二%dn,c);els eels eels epr i n t f(max二%dn,b);i f(ac)pr i n t f(,/max=%dn/z,c);pr i n t f(max二%dn”,a);方法二:使用条件表达式,可以使程序更
13、加简明、清晰。程序如下:#i n clu de mai n()i n t a,b,c,t emp,max;pr i n t f(请输入3个整数:);s can f(d,%d,%d,&a,&b,&c);t emp=(ab)?a:b;/*将a和b中的大者存入t emp中*/max=(t empc)?t emp:c;/*将a和b中的大者与c比较,取最大者*/pr i n t f(3个整数的最大数是%d n ,max);5.5 有一函数:写一程序,输入x值,输出y值。解:#i n clu de mai n()i n t x,y;pr i n t f(输 入 x:s can f(d,&x);i f(x
14、l)y=x;pr i n t f(z,x=%3d,)els e i f(x 1 0)y=2*x T;pr i n t f(x=%3d,);/*X 1 */y=x=%dn,x,y);/*I W x T O */y=2*x T=%dn”,x,y);els e y=3*x-ll;pr i n t f(x=%3d,/*x 2 1 O */y=3*x T l=%dn”,x,y);5.6给一个百分制成绩,要求输出等级A,、,B、C、分 为 B,7 0、7 9分 为 C,6 0分以下为D。解:程序如下:#i n clu de mai n()float s cor e;char gr ade;pr i n t
15、 f(请输入学生成绩:);s can f(f&s cor e);w hi le(s cor e1 00I(s cor e0)pr i n t f(n输入有误,请重新输入:);s can f(%f,&s cor e);)s w i t ch(i n t)(s cor e/1 0)cas e 1 0:cas e 9:gr ade=A;br eak;cas e 8:gr ade=B ;br eak;、E 90 分以上为A,8 090cas e 7:gr ade=C ;br eak;cas e 6:gr ade=D ;br eak;cas e 5:cas e 4:cas e 3:cas e 2:cas
16、 e 1:cas e 0:gr ade=E;pr i n t f(成绩是%5.I f,相应的等级是%c。n,s cor e,gr ade);)说明:对输入的数据进行检查,如小于0或大于1 00,要求重新输入。(i n t)(s cor e/1 0)的作用 是 将(s cor e/1 0)的值进行强制类型转换,得到一个整型值。5.7给定一个不多于5位的正整数,要求:求它是几位数;分别打印出每一位数字;按逆序打印出各位数字。例如原数为3 2 1,应输出1 2 3。解:t t i n clu de mai n()lon g i n t n u m;i n t i n di v,t en,hu n d
17、r ed,t hou s an d,t en _t hou s an d,place;/*分别代表个位、十位、百位、千位、万位和位数*/pr i n t f(请输入一个整数(099999):);s can f&n u m);i f(n u m9999)place=5;els e i f(n u m999)place=4;els e i f(n u m99)place=3;els e i f(n u m9)place=2;els e place=l;pr i n t f(place=%dnz/,place);t en _t hou s an d=n u m/1 0000;t hou s an d
18、=n u m/l000%1 0;hu n dr ed=n u m/1 00%1 0;t en=n u m%1 00/1 0;i n di v=n u m%1 0;s w i t ch(place)cas e 5:pr i n t f(z,%d,%d,%d,%d,%d,?,t en _t hou s an d,t hou s an d,hu n dr ed,t en,i n di v);pr i n t f(n反序数字为;);pr i n t f(/z%d%d%d%d%dn/z,i n di v,t en,hu n dr ed,t hou s an d,t en _t hou s an d);b
19、r eak;cas e 4:pr i n t f(%d,%d,%d,%d,t hou s an d,hu n dr ed,t en,i n di v);pr i n t f(n反序数字为:);pr i n t f(z/%d%d%d%dnz/,i n di v,t en,hu n dr ed,t hou s an d);br eak;cas e 3:pr i n t f(%d,%d,%d”,hu n dr ed,t en,i n di v);pr i n t f(n反序数字为:”);pr i n t f(/%d%d%dn/,i n di v,t en,hu n dr ed);br eak;cas
20、 e 2:pr i n t f(7/%d,%dv,t en,i n di v);pr i n t f(n反序数字为:”);pr i n t f(%d%dn”,i n di v,t en);br eak;cas e 1:p rintf ind iv);pr i n t f(n反序数字为:”);pr i n t f(%dn,i n di v);br eak;)5.8企业发放的奖金根据利润提成。利 润I低于或等于1 0万元时,奖金可提成1 0%;利润高 于1 0万元,低 于2 0万 元(1 00000IW 2 00000)时,其 中1 0万元按1 0%提成,高 于1 0万元的部分,可提成7.5%;2
21、 0000(X 1 W 400000时,其中2 0万元仍按上述办法提成(下同),高于2 0万元的部分按5%提成;4000001 6 00000时,高于4 0万元的部分按3%提成;6 00000(1 1 000000时,高于6 0万的部分按1.5%提成;D1 000000时,超 过1 00万元的部分按1%提成。从键盘输入当月利润L求应发放奖金总数。要求:(1)用i f语句编程序;(2)用s w i t ch语句编程序。解:计算利润时,要特别注意不同利润的不同提成比例。例如,利 润 为1 5万元,其 中 有1 0万元按1 0%的比例提成,另外5万元则按7.5%提成。(1)用i f语句编程序。t t
22、 i n clu de mai n()lon g i;float bon u s,bon l,bon 2,bon d,bon 6,bon 1 0;bon l=1 00000*0.1;bon 2=bon l+1 00000*0.07 5;bon 4=bon 2+2 00000*0.05;bon 6=bon 4+2 00000*0.03;bon 1 0=bon 6+400000*0.01 5;pr i n t f(请输入利润i:);s can f(机d”,&i);i f(i=1 00000)bon u s=i*0.1;els e i f(i=2 00000)bon u s=bon l+(i-1 0
23、0000)*0.07 5;/*利润为1 0万元时的奖金*/*利润为2 0万元时的奖金*/*利润为4 0万元时的奖金*/*利润为6 0万元时的奖金*/*利 润 为1 00万元时的奖金*/*利润在1 0万元以内按0.1提成奖金*/*利润在10万至2 0万元时的奖金*/e l s e if(i=4 0 0 0 0 0)b o n u s=b o n 2+(i-20 0 0 0 0)*0.0 5;/*利润在 20 万至 4 0 万元时的奖金*/e l s e if(i=6 0 0 0 0 0)b o n u s=b o n 4+(i-4 0 0 0 0 0)*0.0 3;/*利润在 4 0 万至 6
24、0 万元时的奖金*/e l s e if(i b o n 4、b o n 6 ho n l O;然后再加上各区间附加部分的奖金。(2)用 s w it c h语句编程序。输入利润i,确定相应的提成等级b r a n c h根据b r a n c h确定奖金值0 奖金二 i*0.11 奖金=b o n l+(i-10 5)*0.0 7 52 奖金=b o n 2+(i-2*10 5)*0.0 534 奖金=b o n 4+(i-4*10 5)*0.0 356 奖金=b o n 6+(i-6*10 5)*0.0 1578910 奖金二b o n l 0+(i-10 6)*0.0 1输出奖金t t
25、in c l u d e m a in()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;in t c;b o n l=10 0 0 0 0*0.1;b o n 2=b o n l+10 0 0 0 0*0.0 7 5;b o n 4=b o n 2+20 0 0 0 0*0.0 5;b o n 6=b o n 4+20 0 0 0 0*0.0 3;b o n l 0=b o n 6+4 0 0 0 0 0*0.0 15;p r in t f (请输入利润i:);scanf&i);c=i/10 0
26、0 0 0;if(c 10)c=10;s w it c h(c)c a s e 0:b o n u s=1*0.1;b r e a k;c a s e 1:b o n u s=b o n l+(i-l 0 0 0 0 0)*0.0 7 5;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-20 0 0 0 0)*0.0 5;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-4 0 0 0 0 0)*0.0 3;b r e a k;c a s e 6:c a s e 7:c a s e 8:c
27、 a s e 9:b o n u s=b o n 6+(i-6 0 0 0 0 0)*0.0 15;b r e a k;c a s e 10:b o n u s=b o n l 0+(i-10 0 0 0 0 0)*0.0 1;p r in t f (奖金是%10.2f,b o n u s);)5.9 输入4个整数,要求按由大到小的顺序输出。解:此题采用依次比较的方法排出其大小顺序。在学习了循环和数组以后,可以有更多的排序方法。#in c l u d e m a in()in t t,a,b,c,d;p r in t f (请输入4个整数:);s c a n f (%d,%d,%d,%d,&a
28、,&b,&c,&d);p r in t f (z/n a=%d,b=%d,c=%d,d=%d n,z,a,b,c,d);if(a b)if(a c)if(a d)if(b c)if(b d)if(c d)t=a;a=b;b=t;t=a;a=c;c=t;t=a;a=d;d=t;t=a;b=c;c=t;t=b;b=d;d=t;t=c;c=d;d=t;p r in t f (排序结果如下:n);p r in 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个塔的高度分别为10 m。塔以外
29、无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)O程序如下:#in c l u d e m a in()in 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 in t f (请输入一个点(x,y):);s c a n f (z/%f,%f ,&x,&y);d l=(x-x l)*(x-x l)+(y-y 1)*(y-y l);/*求该点到各中心点的距离*/d 2=(x-x 2)*(x-x 2)+(y+y 2)*(y+y 2);d 3=(x+x
30、 3)*(x+x 3)+(y-y 3)*(y-y 3);d 4=(x+x 4)*(x-x 4)*(y+y 4)*(y+y 4);if(d l l&d 2 l&d 3 l&d 4 l)h=0;/*判断该点是否在塔外*/p r in t f (该点高度为%d n,h);第六章第六章循环控制6.1输入两个正整数m和n,求其最大公约数和最小公倍数。m a in()l o n g m,n,i=l,j,s;s c a n f(l d,%l d,&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 in t f (,zs=%l
31、 d,j=%l d n,z,s,j);6.2输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#in c l u d e s t d io.hm a in()c ha r c;in t i=0,j=0,k=0,1=0;w hil e(c=ge t c ha r()!=,n )if(c =6 5&c =9 7&c =4 8&c =5 7)j+;e l s e if(c=3 2)k+;e l s e 1+;p r in t f (,zi=%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)之 值,其
32、中a是 一个数字。例 如:2+22+222+2222+22222(n=5),n 由键盘输入。#in c l u d e,zm a t h.hm a in()in t n,s u m=O,i=l,s=2;s c a n f&n);w hil e(i=n)s u n F s u m+s;s=s+2*p o w(10,i);i+;p r in t f C,s u m=%d n/Z,s u m);)6.4 求,(即求 l!+2!+3!+4!+5!+20!)m a in()in t n,i=l;l o n g s u m=0,s=l;scanf&n);w hil e(i=n)s=s*i;s u m=s
33、u m+s;i+;p r in t f Czs u m=%l d n/z,s u m);6.5求m a in()d o u b l e i=l,j=l,k=l,s l=0,s 2=0,s 3=0,s u m;f o r(;i=10 0;i+)s l=s l+i;f o r(;j=5 0;j+)s 2=s 2+j*j;f o r(;k =10 0&x 10 0 0)a=0,O l*x;b=l O*(0.0 1*x-a);c=x-10 0*a-10*b;if (x=(p o w(a,3)+p o w(b,3)+p o w(c,3)p r in t f (5 d ,x);x+;6.7 一个数如果恰好
34、等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程序找出10 0 0之内的所有完数,并按下面格式输出其因子:6 i ts f a c to r s a r e 1、2、3m a i 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 tf (z/%5 d i ts f a s to r s a r e 1 ,m);f o r (j=2;j+)i f (m%j=0)p r i n tf (级d ,j);p r
35、 i n tf(n);或m a i n()i n t m,i,j,s;f o r(m=6;m l 000;m+)s =mT;f o r (i=2;i m;i+)i f(m%i=0)s=s-i;i f(s=0)p r i n tf (%5 d i ts f a s to r s a r e 1 m);f o r (j=2;j m;j+)i f (m%j=0)p r i n tf C%d ,j);p r i n tf C n O ;)6.8有一分数序列:求出这个数列的前2 0项之和。m a i n()i n t i=l,n;d o ub l e t,x=l,y=2,s,s um=0;scanf&n
36、);w h i l e(i=n)s=y/x;s um=s um+s;t=y;y=y+x;x=t;i+;p r i n tf (f n ,s um);6.9一球从100米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第10次落地时共经过多少米?第 10次反弹多高?m a i n()i n t i,n;d o ub l e h=100,s=100;scanf&n);f o r(i=l;i=n;i+)h*=0.5;i f(i=l)c o n ti n ue;s=2*h+s;p r i n tf (,zh=%f,s=%f n”,h,s);)6.10猴子吃桃问题。猴子第一天摘下若干个桃子,当即
37、吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到 第 10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。m a i n()i n t i=l,s um=0;f o r (;i=0.00001);p r i n tf(.3f n ,x l);)6.12 用牛顿迭代法求方程在1.5附近的根。m a i n()d o ub l 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 tf C x=%.3f
38、n,x);6.13用二分法求方程在(TO,10)之间的根m a i n()d o ub l e x l,x 2,y 1,y 2;x l=-10;x 2=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 tf (x l=%.3f,x 2=%.3f n,x l,x 2);
39、)6.1 4打印以下图案*#i n c l ud ez/m a th.h m a i n()i n t i,j,k;f o r(i=0;i=3;i+)f o r(j=0;j=2-i;j+)p r i n tfC);f o r (k=0;k=2*i;k+)p r i n tf(*);p r i n tf(n);)f o r(i=0;i=2;i+)f o r(j=0;j=i;j+)p r i n tf (z,);f o r (k=0;k=4-2*i;k+)p r i n tf(,V,);p r i n tf(n);)第七章第 七 章 数 组7.1 用筛法求之内的素数。m a i n()i n t
40、i,j,a 100;f o r(i=2;i 100;i+)a i =i;f o r(j=2;j=i;j+)i f(j i)i f(a i%j=O)b r e a k;i f(a i -j=O)p r i n tf(5 d”,a i );)p r i n tf(n);)或#i n c l ud ez,m a th.h m a i n()s ta ti c i n t i,j,k,a 9 8;f o r(i=2;i 100;i+)a i =i;k=s q r t(i);f o r(j=2;j=a i ;j+)i f(j=k+l)p r i n tf(5 d ,a i );)p r i n tf(n
41、);7.2 用选择法对10个整数从小到大排序。m a i n()i n t i,j,a 10,t;f o r (i=0;i 10;i+)scanf&a i );f o r(j=l;j 10;j+)f o r (i=0;i a i+l )t=a i+l ;a i+l =a i ;a i =t;f o r (i=0;i 10;i+)p r i n tf(5 d ,a i );或m a i n()s ta ti c i n t a 10,i,j,k,t;f o r (i=l;i l l;i+)scanf&a i );f o r(j=l;j 10;j+)f o r (i=l;i a i+l )t=a
42、i+l ;a i+l =a i ;a i =t;f o r(i=l;i l l;i+)p r i n tf(%d,a i );p r i n tf(n);7.3 求一个3 X 3 矩阵对角线元素之和。m a i n()i n t i=0,j=0,a 3 3,s i,s 2;f o r(i=0;i 3;i+)f o r(j=0;j 3;j+)s c a n f&a i j );s l=a 0 0+a l l +a 2 2;s 2=a 0 2+a l l +a 2 0;p r i n tf (z zs l=%d,s 2二%d n ,s i,s 2);)或m a i n()(s ta ti c i
43、n t i,j,s i,s 2,a 3 3;f o r(i=l;i=3;i+)f o r(j=l;j 0;i-)i f(a i a i-l )f o r(i=0;i 10;i+)p r i n tf (,z%5 d/z,a i );p r i n tf (n);)或m a i n()(s ta ti c i n t a 5 =l,4,5,6,7;i n t i,t,b;s c a n f (d,&b);f o r(i=0;i 5;i+)i f(b=a i )t=a i ;a i =b;b=t;p r i n tf(d ,a i );p r i n tf (d,b);7.5将一个数组的值按逆序重
44、新存放,例如,原来顺序为:8,6,5,4,L要求改为:1,4,5,6,8om a i n()i n t i,b 10;f o r (i=0;i-l;i 一 一)p r i n tf(%5d,b i );p r i n tf (z/n);7.6打印出以下杨辉三角形(要求打印出1 0行)。11 11 2 113 3 11 4 6 4 11 5 10 10 5 1m a i n()s ta ti c i n t m,n,k,b 15 15 ;b 0 l =l;f o r (m=l;m 15;m+)for(n=l;n=m;n+)bmn=bm-ln-l+bm-ln;printf(%-5d”,bmn);p
45、 rin tf(n);)或mainO int i,j,n,k,a10 10;sta tic al=l,1,1,1,1,1,1,1,1,1);a 1for(k=2,kU;k+)for(i=2;i=k;i+)for(j=2;j=i;j+)a ij=a i-lj-l+a i-lj;for(k=l;k ll;k+)fo r(i=l;i=k;i+)fo r(j=l;j=i;j+)p r i n t f a i j );7.7 打 印“魔方阵”,所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为8 1 63 5 74 9 2要求打印出由1n2的自然数构成的魔方阵。解:(in
46、clude main()int a16 16,i,i,k,p,m,n;P=l;while(p=l)p rin tf(Enter n(n=l15):”);s c a n f&n):i f(n!=0)&(n=15)&(n%2!=0)fo r(i=l;i=n;i+)for(j=l;j=n;j+)aij=0;j=n/2+l;a lj=l;for(k=2;k=n*n;k+)i-i-1;/*要求阶数为115的商数*/p=0;/*初始化*/*建立魔方阵*/j=j+l;if(in)i=i+2;j=j-l:)e l s e i f(i n)j=l;i f(a i j =O)a i j =k;e l s e i=
47、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 tf(%4d,a i j );p r i n tf(n);7.8 找出一个二位数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。m ain()in t a 5 5 ,b 5 ,c 5 ,d 5 5 ,k=0,1=0;in t i,j;fo r(i=0;i 5;i+)fo r(j=0;j 5;j+)s c a n f&d i j );fo r(i=0;i 5;i+)fo r(j=0;j 5;j+,a i j=d i j);fo r(
48、i=0,k=0;i 5;i+,k+)fo 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;)fo r(j=0,l=0;j 5;j+,1+)fo r(i=0;i 4;i+)if(a iH j =a i+l j)c l =a i+l j=a i j;e l s ec l =a i+l j;fo r(i=0,k=0;i 0;j 5;j+,l+)if(d i j-b k=O)if(d i j-c l =O)p r in t f(z/d%d%d=%d n,/,i,j,d i j);e l s ep r in t f(,zd%d%d=%d is
49、n o t an di n,z,i,j,d i j);)7.9有 个1 5数按由小到大顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数组中第几个元素的值。如果该数不在数组中,则打印出无此数#in cl u dez zm at h.hm ain()s t at ic in t i,j,m,a 15 =l,4,9,13,21,34,5 5,8 9,14 4,233,37 7,5 7 0,6 7 1,7 0 3,8 12;s can f(d,&m);fo r(j=0;j 15;j+)p r in t fC%4 d a j);p r in t f(n);i=7;w hil e(fabs(i-
50、7)8)if(m a 7 )if(a i-m=0)p r in t f(z/it is at (%d)n,z,i+1);br e ak;i+;e l s ep r in t f(8 n);)if(fabs (i-7)-8=0)p r in t f(Z/T he r e is n o t n);)7.1 0有一篇文章,共 有3行文字,每行有个8 0字符。要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。m ain()in t i,j=0,k=0,1=0,m=0,n=0;char s t r 0 30 1,s t r l 10 0 ,s t r 2 10 0 ,s t r 3 10