一:实验内容
1.编写程序,输入一个整数x,按照下式输出对应的y值。
#include <stdio.h> int main() { int i,a,x,y=0; printf("输入一个整数x:\n"); scanf("%d",&x); if(x%2==0) { for(i=0;i<=x;i+=2) { y=y+i; } printf("x位偶数,y的值为%d:\n",y); } else if(x%2!=0) { for(a=1;a<=x;a+=2) { y=y+i; } printf("x为奇数,y的值为%d:\n",y); } return 0; }
2.编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。
#include <stdio.h> int main() { int i,j; float m,n,a; m=0,n=1; for(i=0;i<=100;i+=2) { m=m+1.0/(i+2); } printf("%f:\n",m); for(j=1;j<=99;j+=2) { n=n+1.0/(j+2); } printf("%f:\n",n); a=n-m; printf("%.2f:\n",a); return 0; }
3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。
#include <stdio.h> int main() { int a,b=0; for(a=2000;a<=3000;a=a+1) { if((a%4==0&&a%100!=0)||(a%400==0)) { b=b+1; printf("%04d ",a); if(b%10==0) { printf("\n"); } } } printf("一共有%d个闰年",b); return 0; }
4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
#include <stdio.h> int main() { float x,p=1; int m,i; printf("输入一个实数x和一个整数m"); scanf("%f%d",&x,&m); for(i=1;i<=m;i++) { p=p*x;//*p=1*x*x*....*x*// } printf("%.2f",p); return 0; }
5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。
#include <stdio.h> int main() { char c; int c_num=0,space_num=0,shuzi_num=0,other_num=0; printf("输入一串字符"); scanf("%c",&c); while(c!='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') { c_num++; } else if(c==' ') { space_num++; } else if(c>='0'&&c<='9') { shuzi_num++; } else { other_num++; } scanf("%c",&c); } printf("字母=%d个,空格=%d个,数字=%d个,其他=%d个",c_num,space_num,shuzi_num,other_num); return 0; }
6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值
#include <stdio.h> int main() { int a,b=0,c=0; float sum1=0,sum2=0,d,e; printf("请输入一批数,以0为结束\n"); while(a!=0) { scanf("%d",&a); if(a>0) { b=b+1; sum1=sum1+a; d=sum1/b; } else if(a<0) { c=c+1; sum2=sum2+a; e=sum2/c; } } printf("正数的平均值为%.2f\n",d); printf("负数的平均值为%.2f\n",e); return 0; }
7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
#include <stdio.h> int main() { int i,n,m=0,flag=0; for(i=2;i<=1000;i++)//*循环刚开始的条件,i就是你要判断是不是素数的数*// { flag=0; for(n=2;n<=i-1;n=n+1)//*i能被1和i整除,2-i-1,判断素数的条件*// { if(i%n==0)//*判断素数的条件*// { flag=1; continue; } } if(flag!=1) { m=m+1; printf("%03d ",i); if(m%10==0) { printf("\n"); } } } printf("一共有%d个素数",m); return 0; }
8.打印下列图形
#include <stdio.h> int main() { int i,j; for(i=1;i<=5;i++) { for(j=1;j<=i;j++) { printf(" "); } for(j=1;j<=2*(5-i)+1;j++) { printf("*"); } printf("\n"); } return 0; }
二:本次课知识点总结
1:while和do..while语句的表达式
while(表达式2)
{ do
语句1 {
语句2 循环体语句
表达式3; }
} while(表达式2);
2:注意分号的与运用
while语句中的while if for 不加分号
do...while中,while后面要加分号
3:continue语句只能用于循环语句,与if一起连用
4:for语句循环次数已知
while语句由给定条件控制
循环体至少要执行一次用do...while语句
5:注意一个标记变量flag
三:实验总结
1:注意实型和整型区分开来
2;注意大括号的一一对应,循环的嵌套看清楚
3:一串字符那道题最后注意在取一下地址符
4:如何判断闰年判断清楚
5:分号有时不要丢下