2.程序填空
(1)以下程序的功能是计算1~50之间能被7整除的整数之和。
#include
void main()
{int i,sum=0;
for(i=1;50;i++)
if(i%7==0) sum+=i;
printf("sum=%d\n",sum);
}
(2) 下面程序接收来自键盘的输入,直到输入
#include
void main()
{char cx;
char front=’’;
while ((cx=getchar())!=’\n’)
{if (cx!=’’)
putchar(cx);
if (cx= =’’)
if (front!=’’)
putchar(cx);
front=cx;
}
}
3.程序改错
(1)下列程序的功能是求1+3+5+…99的和。
#include
void main( )
{ int s,i; ★//int s=0,i;
i=1;
while(i<=99)s=s+i;★//{s=s+i;i++;}
printf("1+3+5+…99的和是:%d\n",s);
}
(2)下面程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0。
#include
void main()
{ int i,x,y=0; ★//y=1
scanf("%d",&x);
for(i=2;i<=x/2&&y;i++)
if ((x%i)!=0) y=0; ★//x%i==0 printf("%d\n",y);
}
4.设计性实验
(1)题
/* 方法(1)精度控制*/
#include
#include
main()
{int s;
float n,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)次数控制*/
#include
#include
main()
{int s;
long times;
float n,t,pi;
t=1;pi=0;n=1.0;s=1;
for(times=1;times<=1e9;times++)
{pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
printf("pi=%10.6f\n",pi);
}
(2)题
main()
{
int i,j,frame;
double wheattal=0;
double wheatfnu=1;
printf("Please input frame’s numbers:");
scanf("%d",&frame);
for(i=0;i
{
wheattal+=wheatfnu;
wheatfnu+=wheatfnu;
}
printf("\n Total wheattatol’s timeter=%e\n",wheattal/1.40e8); }
(3)题
/*方法一:使用递推公式n=n+2*/
main()
{
int i,n=1;
double s=0,t=1;
for(i=1;i<=20;i++)
{
t*=n;
s+=t;
n+=2;
}
printf("s=%lf",s);
getch();
}
/*方法二:使用通项公式2*i+1*/ main()
{
int i;
double s=0,t=1;
for(i=1;i<=20;i++)
{
t*=2*i+1;
s+=t;
}
printf("s=%lf",s);
getch();
}
/*方法三*/
#include "stdio.h"
main()
{
long total,sum,m,n,t;
total=0;
for(m=1;m<=20;m++)
{
sum=1;t=1;
for(n=1;n<=m;n++) { sum=sum*t; t=t+2;} total=total+sum;
}
printf("total=%ld",total);
}
2.程序填空
(1)以下程序的功能是计算1~50之间能被7整除的整数之和。
#include
void main()
{int i,sum=0;
for(i=1;50;i++)
if(i%7==0) sum+=i;
printf("sum=%d\n",sum);
}
(2) 下面程序接收来自键盘的输入,直到输入
#include
void main()
{char cx;
char front=’’;
while ((cx=getchar())!=’\n’)
{if (cx!=’’)
putchar(cx);
if (cx= =’’)
if (front!=’’)
putchar(cx);
front=cx;
}
}
3.程序改错
(1)下列程序的功能是求1+3+5+…99的和。
#include
void main( )
{ int s,i; ★//int s=0,i;
i=1;
while(i<=99)s=s+i;★//{s=s+i;i++;}
printf("1+3+5+…99的和是:%d\n",s);
}
(2)下面程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0。
#include
void main()
{ int i,x,y=0; ★//y=1
scanf("%d",&x);
for(i=2;i<=x/2&&y;i++)
if ((x%i)!=0) y=0; ★//x%i==0 printf("%d\n",y);
}
4.设计性实验
(1)题
/* 方法(1)精度控制*/
#include
#include
main()
{int s;
float n,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)次数控制*/
#include
#include
main()
{int s;
long times;
float n,t,pi;
t=1;pi=0;n=1.0;s=1;
for(times=1;times<=1e9;times++)
{pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
printf("pi=%10.6f\n",pi);
}
(2)题
main()
{
int i,j,frame;
double wheattal=0;
double wheatfnu=1;
printf("Please input frame’s numbers:");
scanf("%d",&frame);
for(i=0;i
{
wheattal+=wheatfnu;
wheatfnu+=wheatfnu;
}
printf("\n Total wheattatol’s timeter=%e\n",wheattal/1.40e8); }
(3)题
/*方法一:使用递推公式n=n+2*/
main()
{
int i,n=1;
double s=0,t=1;
for(i=1;i<=20;i++)
{
t*=n;
s+=t;
n+=2;
}
printf("s=%lf",s);
getch();
}
/*方法二:使用通项公式2*i+1*/ main()
{
int i;
double s=0,t=1;
for(i=1;i<=20;i++)
{
t*=2*i+1;
s+=t;
}
printf("s=%lf",s);
getch();
}
/*方法三*/
#include "stdio.h"
main()
{
long total,sum,m,n,t;
total=0;
for(m=1;m<=20;m++)
{
sum=1;t=1;
for(n=1;n<=m;n++) { sum=sum*t; t=t+2;} total=total+sum;
}
printf("total=%ld",total);
}
2.程序填空
(1)求任意两个整数之间所有的素数。
#include
void main()
{int i1,i2,i,j,flag;
printf("input two integer(i1,i2):");
scanf("%d%d",&i1 ,&i2 );
printf("prime number:\n");
for(i=i1 ;i<= i2 ;i++)
{
flag=1;
for(j=2;j<=i-1;j++)
{
if(i%j==0)
{
flag=0 ;
break;
}
}
if(flag==1)printf("%d\t",i);
}
printf("\n");
}
(2)以下程序的功能是输出下三角九九乘法表。#include
void main()
{ int i,j;
for(i=1;i<=9;i++)
{ for(j=1;j<=i;j++)
printf("%d*%d=%d\t",i,j,i*j);
printf("\n");
}
}
3.程序改错
(1)下列程序的功能是输出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,该数的各位数字立
方和等于该数本身的数。例如:153是一个“水仙
花数”,因为153=13+53+33。
#include
void main( )
{ int x,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之间的所有完数。若一个整数等于该数的所有因子之和,则称该整数为完数。
#include
void main()
{ int i,j;
int s;
for(i=1;i<=999; i++)
{s=1;★//s=0;
for(j=1;j {if(i/j==0 ) s=s+j; }★//i%j if(s=i)printf("%5d",i); ★//s==i } } 4.设计性实验 SY61.C main() {int i,j,k,n=0;/*i,j,k分别代表三位整数的百位,十位,个位.n代表个数*/ 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==1099)/*在所有组合中找出满足指定条件的*/ { printf("%4d",100*i+10*j+k); n++; if(n%5==0)printf("\n");/*表示每行输出5个数*/ } } SY62.C #include #include main() { int i,j,k; for(i=1;i<=4;i++)/*上三角形有4行,每循环1次输出1行*/ { for(k=1;k<8-((2*i-1)/2);k++)/*该循环输出每行的空格.8用于调节偏离位置,可换成别的数(>=8)*/ printf(" "); for(j=1;j<=2*i-1;j++)/*该循环输出每行的’*’字符*/ printf("*"); putchar(’\n’);/*换行*/ } for(i=3;i>=1;i--)/*下面为倒三角形,有3行*/ { for(k=1;k<8-((2*i-1)/2);k++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); putchar(’\n’); } } sy63.c main( ) { int n=1,score,t; scanf("%d",&score); while (score>=0&&n<=5) { n++; t=0; while(score!=0) { t=t+(score%10)*(score%10); score=score/10; } if(t==108) printf("%d",score); scanf("%d",&score); } } SY64.C