4-1编写程序输入一个整数x,按照下式输入对应的y值 x为奇数y=1+3+5+...+x x为偶数y=2+4+6+...+x
#include<stdio.h>
int main()
{
int a,b,sum=0;
printf("输入一个整数。\n");
scanf("%d",&a);
if(a<=0)
{
printf("输入错误\n");
}
else if(a%2==0)
{
for(b=2;b<=a;b=b+2)
{
sum=sum+b;
}
{
printf("输出为%d\n",sum);
}
}
else if(a%2!=0)
{
for(b=1;b<=a;b=b+2)
{
sum=sum+b;
}
{
printf("输出为%d\n",sum);
}
}
return 0;
}
知识点总结:for循环语句的应用 for(表达式1;表达式2;表达式3) 表达式1是一个在开始循环前要计算的表达式,即为循环变量赋出值。表达式2是计算结果为真或假的条件表达式。在每次循环前计算该条件,当计算结果为真时执行循环,为假时退出循环。表达式3是一个在每次循环体执行后要计算的表达式。
实验总结:for语句的格式表达含义,充分考虑情况,分析好题目,明确编程思路。
4-2编程求 1-1/2+1/3-1/4+1/5-...-1/100 保留两位小数
#include<stdio.h>
int main()
{
int a;
float b,sum;
for(a=1;a<100;a++)
{
if(a%2!=0)
{
b=1/(float)a;
}
else
{
b=-1/(float)a;
}
sum=sum+b;
}
printf("和为%.2f",sum);
return 0;
}
知识点总结:循环语句,两种情况,
实验总结:保留两位小数的格式%.2f,float浮点型函数的应用。
4-3输入2000年至3000年所有闰年的年号,每输入10个年号换一行,最后统计一共有多少个闰年
#include<stdio.h>
int main()
{
int a,b=0;
for(a=2000;a<=3000;a++)
{
if((a%4==0&&a%100!=0)||(a%400==0))
{
{
printf("%d",a);
b=b+1;
}
if(b%10==0)
{
printf("\n");
}
}
printf("共有%d",b);
}
return 0;
}
知识点总结:for循环
实验总结:符合闰年的条件,注意语句执行的范围,大括号的使用。
4-4输入一个实数X和一个整数M,计算Xm
#include<stdio.h>
int main()
{
int a,b;
float c,sum=1.0;
printf("输入一个实数和一个整数\n");
scanf("%f,%d",&c,&a);
if(b=0)
{
sum=1;
}
else
{
for(b=1;b<=a;b++)
{
sum=sum*c;
}
}
printf("输出为%d\n",sum);
return 0;
}
知识点,实验总结:初始变量赋值,求幂考虑0次幂时为1.
4-5输入一串字符,分别统计其中字母空格数字和其他字符的个数
#include<stdio.h>
int main()
{
int a,b,m,n;
char c;
a=0;
b=0;
m=0;
n=0;
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c<='z'&&c>='a')
{
a++;
}
else if(c==' ')
{
b++;
}
else if(c>='0'&&c<='9')
{
m++;
}
else
{
n++;
}
}
printf("字母=%d,空格=%d,数字=%d,其他=%d\n",a,b,m,n);
return 0;
}
知识点 实验总结:首先赋出值为0,在执行时依次累加,各种情况都要表达清楚。
4-6输入一批数,输入0结束,分别计算其中整数的平均值和负数的平均值
#include<stdio.h>
int main()
{
int a,b,c,d,e;
a==0;
b==0;
c==0;
e==0;
while(1)
{
scanf("%d",&d);
if(d==0)
{
break;
}
else if(d<0)
{
b++;
e+=d;
}
else
{
c++;
a+=d;
}
}
printf("正数的平均数为%f,负数的平均值为%f",(float)a/c,(float)e/b);
return 0;
}
知识点总结:正负数符合的条件,用if嵌套,注意平均数的表达。
实验总结:赋出值为0,选择条件写编程各自求平均值。
4-7输入1000以内所有素数,每行10个,最后输出一个有多少个素数。
#include<stdio.h>
#include<math.h>
int main()
{
int n=0,a,b,c,d;
for(a=2;a<=1000;a++)
{
c=1;
d=sqrt(a);
for(b=2;b<=d;b++)
{
if(a%b==0)
{
c=0;
break;
}
}
if(c==1)
{
n++;
if(n%10==0)
{
printf("%4d\n",a);
}
else
{
printf("%4d",a);
}
}
}
return 0;
}
知识点,实验总结:素数的因数只有它本身和1,首先选定c赋予两个值,c为1时说明为素数,反之,n表示素数的个数,与10除余,表示每十个一行。
4-8打印下列图形
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i-1;j++)
{
printf(" ");
}
for(j=1;j<=11-2*i;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
知识点,实验总结:注意找规律,通用公式,用for循环,嵌套。