C语言程序设计课后习题编程答案.pdf





《C语言程序设计课后习题编程答案.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计课后习题编程答案.pdf(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章简单程序设计1.编程求方程2*x2-3*x-5=0的根。源代码#includeint main()(float xl,x2;xl=(3+7)A.0;x2=(3-7)A.O;printf(xl=%f/x2=%fn,xl/x2);return 0;2,已知正方体的棱长为4.3,求正方体的体积和表面积。(保留2 位小数)源代码#includeint main()(float a;float s,v;a=4.3;s=a*a*6;v=a*a*a;printf(V=%.2f,S=%.2fn,v,s);return 0;3.输入3 个整数啊a,b,c,编程交换它们的值,即把a 的值给b,把 b 中的值
2、给c,把 c 的值给a。源代码#includeint main()(int a,b,c;int temp;scanf(%d%d%d/&az&b,&c);temp=a;a=b;b=c;c=temp;printf(a=%d,b=%d/c=%dn,a,b,c);return 0;4.编程将任意输入的小写字母转化成大写字母并输出源代码#includeint main()(char ch;scanf(,%c,&ch);ch=ch-32;printf(cn”,ch);return 0;第四章选择结构L 设计一个简单的计算器程序,用户输入运算数和四则运算符(+、-、*、/),输出计算结果,除法为整除。源代码
3、#includevoid main()(int a,b,c;char chi;scanf(%d%c%d/&a,&chlz&b);switch(chl)(case 43:c=a+b;printf(,c=%dn,c);break;case 45:c=a-b;printf(c=%dn,c);break;case 42:c=a*b;printf(c=%dn,c);break;case 47:c=a/b;printf(c=%dn,c);break;default:printf(wrong!);)2根据输入的x 的值求y 的值,当 x0且 x!=2时,y=(x+1)/(x-2);当 x=0或 x=2时,y
4、=0;当 x0 时,y=(x-l)/(x-2).源代码#includevoid main()(float x,y;scanf(%f,&x);if(x0&x!=2)y=(x+l)*(x-2);else(if(x=O|x=2)y=o;elsey=(x-l)*(x-2);printf(y=%fn,y);)3.编写程序,从键盘输入学生成绩输出对的的等级(100分为A,99-90为 B,80-89为 C,70-79 为 D,60-69 为 E,小于 60 为 F)。源代码#includeint main()(float num;scanf(%f,&num);if(num=100)printf(An);e
5、lseif(num=90)printf(Bn);else(if(num=80)printf(Cn);elseif(num=70)printf(Dn);else(if(num=60)printf(En);elseprintf(Fn);)return 0;)4.编写程序,输入不多余4 位的正整数,判断它是几位数。源代码#includevoid main()(int a;scanf(%d,&a);if(a=1000)printf(4n);else(if(a=100)printf(3n);else(if(a=10)printf(n2n);elseprintf(ln);)第五章循环结构1.求 1-2+3
6、-4+5-6+7+.+99-100.源代码#includevoid main()(int i,s;for(i=l/s=0;i=100;i+)(if(i%2!=0)s=s+i;elses=s-i;)printf(s=%dn/s);)2.任意输入10个数的和,分别计算输出其中正数和负数的和源代码#includevoid main()(float sl,s2,xzi;for(sl=0/s2=0J=l;i=10;i=i+)(scanf(%f/&x);if(x0)sl=sl+x;elses2=s2+x;printf(%f,%fn,sl,s2);)3.计算100里面所有含6 的数字之和。源代码#inclu
7、devoid main()(int i,a,b,s;for(i=l,s=0;i100;i+)(a=i/10;b=i%10;if(6=a 116=b)s=s+i;)printf(%dn,s);)4.输出所有的3 位水仙花数。源代码#indudevoid main()(int i,a,b,c,d;for(i=100;i1000;i=i+l)(a=i/100;求的百位数字c=i%10;求的个位数字b=(i%100-c)/10;求的十位数字d=a*a*a+b*b*b+c*c*c;if(d=i)printf(%dn,i);)5,编写程序输出下面图形:1234567890源代码#includevoid m
8、ain()int aJJ;a=l;for(i=l;i=4;i+)(for(j=l;j=i;j+,a+)printf(%d,a);printf(%n);)6.编写程序输出下面图形:*源代码#includevoid main()(int i,j,k;k=6;for(i=0;i=3;i+,k-=2)for(j=0;jk;j+)printf();for(j=0;j=0;k+=2,i-)(for(j=0;jk;j+)printf();for(j=0;j(2*i+l);j+)printf(*);printf(n);)第六章数组1.编程求一个4*4矩阵两条对角线所有元素之和。源代码#includevoid
9、main()(inta;定义一个4*4矩阵int s,i,k;定义相关变量s=0;令和为0printf(please input 16 numbers:);for(i=0;i=3;i+)输入这个矩阵的相关数值(for(k=0;k=3;k+)scanf(%d,&aik);)for(i=0,k=3;i=3;i+)对矩阵对角线进行求和(s=s+aii;s=s+aik-i;printf(%dn,s);)2.输入一个字符串,将指定位置的字符删除。源代码#include#includevoid main()int i;int n;int longth;char ch100;printf(Hplease i
10、nput Characters:n);gets(ch);longth=strlen(ch);printf(please input the number which character you want to delete:);scanf(%d,&n);if(nlongth|nl)printf(ERROR!n);else(for(i=0;i=n-l)chi=chi+l;chlongth-l=0;puts(ch);)3.输入一个字符串,在指定位置插如一个字符源代码#include#includevoid main()(int izn;char ch100;int longth;printf(pl
11、ease input characters:n);gets(ch);longth=strlen(ch);printf(please input the charachter which you want to insert:);char sh;scanf(%c,&sh);printf(please input the number:);scanf(d”,&n);for(i=longth;in-l;i-)chi=chi-l;chn-l=sh;chlongth+l=0;puts(ch);)4.编写程序,求下列矩阵各行元素之和,各列元素之和1 3 5 7 92 4 6 8 103 5 8 7 6源代
12、码#includevoid main()(int i,k;定义相关变量int row;int col;int a35;row=0;col=0;printf(求下面矩阵各行各列的和:n);for(i=l;i=3;i+)输出这个矩阵for(k=l;k=5;k+)(ai-lk-l=i+2*(k-l);printf(%3d,ai-lk-l);)printf(n);for(i=0;i=2;i+)控制行数for(k=0;k=4;k+)对各行进行求和(row=row+aik;)printf(row%d=%dn,i+Lrow);输出各行之和for(k=0;k=4;k+)控制列数(for(i=l;i=2;i+)
13、对各列进行求和(col=col+aik;)printf(col%d=%dn,k+Lcol);输出各歹 ij 之和)5有一篇文章,共有3行文字,每行最多8 0个字符。要求分别统计其中英文大写字母,小写字母,数字,空格,以及其他字符的数目。源代码#includevoid main()(int i,k;定义相关变量char ch80;int big,som,emp,num,oth;big=O;som=0;emp=0;num=0;oth=0;for(i=l;i=3;i+)控制行数 gets(ch);for(k=0;k=K&chkk=Z)对大写字母进行统计big=big+;else(讦(chk=T&ch
14、k=a&chk=?)对小写字母进行统计som=som+;else(if(chk=1)对空格键进行统计emp=emp+;elseoth=oth+;对其他字符进行统计)printf(big=%d,som=%d,emp=%cl,num=%cl,oth=%dn,big/som,emp,num,oth);/$flHjiiT+n7R:)第七章函数1.编写求两个数的和、差、平均数的三个函数,在主函数中调用它们并输出结果源代码#includeint sum(int a,int b)(int c;c=a+b;return(c);)int chafint a,int b)(int c;c=a-b;return(c
15、);)float pingjun(int a,int b)(float c;c=(a+b)/2.0;return(c);)void main()(int m,n;int x,y;float z;scanf(%d%dz&m,&n);x=sum(mzn);y=cha(m/n);z=pingjun(m,n);pnntf(a+b=%dn,x);printf(a-b=%dn/y);printf(a+b)/2=%fn/z);)2.从键盘输入3 个整数,求他们中的最大者,用函数调用实现源代码#includeint max(int a,int b,int c)(if(ab)a=b;if(a0源代码#inclu
16、delong miji(int njnt x)(long y;if(n0)y=x*miji(n-lz x);elsey=i;return(y);void main()(int azb;long f;printf(please input n and x:);scanf(%d%d,&a,&b);f=miji(a,b);printf(XAn=%ldn/f);)4.斐波那契数:Xn=X(n-l)+X(n-2)n2;Xn=l n=l 或者 n=2;#includeint feibo(int n)(int y;if(n2)y=feibo(n-l)+feibo(n-2);elsey=i;return(y)
17、;)void main()(int x;int i;int a47;scanf(H%d,&x);for(i=0;ix;i+)ai=feibo(i+l);for(i=0;ix;i+)printf(%4d,ai);printf(n);5.编写一个函数使输入的一个字符串反序存放,并在函数中输入输出o源代码#include#includevoid opc(char ch100,int n)int i;chart;for(i=0;i(n/2);i+)t=chi;chi=chn-i-l;chn-i-l=t;void main()(int k,f;char sh100;gets(sh);k=strlen(s
18、h);opc(sh,k);for(f=0;fk;f+)printf(%c”,shf);printf(n);6.编写一个函数将输入的十六进制数转化为十进制数,并输出源代码#include#include#includeint changer(char ch10Jnt m)(int k;int i;for(i=0,k=0;i=0,&chi=9)(chi=chi+O;else(jf(chi=A)(int)(chi=10);if(chi=B)(int)(chi=ll);if(chi=C)(int)(chi=12);if(chi=D,)(int)(chi=13);if(chi=,E,)(int)(chi
19、=14);if(chi=F)(int)(chi=15);)k=chi*pow(10zm-l-i)+k;return(k);void main()int s,n;char sh10;gets(sh);n=strlen(sh);s=changer(sh,n);printf(s=%dn/s);第八章指针1.编写一个程序,输 入10个整数存入一维数组中,再按逆序重新存放后输出源代码#includevoid change(int*p)定义函数(int i,t;for(i=0;iv5;i+)循环进行逆序交换(t=*(p+i);将第i+1个数用T 备份*(p+i)=*(p+9-i);将第10-i个数赋值给第
20、i+1个数*(p+9-i)=t;将T 赋值给第10-i个数)void main()(int a10J;定义一个有10个元素的数组int k;for(k=0;k10;k+)scanf(%d,&ak);输入数change;调用函数for(k=0;k10;k+)printf(%4d,a伙);输出函数处理后的数printf(n);2.输入一个字符串并将其逆序输出源代码#include#includevoid change(char*p,int n)定义函数,用指针来当字符串的形参(for(;n=0;n-)printf(%c,*(p+n-l);从最后一个起逆序输出printf(n);)void main
21、()(char ch100;int k;gets(ch);输入字符串k=strlen(ch);测量字符串的长度change(ch,k);调用函数)3.输入10个数,将其中最大的数与最后一个一个数交换,最小的与第一个数交换源代码#indudevoid change(int*pi)定义函数,用指针来当数组的形参(int*p,*q;定义两个指针p=pi;将两个指针初始化为数组的首地址q=pi;int i,t;for(i=0;i10;i+)循环找最大值及最小值(if(*p*(pi+i)找出数组111的最小数的地址q=pi+i;printf(max=%d,min=%dn,*p,*q);输出最大数与最小数
22、看看上面程序是否正确if(p=pi&q=(pi+9)(t=*p;将最大数备份*p=*(pi+9);将最后一个数放在曾经的最大数的地址内*(pi+9)=t;将最后个数放在曾经的最大数的地址内/*if语句防止当上面条件成立时下面的语句会先将两数交换后面有将两数换回来有兴趣可以将上面语句屏蔽掉输入满足上面条件的数试试看*/else(t=*p;将最大数备份*p=*(pi+9);将最后一个数放在曾经的最大数的地址内*(pi+9)=t;将最后个数放在曾经的最大数的地址内t=*q;/*下面按照上面思路对最小数与最前面的数进行交换*/*q=*pi;*pi=t;)void main()(inta10;定义数组i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课后 习题 编程 答案

限制150内