一.數制 分為二進位 八進位 十進位 十六進位 二.C的第一個簡單程式 1.C的基本類型 ①整型:有符號(signed):int 32位 -2147483648~2147483647 short 16位 -32768~32767 long 32位 -2174783648~2174783647 無符號 ...
一.數制
分為二進位 八進位 十進位 十六進位
二.C的第一個簡單程式
1 #include<stdio.h> 2 int main() 3 { 4 printf("Hello World!"); 5 return 0; 6 }
1.C的基本類型
①整型:有符號(signed):int 32位 -2147483648~2147483647
short 16位 -32768~32767
long 32位 -2174783648~2174783647
無符號(unsigned):int 32位 0~4294967295
short 16位 0~65535
long 32位 0~4294967295
②實型(有符號,表示小數):float 32位
double 64位
③字元型:有符號(signed):char 8位 -127~128
無符號(unsigned ):unsigned char 8位 0~255
註:有符號的 最高位是符號位 0正 1負
2.常用轉換符說明
%d 有符號的十進位整數
%f 浮點型(float和double)
%c 字元型
%p 指針
註:所有新定義的變數必須放在程式的最前面 聲明的變數一定要放在最上面
三.流程結構
1.選擇:
①二選一if else:
if後面的括弧填條件表達式 例如:a>b a>=b a<b a<=b a==b a!=b
1 if() 2 { 3 4 } 5 else 6 { 7 8 }
②多選一switch:
switch後面的括弧放整型變數或變數表達式/枚舉類型
1 switch() 2 { 3 case 1: 4 5 break; 6 case 2; 7 8 break; 9 case 3: 10 11 break; 12 default: 13 14 break; 15 }
沒有break是無法跳出的 不走其他選項的走default
例:'c' 下麵可以寫case 'c'或case 99 都可輸出case內的結果
2.迴圈:
①知道次數的迴圈for:
1 for( ; ; ) 2 { 3 4 }
括弧中 第一個空填的是 迴圈變數的起始位置 第二個空是 迴圈條件 第三個是 迴圈變數的變化方式 如 i++
②先判斷後執行的迴圈while:
1 while() 2 { 3 4 }
括弧中所填的是迴圈條件 迴圈次數最少0次
③先執行再判斷的迴圈do while:
1 do 2 { 3 4 }while();
註:括弧內容同上 都是迴圈條件 但是這個迴圈的迴圈次數最少1次
3.continue和break:
continue 表示結束本次迴圈 執行下一次迴圈
break 表示跳出迴圈
4.常用符號:
% 取餘數
/ 取整數
/n 換行
/t 縮進
5.邏輯與 或 非:
&& 兩個條件都要滿足
|| 兩個條件滿足其中一個就可以
! 取反
註:非零返回的是0 0返回的是1 非零取兩次反返回的是1 不是原來的值
四.流程結構練習
1.int shu = 8392 按從高到低輸出每個位上面的數
1 #include<stdio.h> 2 int main() 3 { 4 int shu = 8392; 5 int i; 6 for(i=1000;i>=1;i=i/10) 7 { 8 printf("%d\n",shu/i); 9 shu = shu%i; 10 //這樣每次都會改變shu的數值 11 } 12 return 0; 13 }
所以怎麼樣才能在輸出最高位的同時 不改變shu的數值 於是 代碼進行了下麵的修改
1 #include<stdio.h> 2 int main() 3 { 4 int shu = 8392; 5 int i; 6 for(i=1000;i>=1;i=i/10) 7 { 8 printf("%d\n",shu/i%10); 9 } 10 return 0; 11 }
2.青蛙爬井 白天爬五米 黑天掉四米 井深十米 問第幾天能爬出這個井
在解決這個問題的時候 要註意的是 有可能在白天的時候 青蛙就已經爬出來了 黑天就不用再算往下掉的了 所以我們要寫一個標記
1 #include<stdio.h> 2 int main() 3 { 4 int day = 0; //記錄天數 5 int runs = 0; //記錄所爬的高度 6 int biaoji = 0; //0為白天 1位黑天 7 do 8 { 9 //首先判斷黑天還是白天 10 if(biaoji == 0) 11 { 12 day = day + 1; 13 runs = runs + 5; 14 biaoji = 1; 15 } 16 else 17 { 18 runs = runs - 4; 19 biaoji = 0; 20 } 21 }while(runs<10); 22 printf("%d\n",day); 23 }
精簡:
1 #include<stdio.h> 2 int main() 3 { 4 int day = 0; //記錄天數 5 int runs = 0; //記錄所爬的高度 6 int biaoji = 0; //0為白天 1位黑天 7 while(1) 8 { 9 day ++; 10 runs+=5; 11 if(runs>=10) 12 { 13 break; 14 } 15 runs-=4; 16 } 17 printf("%d\n",day); 18 }
3.乒乓球比賽 a不和b打 c不和x,z打 問 那這個比賽應該咋設計
1 #include<stdio.h> 2 int main() 3 { 4 char a,b,c; 5 for(a='x';a<='z';a++) 6 { 7 for(b='x';b<='z';b++) 8 { 9 for(c='x';c<='z';c++) 10 { 11 if(a!='x'&&c!='x'&&c!='z'&&a!=b&&b!=c&&a!=c) 12 { 13 printf("a=%c\n",a); 14 printf("b=%c\n",b); 15 printf("c=%c\n",c); 16 } 17 } 18 } 19 } 20 }