1.編寫程序,輸入一個整數x,按照下式輸出對應的y值。
#include<stdio.h> int main() { int i,x,y; printf("請輸入一個整數x\n"); scanf("%d",&x); if(x%2!=0) { y=0; for(i=1;i<=x;i+=2) { y=y+i; } printf("%d\n",y); } else if(x%2==0) { y=0; for(i=2;i<=x;i+=2) { y=y+i; } printf("%d\n",y); } return 0; }
#include <stdio.h> int main () { int i; float sum; sum=0; for(i=1;i<=100;i++) { if(i%2!=0) { sum=sum-(1.0/i); } else if(i%2==0) { sum=sum+(1.0/i); } } printf("和為%.2f\n",sum); return 0; }

總結:要注意負數求和為減
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++; if(b%10==0) { printf("\n"); } } } printf("一共有%d個閏年\n",b); return 0; }

4.輸入一個實數x和一個整數m,計算xm,不允許調用pow()函數。
#include <stdio.h> int main() { int a,b,c; double sum; printf("請輸入一個實數和一個整數\n"); scanf("%d%d",&a,&b); if(b>0) { for(sum=1,c=1;c<=b;c++) { sum=sum*a; } printf("%.2f\n",sum); } else if(b<0) { for(sum=1,c=1;c<=-b;c++) { sum=sum*a; } sum=1/(double)sum; printf("%.2f\n",sum); } else { printf("1\n"); } return 0; }




5.輸入一串字符,分別統計其中字母、空格、數字和其他字符的個數。
#include <stdio.h> int main() { int a=0,b=0,c=0,d=0; char ch1; printf("請輸入一串字符\n"); while((ch1=getchar())!='\n') { if((ch1>='A'&&ch1<='Z')||ch1>='a'&&ch1<='z') { a++; } else if(ch1==' ') { b++; } else if(ch1>='0'&&ch1<='9') { c++; } else { d++; } } printf("字母,空格,數字和其他字符分別為%d,%d,%d,%d\n",a,b,c,d); return 0; }

總結:ch1=getchar()中 關系運算符!=的優先級比賦值運算符=優先級高加()后才先算前面的
6.輸入一批數(正數和負數),輸入0結束,分別計算其中正數的平均值和負數的平均值,
#include <stdio.h> int main() { int a,b=1,c=1,sum1,sum2; float average1,average2; printf("請輸入一批數\n"); scanf("%d",&a); sum1=0; sum2=0; while(a!=0) { if(a>0) { sum1+=a; b++; } else { sum2+=a; c++; } scanf("%d",&a); } if(b-1==0) { printf("沒有正數\n"); } else { average1=(float)sum1/(b-1); printf("正數平均值為%.2f\n",average1); } if(c-1==0) { printf("沒有負數\n"); } else { average2=(float)sum2/(c-1); printf("負數平均值為%.2f\n",average2); } return 0; }

總結:注意sum要有賦初值
7.輸出1000以內的所有素數,每行10個,最后輸出一共有多少個素數。(每列對齊)
#include <stdio.h> int main() { int a,b,c=0; for(a=2;a<=1000;a++) { for(b=2;b<=a-1;b++) if(a%b==0) break; if(a==b) { printf("%03d ",b); c++; if(c%10==0) { printf("\n"); } } } printf("一共有%d個素數\n",c); return 0; }

8.打印下列圖形
#include <stdio.h> int main() { int i,j,k; for(i=0;i<=4;i++) { for(j=0;j<=i;j++) printf(" "); for(k=1;k<=9-2*i;k++) printf("*"); printf("\n"); } return 0; }

總結:找清規律注意先輸出的是什么
知識點總結:
1. 注意循環一定要有初值
2.①while語句先判斷表達式后執行循環體,循環體可能一次也不執行
②do while語句先執行循環體后判斷表達式,至少執行一次循環體
3.do while 后的while有;
4.要注意運算符的優先級 先執行優先級低的加()
5.for語句
(1) for(表達式1;表達式2;表達式3)
{
循環體語句
}
(2)循環體語句可以是單條語句也可以是復合語句。 建議無論循環體有幾條語句,一律都加大括號
(3)表達式可以部分或全部省略,但兩個";"不能省略
6.無限循環中,通過在循環體中加break語句對循環體進行控制
7. 循環次數已知 for語句
循環次數未知由給定條件控制 while語句
循環體至少執行一次 do······while語句


