C語言筆記
1.Printf輸出函數(shù)語法
printf的語法 輸出語句
(1)printf("你想輸出的內(nèi)容");
(2)printf("格式字符串",...);占位符%d整形數(shù) %f小數(shù) %s字符串 %c單個字符
printf("\n");換行
2.常量與變量
定義變量 語法:數(shù)據(jù)類型 變量名
C語言中數(shù)據(jù)類型:
字符char,短整型short
整型int,長整型long
單精度浮點:float
長精度浮點:double
要想使用變量,必須先定義它。變量通過賦值語句保存東西。
3.scanf輸入函數(shù)語法
scanf("數(shù)據(jù)類型的占位符",地址)%d %f %s?。ィ?br>
%ld?。ィ欤?/p>
inta,b;
printf("請輸入第一個數(shù)")
scanf("%d",&a)
printf("請輸入第二個數(shù)")
scanf("%d",&b)
printf("%d+%d=%d\n",a,b,a+b);
4.運算符
(1)特殊運算符:() .->?。郏?br>
(2)算術(shù)運算符:+—×/%++--
(3)關(guān)系運算符:>?。荆健。肌。迹健。剑健 。。?br>
(4)位操作運算符:&∧/<<?。荆?br>
(5)邏輯運算符:&&\\!
(6)條件運算符:?:
(7)賦值運算符:= +=?。健 粒健。健。ィ?br>
5.無條件轉(zhuǎn)向之goto語句goto標簽
goto l;
l:```
**條件轉(zhuǎn)向語句if語句**
if(條件)
{
條件成立時要做的事(一行或多行代碼)
}
舉例:
int a;
scanf(“%d”,&a);
if(a%2==0)
{
Pintf(“%d是偶數(shù)!\n”,a);
}
if(a%2!=0)
{
Pintf(“%d是奇數(shù)!\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是偶數(shù)!\n”,a);
}
else
{
Pintf(“%d是奇數(shù)!\n”,a);
}```
舉例2:
int a=0;
printf(“請輸入一個有效的分數(shù)(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是優(yōu)良!\n”,a);
}
else
{
Printf(“%d是優(yōu)秀!\n”,a);
}```
**7.條件判斷之switch開關(guān)語句**
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(“對不起,無法轉(zhuǎn)換!”);
}```
舉例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(“對不起,無法轉(zhuǎn)換\n”);
break;
}```
8.循環(huán)之for語句
從某一處開始,連續(xù)不斷的做一件事,就叫循環(huán)。
for(表達式1(賦值語句 初值);表達式2(條件);表達式3(增值的賦值語句))
{
循環(huán)要做的事(一行或多行代碼)
}```
舉例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的數(shù))
}```
舉例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:結(jié)束本次循環(huán),開始下一次循環(huán)
Break:跳出循環(huán)
For循環(huán)的嵌套:外面的for循環(huán)一次,里面的for循環(huán)一圈,再循環(huán)到外面的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.循環(huán)之while語句
while(條件)
{
循環(huán)體
}```
舉例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.循環(huán)之do while語句**
do
{
循環(huán)體
}while(條件);```
舉例1:
int i=0,sum=0;
do
{
i++;
sum+=i
}while(sum!=3003);
printf(“i=%d\n”,i);(77)```
當知道循環(huán)次數(shù)的時候,用for循環(huán),當不知道循環(huán)次數(shù)的時候,用while或do while循環(huán)。
舉例:
int n;(保存總?cè)藬?shù))
int score;(成績)
int sum=0;(總分)
printf(“請輸入你班級總?cè)藬?shù)”)
scanf(“%d”,&n)
for(int i=1;i<=n;i++)
{
printf(“請輸入第%d名同學(xué)成績”,i);
scanf(“%d”,&score);
sum+=score;
}
printf(“平均分是%g\n,sum*1.0/n”);```
舉例:
int n=0;(計數(shù)器)
int sum=0;(累加器)
int temp;(每一名同學(xué)成績)
printf(“請輸入第%d名同學(xué)成績”,n+1);
scanf(“%d”,&temp);
while(temp>0)
{
n++;
sum+=temp;
printf(“請輸入第%d名同學(xué)成績”,n+1);
scanf(“%d”,&temp);
}
printf(“平均分是%g\n,sum*1.0/n”);```
**11.函數(shù)**
1.在程序的不同地方出現(xiàn)了相同的代碼
2.把大的應(yīng)用改成幾個小的部分
定義(函數(shù)的主體部分,代表函數(shù))
聲明(告訴下面的代碼這個函數(shù)存在,你可以使用它)
調(diào)用(使用函數(shù))
返回值 函數(shù)的名字(參數(shù)的列表)——函數(shù)頭
{
函數(shù)體
}

Printf(“11”);相同時,就用函數(shù),例如:

**12.自定義函數(shù)**
舉例1.

舉例2.

**13.函數(shù)的調(diào)用**
點右鍵-——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,);聲明

全局變量(定義在所有函數(shù)外面的變量叫全局變量)
局部變量(定義在大括弧里面的變量)
變量的作用域,就是變量的生命周期:在大括號外面使用不了里面的變量,里面能夠使用外面的變量(里面能夠看到外面)
**14.數(shù)組**
要想使用數(shù)組,就必須先定義它。
語法: 數(shù)據(jù)類型 數(shù)組名稱[整型常量]
舉例:```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循環(huán)賦值
for(int i=0,i<6,i++)
{
cj[i]=60+i
}
printf(“cj[%d]=%d”,i,cj[i]);```
15.二維數(shù)組
在c語言中,字符串就是使用字符數(shù)組來保存的
(1)
char chh[]={‘a(chǎn)’,’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)```
&變量 取地址的符號
*地址 得到地址里面的內(nèi)容```
(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.在一個函數(shù)里面想訪問另一個函數(shù)里的變量
2.動態(tài)內(nèi)存申請


17.數(shù)組與指針
數(shù)組名就是一個指針
{
int a[10];
for(int i=0;i<10;i++)
{
a[i]=i+1
}
int * p=a ;
printf(“a[9]=%d\n”,*(p+9))
}```
輸出數(shù)組
{
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.結(jié)構(gòu)體**
語法: Struct結(jié)構(gòu)名稱
{
結(jié)構(gòu)的數(shù)據(jù)
};```
舉例1.:

舉例2:

20.結(jié)構(gòu)體的使用
結(jié)構(gòu)是可以嵌套的,結(jié)構(gòu)中還可以有結(jié)構(gòu)。
別名typedef```

**21.聯(lián)合和枚舉**
聯(lián)合union```
結(jié)構(gòu)中的成員都有自己單獨的內(nèi)存,聯(lián)合中的成員是共同使用內(nèi)存。對于聯(lián)合,在同一時間只能使用一個成員。

聯(lián)合在程序中的運用:

枚舉enum(羅列值)```
**22.文件**
1.打開文件fopen
2.對文件進行操作(讀r或?qū)憌)
寫文件有3個函數(shù):fputc寫一個字符;fputs寫一個字符串;fprintf用格式化的寫。
讀文件的函數(shù):fscanf
3.關(guān)閉文件fclose

舉例:
{
FILE * fp=NULL;
fp=fopen(“abc.txt”,”w”);第一個參數(shù)是要打開的文件;第二個參數(shù)是操作的類型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
