实验一:
1.编写程序,输入一个整数x,按照下式输出对应的y值。
#include<stdio.h> int main() { int x,y=0,i; printf("请输入一个整数:\n"); scanf("%d",&x); if(x%2==0) { for(i=0;i<=x;i+=2) { y=y+i; } } else if(x%2==1) { for(i=1;i<=x+1;i+=2) { y=y+i; } } printf("对应的值为%d",y); return 0; }
实验二:
2.编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。
#include<stdio.h> int main() { int x; float s1=0,s2=0,s=0; for(x=1;x<=100;x++) { if(x%2==0) { s1=s1-(1.0/x); } else { s2=s2+(1.0/x); } } s=s1+s2; printf("输出的值为%.2f",s); return 0; }
实验三:
3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。
#include<stdio.h> int main() { int year,i=0,n=0; for(year=2000;year<=3000;year++) { if(year%4==0&&year%100!=0||year%400==0) { printf("%d ",year); i++; if(i%10==0) { printf("\n"); } } } printf("\n在2000年到3000年之间共有%d个闰年",i); }
实验四:
4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
#include<stdio.h> int main() { int m,i; float x,s=1; printf("请输入一个实数x和一个整数m:\n"); scanf("%f%d",&x,&m); if(m>=0) { for(i=1;i<=m;i++) { s=s*x; } printf("%f",s); } else if(m<0) { for(i=1;i>m+1;i--) { s=s*x; } printf("%f",1/s); } return 0; }
实验五:
5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。
#include<stdio.h> int main() { int large=0,small=0,digital=0,space=0,other=0; char m; printf("请输入一串字符:\n"); scanf("%c",&m); while(m!='\n') { if(m>='a'&&m<='z') { small++; } else if(m>='A'&&m<='Z') { large++; } else if(m>='0'&&m<='9') { digital++; } else if(m==' ') { space++; } else { other++; } scanf("%c",&m); } printf("这串字符中\n数字有%d个\n大写字母有%d个\n小写字母有%d个\n空格有%d个\n其他字符有%d个\n",digital,large,small,space,other);
return 0; }
实验六:
6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,
#include<stdio.h> int main() { float s1=0,s2=0,digital,a=0,b=0; printf("请输入一批数字,按0结束\n"); scanf("%f",&digital); if(digital==0) { printf("error"); } else if(digital>0||digital<0) { while(digital!=0) { if(digital>0) { s1=s1+digital; a++; } else if(digital<0) { s2=s2+digital; b++; } scanf("%f",&digital); } printf("正数的平均数为:%f\n负数的平均数为:%f",s1/a,s2/b); } else { printf("请输入数字"); } return 0; }
实验七:
7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
#include<stdio.h> int main() { int i,x,n=0; for(i=2;i<=1000;i++) { for(x=2;x<=i;x++) { if(i%x==0)break; } if(i==x) { printf("%5d ",i); n++; if(n%10==0) printf("\n"); } } return 0; }
实验八:
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; }
知识点总结:
1 for语句的应用形式(循环变量赋初值;循环的范围;循环变量增值)
2 循环变量加一的几种形式 i++;++i;i=i+1;i+=1
3 while语句的一般形式
while(表达式)
{
循环语句;
}
4 do while语句的一般形式
do
{
循环语句;
}while(表达式);
实验总结:
1 当知道循环体的条件时一般有if语句 当不知道循环体条件时用do while语句
2 在必要的情况时要记得赋初值
3 在运用整除运算符时必须是整形的
4 for语句中的三个语句之间使用分号隔开
5 0不能够作为分母
6 for循环语句只执行后面的一个括号