C语言程序设计-课后习题答案.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言程序设计-课后习题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计-课后习题答案.docx(25页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、习题1和参考解答1 .什么是程序?【答案】在计算机中,程序是指导计算机执行某个功能或功能组合的一组指令。每一条 指令都让计算机执行完成一个具体的操作,一个程序所规定的操作全部执行完毕后,就能产 生计算结果。2 .计算机语言经历了哪几个阶段?【答案】计算机语言按其开展的先后顺序,经历了机器语言、汇编语言和高级语言三个 阶段。3 .程序的翻译方式有哪几种?【答案】按翻译方式的不同,程序的翻译方式有解释和编译两种,其中C语言采用的是 编译的方式。4 .编写一个简单的C程序,使得在屏幕上显示以下信息:C is very fun.【参考源程序】#includeini main()printR“* pri
2、nts”printR“* prints”* *n)printR* * *n) return 0;5 .编写一个简单的C程序,使得在屏幕上显示以下信息:木*【参考源程序】#includc ini main()printf( *);prim/ *”); printfC *”); printfT*); return 0;char s50;int i,n;gets(s);i=0;n=0;whilc(si+l!=O)if(si+l=si+l)n+;i+;)printfr%dn”,n);return 0;I5 .编写程序,找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列 上最小。也可能没有鞍
3、点。【参考源程序】#includeint main()|ini ij,k,flag 1 ,flag2,a3 4,max,maxj;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d.&aij);flag2=0;for(i=0;i3;i+)max=a|i();for(j=0;jmax)max=ai|jj;maxj=j;for(k=0,flag 1 = l;kakmaxjl)flag 1=0;if(flagl)prinif(”n 第11 行,第d 列的d 是鞍点n”,i,maxj,max); flag2= 1;if(!flag2)printf(n矩阵中无鞍点!n);retur
4、n 0;)6 .有十个字符串,编程序在每个字符串中,找出最大字符按一一对应的顺序存入一维 数组a中,即第i个字符串中的最大字符放入a川中,输出每个字符串中的最大字符。【参考源程序】#includeint main()char s1020, a10;int i,j;for(i=0; i10; i+)gets(si);for(i=0; iIO; i+)ai=siO;for(j=l;siU!=,0;j+)if(aisi|j)ai=srilfj;)fbr(i=0;i10;i+)printf(%d %c,i, ai);return 0;)7 .编写程序将将二维数组a中每个元素右移一列,最右一列换到最左一
5、列,移后的数组 存到另一数组b中,并按矩阵形式输出b。【参考源程序】#includeint main()int a23=L2,3A5,6),b23;int i,j;for(i=0:i=l;i+)for(j=l;j3;j+)bij=ailj-l;for(i=0; i2; i+)bi0=ail2;printf(array b:n);fbr(i=0;i2;i+)(for(j=0;j3;j+)printf(%5d,bij);printf(n)return 0;J8 .编写程序为一个5x5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角元 素。【参考源程序】#includeint main()
6、int a55,ij,k=l;fbr(i=0;i5;i+)for(j=0;j5;j+)aij=k+;for(i=0;i5;i+)for(j=0;j=i;j+)printf(%3d,aiU);printf(n);return 0;I9 .从键盘上接收十个三位的正整数(各个数位都不包括0)存入一个数组当中,试将数 组中的每个数的百位与个位进行交换(例123交换后成为321),将组合成的新数仍存入原数 组中。【参考源程序】#includeint main()int a10,i;for(i=0;il();i+)(scanf(ll%d,&afi);ai=ai% 10*100+ai/10%10*l O+a
7、i/l 00;for(i=0;il();i+)prin 氓%d M,ai);return 0;)习题5和参考解答1 .编写程序,调用函数求一个圆柱体的外表积和体积。【参考源程序】#includevoid fun(int r,int h)|float area;arca=2*3.14*r*h;vol=3.14*r*r*h;printf(area=%.2f,vol=%.2f,area,vol);)int main()|int r,h;scanf(%d%d,&r,&h);fun(r,h);return 0;)2 .编写一个函数,输出一个整数的全部素数因子。例如:m=120时,因子为2,3,5。【参考
8、源程序】#inckideint fun(int n)(int flag=l J;for(i=2;in;i+)if(n%i=0)flag=0;return flag;)int main()int m,i;scanf(%d,&m);fbr(i=2;im;i+)if(m%i=0)if(fun(i)printf(%d ,i);return 0;)3 .编写程序,调用函数使输入的一个字符串反序存放并输出。【参考源程序】#include#includevoid fun(char sl)int i=0,n;char t;n=strlen(s)-l; while(i=n)t=si;si=sn;sn=t;i+;
9、 n-;)int main()char s20;gets(s);fun(s);puts(s);return 0;4 .编写一个函数,输入一个十六进制数,输出相应的十进制数。【参考源程序】#inckideint fun(char s1)(int i=0,n,m=0;if(si=a)n=si-a+10;elsen=si-O;while(s+i!=,0,)(if(si=a)m=si-,a,+10;elsem=si-O;n=n*16+m;)return n;)void main()char s6;int n;gets(s);n=fun(s);printf(%dnn, n);.编写程序完成以下功能:在主
10、函数中通过键盘输入10个互不相同的整数并存入在一 维数组中,调用函数找出数组中的最大值,并从数组中删除该值,在主函数中输出 删除后的数组。【参考源程序】#includevoid fun(int a 10)int i,j=0,max=a0;for(i=l;i10;i+)(if(maxai)|max=ai; j=i;)for(i=j;i9;i+) ai=ai+l;)int main()(int i,a10;for(i=0;i10;i+)scanf(%d,&ai);fun(a);for(i=0;i9;i+)printf(%dreturn 0;)5 .编写程序,调用函数输出如下杨辉三角形:11 11
11、2 113 3114 6 4 11 5 10 10 5【参考源程序】 #includc void yhui(int a77) int i.j;for(i=l;i7:i+)for(i=3;i7;i+)for(j=2;ji;j+)ailU=ai-lj-l+ai-lU;for(i=l;i7;i+)(for(j=l;j=i:j+)printf(%3d;aij);printf(n);int main()int a77;yhui(a);return 0;7 .用递归法计算的/+22+3?+ 值,n的值由键盘输入。【参考源程序】#include int sum(int n) (int r;if(n=0)pr
12、intf(data crrorn);if(n=l) r=l; elser=sum(n-l)+n*n;return r;int main()int n;scanf(”d”,&n);printf(,result=%dn,sum(n);return 0;8 .用递归法计算1 + 2 + 3 + 的值,n的值由键盘输入。【参考源程序】#includeint sum(int n)int r;if(n=0)printf(data errorn);if(n=l)r=l;elser=sum(n-l)+n;return r;int main()in( n;scanf(%d,&n);printf(sum(%d)=
13、%dn,n,sum(n);return 0;9 .2可以用下面的公式表示:e =1 + + + 1! 2! 3! 4!编写函数求e,要求最后一项近似到1 o利用该函数求J夕,e【参考源程序】#includefloat fun 1 (int n)int i;float r= 1;for(i=l ;i=n;i+)r=r*i;return r;)float fun2(float xjnt n)(int i;float r= 1;for(i=l;ile-4)(s+=p;n+;p= fun2(x,n)/funl(n);return s;)int main()(printf(%f,fun(l);prini
14、f(%f,fun(2);printf(%f,fun(-0.5);return 0;习题6和参考解答1 .编写程序,将一无符号八进制数字字符串转换为十进制整数。例如,输入的字符串 为“556”,那么输出十进制整数366。【参考源程序】#includeint main()(char *p, s6;int n;p=s;gcts(p);n=*p-O;while( *(+p) !=0)n=n*8+*p-0;printf(%dn, n);return 0;)2 .编写程序,从键盘上接收一个字符串,判断其是否是回文(顺读和倒读都一样的字 符串称为回文,如“level)。【参考源程序】#include#inc
15、ludeint main()char s81 J,*pl,*p2;int n;gets(s);n=strlen(s);pl=s;p2= s+n-1 ;while( plp2 )(if(*pl!=*p2)break;else|pl+;p2-;)if(plp2)printf(NOn);elseprin(f(YESn);return 0;I3 .编写程序,将一字符串中的内容按逆序输出,但不改变字符串中的内容。 【参考源程序】#includeint invcrp(char *a)if(!*a)return 0;inverp(a+l);printf(%c,*a);1void main()char s10
16、;gets(s);inverp(s);)4 .编写程序,找出二维数组中的最大元素并输出。【参考源程序】#includeint main()习题2和参考解答1 .求以下表达式的值。(1) 3.5+1/2(2)设 intx=18,k=14;,表达式为 x%=k-k%5(3) (int)(double)(5/2)+2.5)(4)设 x=2.5,a=7,y=4.7,表达式为 x+a%3*(int)(x+y)%2/4(5)设 a=2,b=3,x=3.5,y=2.5,表达式为(float)(a+b)/2+(ini)x%(int)y(6 )设 a=2,b=5,表达式为 a+,b+,a+b(7)2为血类型,且
17、其值为3,表达式为a+=a-=a*a(8) x=y=6,x+y,x+1(9) x=(y=6,y*2,y+l)【答案】(1) 3.5(2) 8(3) 4(4) 2.5(5) 3.5(6) 9(7) -12(8) 7(9) 7.编写程序:输入一个矩形的长和宽,计算该矩形的面积。【参考源程序】#inchideint main()float length,width,arca;scanf(M%f%r,&length,&width);area=length*width;printf(44area=%fn,area);return 0;).编写程序:输入半径的值,计算并输出球的体积。【参考源程序】#inc
18、ludeint main()float r,v;scanf(44%f;&r);v=4*3.1415*r*r*r/3;printf(44v=%fn,v);return 0;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&aijj);max=a001;for(p=a;pa+3;p+)for(j=0;jmax)max=*(*p+j);printf(max=%d,max);return 0;)5 .编写程序,输入10个整数,将其中最小的数与第一个数对换,将最大的数与最后一 个数对换。【参考源程序】#includeint main()|int a10,*niin,*max,i
19、,t;for(i=0;i10;i+)scanf(%d,&ai);min=a; max=a;for(i=l;iaij)min=&ai;if(*maxai)max=&ai;l=*min; *min=aOJ; aO=t;t=*max; *max=a9; a9=t;for(i=0;i10;i+)printf(H%d ,ai);return 0;6 .有n个整数,编写程序使前面各数顺序向后移m个位置,最后m个数变成最前面m 个数。【参考源程序】#includevoid exchange(int aJnt njnt m)|intfor(i=0,e=n-m:e=i;j-)*(a+j)=*(a+j-l);*(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课后 习题 答案
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内