C语言课后答案.docx
- 文档编号:4804524
- 上传时间:2022-12-09
- 格式:DOCX
- 页数:37
- 大小:24.40KB
C语言课后答案.docx
《C语言课后答案.docx》由会员分享,可在线阅读,更多相关《C语言课后答案.docx(37页珍藏版)》请在冰豆网上搜索。
C语言课后答案
苏小红等编著,电子工业出版社
感谢龙三少同学的支持.
第一章:
1.1
硬件:
光盘驱动器,硬盘驱动器,网络卡,声音卡,CPU,主板,内存,游戏杆,键盘,鼠标.
软件:
QQ,迅雷,千千静听,暴风影音,超星阅读器,X-scan.
1.2
五个部分:
控制器,运算器,存储器,输入设备,输出设备.
1.3
/*功能:
本程序修改课本上例1.4,计算123+456
作者:
漏网之鱼
创建日期:
20070729
版本:
无
修改:
无*/
#include
main()
{
printf("%d\n",123+456);/*只修改这儿即可*/
}
1.4
BASIC,C,C++,C#,Java,VB;
PHP,JavaScript,VBScript,ASP,PYTHON,RubyOnRails.
1.5
学习:
在上搜索资料.
生活:
在QQ上泡MM.
第二章:
2.1
第五个和第六个是合法的.
2.2
CBABDDDCB
2.3
(1).sqr(a*a+b*b)/(2*c)
(2).fabs((a+b)*(c+d)+2)
(3).(log(x)+sin(y))/2
(4).2*PI*r /*其中PI是宏常量,即#definePI3.141592653*/
(5).1/(1+1/x)
(6).(sin(3.141592653/6)+2*exp(x))/(2*y+pow(y,x))
第三章:
3.1:
C语言语句分为四个类型:
控制语句;表达语句;复合语句;空语句.
3.2:
CD /*本小题答案感谢观海听涛的东东同学的提醒*/
3.3:
(1)地址前没有&
scanf("%d,%d",&a,&b);
(2)类型不匹配
printf("%f",f);
(3)类型不匹配
scanf("%lf%d",&var,&a);
(4)地址前没有&
scanf("%d,%d\n",&a,&b);
(5)scanf不能限制精度
scanf("%5f",&f);
(6)scanf中不能有=
scanf("%d,%d",&a,&b);
3.4:
(1)aabbccabc
(2)0 1 1
(3)68
(4)3.500000
(5)12 9 13 9
(6)12 9 13 9
3.5:
/*功能:
本程序从键盘接收三个参数,分别为三角形的三条边
输出三角形的面积
作者:
漏网之鱼
日期:
20070731
修改:
版本:
无*/
#include
#include
intmain()
{
floata,b,c,s,area;
printf("inputa,bandc:
\n");
reput:
/*提示输入三条边长度*/
scanf("%f%f%f",&a,&b,&c);
if(a+b { printf("error! reputplease: \n"); /*如果不能组成三角形,则重新输入*/ goto reput; } s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); /*根据公式计算面积*/ printf("theareais%f\n",area); return(0); } 第四章: 4.1: (1)见课本69页. (2)见课本138页. (3)见课本138页139页. 4.2: (1)D (2)B(3)D(4)D /*第二小题改正感谢观海听涛的东东同学的提醒, 同学们做题要用眼镜,否则容易做错题,当然,这是我为自己找的一个借口*/ 4.3: (1)over! (2)right /*出题者希望答案是这个,不过,课本上这个程序不可能通过编译,因为没有包含头文件conio.h.即课本上的程序中并没有#include "居然用了getchar,用个毛! "(冰雪封情语)*/ (3)答案同上,问题同上. (4)这个我不说你也猜得到吧. (5)abcdefg$abcdefg abcdefg/*老实说,我对他们把conio.h这个头文件忘了非常气愤,建议读者看一下K&RC.*/ (6)****** ****** ****** ****** (7)*#*#*#$ 4.4: (1)(year%4==0&&year%100! =0)||(year%400==0) flag (2)(ch>=65&&ch<=90)||(ch>=95&&ch<=124) ch>48&&ch<58 ch==32 (3)fahr celsius=5.0/9.0*(fahr-32) fahr+=step /*我又不得不多说几句了,这个程序很经典,我相信大伙以后还会看到的.只是课本上第十二行少了一个%,它是这么写的pirntf("4.0f\t%6.1f\n",fahr,celsius);上面一个还漏了 */ 4.5: /*功能: 该程序判断输入的数字的奇偶性以及正负. 作者: 漏网之鱼 日期: 20070804 修改: 版本: 无*/ #include #include intmain(void) { ints; printf("pleaseinputthenumber: \n"); scanf("%d",&s); if(s>0) { printf("it'sapositivenumber\n"); /*判断这个数字是不是大于零*/ } elseif(s==0) { printf("it'szero! ! ! \n"); /*为零*/ } else { printf("it's anegetivenumber\n"); /*负数*/ } if((int)fabs(s)%2) /*用这个数的绝对值取模,如为1,则为奇数,否则为偶数*/ { printf("it's aoddnumber\n"); } else { printf("it's aevennumber\n"); } getch(); return(0); } 4.6: /*功能: 一个分段函数,根据X的值输出Y. 作者: 漏网之鱼 日期: 20070805 修改: 版本: 无*/ #include #include int main(void) { intx; floaty; printf("enterxplease! \n"); scanf("%d",&x); if(x) /*非零的X*/ { if(x>0) { y=exp(-x); printf("yis%f\n",y); } else { y=-(exp(x)); /*老实说,优先级我也搞不懂,还是加个括号比较保险*/ printf("yis%f\n",y); } } else { y=1; printf("yis%f\n",y); } return(0); } 4.7: /*功能: 判断输入的三条边能否组成三角形,并判断三角形的类型 作者: 漏网之鱼 日期: 20070805 版本: 修改: 无*/ #include intmain(void) { inta,b,c; printf("entera,b,cplease: \n"); scanf("%d%d%d",&a,&b,&c); if((a-b { if(a==b||b==c||c==a) printf("it'saisocelestriangle\n"); elseif(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a) printf("it'saright-angledtriangle\n"); else printf("it'sanormaltriangle\n"); } else printf("theycann'tmakeupofa triangle\n"); return(0); } 4.8: /*功能: 根据输入显示一句话 作者: 漏网之鱼 日期: 20070805 修改: 版本: 无*/ #include intmain(void) { intc; printf("*******Time*********\n1morning\n2afternoon\n3night\npleaseenter"); printf("yourchoice: \n"); /*这两句比较变态,建议不用*/ scanf("%d",&c); switch(c) { case1: printf("Goodmorning\n"); break; case2: printf("Goodafternoon\n"); break; case3: printf("Goodnight\n"); break; default: printf("Selectionerror! \n"); break; } return(0); } 4.9: /*功能: 得到一个年份和一个月份,输出这个月有多少天 作者: 漏网之鱼 日期: 20070805 修改: 版本: 无*/ #include intmain(void) { intyear,month,flag; printf("entertheyearandmonth\n"); scanf("%d%d",&year,&month); if((year%4==0&&year%100! =0)||(year%400==0)) flag=1; else flag=0; printf("themonthoftheyearhave"); switch(month) { case1: printf("31"); break; case2: printf("%d",flag+28);break; case3: printf("31"); break; case4: printf("30"); break; case5: printf("31"); break; /*这儿这么多,显然是麻烦了,你可以试试用几个for循环*/ case6: printf("30"); break; case7: printf("31"); break; case8: printf("31"); break; case9: printf("30"); break; case10: printf("31"); break; case11: printf("30"); break; case12: printf("31"); break; } printf("days\n"); return(0); } 4.10: /*功能: 计算从1加到101,其中每次加二 作者: 漏网之鱼 日期: 20070805 版本: 修改: 无*/ #include intmain(void) { inti=101,sum=0; while(i+1) { sum+=i; /*这个题蛮有意思*/ i-=2; } printf("thesumis%d",sum); return(0); } 4.11: /*功能: 计算从1到99的和,其中第一项是该数字和它后面两个数字的乘积 作者: 漏网之鱼 日期: 20070805 修改: 版本: 无*/ #include intmain(void) { inti=99,sum=0; while(i+1) { sum+=i*(i+1)*(i+2); /*和上一题一样,没有什么可说的*/ i-=2; } printf("thesumis%d",sum); return(0); } 4.12: /*功能: 计算从1到10的阶乘的和 作者: 漏网之鱼 日期: 20070805 修改: 版本: 无*/ #include #include intfac(intx); /*不好意思,这儿用了个函数(chapter5)*/ intmain(void) { inti=4,sum=0; while(i) { sum+=fac(i); i--; } printf("thesumis%d",sum); return(0); } intfac(inti) { intfac=1; while(i) { fac*=i; /*函数功能: 计算输入参数的阶乘*/ i--; } return(fac); } 4.13: /*功能: 不好说,假设N=2,A=3,它就会计算33+3,N=4,A=3,它会算3333+333+33+3 作者: 漏网之鱼 日期: 20070805 修改: 版本: 无*/ #include #include intmain(void) { inta,n,sum=0,i=0; printf("enteraandnplease: \n"); scanf("%d%d",&a,&n); while(n) { sum+=a*n*pow(10,i); /*这句有些乱......*/ n-=1; i+=1; } printf("thesumis%d",sum); return(0); } 4.14: /*功能: 计算PI的值 作者: 漏网之鱼 日期: 20070805 版本: 修改: 无*/ #include intmain(void) { floatn=50,pi,sum=1;/*可以将这一百个数分为50组,规律就出来了*/ while(n) { sum*=(2*n)*(2*n)/((2*n-1)*(2*n+1)); n-=1; } pi=sum+sum; printf("piis%f",pi); return(0); } 4.15: /*功能: 计算共加了多少项才可以让最后一项小于0.00001 作者: 漏网之鱼 日期: 20070805 版本: 修改: 无*/ #include #include #define mix 0.00001 intfac(intx); intmain(void) { intn=1; while((float)1/fac(n)>mix) { n=n+=1; } printf("weaddit%dtimes\n",n+2);/*当它小于0.00001时,WHILE结束*/ return(0); /*此时应多加1,第一项为1,故加2*/ } intfac(inti) { intfac=1; while(i) { fac*=i; i--; } return(fac); } 4.16: /*功能: 相加直到加数的绝对值小于0.0001 作者: 漏网之鱼 日期: 20070806 修改: 版本: 无*/ #include #include #definemix0.0001 intmain(void) { intsign=1,n=1; floatsum=0,term=1; while(fabs(term)>mix) { n++; sign=-sign; sum+=term; term=(float)sign/n; } printf("thesumis%f",sum); return(0); } 4.17: /*功能: 相加直到加数的绝对值小于0.00001 作者: 漏网之鱼 日期: 20070806 修改: 版本: 无*/ #include #include #definemix0.00001 intmain(void) { floatx,term,sum=0; intn=1; printf("enterxplease: \n"); scanf("%f",&x); term=x; printf("termis%f\n",term); while(fabs(term)>mix) { sum+=term; term=-term*x*x/((n+1)*(n+2)); n+=2; } printf("thesumis%f",sum); return(0); } 4.18: /*功能: 打印所有水仙花数 作者: 漏网之鱼 日期: 20070807 修改: 版本: 无*/ #include intmain(void) { inthigh,mid,low,n; for(n=100;n<1000;n++) { low=n%10; mid=(n/10)%10; /*除以10并以10取模,得十位数*/ high=n/100; /*整数除,得百位数*/ if(n==low*low*low+high*high*high+mid*mid*mid) printf("theflowernumberis%d\n",n); } return(0); } 4.19: /*功能: 计算一个数字的各位之和 作者: 漏网之鱼 日期: 20070807 修改: 版本: 无*/ #include #include intmain(void) { intnum,sum; printf("enterthenumberplease: \n"); scanf("%d",&num); num=fabs(num);/*这儿破坏了原始数据*/ sum=num%10+(num/10)%10+(num/100)%10+num/1000; printf("thesumis%d",sum); return(0); } 4.20: /*功能: 找出符合的最小数 作者: 漏网之鱼 日期: 20070807 版本: 修改: 无*/ #include intmain(void) { intx; for(x=1;;x++) { if(x%5==1&&x%6==5&&x%7==4&&x%11==10) break; } printf("thenumberis%d",x); return(0); } 4.21: /*功能: 计算符合题目的台阶数 作者: 漏网之鱼 日期: 20070807 修改: 版本: 无*/ #include intmain(void) { intx; for(x=1;x<10000;x++)/*也许你已经猜出来了,这个题目并不只有一个答案,我的*/ { /*意见,可以看一下世界
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课后 答案