1.编写程序,输入一个整数x,按照下式输出对应的y值。
#include<stdio.h> int main() { int a,b,i; b=0; printf("请输入一个整数,我将按照题目要求计算结果 "); scanf("%d",&a); if(a%2==1) { for(i=1;i<=a;i=i+2) { b=b+i; } } else if(a%2==0) { for(i=2;i<=a;i=i+2) { b=b+i; } } printf("%d",b); return 0; }
2.编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。
#include<stdio.h> int main() { int i,a; float y=1; for(i=2;i<=100;i=i+2) { y=y-1.00/i; } for(a=3;a<=100;a=a+2) { y=y+1.00/a; } printf("%0.2fa",y); return 0; }
3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。
#include<stdio.h> int main() { int i,a;a=0; for(i=2000;i<=3000;i++) { if((i%4==0&&i%100!=0)||(i%400==0)) { printf("%03d ",i);a++; if(a%10==0) { printf(" "); } } } printf("一共有%d个闰年",a); return 0; }
4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
#include<stdio.h> int main() { int m,i; float x,y=1; printf("请输入一个实数x和一个整数m "); scanf("%f %d",&x,&m); if(m>0) { for(i=1;i<=m;i++) { y=y*x; } } else if(m==0) { y=1; } else { printf("输入错误 "); } printf("%f ",y); return 0; }
5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。
#include<stdio.h> int main() { int a,b,c,d,e,i; char x; a=0; b=0; c=0; d=0; e=0; printf("请输入一串字符,我将计算其中各个种类字符的数目 "); scanf("%c",&x); while(x!=' ') { if('A'<=x&&x<='Z'||'a'<=x&&x<='z') { b++; } else if(x==32) { c++; } else if('0'<=x&&x<='9') { d++; } else { e++; } scanf("%c",&x); } printf("其中字母有%d个,空格有%d个,数字有%d个,其他有%d个",b,c,d,e); return 0; }
6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,
#include<stdio.h> int main() { int a,b,c,d,e,f,g; a=0; b=0; c=0; d=0; printf("请输入一列数,以0结束 "); while(1) { scanf("%d",&e); if(e<0) { a+=e; c++; } else if(e>0) { b+=e; d++; } else if(e==0) break; } if(d==0) { printf("没有正数 "); } else { printf("正数的平均数为%f ",(float)b/d); } if(c==0) { printf("没有负数 "); } else { printf("负数的平均数为%f ",(float)a/c); } return 0; }
7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
#include<stdio.h> int main() { int i,a,x=0,flag=0; for(i=2;i<=1000;i++) { for(a=2,flag=0;a<=i-1;a++) { if(i%a==0) { flag=1; break; } } if(flag!=1) { printf("%04d ",i); x++; if(x%10==0) { printf(" "); } } } printf("一共有%d个素数",x); return 0; }
8.打印下列图形
#include<stdio.h> int main() { int i,a; for(i=1;i<=5;i++) { for(a=1;a<=i-1;a++) { printf(" "); } for(a=1;a<=2*(5-i)+1;a++) { printf("*"); } printf(" "); } return 0; }
课知识点总结:1.for,if,while后面没有分号
2.scanf括号里要加地址符
3.循环公式的应用
实验总结:1.break只能终止并跳出最近一层的结构
2.应用循环时,通过在循环体后加break;对循环体进行控制
3.循环一定要有初值