C语言课后习题答案.docx
- 文档编号:24692729
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:15
- 大小:17.71KB
C语言课后习题答案.docx
《C语言课后习题答案.docx》由会员分享,可在线阅读,更多相关《C语言课后习题答案.docx(15页珍藏版)》请在冰豆网上搜索。
C语言课后习题答案
第4章后练习
10.ch4_lx10.c
#include
voidmain()
{
intm=1,n=1,s=0,k=1;
while(n<=10)
{
while(m<=n)
{printf("%d",m);
m++;
}
printf("\n");
n++;
m=1;
}
}
Ch4_lx12.c输入一行字符串,统计有多少字母.
#include
voidmain()
{
intm=0;
charch;
while((ch=getchar())!
='\n')
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
m++;
printf("%d\n",m);
}
}
Ch4_lx13.c猜字游戏
#include
#include
#include
#include
voidmain()
{intmagic;
intguess;
srand((unsigned)time(NULL));
magic=rand();
printf("Enteryourguess:
");
scanf("%d",&guess);
while(guess!
=magic)
{
if(guess>magic)
printf("**Toohigh\n**");
else
printf("**TooLow\n**");
printf("Enteryourguess:
");
scanf("%d",&guess);
if(guess==magic)
{printf("**Right**\n");
break;}
}
}
11.输入一自然数,输出它的因子。
解1.
#include
intmain()
{intw,i=2;
printf("请输入一个整数w:
\n");
scanf("%d",&w);
printf("%d的因子是:
",w);
while(w)
{while(w)
{
if(w%i==0)
{printf("%d",i);
w=w/i;
}
else
break;
}
i++;
}
return0;
}
Ch5_lx14.c求1*3*5*7…*n
#include
intmain()
{
inti,x,s=1;
printf("请输入一个奇数:
\n");
scanf("%d",&x);
for(i=1;i<=x;i+=2)
s=s*i;
printf("1*3*...*%d=%d\n",x,s);
return0;
}
设计一个猜字游戏.
程序给出一个数,游戏者猜对了,屏幕显示
“**Right**”;
当猜的数错了,显示”**Wrong**”,并告之猜的
数太小并显示”**TooLow**”,否则就显示”
**TooHigh**”.
例:
猜字游戏
(一)
main()
{intmagic=123;
intguess;
printf(“Enteryourguess:
”;
scanf(“%d”,&guess);
if(guess==magic)
printf(“**Right**”);
else
{printf(“**Wrong**”);
if(guess>magic)
printf(“**Toohigh\n**”);
else
printf(“**Toolow**\n”);}
}
main()猜字游戏
(二)
{intmagic=123;
intguess;
printf("Enteryourguess:
");
scanf("%d",&guess);
while(guess!
=magic)
{if(guess==magic)
printf("**Right**\n");
else
{printf("**Wrong**\n");
if(guess>magic)
printf("**Toohigh\n**");
else
printf("**TooLow\n**");}
printf("Enteryourguess:
");
scanf("%d",&guess);}}
例:
一球从100米高度自由落下,每次落地后都弹回原高度一半落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
main()
{floatsn=100,hn=sn/2;
intn;
for(n=2;n<=10;n++)
{sn=sn+2*hn;
hn=hn/2;}
printf(“%fm.\n”,sn);
printf(“%fm.\n”,hn);}
例:
猴子吃桃子问题.
猴子第一天摘下若干桃子,当即吃了一半,又多吃了一个.第二天早上又将剩余的桃子吃掉一半,还是又多吃了一个.
以后每天早上都吃了前天剩下的一半多一个.到第十天
早上想再吃时,只见剩下了一个桃子了.
求第一天共摘了多少桃子?
main()
{
intday,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2;
x2=x1;day--;
}
printf(“total=%d\n”,x1);
}
12.#include
voidmain()
{
intm=0;
charch;
while((ch=getchar())!
='\n')
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
m++;
printf("%d\n",m);
}
}
第5章后练习
把100~200之间的不能被3整除的数输出。
main()
{intn;
for(n=100;n<=200;n++)
{if(n%3==0)
continue;printf(“%5d”,n);
}
}
例:
问程序输出的结果?
main()
{inti=1,a=0;
for(;i<=5;i++)
{
do{
i++;
a++;
}while(i<3);
i++;}
printf(“a=%d,i=%d\n”,a,i);
}
输出:
a=3,i=8
例:
找出所有的三位数,它和它的各位数字的立方和正好相
等.例如:
153=13+53+33.
设所求的三位数,其百位数字是i,十位数字是j,个位数字
是k.显然应满足如下表达式:
i*i*i+j*j*j+k*k*k=100*i+10*j+k
main()
{inti,j,k;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if(i*i*i+j*j*j+k*k*k==100*i+10*j+k)
printf(“%d%d%d\n”,i,j,k);
}
第6章后练习
示例:
输入2个数,如果它们的值不相等,则交换并输出它们的值;否则,输出“equal”。
交换a和b值的方法:
temp=a;
a=b;
b=temp;
#include
voidmain()
{inta,b,temp;
printf("inputa,b:
");
scanf("%d%d",&a,&b);
if(a!
=b){
temp=a;
a=b;
b=temp;
printf("a=%d,b=%d\n",a,b);}
else
printf("equal\n");
}
示例:
输入3个整数,输出其中的最大值
#include
voidmain()
{
inta,b,c,max;
printf("inputa,b,c:
");
scanf("%d%d%d",&a,&b,&c);
max=a;
if(max
if(max printf("maxis%d\n",max); } 例: 输入x,计算下列分段函数f(x). 1/xx≠0 f(x)= 0x=0 #include voidmain() { floatx,y; printf("inputx: \n"); scanf("%f",&x); if(x! =0)y=1/x; elsey=0; printf("f(%f)=%.2f\n",x,y); } 例: 输入x,计算下列分段函数f(x). x+1x<1 f(x)=x+21≤x<2 x+3x≥2 #include voidmain() {doublex,y; printf("请输入x: "); scanf("%lf",&x); if(x<1) y=x+1; elseif(x<2) y=x+2; else y=x+3; printf("f(%.2f)=%.2f\n",x,y); } 7.将大写字符转换为小写. #include voidmain() {charch; while((ch=getchar())! ='\n') {if(ch>='A'&&ch<='Z'){ ch+=32; printf("%c",ch);} else printf("%c",ch);} printf("\n"); } 8.统计字符 #include #include intmain() {charch; intx=0,y=0,z=0,a=0,b=0; printf("请输入: \n"); while((ch=getchar())! ='\n') {if(ch>='a'&&ch<='z') x++; elseif(ch>='A'&&ch<='Z') y++; elseif(ch>='0'&&ch<='9') z++; elseif(ch==''||ch=='\n') a++; else b++; } printf("小写字母%d个\n",x); printf("大写字母%d个\n",y); printf("数字字符%d个\n",z); printf("空格字符%d个\n",a); printf("其它字符%d个\n",b); return0; } 9.计算分段函数 #include voidmain() {floatx,y; printf("请输入x: \n"); scanf("%f",&x); if(x<=1) y=x+5; elseif(x>1&&x<=10) y=2*x; else y=(3/(x-10); printf("x=%fy=%f\n",x,y); } 10.五分制与百分制的转换 #include voidmain() {intx,i; printf("该程序功能为五分制与百分制的转换! \n"); printf("1进入,2退出! \n"); scanf("%d",&i); while(i==1) {printf("请输入: \n"); scanf("%d",&x); if(x>=90&&x<=100) x=5; elseif(x>=80&&x<90) x=4; elseif(x>=70&&x<80) x=3; elseif(x>=60&&x<70) x=2; else x=1; printf("五分制成绩为%d分\n",x); printf(“1继续2退出! \n"); scanf("%d",&i); } } 第7章后练习 1.百分制转换成五分制. #include intmain() { intx; printf("请输入学生百分制成绩: \n输入负数结束程序: \n"); scanf("%d",&x); while(x>0) {switch(x/10) { case10: case9: printf("五分制为: \n5\n\n");break;case8: printf("五分制为: \n4\n\n");break; case7: printf("五分制为: \n3\n\n");break; case6: printf("五分制为: \n2\n\n");break; default: printf("五分制为: \n1\n\n");break; } printf("请输入学生百分制成绩: \n输入负数结束程序: \n"); scanf("%d",&x); } printf("谢谢使用,再见: \n"); return0; } 2.计算sin(),cos(),tan(). #include #include intmain() { doublex,s; inty; printf("Inputanumber: \n"); scanf("%lf",&x); while (1){ printf("您希望进行哪种运算? \n"); printf("1.计算sin(x)\n"); printf("2.计算cos(x)\n"); printf("3.计算tan(x)\n"); scanf("%d",&y); switch(y) {case1: s=sin(x); printf("sin(%f)=%f\n",x,s);break; case2: s=cos(x); printf("cos(%f)=%f\n",x,s);break; case3: s=tan(x); printf("tan(%f)=%f\n",x,s);break; default: printf(“输入有误,请输入1-3之间的数字! \n"); } If(y==1||y==2||y==3) break; } printf("谢谢使用: \n"); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课后 习题 答案