C语言习题集.docx
- 文档编号:4910755
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:20
- 大小:176.15KB
C语言习题集.docx
《C语言习题集.docx》由会员分享,可在线阅读,更多相关《C语言习题集.docx(20页珍藏版)》请在冰豆网上搜索。
C语言习题集
.
第四章
习题4.5
#include
main()
{
intm;
printf("Inputm:
");
scanf("%d",&m);/*输入一个整数*/
if(m>0)/*是否为正数*/
{
if(m%2==0)/*是正数,且能被2整除,则是正偶数*/
{
printf("%disapositiveeven\n",m);
}
else/*不能被2整除,则是正奇数*/
{
printf("%disapositiveodd\n",m);
}
}
elseif(m<0)/*判断是否为负数*/
{
if(m%2==0)
{
printf("%disanegativeeven\n",m);/*是负偶数*/
}
else
{
printf("%disanegativeodd\n",m);/*是负奇数*/
}
}
else
{
printf("%diszero.Itisaneven\n",m);
}
}
4.6
#include
#include
main()
{
intx;
doubley;
printf("Inputx:
");
scanf("%d",&x);/*输入一个整数*/
if(x>0)
{
y=exp(-x);/*如果大于0,计算y=exp(-x)的值*/
}
elseif(x==0)
{
y=1;/*x=0,则y=1*/
}
else
{
y=-exp(x);/*x<0,则y=-exp(x)*/
}
printf("y=%f\n",y);
}
4.7
#include
#include
#defineLIMIT1e-1
main()
{floata,b,c;
intflag=1;
printf("Inputthethreeedgelength:
");
scanf("%f,%f,%f",&a,&b,&c);/*输入三角形的三条边*/
/*三角形的基本条件*/
if((a+b)>c&&((b+c)>a)&&((a+c)>b))
{
if(fabs(a-b)<=LIMIT||fabs(b-c)<=LIMIT
||fabs(c-a)<=LIMIT)/*等腰三角形的条件*/
{
printf("等腰");
flag=0;
}
if(fabs(a*a+b*b-c*c)<=LIMIT
||fabs(a*a+c*c-b*b)<=LIMIT
||fabs(c*c+b*b-a*a)<=LIMIT)/*直角三角形的条件*/
{
printf("直角");
flag=0;
}
if(flag)
{
printf("一般");
}
printf("三角形\n");
}
else
{
printf("不是三角形\n");
}
}
4.10
#include
main()
{inti,sum=0;
for(i=1;i<=101;i=i+2)
sum=sum+i;
printf("sum=%d\n",sum);
}
#include
main()
{inti=1,sum=0;
while(i<=101)
{sum=sum+i;
i=i+2;
}
printf("sum=%d\n",sum);
}
4.11
#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",sum);
}
4.12
#include
main()
{longterm=1,sum=0;
inti;
for(i=1;i<=10;i++)
{term=term*i;
sum=sum+term;
}
printf("1!
+2!
+...+10!
=%ld\n",sum);
}
------------------------------------------
#include
main()
{longterm,sum=0;
inti,j;
for(i=1;i<=10;i++)
{term=1;
for(j=1;j<=i;j++)
term=term*j;
sum=sum+term;
}
printf("1!
+2!
+…+10!
=%ld\n",sum);
}
4.13
#include
main()
{longterm=0,sum=0;
inta,i,n;
printf("Inputa,n:
");
scanf("%d,%d",&a,&n);/*输入a,n的值*/
for(i=1;i<=n;i++)
{term=term*10+a;/*求出累加项*/
sum=sum+term;/*进行累加*/
}
printf("sum=%ld\n",sum);
}
4.14
#include
main()
{doubleterm,result=1;/*累乘项初值应为1*/
intn;
for(n=2;n<=100;n=n+2)
{term=(double)(n*n)/((n-1)*(n+1));/*计算累乘项*/
result=result*term;
}
printf("result=%f\n",2*result);
}
------------------------------------------
#include
main()
{doubleterm,result=1;
intn;
for(n=1;n<=50;n++)
{term=(double)(2*n*2*n)/((2*n-1)*(2*n+1));/*计算累乘项*/
result=result*term;
}
printf("result=%lf\n",2*result);
}
4.15
#include
#include
main()
{intn=1,count=1;
doublee=1.0,term=1.0;
for(n=1;fabs(term)>=1e-5;n++)
{term=term/n;
e=e+term;
count++;
}
printf("e=%f,count=%d\n",e,count);
getch();
4.16
#include
#include
main()
{intn=1;
floatterm=1.0,sign=1,sum=0;
while(fabs(term)>=1e-4)/*判断末项大小*/
{term=sign/n;/*求出累加项*/
sum=sum+term;/*累加*/
sign=-sign;/*改变项的符号*/
n++;/*分母加1*/
}
printf("sum=%f\n",sum);
}
4.17
#include
#include
main()
{intn=3,count=1;
floatx;
doublesum,term;/*因为位数多,所以定义为双精度*/
x=3.14159/6;
sum=x;term=x;/*赋初值*/
do
{term=-term*x*x/((n-1)*n));
sum=sum+term;/*累加*/
n=n+2;
count++;
}while(fabs(term)>=1e-5);
printf("sin(x)=%f,count=%d\n",sum,count);
}
4.18
#include
main()
{inti,j,k,n;
for(n=100;n<1000;n++)
{i=n/100;/*分出百位*/
j=(n-i*100)/10;/*分出十位*/
k=n%10;/*分出个位*/
if(n==i*i*i+j*j*j+k*k*k)
printf("%d\t",n);/*输出结果*/
}
}
------------------------------------------
#include
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\t",100*i+10*j+k);
}
4.19
#include
#include
main()
{inti1,i2,i3,i4,k,n;
printf("Inputdatais:
");
scanf("%d",&n);/*思考题:
用循环实现n位数*/
k=fabs(n);/*取绝对值*/
i1=k/1000;/*分离出千位*/
i2=(k-i1*1000)/100;/*分离出百位*/
i3=(k-i1*1000-i2*100)/10;/*分离出十位*/
i4=k%10;/*分离出个位*/
printf("Thesumofthetotalbitis%d\n",i1+i2+i3+i4);
}
4.20
#include
main()
{
intx=1;
intfind=0;/*设置找到标志为假*/
while(!
find)
{
if(x%5==1&&x%6==5&&x%7==4&&x%11==10)
{
printf("x=%d\n",x);
find=1;
}
x++;
}
}
------------------------------------------
#include
main()
{
intx=1;
while
(1)
{
if(x%5==1&&x%6==5&&x%7==4&&x%11==10)
{
printf("x=%d\n",x);
break;
}
x++;
}
}
------------------------------------------
#include
main()
{
intx=0,find=0;
do{
x++;
find=x%5==1&&x%6==5&&x%7==4&&x%11==10;
}while(!
find);
printf("x=%d\n",x);
}
------------------------------------------
#include
main()
{
intx=0;
do{
x++;
}while(!
(x%5==1&&x%6==5&&x%7==4&&x%11==10));
printf("x=%d\n",x);
}
4.21
#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++;
}
}
------------------------------------------
#include
main()
{
intx=1;
while
(1)
{
if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0)
{
printf("x=%d\n",x);
break;
}
x++;
}
}
------------------------------------------
#include
main()
{intx=0,find=0;
do{x++;
find=x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0;
}while(!
find);
printf("x=%d\n",x);
}
4.22
#include
main()
{
inti,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
for(k=0;k<=6;k++)
{
if(i+j+k==8)
{
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
}
}
}
}
4.23
#include
main()
{
intx,y;
for(x=1;x<=97;x++)
{
y=98-x;
if(2*x+4*y==386)
{
printf("x=%d,y=%d",x,y);
}
}
}
4.24
#include
main()
{
intx,y,z;
for(x=0;x<=20;x++)
{
for(y=0;y<=33;y++)
{z=100-x-y;
if(5*x+3*y+z/3.0==100)
{
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
}
4.25
#include
main()
{
intx,y,z,count=0;
for(x=1;x<=28;x++)
{
for(y=1;y<=73;y++)
{
z=100-x-y;
if(5*x+2*y+z==150)
{
count++;
printf("%d,%d,%d\n",x,y,z);
}
}
}
printf("count=%d\n",count);
}
4.26
#include
main()
{
intm,n,i;/*打印表头*/
for(m=1;m<10;m++)
{
printf("%4d",m);
}
printf("\n");
for(m=1;m<10;m++)
{
printf("-");
}
printf("\n");
for(n=1;n<10;n++)/*被乘数n从1变化到9*/
{
for(i=1;i<=4*n-4;i++)
{
printf("");/*输出相应空格使数字右对齐*/
}
for(m=n;m<10;m++)/*乘数m从n变化到9*/
{
printf("%4d",m*n);/*输出第n行m列中的m*n的值*/
}
printf("\n");/*输出换行符,准备打印下一行*/
}
}
4.27
#include
main()
{
inti,j,k;
for(i=1;i<=4;i++)/*i控制行数*/
{
for(j=1;j<=4-i;j++)/*随行数的增加,输出递减数目的空格*/
{
printf("");
}
for(k=1;k<=6;k++)/*每行输出6个*字符*/
{
printf("*");
}
printf("\n");/*将光标移到下一行起始位置处*/
}
}
------------------------------------------
#include
main()
{
inti,j,k;
for(i=1;i<=4;i++)/*控制行数*/
{
for(k=1;k<=(2*i-1);k++)/*控制每行输出的*号个数*/
{
printf("*");
}
printf("\n");/*输出一行后换行*/
}
}
------------------------------------------
#include
main()
{
inti,j,k;
for(i=1;i<=4;i++)/*控制行数*/
{
for(j=1;j<=8-i;j++)/*随行数的增加,输出递减数目的空格*/
{
printf("");
}
for(k=1;k<=(2*i-1);k++)
{
printf("*");
}
printf("\n");
}
}
4.28
#include
#include
main()
{
intm,n,i;
for(m=0;m<10;m++)
{
printf("%7d",m);/*打印表头*/
}
printf("\n");
for(n=0;n<10;n++)/*乘数n从1变化到9*/
{
printf("%d",n);/*输出每行的开头数字*/
for(m=0;m<10;m++)/*被乘数m从1变化到9*/
{
printf("%4.3f",sqrt(n*10+m));
}/*输出第m行n列中的值*/
printf("\n");/*输出换行符,准备打印下一行*/
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题集