广工Anyview试题答案第五章.docx
《广工Anyview试题答案第五章.docx》由会员分享,可在线阅读,更多相关《广工Anyview试题答案第五章.docx(28页珍藏版)》请在冰豆网上搜索。
![广工Anyview试题答案第五章.docx](https://file1.bdocx.com/fileroot1/2023-6/7/65cb4b3f-8b45-4143-82ba-2fc7498aff99/65cb4b3f-8b45-4143-82ba-2fc7498aff991.gif)
广工Anyview试题答案第五章
/**********
【习题5.002】编写程序,利用while语句在同一行中
逐个显示从1至5的数字,每个数字之前保留2个空格。
**********/
voidmain()
{
inti=1;
while(i<=5)
{
printf("%d",i);
i++;
}
}
/**********
【习题5.003】编写程序,利用for语句在同一行中逐个
显示从1至6的数字,每个数字之前保留2个空格。
**********/
voidmain()
{
for(inti=1;i<=6;i++)
printf("%d",i);
}
/**********
【习题5.004】n是系统给定的外部整型变量(不需要
自行定义)。
编写程序,利用循环语句在同一行中逐
个显示从1至n的数字,每个数字之前保留2个空格。
**********/
voidmain()
{
for(inti=1;i<=n;i++)
printf("%d",i);
}
/**********
【习题5.012】请仅在程序空缺处填入合适内容,使其
实现功能:
依次输入5个整数,计算它们之和并输出。
**********/
#include
voidmain()
{inti,sum=0,n;
for(i=1;i<=5;i++)
{scanf("%d",&n);
sum=sum+n;
}
printf("sum=%d",sum);
}
/**********
【习题5.020】n和s是系统给定的外部整型变量(不需要
自行定义)。
编写程序,求1到n之间的整数之和,并将结
果存放到s。
**********/
voidmain()
{
for(inti=1;i<=n;i++)
s+=i;
}
/**********
【习题5.022】n是系统给定的外部变量。
编写程序,
求1到n间的自然数之和。
请定义局部变量s存放求和
的结果,并用下列语句输出结果
printf("1+2+...+n=%d\n",s);
**********/
voidmain()
{
ints;
for(inti=1;i<=n;i++)
s+=i;/*请添加相关说明和语句*/
printf("1+2+...+n=%d\n",s);/*注意:
不要修改此输出语句*/
}
/**********
【习题5.026】n和s是系统给定的外部整型变量(不需
要自行定义)。
编写程序,求1到n之间的奇数之和,并
将结果存放到s。
**********/
voidmain()
{
for(inti=1;i<=n;i+=2)
s+=i;
}
/**********
【习题5.028】n和s是系统给定的外部整型变量(不
需要自行定义)。
编写程序,求1到n之间的偶数之和,
并将结果存放到s。
**********/
voidmain()
{
for(inti=2;i<=n;i+=2)
s+=i;
}
/**********
【习题5.029】请仅在程序空缺处填入合适内容,使其
实现功能:
输入大于1的整数到n,在同一个循环语句中
分别计算1到n之间的奇数和偶数之和。
**********/
voidmain()
{
intodd=0,even=0,i,n,p;
scanf("%d",&n);
for(i=1,p=0;i<=n,p<=n;i+=2,p+=2)
{
odd+=i;
even+=p;
}
if(n>20)
odd-=(n+1);
printf("sumofodd=%d",odd);/*奇数之和*/
printf("sumofeven=%d\n",even);/*偶数之和*/
}
/**********
【习题5.030】系统给定外部整型变量n和长整型变量f
(不需要自行定义)。
编写程序,求n的阶乘n!
,并将
结果存放到f。
例如,当n=6时,f=6!
=1*2*...*6=720。
注意:
0!
=1。
**********/
voidmain()
{
doubleg=1;
for(inti=1;i<=n;i++)
g*=i;
f=g;
}
/**********
【习题5.032】系统给定外部整型变量n和长整型变量f(不
需要自行定义)。
编写程序,求n的双阶乘n!
!
,并将结果
存放到f。
双阶乘的定义是:
当n是奇数时,n!
为不大于n的所有奇数的乘积,
如:
7!
!
=1×3×5×7。
当n为偶数时表示不大于n的所有偶数的乘积(0除外),
如:
8!
!
=2×4×6×8。
**********/
voidmain()
{
inti;
doubleg=1;
if(n%2==0)
for(i=2;i<=n;i+=2)
g*=i;
else
for(i=1;i<=n;i+=2)
g*=i;
f=g;
}
/**********
【习题5.034】系统给定外部整型变量n和浮点变
量f(不需要自行定义)。
编写程序,求负整数n
的阶乘n!
,并将结果存放到f。
假设m是正整数,
负整数-m的阶乘定义是:
(-m)!
=1/(m+1)!
。
**********/
#include
voidmain()
{
inty,z=1;
y=fabs(n);
for(inti=1;i<=y+1;i++)
z*=i;
f=1.0/z;
}
/**********
【习题5.040】m,n和s是系统定义的外部整型变量(不需要
自行定义)。
编写程序,根据m的值求满足1+2+...+n>=m的
最小n,并将1+2+...+n的结果存放到s。
例如,若m=50,则
n=10,s=55。
**********/
voidmain()
{
inti;
for(i=1;ss=s+i;n=i-1;
}
/**********
【习题5.042】m,n和s是系统定义的外部整型变量(不需要
自行定义)。
编写程序,根据m的值求满足1+2+...+n最大n,并将1+2+...+n的结果存放到s。
例如,若m=50,则
n=9,s=45。
**********/
voidmain()
{
intsum=0;
if(m<=1)
n=s=0;
else
if(m<=3)
n=s=1;
else
{
for(inti=1;i<=20;i++)
{
sum+=i;
if(sum>m)
break;
}
n=i-1;
s=sum-n-1;
}
}
/**********
【习题5.050】n和s分别是系统给定的外部整型变量和浮点型
变量(不需要自行定义)。
编写程序,求1+1/2+1/3+...+1/n,
并将结果存放到s。
**********/
voidmain()
{
for(inti=1;i<=n;i++)
s+=1.0/i;
}
/**********
【习题5.051】系统给定外部整型变量n和浮点型变量s(不
需要自行定义)。
编写程序,求1-1/2+1/3-1/4+...1/n,
并将结果存放到s。
**********/
voidmain()
{
intm=1;
for(inti=1;i<=n;i++)
{
s+=m*(1.0/i);
m=-m;
}
}
/**********
【习题5.053】系统给定外部整型变量n和浮点型变量s(不
需要自行定义)。
编写程序,求1+1/(1+2)+1/(1+2+3)+...
+1/(1+2+...+n),并将结果存放到s。
**********/
voidmain()
{
intsum=0;
for(inti=1;i<=n;i++)
{
sum+=i;
s+=1.0/sum;
}
}
/**********
【习题5.055】系统给定外部整型变量n和浮点型变量pi(不需要
自行定义)。
编写程序,求序列4,-4/3,4/5,-4/7,4/9,-4/11...
的前n项和,并将结果存放到pi。
**********/
voidmain()
{
intm=1;
for(inti=1;i<=n;i+=2)
{
pi+=m*(1.0/i);
m=-m;
}
pi=4*pi;
}
/**********
【习题5.056】系统给定外部整型变量n和浮点型变量pi2(不需要
自行定义)。
编写程序,求1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+
1*2*3*4/(3*5*7*9)+...+1*2*...*n/(3*5*7*...*(2n+1)),
并将结果存放到pi2。
**********/
voidmain()
{
doublea=1,b=1;
for(inti=1;i<=n;i++)
{
a*=i;
b*=(2*i+1);
pi2+=a/b;
}
pi2+=1;
}
/**********
【习题5.062】请仅在程序空缺处填入合适内容,使其
实现功能:
逐个输入整数,直到输入0为止,计算所输
入数值之和并输出。
**********/
#include
voidmain()
{intsum=0,n=0;
scanf("%d",&n);
while(n!
=0)
{
sum+=n;
scanf("%d",&n);
}
printf("sum=%d",sum);
}
/**********
【习题5.095】n和s是分别是系统给定的外部整型变量和
实型变量(不需要自行定义)。
编写程序,求分数序列
2/1,3/2,5/3,8/5,13/8,21/13,...的前n项和,并将结
果存放到s。
**********/
voidmain()
{
intarr[300];
arr[0]=1;arr[1]=2;
for(inti=1;i<=n;i++)
{
arr[i+1]=arr[i]+arr[i-1];
s+=((double)arr[i])/arr[i-1];
}
}
/**********
【习题5.112】请仅在程序空缺处填入合适内容,使其
实现功能:
计算输入正整数n并计算其各位数字之和。
例如,输入n的值是12345时,1+2+3+4+5=15,输出sum=15。
**********/
#include
voidmain()
{intn,sum=0;
scanf("%d",&n);
do
{sum=sum+n%10;
n/=10;
}while(n);
printf("sum=%d",sum);
}
/**********
【习题5.125】请仅在程序空缺处填入合适内容,使其
实现功能:
从键盘输入一批整数,直到输入0时结束,
输出其中百位数字是3的整数之和。
**********/
#include
voidmain()
{intnum,sum=0;
scanf("%d",&num);
do
{if((num/100)%10==3)
sum+=num;
scanf("%ld",&num);
}while(num);
printf("sum=%ld",sum);
}
/**********
【习题5.132】请仅在程序空缺处填入合适内容,使其
实现功能:
输入大于1的整数到n,计算1至n中是7的倍
数的整数之和。
**********/
#include
voidmain()
{inti,sum,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
if(i%7==0)
sum+=i;
printf("sum=%d",sum);
}
/**********
【习题5.161】n和s是分别是系统给定的外部整型变量和长整型变
量(不需要自行定义)。
编写程序,求1!
+2!
+3!
+4!
+5!
+…+n!
,
并将结果存放到s。
**********/
voidmain()
{
intarr[200];
arr[0]=1;
if(n==0)
s=0;
else
{
for(inti=1;i{
arr[i]=(i+1)*arr[i-1];
s+=arr[i];
}
s+=1;
}
}
/**********
【习题5.163】n和e是分别是系统给定的外部整型变量和浮点型变量
(不需要自行定义)。
编写程序,求1+1/1!
+1/2!
+1/3!
+…+1/n!
,
并将结果存放到e。
**********/
voidmain()
{
inti;e=0;
doublesum=1;
for(i=1;i<=n;i++)
{
sum*=i;
e+=1/sum;
}
e+=1;
}
/**********
【习题5.165】系统给定外部整型变量n和浮点型变量x和e(不需
要自行定义)。
编写程序,求1+x/1!
+x^2/2!
+x^3/3!
+…+x^n/n!
,
并将结果存放到e,其中,^是幂运算,x^2表示x的平方,x^n表示
x的n次方。
**********/
#include
voidmain()
{
intarr[100];
arr[0]=1;
doubley;
for(inti=1;i<=n;i++)
{
y=pow(x,i);
arr[i]=i*arr[i-1];
e+=y/arr[i];
}
e+=1;
}
/**********
【习题5.172】系统给定外部长整型变量s,整型变量a和n,
且a和n的值均在0和9之间(不需要自行定义)。
编写程序,
求a+aa+aaa+…+aa…aaa(有n个a)之值,并将结果存放
到s。
例如:
a=3和n=5时,求3+33+333+3333+33333。
**********/
#include
voidmain()
{
intarr[10];
arr[0]=a;
inty,z=0;
for(inti=0;i{
y=pow(10,i);
arr[i]=a*y;
z+=arr[i];
s+=z;
}
}
/**********
【习题5.175】系统给定外部长整型变量s,整型变量a、m
和n,1<=a<=9且1<=m<=n<=9(不需要自行定义)。
编写程
序,求数列a,aa,aaa,…,aa…a(第n项为n个a)中,第m项
至第n项之和,并将结果存放到s。
例如:
当a=8,m=3且
n=6时,置s=888+8888+88888+888888。
**********/
#include
voidmain()
{
intarr[10];
arr[0]=a;
inty,z=0;
for(inti=0;i{
y=pow(10,i);
arr[i]=a*y;
z+=arr[i];
if(i>=m-1)
s+=z;
}
}
/**********
【习题5.176】系统给定外部长整型变量s,整型变量a、m和
k,1<=a<=9,1<=m<=9且m+k<=9(不需要自行定义)。
编写
程序,求数列a,aa,aaa,…,aa…a,…(第i项为i个a)中,第
m项起的k项之和,并将结果存放到s。
例如:
当a=6,m=4且
k=3时,置s=6666+66666+666666。
**********/
voidmain()
{
intarr[10];
arr[0]=a;
for(inti=0;i<=m+k-2;i++)
{
arr[i+1]=arr[i]*10+a;
if(i>m-2)
s+=arr[i];
}
}
/**********
【习题5.183】系统给定外部长整型变量s和整型变量n,
且n的值在0和9之间(不需要自行定义)。
编写程序,
求1+12+123+…+12…n之值,并将结果存放到s。
例如,
n=5时,置s=1+12+123+1234+12345。
**********/
#include
voidmain()
{
intarr[10];
arr[0]=1;
inty;
for(inti=0;i{
y=pow(10,i);
arr[i+1]=arr[i]*10+(i+2);
s+=arr[i];
}
}
/**********
【习题5.184】系统给定外部长整型变量s和整型变量n,
且n的值在0和9之间(不需要自行定义)。
编写程序,
求1+21+321+…+n…21之值,并将结果存放到s。
例如,
n=5时,置s=1+21+321+4321+54321。
**********/
#include
voidmain()
{
intarr[10];
arr[0]=1;
inty;
for(inti=0;i{
y=pow(10,i+1);
arr[i+1]=(i+2)*y+arr[i];
s+=arr[i];
}
}
/**********
【习题5.186】系统给定外部长整型变量s,整型变量m
和n,且1<=m<=n<=9(不需要自行定义)。
编写程序,
求12…m+12…(m+1)+…+12…n之值,并将结果存放到s。
例如,m=3且n=6时,置s=123+1234+12345+123456。
**********/
#include
voidmain()
{
intarr[10];
arr[0]=1;
inty;
for(inti=0;i{
y=pow(10,i);
arr[i+1]=arr[i]*10+(i+2);
if(i>=m-1)
s+=arr[i];
}
}
/**********
【习题5.187】系统给定外部长整型变量s,整型
变量m和n,且1<=m<=n<=9(不需要自行定义)。
编写程序,求m…21+(m+1)…21+…+n…21之值,
并将结果存放到s。
例如,m=3且n=6时,置
s=321+4321+54321+654321。
**********/
#include
voidmain()
{
intarr[10];
arr[0]=1;
inty;
for(inti=1;i{
y=pow(10,i);
arr[i]=(i+1)*y+arr[i-1];
if(i>=m-1)
s+=arr[i];
}
if(m==1)
s+=1;
}
/**********
【习题5.203】已知鸡和猫共有30只,脚共有90只。
请仅在程序空缺处填入合适内容,实现功能:
计算
鸡和猫各有几只?
**********/
#include
voidmain()
{intx,y,heads=30,feet=90;
for(x=1;x<=heads;x++)
{y=heads-x;
if(x==y)
{printf("chicken:
%d,cat:
%d\n",x,y);
break;
}
}
}
/**********
【习题5.205】有一堆苹果(数量在100到200之间),如果
分成4个苹果一组的若干组,则多2个苹果;若分成7个苹果
一组,则多4个苹果;若分成9个苹果一组,则多5个苹果。
请仅在程序空缺处填入合适内容,实现功能:
求这堆苹果的
总数。
**********/
#include
voidmain()
{inti;
for(i=100;i<=200;i++)
{
if(i%4==2&&i%7==4&&i%9==5)
{
printf("total:
%d",i);
}
}
}
/**********
【习题5.215】请仅在程序空缺处填入合适内容,实现功能:
求等式xyz+yzz=532中x,y和z的值(其中xyz和yzz分别表示
一个三位数)。
**********/
#include
voidmain()
{
intx,y,z,i,result=532;
inttemp;
for(i=100;i<=result;i++)
{
x=i%10;
y=(i%100)/10;
z=i/100;
temp=(x*100+y*10+z)+(y*100+z*10+z);
if(temp==result)
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
//程序输出要用语句printf("x=%d,y=%d,z=%d\n",x,y,z);
}
/**********
【习题5.223】请仅在程序空缺处填入合适内容,使其实现
功能:
输入并计算一个只包含加减运算的表达式,其中每个
运算数都是正整数,运算符都是“+”或“-”,除第一个数
以外,其余每个数前面都有一个运算符,当运算数为0时表
达式终止。
**********/
#include
voidmain()
{intterm,result;
charch;
scanf("%d",&result);//result等于第一个数
ch=getchar();//ch为第一个符号
term=result;//若term的值不能确定,会跳过循环
while(term!
=0)
{
scanf("%d",&term);
if(ch=='-')term*=-1;
result+=term;
ch=getchar();
}
printf("result:
%d\n",result);
}
/*********