C语言程序设计实验及习题答案Word格式.docx

上传人:b****6 文档编号:18121338 上传时间:2022-12-13 格式:DOCX 页数:37 大小:25.93KB
下载 相关 举报
C语言程序设计实验及习题答案Word格式.docx_第1页
第1页 / 共37页
C语言程序设计实验及习题答案Word格式.docx_第2页
第2页 / 共37页
C语言程序设计实验及习题答案Word格式.docx_第3页
第3页 / 共37页
C语言程序设计实验及习题答案Word格式.docx_第4页
第4页 / 共37页
C语言程序设计实验及习题答案Word格式.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

C语言程序设计实验及习题答案Word格式.docx

《C语言程序设计实验及习题答案Word格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验及习题答案Word格式.docx(37页珍藏版)》请在冰豆网上搜索。

C语言程序设计实验及习题答案Word格式.docx

//{s=s+i;

i++;

1+3+5+…99的和是:

%d\n"

s);

(2)下面程序的功能是输入一个正整数,判断是否是素数,若

为素数输出1,否则输出0。

{inti,x,y=0;

//y=1

scanf("

%d"

&

x);

for(i=2;

i<

=x/2&

&

y;

if((x%i)!

=0)y=0;

//x%i==0

y);

4.设计性实验

(1)题

/*方法

(1)精度控制 

*/

math.h>

main()

ints;

floatn,t,pi;

t=1;

pi=0;

n=1.0;

s=1;

while((fabs(t))>

=1e-6)

pi=pi+t;

n=n+2;

s=-s;

t=s/n;

}

pi=pi*4;

printf("

pi=%10.6f\n"

pi);

/*方法

(2)次数控制*/

longtimes;

for(times=1;

times<

=1e9;

times++)

(2)题

{

inti,j,frame;

doublewheattal=0;

doublewheatfnu=1;

Pleaseinputframe’snumbers:

"

);

scanf("

frame);

for(i=0;

frame;

wheattal+=wheatfnu;

wheatfnu+=wheatfnu;

\nTotalwheattatol’stimeter=%e\n"

wheattal/1.40e8);

(3)题

/*方法一:

使用递推公式n=n+2*/

int 

i,n=1;

doubles=0,t=1;

for(i=1;

=20;

{

t*=n;

s+=t;

n+=2;

s=%lf"

getch();

/*方法二:

使用通项公式2*i+1*/

i;

t*=2*i+1;

/*方法三*/

#include"

stdio.h"

longtotal,sum,m,n,t;

total=0;

for(m=1;

m<

m++)

{

sum=1;

t=1;

for(n=1;

n<

=m;

n++){sum=sum*t;

t=t+2;

total=total+sum;

total=%ld"

total);

(1)求任意两个整数之间所有的素数。

{inti1,i2,i,j,flag;

inputtwointeger(i1,i2):

%d%d"

&

i1,&

i2);

primenumber:

\n"

for(i=i1;

=i2;

flag=1;

for(j=2;

j<

=i-1;

j++)

if(i%j==0)

flag=0;

break;

if(flag==1)printf("

%d\t"

i);

(2)以下程序的功能是输出下三角九九乘法表。

{inti,j;

=9;

{for(j=1;

=i;

%d*%d=%d\t"

i,j,i*j);

(1)下列程序的功能是输出所有的“水仙花数”。

谓“水仙花数”是指一个三位数,该数的各位数字立

方和等于该数本身的数。

例如:

153是一个“水仙

花数”,因为153=13+53+33。

{intx,s,a;

for(s=0,x=100;

x<

1000;

s=0,x++)★ 

{a=x;

while(a!

=0)

{s=s+(a%10)*(a%10)*(a%10);

a=a/10;

if(x==s)printf("

%d"

x);

(2)以下程序的功能是输出1至1000之间的所有完数。

若一个整数等于该数的所有因子之和,则称该整数为完数。

ints;

=999;

i++)

{s=1;

//s=0;

for(j=1;

i-1;

j++)★ 

//for(j=1;

{if(i/j==0)s=s+j;

}★//i%j

if(s=i)printf("

%5d"

//s==i

SY61.C

inti,j,k,n=0;

/*i,j,k分别代表三位整数的百位,十位,个位.n代表个数*/

=9;

for(j=0;

for(k=0;

k<

k++)

 

if(i*i*i+j*j*j+k*k*k==1099) 

/*在所有组合中找出满足指定条件的*/

%4d"

100*i+10*j+k);

n++;

if(n%5==0) 

/*表示每行输出5个数*/

SY62.C

string.h>

inti,j,k;

=4;

i++) 

/*上三角形有4行,每循环1次输出1行*/

for(k=1;

8-((2*i-1)/2);

k++) 

/*该循环输出每行的空格.8用于调节偏离位置,可换成别的数(>

=8)*/

"

for(j=1;

=2*i-1;

j++) 

/*该循环输出每行的’*’字符*/

*"

putchar(’\n’);

/*换行*/

for(i=3;

i>

=1;

i--) 

/*下面为倒三角形,有3行*/

sy63.c

main()

{intn=1,score,t;

score);

while(score>

=0&

=5)

{n++;

t=0;

while(score!

t=t+(score%10)*(score%10);

score=score/10;

if(t==108)

score);

}

SY64.C

math.h"

floatx0,x1,x2,fx0,fx1,fx2;

/*x1,x2分别表示每次区间的左右端点,x0代表区间的中间点,fx0,fx1,fx2代表相应点的函数值*/

do

{printf("

pleaseinputx1&

x2:

%f,%f"

x1,&

x2);

fx1=x1*((2*x1-4)*x1+3)-6;

fx2=x2*((2*x2-4)*x2+3)-6;

}while(fx1*fx2>

0);

/*该循环指定有根的区间*/

do

x0=(x1+x2)/2;

fx0=x0*((2*x0-4)*x0+3)-6;

if((fx0*fx1)<

0) 

/*丢掉右区间*/

x2=x0;

fx2=fx0;

else 

/*丢掉左区间*/

x1=x0;

fx1=fx0;

}while(fabs(fx0)>

1e-5);

/*该循环实现二分法求根*/

rootx=%f"

x0);

2)程序填空

(1)

intm,n,num1,num2,temp;

Inputtwopositiveinteger:

%d,%d"

num1,__&

num2_______);

if(num1<

num2)

{temp=num1;

num1=num2;

num2=__temp_______;

m=num1;

n=num2;

while(n!

{temp=__m%n__________;

m=n;

n=temp;

Thegrestestmondivisoris%d\n"

m);

Thelowestmonmultipleis%d\n"

num1*num2/__m____);

(2)下面程序是计算表达式1+(1+2)+(1+2+3)+…+(1+2+3+…+10)和。

{intsum,i,j,t;

sum=①;

=10;

{t=0;

=②;

t=t+j;

sum=③;

1+(1+2)+(1+2+3)+…+(1+2+3+…+10)=%d\n"

①0 

②i 

③sum+t

(1)下面的程序是求1~100之间的素数,并将所有素数按每行10个输出。

#define<

//#include<

{inti,m,k,n;

//inti,m,k,n=0;

=100;

m=m+2)

if(n/10==0)★ 

//if(n%10==0)

k=1;

=sqrt(m);

i++)

if(m%i!

=0)★ 

//if(m%i==0)

{k=0;

if(k==1)

%3d"

n=n+1;

(2)下面程序是求表达式1-1/2+1/3-1/4+1/5-……-1/100的值,结果保留小数后4位。

{inti;

floats;

i=0;

//i=1;

s=1;

//s=0;

100)

{if(i%2==0)

s=s-1/i;

//s=s-1.0/i;

else

s=s+1/i;

//s=s+1.0/i

i=i+1;

1-1/2+1/3-1/4+…-1/100=%10.3f\n"

(1)编程输出以下图形。

voidmain()

=6;

{

=20-(2*i-1)/2;

(2)编写一个程序输出所有5位数字的回文。

方法一:

#include 

<

longx,a,t;

//x:

原5位整数,a:

用来暂存x,t:

把a反序后的数

inti,num=0;

//i:

表示原5位数的某一位,num:

回文数的个数

for(x=10000;

=99999;

x++) 

//每次取出1个5位整数

a=x;

//把取出的5位整数保存到a

t=0;

//t用来存放反序后的数 

while(a>

{i=a%10;

//取出当前数的最后一位到i

t=t*10+i;

//把取出的i组装到t

a=a/10;

if(x==t) 

//原来的5位整数等于反序后的数t

{printf("

%ld,"

x);

num++;

if(num%10==0) 

//每行输出10个数

方法二:

/*求5位整数中所有回文*/

longintn,m,t=0;

for(n=10000;

n++)

if(hw(n)==1)

{printf("

%6ld"

n);

t++;

if(t%5==0) 

/*每行输出5个数*/

inthw(longinta) 

/*hw函数测试a是否是回文*/

longint 

m,r=0;

m=a;

while(m)

r=r*10+m%10;

m/=10;

if(a==r)

return1

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

当前位置:首页 > 职业教育 > 职高对口

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

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