久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

C語言程序設計基礎知識要點

時間:2019-05-11 22:55:30下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《C語言程序設計基礎知識要點》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《C語言程序設計基礎知識要點》。

第一篇:C語言程序設計基礎知識要點

01.C程序基本結構

一、C語言的特點:

1、C語言源程序的基本組成單位是函數;一個C程序可由若干個函數組成,其中必須有且僅有一個以main命名的主函數,其余的函數名稱可由編程者自行設定。,2、C程序的執行總是由main()函數的第一個可執行語句開始,到main()函數的最后一個可執行的語句結束;而其他函數都是在main()函數開始執行以后,通過其他函數的調用才得以運行。

3、C語言系統提供了豐富的庫函數,用戶在程序中需要調用某個庫函數時,必須用#include編譯預處理命令將描述該庫函數的頭文件包含進去。

二、C程序的書寫格式:

1、語句可從分開放在任意多行內;

如:printf(“To C,”);

printf(“ or not to C:”);

與printf(“To C , or not to C:”);是等價的2、一行中可以有若干個語句;

如:a=123;b=345;

3、每個語句和數據定義的最后必須有一個分號;

三、C語言程序的運行:

1、編譯(Compile):將C源程序文件翻譯成能被計算機識別的二進制形式的“目標”文件;編譯時,編譯器將檢查源程序每一條語句的語法錯誤。

2、建造(Bulid):

C語言程序示例:顯示“Hello”

#include

int main(void)

{

printf(“Hello.n”);

return 0;

}

說明:#include 是必不可少的,它包含了C語言標準輸入輸出庫的相關信息;

printf函數來自”標準輸入輸出庫”,可以產生格式化輸出;

n 告訴printf函數執行完信息顯示后要進行換行操作;

return 0 表明程序終止時會向操作系統返回值0;

{ }來標出main()函數的起始和結束。

02.數據類型

一、C語言的特點:

1、C語言源程序的基本組成單位是函數;一個C程序可由若干個函數組成,其中必須有且僅有一個以main命名的主函數,其余的函數名稱可由編程者自行設定。

2、C程序的執行總是由main()函數的第一個可執行語句開始,到main()函數的最后一個可執行的語句結束;而其他函數都是在main()函數開始執行以后,通過其他函數的調用才得以運行。

3、C語言系統提供了豐富的庫函數,用戶在程序中需要調用某個庫函數時,必須用#include編譯預處理命令將描述該庫函數的頭文件包含進去。

二、C程序的書寫格式:

1、語句可從分開放在任意多行內;

如:printf(“To C,”);

printf(“ or not to C:”);

與printf(“To C , or not to C:”);是等價的2、一行中可以有若干個語句;

如:a=123;b=345;

3、每個語句和數據定義的最后必須有一個分號;

三、C語言程序的運行:

1、編譯(Compile):將C源程序文件翻譯成能被計算機識別的二進制形式的“目標”文件;編譯時,編譯器將檢查源程序每一條語句的語法錯誤。

2、建造(Bulid):

C語言程序示例:顯示“Hello”

#include

int main(void)

{

printf(“Hello.n”);

return 0;

}

說明:#include 是必不可少的,它包含了C語言標準輸入輸出庫的相關信息;

printf函數來自”標準輸入輸出庫”,可以產生格式化輸出;

n 告訴printf函數執行完信息顯示后要進行換行操作;

return 0 表明程序終止時會向操作系統返回值0;

{ }來標出main()函數的起始和結束。

03,運算符和表達式

1、算術運算符和表達式

+:加法運算符,如 3+5;

-:減法運算符,如 5-3;

*:乘法運算符,如 5*8;

/:除法運算符,如 3/6;參與運算量均為整型時,結果也為整型,舍去小數;若運算量中有一個是實型,則結果為雙精度實型。

%:模運算符,也稱“取余運算符”,用于計算兩數相除后的余數,如 5%3=2;

2、賦值運算符和賦值表達式

賦值運算符:”=”,其作用是將一個表達式的值賦給一個變量;

其一般形式為:變量=表達式

如:

x=a+b;賦值表達式的功能是計算表達式的值再賦予左邊的變量。賦值運算符具有右結合性。因此

a=b=c=5 可理解為

a=(b=(c=5));復合賦值運算符:+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=

構成復合賦值表達式的一般形式為:變量

雙目運算符=表達式

它等價于:變量=變量 運算符 表達式

如:

a+=5

等價于a=a+5

x*=y+7

等價于x=x*(y+7)

r%=p

等價于r=r%p

3、類型轉換

如果賦值運算符兩邊的數據類型不相同,系統將自動進行類型轉換,即把賦值號右邊的類型換成左邊的類型。具體規定如下:

1)實型賦予整型,舍去小數部分。前面的例子已經說明了這種情況。

2)整型賦予實型,數值不變,但將以浮點形式存放,即增加小數部分(小數部分的值為0)。

3)字符型賦予整型,由于字符型為一個字節,而整型為二個字節,故將字符的ASCII碼值放到整型量的低八位中,高八位為0。整型賦予字符型,只把低八位賦予字符量。

4、自增、自減運算符:

自增運算符:“++”,功能是將變量的值加1; 自減運算符:“--”,功能是將變量的值減1;

可有以下幾種形式:

++i

i自增1后再參與其它運算。

--i

i自減1后再參與其它運算。

i++

i參與運算后,i的值再自增1。

i--

i參與運算后,i的值再自減1。

注:

(1)”++”、”--“的操作對象只能是變量;

(2)”++”、”--“運算優先級相同,且結合方向自右向左;-i++應理解為-(i++),【例】自增、自減運算、#include

main()

{

int i=8;

printf(“%dn”,++i);/* i先加1,再輸出i,輸出結果為9 */

printf(“%dn”,--i);

/* i先減1,再輸出i,結果為8 */

printf(“%dn”,i++);/* 先輸出i,輸出結果為8,i再加1,*/

printf(“%dn”,i--);/* 先輸出i,輸出結果為9,i再減1,*/

printf(“%dn”,-i++);/* 先加輸出-i,輸出結果為-8,i再加1 */

printf(“%dn”,-i--);/* 先輸出-i,輸出結果為-9,i再減1 */

}

5、求字節運算符

計算表達式的結果所占字節數或某種數據類型的定義字節數。

一般格式:sizeof(數據類型標識符)或

sizeof(表達式)

如: sizeof(float)的值為4,占4個字節;

sizeof(2*3)的值為2,占2個字節;

6、關系運算符和關系表達式

關系運算符:“<”(小于)、“<=”(小于等于)、”>”(大于)、”>=”(大于等于)、”==”(等于)、“!=”(不等于)關系表達式:若關系表達式成立,其值為“真”,否則為“假”;在C語言中,用0代表“假”,用1代表“真”;

7、邏輯運算符和邏輯表達式: 邏輯運算符: “!”(非)、“&&”(與)、“||”(或);運算優先級:!>&&>|| 邏輯表達式:用邏輯運算符將表達式連接起來的式子;邏輯表達式的結果仍然是邏輯量(“真”或“假”)

8、條件運算符:

一般格式: <表達式1>?<表達式2>:<表達式3>

先計算表達式1,若表達式1的值為真,則計算表達式2的值,且表達式2的值為整個條件表達式的值;否則,計算表達式3的值,且表達式3的值即為整個條件表達式的值。

9、逗號運算符和逗號表達式

逗號運算符:”,”作為運算符,其功能是將多個表達式組成一個表達式;

一般形式:表達式1,表達式2,…,表達式n

求解過程:先計算表達式1,再計算表達式2,依此計算表達式n,最終,表達式n的值即為整個表達式的值。

04.順序結構

一、概述:

順序語句按照語法形式分為:表達式語句、函數調用語句、復合語句、流程控制語句和空語句。

1、表達式語句:

語法格式:表達式;

如:a+4;

其中賦值語句為最典型的表達式語句,如:

a=5;

a=b+3;

特別提示:分號(;)是表達式語句中不可缺少的一部分。

2、函數調用語句:

如:printf(”I am a student!”);

其中:printf()為系統提供的函數,用于顯示信息。

3、復合語句:

所謂“復合語句”即由一對“{}”括起來的一組語句,也稱“塊語句”或“分程序”。

一般形式為:

{

語句1

語句2

...語句n

}

如:

{

i++;

j=a+3;

printf(“%d,j=”,i,j);

}

特別提示:復合語句中的最后一條語句的分號不得缺少;復合語句的“}”之后不得有分號。

4、空語句:

“空語句”即為一個獨立的分號。

如:

main()

{

...;

...}

二、數據的輸入輸出

C語言提供了一些輸入輸出函數,如printf()和scanf(),在程序中調用這些輸入輸出函數時,必須將標準輸入輸出頭文件“stdio.h”包含到用戶所編寫的源程序中。

如:#include

其中:#include命令一般寫在程序的開頭位置。

1、格式輸入輸出

1、格式輸出函數printf()

(1)一般格式: printf(格式字符串,輸出列表)

其中:“格式字符串”包括“輸出字符”和“格式控制字符”(由%和格式字符組成,指定輸出項的輸出格式)。

? d格式符:用于輸出十進制整數;

%d:以十進制形式顯示輸出變量的值;

%5d:以十進制形式顯示變量的值,且至少占用5個字符的空間,若不夠5位數字,則左側補空格;

%-5d:以十進制形式顯示變量的值,且至少占用5個字符的空間,左對齊;

%5.3d:以十進制形式顯示變量的值,且至少占用5個字符的空間并至少有3位數字,若不夠3位數字,則左側補0;

如:#include

main()

{

int i;

i=40;

printf(“%dn”,i);

printf(“%5dn”,i);

printf(“%-5dn”,i);

printf(“%5.3dn”,i);

}

? f格式符:用于以小數形式輸出實數;

%10.3f:以定點十進制形式顯示變量的值,且總共用10個字符,其中,整數位6位,小數位3位,小數點1位;

如:#include

main()

{

float x;

x=839.21f;

printf(“%10.3fn”,x);

}

? c格式符:用于輸出一個字符;

如:

x=”a”,y =”b”,則 printf(%c %c“,x,y)的輸出結果為:a b

若變量的值為整數,則輸出該整數值為ASCII碼的字符:

如 x=65,y=98,則 printf(“%c, %c”,x,y)的輸出結果為: A, b;

同理,一個字符的數據也可以以整數的形式輸出;

如 x=’a’,y=’B’,則printf(“%d,%d”,x,y)的輸出結果為:97,66

? s格式符:用于輸出一個字符串。

如:printf(“%s”,”I am a student!”)

? e,E格式符:用于以指數形式輸出實數。

如:printf(“%e”, 123.456),則輸出結果為:1.234560e+002;

? g,G格式符:用于輸出實數,根據數值的大小自動選擇f格式或e格式。

2、格式輸入函數scanf()

(1)一般格式:

scanf(格式字符串,變量地址表)

其中:格式字符串使用雙引號括起來的字符串,包括“普通字符”(按原樣輸入)、“格式控制字符”(由%和格式字符組成,用來標定輸入數據的格式)。

變量地址表是由若干個變量地址組成的表列,可以是變量的地址,也可以使字符串的首地址。

? d格式:用于輸入十進制整數;

如:scanf(“%d,%d”,&x,&y);則輸入格式為:123,3456

?u格式:用于輸入十進制無符號整數;

?f格式:用于輸入以小數形式的實數;

如:scanf(“%f,%f”,&x,&y);則輸入格式為:123.23,23.456

?c格式:用于輸入一個字符;

如:scanf(“%c,%c”,&x,&y);則輸入格式為:a,b

?s格式:用于輸入一個字符串;

如:scanf(“%s”,a);假定a為字符數組,則輸入格式為:abcdef

注:輸入的字符串中間不能包含空格。

特別說明:

? 對于變量,”&”加變量名即為該變量的地址;如:&a、&b等分別表示變量a和變量b的地址;

?對于字符串數組或字符指針型變量,數組名和指針變量名本身即為其地址;

?可以在%和格式字符之間加表示位數的數字;如:scanf(“%5s”,p);表示只能輸入5個字符給字符串指針p;

3、字符數據的輸入輸出:

(1)putchar()函數:是向標準輸入輸出設備輸出一個字符;

其調用格式為:putchar(ch);其中:ch為一個字符變量或常量;

putchar()函數作用等同于 printf(“%c”,ch);

(2)getch()getche()和getchar()函數:

?getch():從鍵盤上讀入一個字符,但不顯示在屏幕上;

?getche():從鍵盤上讀入一個字符,顯示在屏幕上;

?getchar():從鍵盤上讀入一個字符,并顯示在屏幕上,但直到輸入回車鍵時才結束輸入,第一個字符為其函數的返回值。

05.選擇結構

一、if語句:

一般格式:

if(表達式)語句;

表示:當“表達式”成立時,則執行“語句”;否則跳過“語句”;

如:if(a>b)printf(“a>b!”);

例:若用戶輸入的數為3的倍數,則顯示”OK”

#include

main()

{

int a;

scanf(“%d”,&a);

if(a %3==0)printf(“OK”);

}

二、if-else 語句:

一般格式:

if(表達式)

語句1;

else

語句2;

例:給出用戶輸入的兩個整數的較大者

#include

main()

{

int a,b;

scanf(“%d,%d”,&a,&b);

if(a>b)

printf(“the max=%d”,a);

else

printf(“ the max=%d”,b);

}

三、if語句的嵌套

1、if子句中嵌套:

? if(表達式1)

if(表達式2)語句1;

else 語句2;

else 語句3;

? if(表達式1)

{ if(表達式2)語句1;}

else 語句2;

2、else子句中嵌套

? if(表達式1)語句1;

else

if(表達式2)語句2;

else 語句3;

? if(表達式1)語句1;

else

if(表達式2)語句2;

3、嵌套一般格式:

if(表達式1)語句1;

else if(表達式2)語句2;

else if(表達式3)語句3;

else if(表達式n)語句n;

else 語句n+1;

例:將用戶輸入的成績按以下規則轉換成等級成績:

分數: 90~100

等級:優

分數: 80~89

等級:良

分數: 70~79

等級:中

分數: 60~69

等級:及格

分數: 60以下

等級:不及格

# include

main()

{

int d;

printf(“輸入分數:”);

scanf(“%d”,&d);

if(d>=90)printf(“優”);

else if(d>=80)printf(“ 良”);

else if(d>=70)printf(“ 中”);

else if(d>=60)printf(“ 及格”);

else printf(“ 不及格”);

}

四、條件語句:

表達式1 ? 表達式2 :表達式3

執行的過程:若表達式1的值為非0時,該條件語句的職位表達式2,否則為表達式3;

例:求一個整數的絕對值

#include

main()

{

int i,absi;

scanf(“%d”,&i);

absi=i>0 ? i :-i;

printf(“%d絕對值是%dn”,i,absi);

}

五、switch語句

switch(表達式)

{

case 常量表達式1:

語句1;

break;

case常量表達式2:

語句2;

break;

case常量表達式n:

語句n;

break;

default:

語句n+1;

}

例:商店賣貨物,每一件3.5元,按購買的數量給與優惠:

購買100件,優惠5%;

購買200件以上,優惠6%;

購買300件以上,優惠8%;

購買400件以上,優惠10%;

購買500件以上,優惠15%;

#include

main()

{

int n;

float p,price;

scanf(”%d“,&n);

switch(n/100)

{

case 1:

p=0.05;

break;

case 2:

p=0.06;

break;

case 3:

p=0.08;

break;

case 4:

p=0.10;

break;

case 5:

p=0.15;

break;

}

price=3.5*n*(1-p);

printf(”%應付款=%7.2fn“,price);

}

06.循環結構

一、for語句:

一般格式: for(表達式1;表達式2;表達式3)語句;

表示:先計算表達式1的值,再計算表達式2的值,若表達式2的值為0,則跳出循環體,轉去執行循環體后面的程序命令;若表達式2的值非0,則執行循環體中的語句,接著計算表達式3的值;而后,再從計算表達式2的值開始重復上訴操作,直到表達式2的值為0時結束。

例:計算sum=1+2+3+…+100的值”

#include

main()

{

int i,sum;

sum=0;

for(i=1;i<=100;i++)

sum=sum+i;

printf(“sum=%d”,sum);

}

二、while 語句:

一般格式:

while<表達式>

語句;

表示:先計算表達式的值,若為非0,則執行循環體語句,然后再計算表達式的值,重復上述過程,直到計算表達式的值為0時結束循環。

例:計算sum=1+2+3…+100的值

#include

main()

{

int i,sum;

i=1;

sum=0;

while(i<=100)

{

sum=sum+i;

i++;

}

printf(“sum=%d”,sum);

}

三、do-while語句

1、一般格式:

Do

語句;

While<表達式>;

表示:先執行一次循環語句,然后計算表達式的值,若表達式的值非0,則再執行循環語句,然后從計算表達式的值開始重復上述過程,直到計算表達式的值為0,循環結束。

例:計算sum=1+2+3…+100的值

#include

main()

{

int i,sum;

i=1;

sum=0;

do

{

sum=sum+i;

i++;

}while(i<=100);

printf(“sum=%d”,sum);

}

四、break和continue語句:

1、break語句:

使用break語句可以提前結束由while、for、do-while語句構成的循環,而去執行循環下面的語句。

例:判定用戶輸入的一個數是否為素數

#include

main()

{

int a,d;

printf(“請輸入一個整數:”);

scanf(“%d”,&a);

for(d=2;d

if(a%d==0)

break;// 跳出當前的循環,執行循環后面的語句

if(d

printf(“%d 不是素數”, a);

else

printf(“%d 是素數 “,a);

}

2、continue:

continue語句用于for、while、do-while語句中,其作用是結束本次循環,接著進入下一次是否執行循環的判斷。例:輸入10個非0的整數并求和。

#inclu de

main()

{

int i,n=0,sum=0;

while(n<10)

{

printf(“ 請輸入整數:”);

scanf(“%d”,&i);

if(i==0)

continue;// 若為0,則繼續輸入下一個數

sum+=i;

n++;

}

printf(“%d”,sum);

} 五、三種循環的比較:

1、三種循環可以處理同一個問題,一般情況下可以相互代替;

2、while和do-while循環語句只在while語句之后指定循環條件,在循環體內應包含使循環趨于結束的語句;for循環語句可以在<語句3>中包含使循環趨于結束的語句;

3、對于while和do-while循環語句,循環變量的初始化應在while和do-while語句之前完成;for循環語句可以在<表達式1>中進行;

4、while和for語句是先判斷表達式,后執行循環;do-while循環語句是先執行循環,后判斷表達式;

07數組

數組是一組具有同一名字、不同下標的變量。數組中帶下標的變量稱為數組元素,每個數組元素由數組名字和下標唯一地來確定;同一數組中的元素數據類型相同。一、一維數組:

1、定義:只有一個下標的數組。

2、定義格式: 類型說明符

數組名[常量表達式]

如: int a[3];//定義了一個一維數組,名稱為a,數據類型為整型,含3個數組元素 a[0]、a[1]、a[2];

說明:

?類型說明符:是指數組的數據類型;

?常量表達式:是一個值為正整數的表達式,用來表示該數組的元素的個數,即數組的大小;

3、數組的引用:

數組名[下標];

如: a[2]

4、數組的初始化:

?對數組的全部因素賦初值:

如: int a[3]={10,20,30};則該語句執行后,a[0]=10,a[1]=20,a[2]=30;

? 對數組的部分元素賦初值:

如:int b[3]={12,11};則該語句執行后,b[0]=12,b[1]=11,a[2]=0;

?對數組的全部元素賦初值時,也可將數組定義為一個不確定長度的數組:

如:int c[ ]={10,15,20};則該語句執行后,數組c的長度自動確定為3,c[0]=10,c[1]=15,c[2]=20;

例:將輸入的10個整數按反序輸出

#include

main()

{

int a[10],i;

printf(”請輸入10個整數:“);

for(i=0;i<10;i++)

scanf(”%d“,&a[i]);

printf(” 反序輸出:“);

for(i=9;i>=0;i--)

printf(”%d“,a[i]);

printf(”n“);

}

例:計算Fibonacci數列的前20項

Fibonacci數列定義:

f(1)=1

f(2)=1

f(n)=f(n-1)+f(n-2)(n>2)

#include

main()

{

int f[21],i;

f[1]=1;

f[2]=1;

for(i=3;i<=20;i++)

f[i]=f[i-1]+f[i-2];

for(i=1;i<=20;i++)

{

printf(”%8d“,f[i]);

//每個數字占8位

if(i%5==0)

printf(”n“);

//按5個一行輸出

}

} 二、二維數組:

具有兩個下標的數組為二維數組。

1、定義格式: 類型說明符

數組名[常量表達式][常量表達式]

如: int a[3][2];//定義了一個二維數組,名稱數組名為a,含有6個元素:a[0][0]、a[0][1]、a[1][0]、a[1][1]、a[2][0]、a[2][1];

說明:

?第一個常量表達式指出的是數組的行數;第二個常量表達式指出的是數組的列數;

?二維數組元素的順序是:按行存放;即先順序存放第一行的元素,再存放第二行的元素…以此類推;

其存儲格式:

a[0][0] a[0][1]

a[1][0] a[1][1]

a[2][0] a[2][1]

2、二維數組的初始化: 同一維數組。

?分行為二維數組賦初值:

int a[3][2]={{1,2},{3,4},{5,6}};則該語句執行后,a[0][0]=1, a[0][1]=2, a[1][0]=3,a[1][1]=4, a[2][0]=5, a[2][1]=6;

?按數組在存儲時的排列次序賦初值:

int a[3][2]={1,2,3,4,5,6};

?對數組的部分元素賦初值:

int a[3][2]={{1},{2,3},{4}};

?忽略第一維的長度,對二維數組賦初值:

int a[][2]={1,2,3,4,5,6};該語句執行后,C語言系統自動計算出第一維的長度為6/2=3,同樣有:a[0][0]=1, a[0][1]=2,a[1][0]=3,a[1][1]=4, a[2][0]=5, a[2][1]=6;

例:將兩個2行3列的矩陣相加,并顯示結果。

#include

main()

{

int a[2][3]={1,3,5,7,9,11};

int b[2][3]={2,4,6,8,10,12};

int c[2][3],sum=0,i,j;

for(i=0;i<2;i++)

//i 表示第1行到第3行

for(j=0;j<3;j++)

//j 表示第1列到第3列

c[i][j]=a[i][j]+b[i][j];

for(i=0;i<2;i++)

for(j=0;j<3;j++)

{

printf(“%5d”,c[i][j]);

if((j+1)%3==0)printf(“n”);

} }

08字符數組

字符數組是用來存放字符的數組,字符數組中的一個元素存放一個字符。

1、字符數組的定義:

char a[10];

2、字符串:字符串是借助于字符數組來存放的,并規定以字符’

主站蜘蛛池模板: 久久这里只精品国产免费10| 亚洲国产成人久久综合人| 中字幕久久久人妻熟女天美传媒| 五月色丁香婷婷网蜜臀av| 黄色视频网站免费| 国产精品青青在线观看爽香蕉| 中文字幕 亚洲精品 第1页| 亚洲女人被黑人巨大进入| 国产午夜免费高清久久影院| 国产亚洲精品第一综合另类| 国产一区二区在线视频| 亚洲成av人片在线观看天堂无码| 国产特级毛片aaaaaa毛片| 无码免费h成年动漫在线观看| 最新系列国产专区|亚洲国产| 五级黄高潮片90分钟视频| 国内揄拍国产精品人妻门事件| 丰满少妇人妻hd高清大乳在线| 午夜男女爽爽爽在线视频| av性色av久久无码ai换脸| 成人精品一区日本无码网站| 国产免费毛卡片| 内射女校花一区二区三区| 中文字幕人成乱码熟女香港| 亚洲日本欧美日韩中文字幕| 一本色综合亚洲精品蜜桃冫| 秋霞无码久久一区二区| 欧美黑人xxxx性高清版| 大陆极品少妇内射aaaaa| 欧美午夜精品久久久久免费视| 亚洲乱码一区二三四区ava| 精品国产粉嫩内射白浆内射双马尾| 乱人伦人妻中文字幕在线| 亚洲超清无码制服丝袜无广告| 波多野结衣久久精品99e| 国产欧美视频综合二区| 国产熟妇另类久久久久| 国产在线视频一区二区三区欧美图片| 一本加勒比hezyo无码资源网| 色欲久久久天天天综合网精品| 亚洲性夜色噜噜噜在线观看不卡|