C語言簡介 日期 : 2018/12/2
C語言簡介 1960年代就被發明了,是 Java 的祖先。 語法大致與 Java 相同,主要差異如下: 沒有物件導向 沒有 Object,沒有 String 有靜態結構 struct 有指標概念,可用來直接定址 2 陳鍾誠 - 2018/12/2
範例:Hello.c /***************************/ /* 檔名:hello.c */ /* 功能:簡單的C程式範例 */ /***************************/ #include <stdio.h> void main(void) { printf(“Hello!\n"); } 3 陳鍾誠 - 2018/12/2
範例:計算圓面積 #include <stdio.h> #include <stdlib.h> void main(void) { int r=3; const float pi=3.1416; float area=pi*r*r; printf("半徑為%d",r); printf("的圓面積為%f\n",area); } 4 陳鍾誠 - 2018/12/2
範例:加減乘除 #include <stdio.h> #include <stdlib.h> void main(void) { int x,y; x = 20; y = 7; printf("當x=%d",x); printf(",y=%d時\n",y); printf("x + y = %d\n",x+y); printf("x - y = %d\n",x-y); printf("x * y = %d\n",x*y); printf("x / y = %d\n",x/y); /* y不可為0 */ printf("x %% y = %d\n",x%y); /* y不可為0 */ system("pause"); } 5 陳鍾誠 - 2018/12/2
範例:比較運算子 #include <stdio.h> #include <stdlib.h> void main(void) { int x=10,y=20; printf(" x=%d",x); printf(" y=%d\n",y); printf("1代表真,0代表假\n"); printf("x==y ==> %d\n",(x==y)); printf("x!=y ==> %d\n",(x!=y)); printf("x>y ==> %d\n",(x>y)); printf("x<y ==> %d\n",(x<y)); printf("x>=y ==> %d\n",(x>=y)); printf("x<=y ==> %d\n",(x<=y)); } 6 陳鍾誠 - 2018/12/2
範例:位元運算子 #include <stdio.h> #include <stdlib.h> void main(void) { unsigned short int x=100,y=50,p=3,xx; xx=~x; printf("p=3\n"); printf("x=01100100\n"); printf("y=00110010\n"); printf("--------------------\n"); printf("not x ==> %d\n",xx); printf("x and y ==> %d\n",(x & y)); printf("x or y ==> %d\n",(x | y)); printf("x xor y ==> %d\n",(x ^ y)); printf("x >> p ==> %d\n",(x >> p)); printf("x << p ==> %d\n",(x << p)); } 7 陳鍾誠 - 2018/12/2
範例:字串處理 /#include <stdio.h> #include <stdlib.h> void main(void) { char *string; double d; int i; long l; string = "1234567"; l = atol( string ); printf("%s \t轉換為long=>%d\n",string,l); string = "1234567"; i = atoi( string ); printf("%s \t轉換為int=>%d\n",string,i); string = "-1234.56E-7"; d = atof( string ); printf("%s \t轉換為double=>%.9f\n",string,d); } 8 陳鍾誠 - 2018/12/2
範例:For 迴圈 #include <stdio.h> #include <stdlib.h> void main(void) { int sum=0, i; for (i=1; i<=10;i++) { sum = sum + i; } printf("sum=%d", sum); 9 陳鍾誠 - 2018/12/2
範例:goto 指令 #include <stdio.h> #include <stdlib.h> void main(void) { int sum=0; int i=0; loop: if (i>=10) goto end; sum = sum + I; i++; goto loop; end : printf(“sum=%d”, sum); } 10 陳鍾誠 - 2018/12/2
範例:陣列 #include <stdio.h> #include <stdlib.h> void main(void) { int m[9][9]; int i,j; for(i=1;i<=9;i++) for(j=1;j<=9;j++) m[i-1][j-1]=i*j; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) { printf("%d*%d=%d\t",i,j,m[i-1][j-1]); } printf("\n"); 11 陳鍾誠 - 2018/12/2
範例:字串反向 #include <stdio.h> #include <stdlib.h> void main(void) { char string1[]="0123456789"; char string2[60]; int i,len; len=0; while(string1[len]!='\0') { len++; } for(i=0;i<len;i++) { string2[i]=string1[len-1-i]; string2[i]='\0'; printf("反向字串為:%s\n",string2); 12 陳鍾誠 - 2018/12/2
範例:函數呼叫 #include <stdio.h> #include <stdlib.h> void main(void) { int sum1 = sum(10); printf("sum=%d", sum1); } int sum(int n) { int s=0; int i; for (i=1; i<=n;i++) { s = s + i; return s; 13 陳鍾誠 - 2018/12/2
14 陳鍾誠 - 2018/12/2
15 陳鍾誠 - 2018/12/2
16 陳鍾誠 - 2018/12/2
17 陳鍾誠 - 2018/12/2
18 陳鍾誠 - 2018/12/2
19 陳鍾誠 - 2018/12/2
20 陳鍾誠 - 2018/12/2
21 陳鍾誠 - 2018/12/2