华科周纯杰版c语言答案.docx

上传人:b****2 文档编号:23219699 上传时间:2023-05-15 格式:DOCX 页数:51 大小:25.93KB
下载 相关 举报
华科周纯杰版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.输入两个整数,输出较大者。

#include<>

voidmain()

{

inta,b;

intmax=0;

printf("Pleaseinputtwonumbers:

");

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

if(a<=b)max=b;

elsemax=a;

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

}

2.有3个整数a,b,c,由键盘输入,输出其中最大的数。

#include<>

voidmain()

{

inta,b,c,max;

printf("Pleaseinputthreenumbers:

");

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

if(a>b)

{

if(a>c)max=a;

elsemax=c;

}

else

{

if(b>c)max=b;

elsemax=c;

}

printf("Thelargestnumberis%d\n",temp);

}

3.从1累加到100,用while语句。

#include<>

#defineN100

voidmain()

{

inti=1,sum=0;

while(i<=N)

{

sum+=i;

i++;

}

printf("sum:

%d\n",sum);

}

4.已知a1=10,a2=-3,an=3an-1+an-2,求{a}的前十项。

#include<>

#defineN10

voidmain()

{

inta[20]={10,-3};

inti=0,m=0;

for(i=2;i

{

a[i]=3*a[i-1]+a[i-2];

}

m=N;

printf("The%dnumbersare:

\n",m);

for(i=0;i

{

printf("a[%d]=%d\n",i+1,a[i]);

}

}

5.输入一个自然数,判断它是奇数还是偶数。

#include<>

voidmain()

{

inta,temp;

printf("Pleaseinputanumbers:

\n");

scanf("%d",&a);

temp=a%2;

if(temp==0)

printf("Thenumber%disaneven!

\n",a);

else

printf("Thenumber%disanoddnumber!

\n",a);

}

6.已知a1=8,an=an-1+bn,b1=1,bn=bn-1+3,求{a}前10项之和。

#include<>

#defineN10

voidmain()

{

inta[N]={8},b[N]={1},i,sum=0;

for(i=1;i

{

b[i]=b[i-1]+3;

}

for(i=1;i

{

a[i]=a[i-1]+b[i];

}

for(i=0;i

{

sum+=a[i];

}

printf("Thesumis:

%d\n",sum);

}

7.有一个函数写一程序,输入x,输出Y的值。

#include<>

voidmain()

{

floatx,y;

printf("Pleaseinputafloatnumberx=:

");

scanf("%f",&x);

printf("x=%f",x);

if(x<1)

y=x;

elseif(x>=10)

y=3*x-11;

else

y=2*x-1;

printf("Thevalueofyis:

%.3f\n",y);

}

8.给一个不多于5位的的正整数,要求:

求出它是几位数,分别打印出每一位数字,最后按照逆序打印各位数字,例如原数为321,应输出为123。

#include<>

#defineN99999

#defineM5

voidmain()

{

inti,j,k,m,b[M];

longinta,temp;

printf("Pleaseinputanumber:

\n");

scanf("%ld",&a);

if(a<0||a>N)

printf("Errorininputdata!

!

!

\n");

else

{

temp=a;

for(i=0;temp!

=0;i++)

{

temp=temp/10;

}

m=i;

printf("Thenumbera=%ldhave%dsinglenumbers\n",a,m);

temp=a;

for(j=0;j

{

b[j]=temp%10;

temp=temp/10;

}

printf("Theorigalnumbersare:

\n");

for(k=m-1;k!

=-1;k--)

{

printf("%d",b[k]);

}

printf("\n");

printf("everyletteris:

");

for(j=m-1;j>=0;j--)

printf("%d\t",b[j]);

printf("\n");

printf("Theinvertednumbersare:

\n");

for(j=0;j

{

printf("%d",b[j]);

}

printf("\n");

}

}

9.编写一猜数游戏程序,随机产生某个整数,从键盘反复输入整数进行猜数,当未猜中时,提示输入过大或过小.猜中时,指出猜的次数.最多允许猜20次.

#include<>

#include<>

#include<>

#defineN10

voidmain()

{

inta,b,i;

randomize();

a=random(N);

printf("Pleaseinputnumberyouguess:

\n");

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

{

scanf("%d",&b);

if(b==a)

{

printf("Congratulation!

!

\nYourguessednumberisright!

\n");

printf("Thetime(s)youhaveguessedis%d",i+1);

break;

}

elseif(b>a)

printf("Yournumberistoobig!

!

\n");

else

printf("Yournumberistoosmall!

!

\n");

}

printf("\n");

}

10.计算1-999中能被3整除,且至少有一位数字是5的所有整数。

#include<>

#defineN999

voidmain()

{

inti,b,c,d;

printf("Thenumbersare:

\n");

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

{

if(i%3)

{

b=i/100;

c=(i-100*b)/10;

d=i%10;

if(b==5||c==5||d==5)

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

}

}

}

11.输入两个整数,求它们的最大公约数和最小公倍数。

#include""

voidmain()

{

inta,b,c,d;

intcomYueShu;

intcomBeishu;

printf("pleaseinputtwonumber!

");

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

c=a;

d=b;

intr;

入一个整数,求它包含又多少个2的因子。

(例如,8含有3个2的因子,10含有一个2的因子,15不含有2的因子。

#include""

voidmain()

{

inta=0;

intintegerGene=0;

printf("inputanumber!

\n");

scanf("%d",&a);

while(a%2==0)

{

integerGene++;

a/=2;

}

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

}

13.计算1!

,2!

,3!

…10!

#include<>

#defineN10

voidmain()

{

inti;

longinta=1;

printf("Theoutcomeare:

\n");

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

{

a*=i;

printf("Theresultof%d!

is%ld\n",i,a);

}

}

14.猴子吃桃问题:

第一天吃掉总数的一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第十天准备吃的时候见只剩下一个桃子,求第一天开始吃的时候桃子的总数。

#include<>

#defineN10

voidmain()

{

inti,x[10];

x[9]=1;

for(i=9;i>=1;i--)

x[i-1]=2*(x[i]+1);

printf("Thetotalnumbersinthefirstdayare:

%d\n",x[0]);

}

15.输入圆锥体的底半径r和高h,计算出圆锥体的体积并输出

#include<>

#definePI

voidmain()

{

floatr,h,v;

printf("Pleaseinputtheradiusandtheheight:

\n");

scanf("%f%f",&r,&h);

v=PI*r*r*h/3;

printf("Thevolumeofis%.6f\n",v);

}

16题

#include""

voidmain()

{

inta,n;

longtmp,SUM=0;

do

{

printf("\nPleaseinputthenumbera=");

scanf("%d",&a);

}while(!

(a>=0&&a<=9));

printf("\nPleaseinputthenumber,it'svalueisnottoobign=");

scanf("%d",&n);

tmp=a;

while(n--)

{

SUM+=tmp;

tmp=tmp*10+a;

}

printf("\na+aa+aaa+...=%ld(a=%d)\n",SUM,a);

}

17题

#include""

voidmain()

{

unsignedcharweek[7][20]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","saturday"};

unsignedcharweekday;

do

{

printf("\nPleaseinputtheweeday(0=

");

scanf("%d",&weekday);

}while(!

(weekday>=0&&weekday<=6));

printf("\n%dcorrespoindto%s\n",weekday,week[weekday]);

}

18题

#include""

#include""

voidmain()

{

floatx,y;

floatResult;

inti=1;

printf("\nPleaseinputthevaluex=");

scanf("%f",&x);

Result=;

y=x;

do

{

Result+=y;

y=(y*x)/(i+1);

i++;

}while(y>1e-6);

printf("\nThenaturalconstante,it's%fpow=%f",x,Result);

}

19题

#include""

#include""

voidmain()

{

floata;

floatx1,x2;

printf("\nPleaseinputthenumbera=");

scanf("%f",&a);

x1=x2=a/2;

do

{

x1=x2;

x2=(x1+(a/x1))/2;

}while(fabs(x2-x1)>1e-5);

printf("\nInputanamber%f,It'ssqrt=%f",a,x2);

}

第5章课后编程习题参考答案

2.已有一个已排好序的数组,现在输入一个数,要求按照原来排序的规则将它插入数组中。

#include<>

#defineN7

voidmain()

{

inta[N]={1,5,16,45,87,120};

intn,i,j,temp1,temp2,end;

printf("pleaseenteranumber:

\n");

scanf("%d",&n);

end=a[N-2];

if(n>end)

a[N-1]=n;

else

{

for(i=0;i

{

if(n

{

for(j=N-1;j>i+1;j--)

{

a[j]=a[j-1];

}

a[i]=n;

break;

}

}

}

printf("putoutthenewarray:

\n");

for(i=0;i

printf("%4d",a[i]);

}

3.打印"魔方阵",所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等。

例如,三阶魔方阵为:

816

357

492

#include<>

voidmain()

{

inta[16][16];

intn,i,j,k;

do

{

printf("enteranumbern(1~15):

\n");

scanf("%d",&n);

}while(!

((n>0)&&(n<=15)&&(n%2==1)));

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

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

a[i][j]=0;

j=n/2+1;

a[1][j]=1;

for(k=2;k<=n*n;k++)

{

i=i-1;

j=j+1;

if((i<1)&&(j>n))

{

i=i+2;

j=j-1;

}

else

{

if(i<1)i=n;

if(j>n)j=1;

}

if(a[i][j]==0)

a[i][j]=k;

else

{

i=i+2;

j=j-1;

a[i][j]=k;

}

}

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

{

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

printf("%4d",a[i][j]);

printf("\n");

}

}

}

4,有一篇文章,共有3行文字,每行有80个字符,要求分别统计出其中英文大写字母,小写字母,数字,空格以及其它字符的个数。

#include<>

#include<>

voidmain()

{

chars[3][80];

inti,j,up,low,num,spa,oth;

up=low=num=spa=oth=0;

for(i=0;i<3;i++)

{

printf("enterthe%dline:

\n",i+1);

gets(s[i]);

for(j=0;j<80&&s[i][j]!

='\0';j++)

if(s[i][j]>='A'&&s[i][j]<='Z')

up++;

elseif(s[i][j]>='a'&&s[i][j]<='z')

low++;

elseif(s[i][j]>='0'&&s[i][j]<='9')

num++;

elseif(s[i][j]=='')

spa++;

else

oth++;

}

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

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

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

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

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

}

5.编写一个程序,将两个字符串连起来,不要用strcat函数。

#include<>

#include<>

voidmain()

{

chars1[100],s2[100];

gets(s1);

gets(s2);

inti,j;

i=j=0;

while(s1[i]!

='\0')

i++;

while(s2[j]!

='\0')

s1[i++]=s2[j++];

s1[i]='\0';

puts(s1);

}

6.输入每个学生的平均成绩和姓名,将成绩按照递减顺序排序,姓名做相应的调整。

输出排序后的成绩和姓名。

#include<>

#include<>

defineN10

/*假定有十个学生*/

voidmain()

{

charname[50][10],name1[10];

intmark[N],i,j,mark1;

for(i=0;i

{

printf("the%dthstudent'snameandmark:

\n",i+1);

scanf("%s%d",name[i],&mark[i]);

}

for(i=0;i

{

for(j=i+1;j

{

if(mark[j]>mark[i])

{

mark1=mark[j];

mark[j]=mark[i];

mark[i]=mark1;

strcpy(name1,name[j]);

strcpy(name[j],name[i]);

strcpy(name[i],name1);

}

}

}

for(i=0;i

{

printf("%s,%d\n",name[i],mark[i]);

}

}

7.输出2维数组中行为最大列上为最小的元素(称为鞍点)及其位置。

如果不存在任何鞍点,则也应输出相应信息。

#include<>

voidmain()

{

inti,j,k,m,n,max,maxj;

inta[10][10];

intflag=0;

printf("enterthehangnumbern:

\n");

scanf("%d",&n);

printf("enterthelienumberm:

\n");

scanf("%d",&m);

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

printf("\n");

for(i=0;i

{

max=a[i][0];

for(j=0;j

if(a[i][j]>max)

{

max=a[i][j];

maxj=j;

}

for(k=0;k

{

if(max>a[k][maxj])

break;

}

if(k>=n)

{

printf("\nthe%dhang,the%dlie,thenumber%disandian!

\n",i,maxj,max);

flag=1;

}

}

if(!

flag)

printf("noandian!

");

}

8.计算矩阵A的转置矩阵A,例如:

A=,A=

#include<>

voidmain()

{

inta[4][3],b[3][4];

inti,j;

printf("enterarraya:

\n");

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

for(j=0;j<3;

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

当前位置:首页 > 自然科学 > 物理

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

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