ios之c語言學習筆記
C語言筆記
1.Printf輸出函式語法
printf的語法 輸出語句
(1)printf("你想輸出的內容");
(2)printf("格式字串",...);佔位符%d整形數 %f小數 %s字串 %c單個字元
printf("\n");換行
2.常量與變數
定義變數 語法:資料型別 變數名
C語言中資料型別:
字元char,短整型short
整型int,長整型long
單精度浮點:float
長精度浮點:double
要想使用變數,必須先定義它。變數通過賦值語句儲存東西.
3.scanf輸入函式語法
scanf("資料型別的佔位符",地址)%d %f %s %c
%ld %lf
inta,b;
printf("請輸入第一個數")
scanf("%d",&a)
printf("請輸入第二個數")
scanf("%d",&b)
printf("%d+%d=%d\n",a,b,a+b);
4.運算子
(1)特殊運算子:() .-> []
(2)算術運算子:+—×/%++--
(3)關係運算符:> >= < <= == !=
(4)位操作運算子:&∧/<< >>
(5)邏輯運算子:&&\\!
(6)條件運算子:?:
(7)賦值運算子:= += -= ×= /= %=
5.無條件轉向之goto語句
goto l;
l:
條件轉向語句if語句
if(條件)
{
條件成立時要做的事(一行或多行程式碼)
}
舉例:
int a;
scanf(“%d”,&a);
if(a%2==0)
{
Pintf(“%d是偶數!\n”,a);
}
if(a%2!=0)
{
Pintf(“%d是奇數!\n”,a);
}
6.條件判斷之if else語句
if(條件1)
{
條件1成立時要做的事(一行或多行程式碼)
}
else if(條件2)
{
條件2成立時要做的事(一行或多行程式碼)
}..................
else
{
以上條件都不成立時的程式碼
}
舉例1:
int a;
scanf(“%d”,&a);
if(a%2==0)
{
Pintf(“%d是偶數!\n”,a);
}
else
{
Pintf(“%d是奇數!\n”,a);
}
舉例2:
int a=0;
printf(“請輸入一個有效的分數(0-100):”);
scanf(“%d”,&a);
if(a<60)
{
Printf(“%d是不及格!\n”,a);
}
else if(a<80)
{
Printf(“%d是及格!\n”,a);
}
else if(a<90)
{
Printf(“%d是優良!\n”,a);
}
else
{
Printf(“%d是優秀!\n”,a);
}
7.條件判斷之switch開關語句
Swith(表示式)
{
case值1:
做是值1的事
break;
case值2:
做是值2的事
break;
...........
default:
如果前面的值都不是的事
}
舉例1:
int a;
scanf(“%d”,&a);
if (a==0)
{
printf(“零\n”);
}
else If (a==1)
{
printf(“壹\n”);
}
else If (a==2)
{
printf(“貳\n”);
}
else If (a==3)
{
printf(“叄\n”);
}
else If (a==4)
{
printf(“肆\n”);
}
else If (a==5)
{
Printf(“伍\n”);
}
else If (a==6)
{
printf(“陸\n”);
}
else If (a==7)
{
printf(“柒\n”);
}
else If (a==8)
{
printf(“捌\n”);
}
else If (a==9)
{
printf(“玖\n”);
}
else
{
printf(“對不起,無法轉換!”);
}
舉例2:
switch(a)
{
case 0:
printf(“零\n”);
break;
case 1:
printf(“壹\n”);
break;
case 2:
printf(“貳\n”);
break;
case 3:
printf(“叄\n”);
break;
case 4:
printf(“肆\n”);
break;
case 5:
printf(“伍\n”);
break;
case 6:
printf(“陸\n”);
break;
case 7:
printf(“柒\n”);
break;
case 8:
printf(“捌\n”);
break;
case 9:
printf(“玖\n”);
break;
default:
printf(“對不起,無法轉換\n”);
break;
}
8.迴圈之for語句
從某一處開始,連續不斷的做一件事,就叫迴圈。
for(表示式1(賦值語句 初值);表示式2(條件);表示式3(增值的賦值語句))
{
迴圈要做的事(一行或多行程式碼)
}
舉例1:
for(int i=0;i<8;i++)
{
printf(“1\n”);(輸出8個1)
}
舉例2:
for(int i=1;i<101;i++)
{
printf(“%d\n”,i);(輸出1到100的數)
}
舉例3:
for(int i=11;i<=55;i=i+3)
{
printf(“%d\n”,i);(輸出11、14、17.。。。。。。53)
}
舉例4:
for(int i=9;i>0;i--)
{
printf(“%d\n”,i);(輸出987654321)
}
Continue:結束本次迴圈,開始下一次迴圈
Break:跳出迴圈
For迴圈的巢狀:外面的for迴圈一次,裡面的for迴圈一圈,再迴圈到外面的for。
舉例5:
int a=9;
scanf(“%d”,&a);
for(int i=a;i>0;i--)
{
for(int j=1;j<=3;j++)
{
printf(“%d\n”,j)
}
}
(當輸入5時,輸出5個123)
9.迴圈之while語句
while(條件)
{
迴圈體
}
舉例1:
int sum=0,i;
for(i=1;i<=100;i++)
{
sum=sum+i
}
printf(“sum=%d\n”,sum);(5050)
舉例2:
int sum=0,i;
for(i=1;i<=100;i++)
{
sum=sum+i
if(sum=3003)
{
break;
}
}
printf(“i=%d\n”,i);(77)
舉例3:
int i=0;
while(i<100)
{
i++;
Printf(“%d\n”,i);
}
(輸出1-100)
舉例4:
int i=0,sum=0;
while(sum!=3003)
{
i++;
sum+=i
}
printf(“i=%d\n”,i);(77)
10.迴圈之do while語句
do
{
迴圈體
}while(條件);
舉例1:
int i=0,sum=0;
do
{
i++;
sum+=i
}while(sum!=3003);
printf(“i=%d\n”,i);(77)
當知道迴圈次數的時候,用for迴圈,當不知道迴圈次數的時候,用while或do while迴圈。
舉例:
int n;(儲存總人數)
int score;(成績)
int sum=0;(總分)
printf(“請輸入你班級總人數”)
scanf(“%d”,&n)
for(int i=1;i<=n;i++)
{
printf(“請輸入第%d名同學成績”,i);
scanf(“%d”,&score);
sum+=score;
}
printf(“平均分是%g\n,sum*1.0/n”);
舉例:
int n=0;(計數器)
int sum=0;(累加器)
int temp;(每一名同學成績)
printf(“請輸入第%d名同學成績”,n+1);
scanf(“%d”,&temp);
while(temp>0)
{
n++;
sum+=temp;
printf(“請輸入第%d名同學成績”,n+1);
scanf(“%d”,&temp);
}
printf(“平均分是%g\n,sum*1.0/n”);
11.函式
1.在程式的不同地方出現了相同的程式碼
2.把大的應用改成幾個小的部分
定義(函式的主體部分,代表函式)
宣告(告訴下面的程式碼這個函式存在,你可以使用它)
呼叫(使用函式)
返回值 函式的名字(引數的列表)——函式頭
{
函式體
}
Printf(“11”);相同時,就用函式,例如:
12.自定義函式
舉例1.
舉例2.
13.函式的呼叫
點右鍵-——add file to-——add.c/add.h檔案
Add.c檔案:{
float add(float a,float b,float c,)定義
Return a+b+c;
}
Add.h檔案:float add(float a,float b,float c,);宣告
全域性變數(定義在所有函式外面的變數叫全域性變數)
區域性變數(定義在大括弧裡面的變數)
變數的作用域,就是變數的生命週期:在大括號外面使用不了裡面的變數,裡面能夠使用外面的變數(裡面能夠看到外面)
14.陣列
要想使用陣列,就必須先定義它。
語法: 資料型別 陣列名稱[整型常量]
舉例:Int cj[6]
(1).逐一賦值Int cj[0]=44;Int cj[1]=55;..........Int cj[5]=99;
(2).在定義時賦值Int cj[6]={44,55,66,77,88,99};
(3).for迴圈賦值
for(int i=0,i<6,i++)
{
cj[i]=60+i
}
printf(“cj[%d]=%d”,i,cj[i]);
15.二維陣列
在c語言中,字串就是使用字元陣列來儲存的
(1)
char chh[]={‘a’,’a’,’a’,’a’,’\0’};
Printf(“%s”,chh);(輸出的是aaaa)
(2)
char chh[]=”hello”;相當於char chh[6]={‘h’,’e’,’l’,’l’,’o’,’\0’};
(3)
int n[3][3]={{0,1,2},{3,4,5},{6,7,8}};
16.指標
(1)
int a;
a=123;
printf(“%d”,*&a)
&變數 取地址的符號
*地址 得到地址裡面的內容
(2)
{
int a;
a=123;
printf(“a=%d\n”,a);
int * p;
p=&a;
*p=250;
printf(“a=%d\n”,a);
return 0;
}第一次輸出123,第二次輸出250.
(3)指標使用的情況:
1.在一個函式裡面想訪問另一個函式裡的變數
2.動態記憶體申請
17.陣列與指標
陣列名就是一個指標
{
int a[10];
for(int i=0;i<10;i++)
{
a[i]=i+1
}
int * p=a ;
printf(“a[9]=%d\n”,*(p+9))
}
輸出陣列
{
int a[10];
for(int i=0;i<10;i++)
{
a[i]=i+1
}
int * p=a ;
for(int i=0;i<10;i++)
{
printf(“a[%d]=%d\n”,i,*(p+i)) ;
}
}
18.字串
#include<string.h>
Strlen計算字串的長度
Strcat字串相連
Strcmp字串的比較0代表相等
Strcpy字串的賦值
19.結構體
語法: Struct結構名稱
{
結構的資料
};
舉例1.:
舉例2:
20.結構體的使用
結構是可以巢狀的,結構中還可以有結構。
別名typedef
21.聯合和列舉
聯合union
結構中的成員都有自己單獨的記憶體,聯合中的成員是共同使用記憶體。對於聯合,在同一時間只能使用一個成員。
聯合在程式中的運用:
列舉enum(羅列值)
22.檔案
1.開啟檔案fopen
2.對檔案進行操作(讀r或寫w)
寫檔案有3個函式:fputc寫一個字元;fputs寫一個字串;fprintf用格式化的寫。
讀檔案的函式:fscanf
3.關閉檔案fclose
舉例:
{
FILE * fp=NULL;
fp=fopen(“abc.txt”,”w”);第一個引數是要開啟的檔案;第二個引數是操作的型別w r
if(fp==NULL)
{
printf(“開啟檔案失敗!”);
return 0;
}
for(int i=’a’;i<=’z’;i++)
{
fputc(i,fp);輸出a到z的26個字母
}
fclose(fp);
return 0;
}
23.二進位制檔案
寫檔案:fwrite
讀檔案:fread