最新哈工程C语言教材课后答案.docx

上传人:b****5 文档编号:28220210 上传时间:2023-07-09 格式:DOCX 页数:51 大小:35.17KB
下载 相关 举报
最新哈工程C语言教材课后答案.docx_第1页
第1页 / 共51页
最新哈工程C语言教材课后答案.docx_第2页
第2页 / 共51页
最新哈工程C语言教材课后答案.docx_第3页
第3页 / 共51页
最新哈工程C语言教材课后答案.docx_第4页
第4页 / 共51页
最新哈工程C语言教材课后答案.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

最新哈工程C语言教材课后答案.docx

《最新哈工程C语言教材课后答案.docx》由会员分享,可在线阅读,更多相关《最新哈工程C语言教材课后答案.docx(51页珍藏版)》请在冰豆网上搜索。

最新哈工程C语言教材课后答案.docx

最新哈工程C语言教材课后答案

第一章

1.2有三个数A、B、C,设计算法,求三个数中最大的数并输出。

(可用自然语言或流程图表示)。

#include

voidmain()

{

inta,b,c,max;

printf("pleaseinputthreenumbers:

\n");

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

max=a;

if(b>a)

max=b;

if(c>max)

max=c;

printf("theansweris%d\n",max);

}

1.3设计算法,求N个整数的平均值。

#include

voidmain()

{

intN,i;

floataver,a,s=0;

printf("pleaseinputtheamountofthenumber:

\n");

scanf("%d",&N);

for(i=0;i

{

printf("pleaseinputthenumber\n");

scanf("%f",&a);

s=s+a;

}

aver=s/N;

printf("theaverageis%f",aver);

}

第二章

1.填空题⑴换行、回车⑵整型变量_⑶整型⑷_6_⑸2.5

2.选择题

⑴_A_⑵_A_⑶A_⑷_B_⑸_D⑹C⑺C⑻D⑼C⑽D⑾B⑿D⒀B⒁D

3.⑴答案:

6,0,6⑵答案:

8,10,16⑶答案:

3.500000⑷答案:

6

⑸答案:

1⑹答案:

261⑺答案:

16⑻答案:

0

4.编程题

⑴输入长方形的长和宽,输出长方形的周长和面积。

#include

voidmain()

{

inta,b,l,s;

scanf(“%d%d”,&a,&b);

l=(a+b)*2;

s=a*b;

printf(“%d,%d”,l,s);

}

⑵输入一个字符,输出其ASCII代码。

#include

voidmain()

{chara;

printf("pleaseinputthechar");

scanf("%c",&a);

printf("theASCIIis%d",a);

}

⑶输入3个整数,计算并输出它们的平均值。

#include

voidmain()

{

inta,b,c;

floataver;

scanf(“%d%d%d”,&a,&b,&c);

aver=float(a+b+c)/3;

printf(“%f”,aver);

}

⑷已知整型变量a、b、c的值,根据以下算式编写程序求y的值。

#include

#include

voidmain()

{inta,b,c;

printf("pleaseinputthenumofabc:

");

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

printf("theyis%f",(3.8*(pow(b,2)+a*c))/(6*a));

}

5.设a和n已定义为整型变量,a=12,求下面表达式运算后a的值。

⑴a+=a24⑵a-=210⑶a*=2+360

⑷a/=a+a0⑸a%=(n%=2),n的值等于50⑹a+=a-=a*=a0

第三章

1、选择题1_C_2.C_3.C4.D5.D_

二、填空题1.%f_2、%s3、12,56,789.0000004、6e,16_5、1,1,3___

三、编程题

1.编写一个程序,从键盘上输入3个数,求其和并输出。

#include

voidmain()

{

inta,b,c,d;

printf("pleaseinputthenumofa,b,c:

");

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

d=a+b+c;

printf("thesumofa,bandcis%d",d);

}

2.输入一个正整数,分别输出它的八进制和十六进制数形式。

#include

voidmain()

{

intm;

printf("pleaseinputthem:

");

scanf("%d",&m);

printf("\nbajinzhishuzhishi:

%o",m);

printf("\nshiliujinzhishuzhishi:

%x",m);

}

3.编程把11325秒转换成“小时:

分钟:

秒”的形式

#include

voidmain()

{

inta=11325;

inth,m,s;

h=a/3600;

m=a%3600/60;

s=a%3600%60;

printf("%d:

%d:

%d",h,m,s);

}

4.编程序,求a+︱b︱的值,a,b为任意数。

本题可调用求绝对值的函数fabs,此函数包含在math.h文件中。

#include

#include

voidmain()

{

doublea,b;

printf("pleaseinputthenumofaandb:

");

scanf("%lf%lf",&a,&b);

printf("\na+|b|=%lf",a+fabs(b));

}

5.编程序,求平面上两点之间的距离。

设第1个点的坐标为(x1,y1),第2点的坐标为(x2,y2),则这两个点的距离为:

d=

#include

#include

voidmain()

{

floatx1,y1,x2,y2,d;

printf("\nshurudi1gediandezuobiao:

");

scanf("%f%f",&x1,&y1);

printf("\nshurudi2gediandezuobiao:

");

scanf("%f%f",&x2,&y2);

d=sqrt(pow((x1-x2),2)+pow((y1-y2),2));

printf("\njulidwei:

%f",d);

}

第四章

一、阅读程序,回答问题

1.答案:

12.答案:

63、B4.答案:

6.0000005答案:

8

6.答案:

27.答案:

k=11

二、填空

1.答案:

a==b或b==a或!

(a!

=b)或a=b或b=a2.答案:

(1)<0

(2)!

=0

3.答案:

(1)max

(2)max

(1)m%2==1

(2)m%2==0

三、编程

1.输入一个整数,判断其为奇数还是偶数。

#include

voidmain()

{

inta;

printf("Pleaseinputaninteger:

");

scanf("%d",&a);

if(a%2==0)

printf("nishurudeshu%dshioushu.\n",a);

else

printf("nishurudeshu%dshijishu.\n",a);

}

2.编写一个程序,实现功能是:

输入一个实数,按1输出此数的相反数,按2输出此数的平方根,按3输出此数的平方。

#include

#include

voidmain()

{

doublef;

inta;

printf("qingshuruyigeshu:

");

scanf("%f",&f);

printf("\nqingshuru1huo2huo3\n");

printf("\nan1shuchuxiangfanshu");

printf("\nan2shuchupingfanggen");

printf("\nan3shuchupingfang");

scanf("%d",&a);

if(a==1)

printf("%f\n",-f);

elseif(a==2)

printf("%f\n",sqrt(f));

elseif(a==3)

printf("%f\n",f*f);

else

printf("shurucuowu!

");

}

3.输入字符,输出其类型。

ASCII值小于32的为控制字符,在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母,在“a”和“z”之间为小写字母,其余则为其它字符。

#include

voidmain()

{

chara;

scanf(“%c”,&a);

if(a<32&&a>0)

printf(“thisisaControlCharacter”);

if(a>=’0’&&a<=’9’)

printf(“thisisanumber”);

if(a>’A’&&a<’Z’)

printf(“thisisacapitalletter”)

if(a>’a’&&a<’z’)

printf(“thisisalowercasenumber”);

else

printf(“thisisanothercharacter”);

}

4.输入某年某月某日,判断这一天是这一年的第几天。

#include

voidmain()

{

inta,b,c,k,s=0;

printf("qingshurunian,yue,ri:

");

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

if((a%4==0&&a%100!

=0)||a%400==0)

k=29;

else

k=28;

switch(b)

{

case12:

s+=30;

case11:

s+=31;

case10:

s+=30;

case9:

s+=31;

case8:

s+=31;

case7:

s+=30;

case6:

s+=31;

case5:

s+=30;

case4:

s+=31;

case3:

s+=k;

case2:

s+=31;

case1:

s+=c;

}

printf("nishurudeshushizheniandedi%dtian.",s);

}

第五章

一、单选题1C2.C 3. D 4.C5. B 6.C7.A8.D9.C 10C

二、写程序运行结果

1.答案:

1,2,32.答案:

523.答案:

s=64.答案:

1,-2

5.答案:

a=16y=606.答案:

6

三、程序填空

1.答案:

(1)cx=getchar()

(2)front!

=‘’(3)cx

2.答案:

(1)s=0

(2)m%n==0(3)m==s

3.答案:

(1)j=1

(2)k<=6

4.答案:

(1)50

(2)n=2(3)h/2

5.答案:

(1)a

(2)i<=n(3)t*10

四、程序改错

1.答案:

(1)intn,k=0;

(2)k=k*10+n%10;

2.答案:

(1)for(i=0;i<10;i++)

(2)j%3!

=0

3.答案:

(1)doublek=1,t=1;

(2)k=k+1/t;

4.答案:

(1)i=2;

(2)k--;

5.答案:

(1)h=(float)(5-2)/n;

(2)a=a+h;

五、编写程序

1.编一程序,将2000年到3000年中的所有闰年年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。

#include

voidmain()

{

intyear,k=0;

for(year=2000;year<=3000;year++)

{if((year%4==0&&year%100!

=0)||year%400==0)

{

k++;

printf("%6d",year);

if(k%10==0)

printf("\n");

}

}

printf("\nrunniandezongnianshushi%d",k);

}

2.若有如下公式:

试根据上述公式编程计算π的近似值(精确到10-6)。

#include

#include

voidmain()

{floatpi,a,b;

inti=1;

a=0;

b=1;

while(b>=0.000001)

{

b=1/(float)(i*i);

a+=b;

i++;}

pi=sqrt(6*a);

printf("%f\n",pi);

}

3.用0~9之间不同的3个数构成一个3位数,统计输出共有多少种方法?

#include

voidmain()

{

inti=0,j=0,k=0,n=0;

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

{

for(j=0;j<10;j++)

{

if(i==j)continue;

for(k=0;k<10;k++)

{

if(i==k||j==k)continue;

n++;

}

}

}

printf("%d",n);

}

4.找出1~99之间的全部同构数。

同构数是这样一组数:

它们出现在平方数的右边。

例如:

5是25右边的数,25是625右边的数,5和25都是同构数。

#include

voidmain()

{

inti,j,k;

k=10;

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

{

if(i==10)k=100;

j=i*i;

if(j%k==i)

printf("%d\t",i);

}

}

5.猴子吃桃问题。

猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了个。

第2天又将剩下的桃子吃掉一半,又多吃了一个。

以后每天都吃了前一天剩下的一半零一个。

到第10天再想吃时,只剩下一个桃子了。

问第1天共摘多少个桃子?

#include

voidmain()

{

intday,x;

x=1;

for(day=1;day<=9;day++)

x=(x+1)*2;

printf("diyitianhouzizhaile%dgetaozi",x);

}

6.打印以下图形

*

**

***

****

 

#include

voidmain()

{

inti,j,k;

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

{

for(j=1;j<=4-i;j++)

printf("");

printf("*");

for(j=1;j<=i-1;j++)

{

printf("*");

}

printf("\n");

}

}

7.百钱百鸡问题。

公鸡五元一只,母鸡三元一只,鸡雏一元三只。

若用100元买100只鸡,可买公鸡、母鸡和鸡雏各多只?

#include

voidmain()

{

inti,j,k;

for(i=0;i<=100/5;i++)

{

for(j=0;j<=100/3;j++)

{

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

{

if(k%3!

=0)continue;

if((5*i+j*3+k/3==100)&&(i+j+k==100))

{

printf("gongjimujichujiwei%d,%d,%d.\n",i,j,k);

}

}

}

}

}

8.一个正整数与3的和是5的倍数,与3的差是6的倍数,编写一个程序求符合条件的最小数。

#include

voidmain()

{

intk=1;

while(!

(((k+3)%5==0)&&((k-3)%6==0)))

k++;

printf("%d",k);

}

9.从键盘输入20个整型数,统计其中负数个数并求所有正数的平均值。

#include

voidmain()

{

inta,i,j=0,k=0;

floats=0;

printf("qingshuru20geshu:

");

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

{

scanf("%d",&a);

if(a<0)k++;

if(a>0)

{

j++;

s+=a;

}

}

s=s/(float)j;

printf("fushudegeshushi%d.\n",k);

printf("zheshudepingjunzhishi%f.\n",s);

}10.父亲今年30岁,儿子6岁,经过多少年后,父亲的年龄是儿子的两倍?

#include

voidmain()

{inti,j,k;

i=30;

j=6;

k=0;

while(!

(i+k==(j+k)*2))k++;

printf("%d",k);

}

第六章

一、选择题

1._C_2.C__3._D__4._C__5._C_6._B_7._D8._A_

二、填空题1.答案:

b!

=02.答案:

15

三、编程题

1.编写一个求x的y次方的函数。

#include

intfunc(intx,inty);

voidmain()

{inta,b,c;

printf("pleaseinputthetwonumbers:

\n");

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

c=func(a,b);

printf("theansweris\n");

printf("%d\n",c);

}

intfunc(intx,inty)

{inti,s=1;

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

s=s*x;

return(s);

}

2.编写函数,要求去掉字符串中所有空格。

#include

#include

voidf(chars[])

{

inti,j;

i=j=0;

while(s[i])

{if(s[i]!

='')s[j++]=s[i];

i++;

}

s[j]='\0';

}

voidmain()

{

chars[80];

gets(s);

f(s);

puts(s);

}

3.编写函数,判断一个字符串是否是回文,如是返回1,否则返回-1(回文是指这个字符串逆置后不变,如aba就是回文。

#include

#include

intf(chars[],intn)

{

inti,f;

f=1;

i=0;

while(f&&i

{if(s[i]!

=s[n-i-1])

{f=-1;

break;

}

i++;

}

returnf;

}

voidmain()

{

chars[80];

gets(s);

if(f(s,strlen(s))==1)

printf("\nYes");

else

printf("\nNo");

}

4.编写函数fun求1!

+2!

+3!

+…+n!

的和,在main函数中由键盘输入n值,并输出运算结果。

#include

intfun(intn);

voidmain()

{intn,c;

printf("pleaseinputthenumber:

\n");

scanf("%d",&n);

c=fun(n);

printf("theansweris\n");

printf("%d\n",c);

}

intfun(intn)

{inti,a,s;

s=1;

a=0;

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

{

s=s*i;

a=a+s;

}

return(a);

}

5.编写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。

两个整数由键盘输入

#include

intfunc(intx,inty);

intfun(intx,inty);

voidmain()

{intx,y,c,d;

printf("pleaseinputthetwonumbers:

\n");

scanf("%d%d",&x,&y);

c=func(x,y);

d=fun(x,y);

printf("theansweris\n");

printf("zuidagongyueshushi%d\n",c);

printf("zuixiaogongbeishushi%d",d);

}

intfunc(intx,inty)

{

intt;

t=x%y;

while(t)

{

x=y;

y=t;

t=x%y;

}

return(y);

}

intfun(intx,inty)

{

return(x*y/func(x,y));

}

第七章

1、选择题1.D2.B3.D4.D5.A

二、阅读程序写出结果

1.答案:

1

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

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1