c语言第五六章课后题.docx

上传人:b****3 文档编号:3744819 上传时间:2023-05-06 格式:DOCX 页数:27 大小:295.77KB
下载 相关 举报
c语言第五六章课后题.docx_第1页
第1页 / 共27页
c语言第五六章课后题.docx_第2页
第2页 / 共27页
c语言第五六章课后题.docx_第3页
第3页 / 共27页
c语言第五六章课后题.docx_第4页
第4页 / 共27页
c语言第五六章课后题.docx_第5页
第5页 / 共27页
c语言第五六章课后题.docx_第6页
第6页 / 共27页
c语言第五六章课后题.docx_第7页
第7页 / 共27页
c语言第五六章课后题.docx_第8页
第8页 / 共27页
c语言第五六章课后题.docx_第9页
第9页 / 共27页
c语言第五六章课后题.docx_第10页
第10页 / 共27页
c语言第五六章课后题.docx_第11页
第11页 / 共27页
c语言第五六章课后题.docx_第12页
第12页 / 共27页
c语言第五六章课后题.docx_第13页
第13页 / 共27页
c语言第五六章课后题.docx_第14页
第14页 / 共27页
c语言第五六章课后题.docx_第15页
第15页 / 共27页
c语言第五六章课后题.docx_第16页
第16页 / 共27页
c语言第五六章课后题.docx_第17页
第17页 / 共27页
c语言第五六章课后题.docx_第18页
第18页 / 共27页
c语言第五六章课后题.docx_第19页
第19页 / 共27页
c语言第五六章课后题.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言第五六章课后题.docx

《c语言第五六章课后题.docx》由会员分享,可在线阅读,更多相关《c语言第五六章课后题.docx(27页珍藏版)》请在冰点文库上搜索。

c语言第五六章课后题.docx

c语言第五六章课后题

第五章作业:

5-1、

N-S流程图

#include

main()

{

constdoubleeps=1e-8;/*定义eps,用于输入的实数和0比大小*/

floata;

printf("inputanumber:

");

scanf("%f",&a);

 

if(a>0||fabs(a)<=eps)/*该实数大于等于0*/

{printf("|%f|=%f\n",a,a);}

else/*该实数小于0*/

{printf("|%f|=%f\n",a,-a);}

}

结果:

5-2、

传统流程图

#include

main()

{

intx,m;

printf("inputaintanger:

");

scanf("%d",&x);

if(x>=0)

{

m=x%2;/*取余运算,判断余数是否为0*/

if(0==m)

{printf("%d是偶数\n",x);}

else

{printf("%d是奇数\n",x);}

}

else/*提示输入为负数*/

{printf("输入错误,%d为负数\n",x);}

}

结果:

5-3、

传统流程图

#include

#include

main()

{

floata,b,c,l,s;

printf("inputthreesides:

");

scanf("%f,%f,%f",&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)/*构成三角形的条件*/

{

l=(a+b+c)/2;

s=sqrt(l*(l-a)*(l-b)*(l-c));

printf("三角形的面积是%.3f\n",s);

}

else

{printf("不能构成三角形\n");}

}

结果:

5-4、

#include

#include

main()

{

floatm,s;/*定义本金,利息和*/

intn;/*定义期限*/

printf("输入本金、期限:

");

scanf("%f,%d",&m,&n);

switch(n)

{

case1:

/*存储年限为1年*/

s=m*pow(1+0.0225,n);

printf("本金和=%.3f\n",s);

break;

case2:

/*存储年限为2年*/

s=m*pow(1+0.0243,n);

printf("本金和=%.3f\n",s);

break;

case3:

/*存储年限为3年*/

s=m*pow(1+0.0270,n);

printf("本金和=%.3f\n",s);

break;

case5:

/*存储年限为5年*/

s=m*pow(1+0.0288,n);

printf("本金和=%.3f\n",s);

break;

case8:

/*存储年限为8年*/

s=m*pow(1+0.03,n);

printf("本金和=%.3f\n",s);

break;

default:

/*提示输入错误*/

printf("输入的期限有误");

break;

}

}

结果:

5-5、

#include

main()

{

intyear,flag;

printf("Entertheyear:

");

scanf("%d",&year);

if(year%100==0&&year%400==0||year%4==0)

flag=1;

else

flag=0;

if(flag==1)

printf("%disaleapyear!

\n",year);

else

printf("%disnotaleapyear!

\n",year);

}

5-6、

#include

main()

{

intyear,flag;

printf("Entertheyear:

");

scanf("%d",&year);

(year%100==0&&year%400==0||year%4==0)?

(flag=1):

(flag=0);

if(flag==1)

printf("%disaleapyear!

\n",year);

else

printf("%disnotaleapyear!

\n",year);

}

5-7、

#include

main()

{

charch;/*定义输入的字符*/

intm;/*定义该字符的ASCII值*/

printf("inputastringandpressEnter:

");

ch=getchar();/*获取该字符*/

if(ch>='A'&&ch<='Z')/*若为大写字符,则转化为小写*/

{

m=ch+32;

printf("%c的小写字母:

%c\n",ch,m);

}

elseif(ch>='a'&&ch<='z')/*若为小写字符,则转化为大写并算出ASCII值*/

{

m=ch-32;

printf("%c的大写字母为:

%c,其ASCII值为:

%d\n",ch,m,m);

}

else/*若输入的不是字母,则只输出ASCII值*/

{

printf("%c的ASCII值为:

%d\n",ch,ch);

}

}

结果:

5-8、

#include

main()

{

charch;

printf("inputastringandpressEnter:

");

ch=getchar();/*获取该字符*/

if(ch>='A'&&ch<='Z')/*判断为大写*/

{printf("%c为大写字母\n",ch);}

elseif(ch>='a'&&ch<='z')/*判断为小写*/

{printf("%c为小写字母\n",ch);}

elseif(ch=='')/*判断为空格*/

{printf("%c为空格\n",ch);}

elseif(ch>='0'&&ch<='9')/*判断为数字*/

{printf("%c是数字字符\n",ch);}

else/*判断为其他字符*/

{printf("%c是其他字符\n",ch);}

}

结果:

5-9

#include

main()

{

intscore;

printf("inputthescore:

");

scanf("%d",&score);

if(score>100||score<0)/*判断师傅输入大于100的数或负数*/

{printf("成绩输入错误\n");}

else

{

if(score>=90)

{printf("score:

%d-------grade:

%c\n",score,'A');}

elseif(score>=80)

{printf("score:

%d-------grade:

%c\n",score,'B');}

elseif(score>=70)

{printf("score:

%d-------grade:

%c\n",score,'C');}

elseif(score>=60)

{printf("score:

%d-------grade:

%c\n",score,'D');}

else

{printf("score:

%d-------grade:

%c\n",score,'E');}

}

}

结果:

5-10、

#include

main()

{

intyear,month,flag=1;/*定义年份、月份、标识变量flag*/

printf("输入年份:

");

scanf("%d",&year);

if(year%400==0||year%100!

=0&&year%4==0)/*若为润年,flag=0,平年,flag=1*/

{flag=0;}

printf("输入月份:

");

scanf("%d",&month);

switch(month)

{

case1:

/*1,3,5,7,8,10,12月为31天*/

case3:

case5:

case7:

case8:

case10:

case12:

printf("%d年的%d月有31天\n",year,month);

break;

case2:

/*2月需要判断润年和平年的情况*/

if(0==flag)

{printf("%d年的%d月有29天\n",year,month);}

else

{printf("%d年的%d月有28天\n",year,month);}

break;

case4:

/*4,6,9,11月为30天*/

case6:

case9:

case11:

printf("%d年的%d月有31天\n",year,month);

break;

default:

/*若输入非1~12的月份,提示输入错误*/

printf("月份输入错误\n");

}

}

结果:

第六章作业

6-1

(1)

分析:

这是一个二重嵌套循环,

I=1,j=1,打出1个空格和6个*

I=2,j=1和2,做2次循环打出2个空格和6个*

I=3,j=1,2,3,做3次循环打出3个空格和6个*

I=4,j=1,2,3,4,做4次循环打出4个空格和6个*

结果

6-1

(2)

分析:

开始:

k=4,n=0

第一次循环n<4,n%2==0,n=n+1=1;

第二次循环n

第三次循环n

第四次循环n

结束:

输出n=3,k=3

结果:

6-1(3)

分析:

开始:

k=4,n=0;

第一次循环:

0<4,0%2==0,break,

结束:

输出k=4,n=0;

结果:

6-2

(1)计算1+3+5+7+.......+99+101的值

#include

main()

{

inti,sum=0;

for(i=1;i<=101;i=i+2)

{

sum=sum+i;

}

printf("sum=%d\n",sum);

}

结果:

(2)计算1*2*3+3*4*5+……+99*100*101

#include

main()

{

longi;

longterm,sum=0;

for(i=1;i<=99;i=i+2)

{

term=i*(i+1)*(i+2);

sum=sum+term;

}

printf("sum=%ld\n",sum);

}

结果:

(3)计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入

#include

main()

{

longterm=0,sum=0;

inta,i,n;

printf("inputa,n:

");

scanf("%d,%d",&a,&n);

for(i=1;i<=n;i++)

{

term=10*term+a;/*将相邻的数乘以10,再加上之前的数*/

sum=sum+term;

}

printf("sum=%ld\n",sum);

}

结果:

(4)计算1-1/2+1/3-1/4+…+1/99-1/100+…,直到最后一项的绝对值小于1e-4为止

#include

#include

main()

{

intn=1;

floatterm=1.0,sign=1,sum=0;

while(sign>=1e-4)

{

term=pow(-1,n-1)*sign;/*计算每项因子*/

sum=sum+term;

sign=(float)1/(n+1);/*强制类型转换*/

n++;

}

printf("sum=%f\n",sum);

}

结果:

(5)利用sinx=x-x^3/3!

+x^5/5!

-x^7/7!

+….,计算最后一项的绝对值小于10(-5)时为止,输出e的值并统计累加的项数

#include

#include

main()

{

intn=1,count=1;

floatx;

doublesum,term;

printf("inputx:

");

scanf("%f",&x);

sum=x;

term=x;

do{

term=(-1)*x*x*term/((n+1)*(n+2));

sum=sum+term;

n=n+2;

count=count+1;

}while(fabs(term)>1e-5);

printf("sin(x)=%f,count=%d\n",sum,count);

}

结果:

6-3

#include

main()

{

intx=1,find=0;

while(!

find)

{

if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0)

{

printf("x=%d\n",x);

find=1;

}

x++;

}

}

错误分析:

1、while后不能加分号,否则进入死循环;

2、判等运算用的是双等号,不是单等号;

3、不管是否找,x都要自增运算,所以x++放在if语句的外面。

结果:

6-5、

伪代码:

定义华氏温度f,摄氏温度c

for(f=0;f<=300;f=f+10)

输出华氏温度f;

c=5.0/9*(f-32);

输出摄氏温度;

#include

main()

{

intf=0;/*定义华氏温度f*/

floatc=0;/**定义摄氏温度c/

printf("华氏温度--------摄氏温度\n");

for(f=0;f<=300;f=f+10)/*产生0~300,并以10为间隔的温度值*/

{

printf("%dF",f);

printf("-----");

c=5.0/9*(f-32);/*将5写成5.0,防止发生整除运算*/

printf("%.2fC\n",c);

}

}

结果:

6-11、

#include

main()

{

intm=0;/*定义最终输出的整数个数为m*/

floatn;/*输入的数为n*/

longp=1,sum=0;/*p为阶乘每次阶乘结果,sum为所有阶乘加和*/

printf("pleaseinputthenumber:

");

scanf("%f",&n);

do{

m++;/*m做自增运算*/

p=p*m;/*每次阶乘结果*/

sum=sum+p;

}while(sum<=n);/*循环截止条件*/

printf("m=%d\n",m-1);/*当不满足sum<=n时,m已经多加了一次1,所以输出m-1*/

}

结果:

6-15、

#include

main()

{

intchicken;

intrabbit;

printf("鸡--------兔\n");

for(chicken=1;chicken<98;chicken++)/*鸡的数量从1~98中取*/

{

for(rabbit=1;rabbit<98;rabbit++)/*兔子的数量从1~98中取*/

{

if(2*chicken+4*rabbit==386&&chicken+rabbit==98)/*满足头为98,腿为386*/

{printf("%d只%d只\n",chicken,rabbit);}

}

}

}

结果:

6-18、

类型一、

#include

main()

{

inti=1,j=1;/*定义外部循环变量i,内部循环变量j*/

for(i=1;i<=9;i++)/*输出表头1~9,每个数字占4位*/

{printf("%-4d",i);}

printf("\n");/*换行*/

for(j=1;j<=9;j++)/*输出‘-’,每个占4位*/

{printf("%-4c",'-');}

printf("\n");/*换行*/

for(i=1;i<=9;i++)/*外部循环9次*/

{

for(j=1;j<=9;j++)/*内部循环9次*/

{

printf("%-4d",i*j);/*输出结果,每个数字占4位*/

}

printf("\n");/*每行结束,要换行输出*/

}

}

结果:

类型二、

#include

main()

{

inti=1,j=1;/*定义外部循环变量i,内部循环变量j*/

for(i=1;i<=9;i++)/*输出表头1~9,每个数字占4位*/

{printf("%-4d",i);}

printf("\n");/*换行*/

for(j=1;j<=9;j++)/*输出‘-’,每个占4位*/

{printf("%-4c",'-');}

printf("\n");/*换行*/

for(i=1;i<=9;i++)/*外部循环9次*/

{

for(j=1;j<=i;j++)/*内部循环i次*/

{

printf("%-4d",i*j);/*输出结果,每个数字占4位*/

}

printf("\n");/*每行结束,要换行输出*/

}

}

结果:

类型三、

#include

main()

{

inti=1,j=1;/*定义外部循环变量i,内部循环变量j*/

intp=1;

for(i=1;i<=9;i++)/*输出表头1~9,每个数字占4位*/

{printf("%-4d",i);}

printf("\n");/*换行*/

for(j=1;j<=9;j++)/*输出‘-’,每个占4位*/

{printf("%-4c",'-');}

printf("\n");/*换行*/

for(i=1;i<=9;i++)/*外部循环9次*/

{

for(p=1;p<=i-1;p++)/*先打印每行的空格*/

{

printf("%-4c",'');/*定义占4位*/

}

for(j=i;j<=9;j++)/*内部循环9-i次*/

{

printf("%-4d",i*j);/*在空格后输出结果,每个数字占4位*/

}

printf("\n");/*每行结束,要换行输出*/

}

}

结果:

6-20、

伪代码描述:

定义4位车号abcd;

for(a=0;a<=9;a++)

令b=a;

for(c=0;c<=9;c++)

令d=c;

if(c==a)重新产生c;

sum=1000*a+100*b+10*c+d

for(m=0;m<100;m++)

if(sum==m*m)

输出abcd

#include

main()

{

inta=0,b=0,c=0,d=0;/*定义4位车号为a,b,c,d*/

intm=0;/*定义一个在0~100之间的整数,用于判断车号与m*m*/

intsum=0;/*4位车号abcd*/

intp;/*p=m*m*/

for(a=0;a<=9;a++)/*a在0~9中寻找*/

{

b=a;/*b=a*/

for(c=0;c<=9;c++)/*c在0~9中寻找*/

{

d=c;/*d=c*/

if(c==a)continue;/*使产生的前两位车号与后两位车号不同*/

sum=1000*a+100*b+10*c+d;/*计算abcd*/

for(m=0;m<100;m++)/*在0~100的范围内寻找m*/

{

p=m*m;

if(sum==p)/*满足的丙的条件:

4位车号是一个整数的平方*/

{

printf("4位车号:

%d%d%d%d\n",a,b,c,d);

}

}

}

}

}

结果:

成绩

批阅教师

批阅日期

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2