C語(yǔ)言期末復(fù)習(xí)之基礎(chǔ)學(xué)問(wèn)篇_第1頁(yè)
C語(yǔ)言期末復(fù)習(xí)之基礎(chǔ)學(xué)問(wèn)篇_第2頁(yè)
C語(yǔ)言期末復(fù)習(xí)之基礎(chǔ)學(xué)問(wèn)篇_第3頁(yè)
C語(yǔ)言期末復(fù)習(xí)之基礎(chǔ)學(xué)問(wèn)篇_第4頁(yè)
C語(yǔ)言期末復(fù)習(xí)之基礎(chǔ)學(xué)問(wèn)篇_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言期末復(fù)習(xí)之基礎(chǔ)學(xué)問(wèn)篇

—楊士帥

一C語(yǔ)言概述

>程序:一組計(jì)算機(jī)能夠識(shí)別和執(zhí)行的指令。指令的有序的集合。

>計(jì)算機(jī)語(yǔ)言:人和計(jì)算機(jī)溝通信息,計(jì)算機(jī)和人都能識(shí)別的語(yǔ)言

Ac語(yǔ)言的注釋:

〃單行注釋

/*……*/多行注釋。

Ac語(yǔ)言的結(jié)構(gòu):

1.由一個(gè)或多個(gè)源程序文件組成。

2.函數(shù)是c程序的基本單位。

3.一個(gè)C程序至少含有一個(gè)main函數(shù),也可以由一個(gè)main函數(shù)

和若干個(gè)其他函數(shù)組成。

4.c的這些特點(diǎn)簡(jiǎn)單實(shí)現(xiàn)程序的模塊化。

5.C程序總是從main函數(shù)起先執(zhí)行,而且不論main函數(shù)的位置

如何。

>每個(gè)語(yǔ)句和數(shù)據(jù)的定義后面必需有一個(gè)括號(hào)。

AC語(yǔ)言本身沒(méi)有輸入輸出函數(shù),輸入輸出操作是庫(kù)函數(shù)scanf和

printf供應(yīng)的。

二數(shù)據(jù)的類型和運(yùn)算

(一)常量:在程序運(yùn)行的過(guò)程中,其值不能被變更。

1.整型常量:1000.

2.實(shí)型常量:0.34,12.34e3.

3.字符常量:'a','\n'.

4.字符串常量:“boy”。

5.符號(hào)常量:ftdefinePI3.1416

(二)變量:在程序運(yùn)行期間,變量的值是可以變更的。

1.變量必需先定義后運(yùn)用。

2.剛定義尚未賦值的變量具有隨機(jī)值。

3.定義變量要同時(shí)定義名字和類型。

4.變量名和變量值是兩個(gè)不同的概念。

i.變量名實(shí)際是以這個(gè)名字代表一個(gè)內(nèi)存地址。

ii.變量值就是該內(nèi)存單元當(dāng)前存儲(chǔ)的值。

(三)標(biāo)識(shí)符:一個(gè)對(duì)象的名字。

1.只能由字母,數(shù)字和下劃線三種字符組成,而且第一個(gè)字符必

需為字母或下劃線。

2.標(biāo)識(shí)符的長(zhǎng)度無(wú)限制,但不能以關(guān)鍵字作為標(biāo)識(shí)符。

3.不合法的標(biāo)識(shí)符:M.D.John,#33,3D64,Include。

(四)數(shù)據(jù)類型:就是對(duì)數(shù)據(jù)安排儲(chǔ)存單元的支配,包括儲(chǔ)存單

元的長(zhǎng)度以及數(shù)據(jù)的存儲(chǔ)形式。

數(shù)據(jù)類型寬度

CharIB

Shortint2B

Int4B

Longint4B

Float4B

Double8B

Longdouble80B

整數(shù)的默認(rèn)時(shí)signed,各整數(shù)類型均可加修飾符unsigned表示無(wú)符

號(hào)整數(shù)類型,unsignedint可以簡(jiǎn)寫成unsigned.

1.整型:

>一個(gè)十進(jìn)制數(shù)是0到9的序列。

?十六進(jìn)制應(yīng)當(dāng)加前綴Ox。如:Oxfa,0xAE03

A八進(jìn)制應(yīng)當(dāng)加前綴0.如:030.

>運(yùn)用科學(xué)記數(shù)法,e/E的后面肯定不能在跟小數(shù),且E/e的前面

必需有值。

2.字符型:

A用單引號(hào)括起來(lái)的單個(gè)字符。如:'MJ0,.事實(shí)上存儲(chǔ)的是

該數(shù)據(jù)的ASCII碼。所以也可以把他們看成是整型量,C語(yǔ)言容

許對(duì)整型變量賦以字符型,也允許對(duì)字符變量賦以整形值。

3.轉(zhuǎn)義字符:

轉(zhuǎn)義字符含義

\bBackspace

\tTab

\n換行

(五)運(yùn)算符:

1.算術(shù)運(yùn)算符:

>整數(shù)除法:兩個(gè)整數(shù)相除的結(jié)果為整數(shù)。

Ex:5/3=1,舍去小數(shù)部分。

-5/3=-1,向零取整。

>浮點(diǎn)除法:

保證除數(shù)和被除數(shù)中至少有一個(gè)是浮點(diǎn)數(shù)。

Ex:5/4.0=1.25.

A%模運(yùn)算要求運(yùn)算元為整數(shù),結(jié)果也是整數(shù)。

Ex:5%3=2.

Ac語(yǔ)言沒(méi)有乘方運(yùn)算,但pow函數(shù)可以實(shí)現(xiàn)乘方運(yùn)算。

pow(x,y)x的y次方。

#include<math.h>.

算數(shù)運(yùn)算符的優(yōu)先級(jí)及結(jié)合性:先乘除后加減,從左至右。

A不同類型數(shù)據(jù)的混合運(yùn)算:類型的自動(dòng)轉(zhuǎn)換,編譯系統(tǒng)會(huì)自動(dòng)把

各操作系統(tǒng)操縱數(shù)轉(zhuǎn)化為操作數(shù)中最長(zhǎng)的類型。

EX:若int型及float或double型數(shù)據(jù)進(jìn)行運(yùn)算時(shí),系統(tǒng)會(huì)自動(dòng)把

int及float型數(shù)據(jù)轉(zhuǎn)化為double型,然后在進(jìn)行運(yùn)算,結(jié)果時(shí)

double型。

2.自加自減運(yùn)算符:

>i++,i--:在運(yùn)用i之后將i的值加/減1.

>++I,—i:在運(yùn)用i之前,先將i的值加/減1.

3.強(qiáng)制類型轉(zhuǎn)換:

(double)a將a轉(zhuǎn)化為double類型。

短類型->長(zhǎng)類型平安

長(zhǎng)類型->短類型有可能會(huì)丟失數(shù)據(jù)。

4.運(yùn)算符的優(yōu)先級(jí):

1,()、{}、□、.、(結(jié)構(gòu)體成員運(yùn)算符)、->(指向結(jié)構(gòu)體成員運(yùn)

算符)

2,單目運(yùn)算符!(非)、一一(自減)、++(自加)、?(按位取反)、

正號(hào)(+)、負(fù)號(hào)(-)

3,算術(shù)運(yùn)算符*、樂(lè)/,+、-

4,關(guān)系運(yùn)算符<、>、>=、<=,=、!=

5,邏輯運(yùn)算符&&和||

6,賦值運(yùn)算符=

7,逗號(hào)運(yùn)算符(表達(dá)式1),(表達(dá)式2),(表達(dá)式3)..?

還有就是左右運(yùn)算依次

a+b+為雙目運(yùn)算符,(a>b)?a:b中?:為3目運(yùn)算符.!a為單目

運(yùn)算符.

單目,三目運(yùn)算符都為自右向左結(jié)合,雙目運(yùn)算符除賦值運(yùn)算符都為

自左向右結(jié)合.

5.關(guān)系運(yùn)算符:

>,<,>S<S==,!二.用來(lái)比較兩個(gè)操作數(shù)之間的關(guān)系,運(yùn)算結(jié)果為1或

0.

6.邏輯運(yùn)算符:

!,&&,IN用來(lái)實(shí)現(xiàn)邏輯運(yùn)算和邏輯推斷。

用非0表示邏輯值的true,用0表示邏輯值的false。

7.條件運(yùn)算符:

三目運(yùn)算符:表達(dá)式a?表達(dá)式b:表達(dá)式c

若表達(dá)式的值非0,則返回表達(dá)式b的值;若表達(dá)式的a的值為0,

則返回表達(dá)式c的值。

8.逗號(hào)運(yùn)算符:

用來(lái)將若干獨(dú)立的表達(dá)式分隔并連接構(gòu)成一個(gè)逗號(hào)表達(dá)式。

9.賦值運(yùn)算符:

變量二表達(dá)式。右結(jié)合性。

三輸入輸出函數(shù)

(一)限制臺(tái)I/O:程序及外界溝通。

(二)C語(yǔ)言中全部的I/O都是由庫(kù)函數(shù)完成的,要用include

將相關(guān)頭文件包含在源文件當(dāng)中。運(yùn)用標(biāo)準(zhǔn)輸入輸出函數(shù)時(shí)要用

到stdio.h文件。

(三)格式輸出函數(shù):printf(“格式限制字符串”,表達(dá)式列表)。

格式字符意義

d,i以帶符號(hào)的十進(jìn)制輸出整數(shù)

0以八進(jìn)制形式輸出無(wú)符號(hào)整數(shù)

(不帶前綴0)

X,x以十六進(jìn)制的無(wú)符號(hào)數(shù)輸出整數(shù)

(不帶前綴Ox)

U以無(wú)符號(hào)的十進(jìn)制形式輸出整數(shù)

f以小數(shù)的形式輸出單,雙精度實(shí)

數(shù),隱含6位小數(shù)

E,e以指數(shù)的形式輸出單,雙精度實(shí)

數(shù)

G,g以%£或%2中較短的輸出寬度輸

出單、雙精度實(shí)數(shù)

c輸出單個(gè)字符

s輸出字符串

格式修飾符:

O%-m.nlf,%-mld

字符說(shuō)明

1用于輸出長(zhǎng)整形數(shù)據(jù)以及double型數(shù)

據(jù)

m數(shù)據(jù)顯示的最小寬度

n對(duì)實(shí)數(shù),表示輸出n位小數(shù)。

對(duì)字符串,表示截取的字符個(gè)數(shù)。

—輸出的數(shù)字或字符在顯示寬度區(qū)域內(nèi)

左對(duì)齊。

?未指定輸出寬度m,則按實(shí)際位數(shù)輸出。

?未指定小數(shù)位數(shù),默認(rèn)6位。

A寬度計(jì)算中小數(shù)點(diǎn)要占一位。

?若數(shù)據(jù)實(shí)際寬度比制定寬度要小,默認(rèn)右對(duì)齊,即左補(bǔ)

空格。有修飾符-,則左對(duì)齊,即右補(bǔ)空格。

》若數(shù)據(jù)的實(shí)際寬度比指定寬度大,則按實(shí)際寬度輸出。

<4>格式輸入函數(shù):用戶用指定的格式從盤上把數(shù)據(jù)輸入到指定的變

量中。

scanf(“格式限制字符”,變量地址列表);

>在scanf語(yǔ)句的格式字符串中,假如沒(méi)有非格式字符在

"%d%d%dv之間做輸入時(shí)的間隔,在輸入時(shí)要用一個(gè)或

一個(gè)以上的空格或回車或TAB鍵作為輸入數(shù)據(jù)之間的間

隔。

>scanf函數(shù)中的格式限制后面應(yīng)當(dāng)是變量地址,而不是變

量名。

>不能用格式限制來(lái)規(guī)定輸入數(shù)據(jù)的精度。

O:scanf(z,%7.2f",&a);X

scanf("%f",&a);V

>假如輸入在格式限制字符串中除了格式字符還有其它字

符,那么在輸入時(shí)這些字符將被作為間隔符,要輸入相

同的字符。

Ascanf(rta=%d,b=%d*,&a,&b)a=12,b=34

在輸入數(shù)據(jù)時(shí)遇到以下?tīng)顩r,則認(rèn)為是一個(gè)數(shù)據(jù)輸入的結(jié)束:

遇到空格鍵,回車鍵,tab鍵。

滿意域?qū)?,?4d,輸入4位結(jié)束。

遇到非法字符。

>在輸入字符型數(shù)據(jù)時(shí),若格式限制字符中沒(méi)有非格式字符,則認(rèn)

為全部輸入的字符均為有效字符。

O如:scanf&a,&b,&c);

?只有當(dāng)輸入為:def時(shí)(BP:不能有間隔),才能

把d賦于a,給予b,'f'給予c。

四流程限制

(一)依次:

>按語(yǔ)句的先后依次依次執(zhí)行。

A復(fù)合語(yǔ)句:可用{}括起來(lái)的多個(gè)語(yǔ)句,構(gòu)成一個(gè)復(fù)合語(yǔ)句。在c

語(yǔ)言中復(fù)合語(yǔ)句被認(rèn)為是一條語(yǔ)句。

(二)分支:

if語(yǔ)句:實(shí)現(xiàn)兩個(gè)分支的選擇結(jié)構(gòu)。

最常用的3種if語(yǔ)句的形式:

1.if(表達(dá)式)語(yǔ)句1(沒(méi)有else子句)

2.if(表達(dá)式)語(yǔ)句1

else語(yǔ)句2(有else子句)

3.if(表達(dá)式1)語(yǔ)句1

elseif(表達(dá)式2)語(yǔ)句2

elseif(表達(dá)式3)語(yǔ)句3

I

I

elseif(表達(dá)式m)語(yǔ)句m

else語(yǔ)句m+1

IF嵌套:在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。

else總是及它上面最近的為配對(duì)的if配對(duì)。

if()

if()語(yǔ)句1

else語(yǔ)句2

else

if()語(yǔ)句3

else語(yǔ)句4

Switch語(yǔ)句:實(shí)現(xiàn)多分支的選擇結(jié)構(gòu)。

依據(jù)表達(dá)式的值,使流程跳轉(zhuǎn)到不同的語(yǔ)句。

switch語(yǔ)句的一般格式:

switch(表達(dá)式)

{case常量1:語(yǔ)句1

case常量2:語(yǔ)句2

case常量n:語(yǔ)句n

default:語(yǔ)句n+1

switch電句中表達(dá)式和常量可以是整形以及字符型。

任何兩個(gè)case后面的常量不行有相同的值。

先計(jì)算表達(dá)式的值,在依據(jù)表達(dá)式的值轉(zhuǎn)向不同的分支。

每個(gè)case分支的語(yǔ)句無(wú)需用{}括起來(lái)。

每個(gè)case分支都是入口點(diǎn)。

break語(yǔ)句時(shí)轉(zhuǎn)移語(yǔ)句,即跳出switch,無(wú)break語(yǔ)句,將執(zhí)行入口

點(diǎn)之后的全部語(yǔ)句。

(三)循環(huán):

>While(表達(dá)式)語(yǔ)句

先推斷循環(huán)條件表達(dá)式的值,若為真,則執(zhí)行循環(huán)體;若為假則不執(zhí)

行循環(huán)體語(yǔ)句。

Ado

循環(huán)體語(yǔ)句

whilie(表達(dá)式)

先無(wú)條件執(zhí)行一次循環(huán)體,然后在推斷循環(huán)條件是否成立。

AFor(表達(dá)式1;表達(dá)式2;表達(dá)式3)

循環(huán)體語(yǔ)句。

表達(dá)式1:為循環(huán)變量設(shè)置初始值。

表達(dá)式2:推斷是否接著循環(huán)。

表達(dá)式3:修改循環(huán)變量的值。

循環(huán)嵌套:一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱之為循環(huán)

嵌套。內(nèi)層循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。3種循環(huán)可以

相互嵌套。

三種循環(huán)的比較:

?一般狀況下,三種循環(huán)可以相互代替。

>循環(huán)中應(yīng)包含使循環(huán)趨于結(jié)束的語(yǔ)句。

A用while和do…while循環(huán)變量操作應(yīng)在while和do…while之

前完成。而for語(yǔ)句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。

>Break:從循環(huán)體中強(qiáng)行退出,結(jié)束整個(gè)循環(huán)。

>Continue:停止本次循環(huán),干脆起先下次循環(huán)。

五函數(shù)

運(yùn)用角度來(lái)看函數(shù)包括庫(kù)函數(shù)和用戶自定義函數(shù)。

庫(kù)函數(shù):由C系統(tǒng)供應(yīng),用戶無(wú)須定義,也不必在程序中作類型說(shuō)明,

只需在程序中包含有該函數(shù)的頭文件即可在程序中干脆調(diào)用。

用戶自定義函數(shù):用戶依據(jù)須要自己編寫的函數(shù)。

從函數(shù)形式來(lái)看:函數(shù)分為無(wú)參數(shù)函數(shù)和有參數(shù)函數(shù)。

無(wú)參數(shù)函數(shù):無(wú)參數(shù)函數(shù)一般用來(lái)執(zhí)行一組操作。無(wú)參數(shù)函數(shù)可以帶

回或不帶回函數(shù)值。

有參數(shù)函數(shù):在調(diào)用函數(shù)時(shí),主調(diào)函數(shù)要通過(guò)參數(shù)向被調(diào)函數(shù)傳遞數(shù)

據(jù)。函數(shù)可以帶回或者不帶回函數(shù)值。一般狀況下,被調(diào)函數(shù)會(huì)返回

一個(gè)函數(shù)值,供主函數(shù)運(yùn)用。

一個(gè)C程序由一個(gè)或多個(gè)程序模塊組成,每一個(gè)程序模塊作為一個(gè)源

程序文件。

對(duì)較大的程序,一般不希望將全部的內(nèi)容都放在一個(gè)文件中,而是將

它們分別放在若干個(gè)源文件當(dāng)中,由若干個(gè)源文件組成一個(gè)C程序。

一個(gè)源程序文件由一個(gè)或多個(gè)函數(shù)及其他相關(guān)語(yǔ)句組成。

一個(gè)源程序文件是一個(gè)編譯的單位,在程序進(jìn)行編譯是以源程序文件

為單位進(jìn)行編譯的,而不死以函數(shù)為單位進(jìn)行編譯的。

C程序的執(zhí)行是從main函數(shù)起先的,假如在main函數(shù)的執(zhí)行過(guò)程中

調(diào)用其他函數(shù),調(diào)用函數(shù)結(jié)束后流程返回到main函數(shù),main函數(shù)結(jié)

束時(shí)整個(gè)程序運(yùn)行結(jié)束。

全部函數(shù)都是平行和同等的,即在定義函數(shù)時(shí)是分別進(jìn)行的,相互獨(dú)

立的,一個(gè)函數(shù)并不從屬于另一個(gè)函數(shù),即函數(shù)不能嵌套定義。函數(shù)

間可以相互調(diào)用,但不能調(diào)用main函數(shù),main函數(shù)是被操作系統(tǒng)所

調(diào)用。

定義函數(shù):

C語(yǔ)言要求在程序中遇到的全部函數(shù),必需先定義后運(yùn)用。

函數(shù)的定義指明白函數(shù)名,函數(shù)返回值類型,函數(shù)實(shí)現(xiàn)的功能以及參

數(shù)的個(gè)數(shù)及類型,將這些信息通知給編譯系統(tǒng)。

函數(shù)定義格式:

類型名函數(shù)名(形式參數(shù)表列)

函數(shù)體

類型說(shuō)明白函數(shù)返回值的類型,它可以是任何有效類型,假如省略,

默認(rèn)為int。

參數(shù)列表運(yùn)用逗號(hào)分割變量表,各變量表由類型和變量名組成,參數(shù)

列表可以為空,表示無(wú)參,但此括號(hào)不能省略,不管定義還是聲明時(shí),

每個(gè)函數(shù)參數(shù)必需同時(shí)含有類型和參數(shù)名。

空函數(shù):{}中類容為空,調(diào)用函數(shù),什么也不做,目的時(shí)便利以后對(duì)

功能的擴(kuò)充,而不會(huì)影響程序的結(jié)構(gòu)。

函數(shù)的返回:return表達(dá)式。

用途:使得本函數(shù)馬上退出,返回到調(diào)用語(yǔ)句的地方,返回一個(gè)值。

函數(shù)可以用兩種方法停止運(yùn)行并返回到調(diào)用它的地方:

執(zhí)行到函數(shù)最終一個(gè)語(yǔ)句。

遇到return語(yǔ)句,函數(shù)的返回值是靠return

語(yǔ)句獲得的。

假如不希望函數(shù)有返回值,將函數(shù)類型聲明為void。

除了類型為void函數(shù)外,其他函數(shù)均有返回值,該值由return語(yǔ)句

確定,假如沒(méi)有return語(yǔ)句函數(shù)將返回一個(gè)不確定的值。

假如函數(shù)沒(méi)有指明函數(shù)返回值的類型,默認(rèn)為int。

當(dāng)函數(shù)的返回值不是整型時(shí),應(yīng)當(dāng):

明確說(shuō)明函數(shù)的類型。

函數(shù)聲明位于第一次調(diào)用之前。

參數(shù)傳遞:

C語(yǔ)言中的函數(shù)調(diào)用傳遞參數(shù)是按值傳送。

假如實(shí)參的修改通過(guò)形參帶回主調(diào)函數(shù),用指針。

用數(shù)組作為函數(shù)參數(shù)時(shí),就把數(shù)組的地址傳給了參數(shù)。

函數(shù)的作用域:

每個(gè)函數(shù)都是一個(gè)獨(dú)立的代碼塊,一個(gè)函數(shù)的代碼屬于該函數(shù)專有。

一個(gè)代碼塊中定義的變量成為局部變量,局部變量隨代碼塊的產(chǎn)生而

產(chǎn)生,隨代碼塊的退出而消亡。

函數(shù)的形參也是局部變量。

在任何一個(gè)函數(shù)之外定義的變量成為全局變量,可以被任何一個(gè)函數(shù)

訪問(wèn),修改。

在函數(shù)內(nèi)部用存儲(chǔ)類型符Static說(shuō)明變量不隨函數(shù)的運(yùn)行,退出而

產(chǎn)生,消亡。但仍舊只能在函數(shù)內(nèi)部訪問(wèn)它。假如全局變量和局部變

量同名,局部變量屏蔽全局變量。

函數(shù)的嵌套調(diào)用:

C語(yǔ)言容許在一個(gè)在一個(gè)函數(shù)的定義中出現(xiàn)對(duì)另一個(gè)函數(shù)的調(diào)用c這

樣就出現(xiàn)了函數(shù)的嵌套調(diào)用。即在被調(diào)函數(shù)中又調(diào)用其他函數(shù)。

六數(shù)組

數(shù)組是一組有序數(shù)據(jù)的集合,下標(biāo)代表了數(shù)據(jù)在數(shù)組中的序號(hào)。

用數(shù)組名和下標(biāo)唯一確定數(shù)組中的元素。

數(shù)組中每一個(gè)元素都必需屬于同一個(gè)數(shù)據(jù)類型。

一維數(shù)組的定義:

類型數(shù)組名[常量表達(dá)式]

數(shù)組名的命名規(guī)則及變量命名規(guī)則相同,數(shù)組也必需先定義后運(yùn)用。

數(shù)組類型事實(shí)上是數(shù)組元素的取值類型。對(duì)于同一數(shù)組,其全部元素

的數(shù)據(jù)類型都是相同的。

數(shù)組民是用戶定義的標(biāo)識(shí)符,不能及其他變量名相同。

定義數(shù)組時(shí),方括號(hào)必需是一個(gè)常量表達(dá)式,表示數(shù)據(jù)的元素個(gè)數(shù),

也稱為數(shù)組長(zhǎng)度??梢允欠?hào)常量或常量表達(dá)式,但不能時(shí)變量。

一維數(shù)組的運(yùn)用:

運(yùn)用數(shù)組就是運(yùn)用他的元素。

數(shù)組的元素和一般變量一樣,只不過(guò)是名字有些特殊。

數(shù)組元素的一般表示形式:

數(shù)組名[下標(biāo)序號(hào)]

運(yùn)用數(shù)組時(shí),數(shù)組下標(biāo)可以是常量,變量和表達(dá)式,從0起先。

一維數(shù)組的初始化:

Inta[10]={0,1,2,3,4,5,6,7,8,9};

可以只給部分元素賦值,當(dāng){}中元素少于元素個(gè)數(shù)時(shí),系統(tǒng)自動(dòng)給前

面元素賦值,其余元素自動(dòng)賦0。

Inta[10]={l,2,3,4,5};

只能給逐個(gè)元素賦值,而不能給數(shù)組整體賦值。

O給十個(gè)元素全部賦3,只能寫為:

inta[10]={3,3,3,3,3,3,3,3,3,3};

O而不能寫為:inta[10]=3;

在定義數(shù)組時(shí),若要給全部元素賦值,可以省略數(shù)組元素的長(zhǎng)度。

O如:inta[5]={l,2,3,4,5};

O可寫為:inta[]={l,2,3,4,5);

二維數(shù)組的定義:

類型變量名[常量表達(dá)式1][常量表達(dá)式2]

二位數(shù)組的運(yùn)用:

數(shù)組名[下標(biāo)1][下標(biāo)2]

數(shù)組中元素依次:

C語(yǔ)言中,二維數(shù)組是按行儲(chǔ)存的。

?inta[3][4]

a[0][0]a[0][l]a[0][2]aEO][3]

a[l][0]a[l][l]a⑴⑵a[l][3]a⑵[0]a⑵⑴

a⑵⑵a⑵[31

二維數(shù)組的初始化:

Inta[5][3]=]={{80,75,92},{61,65,71},{59,63,70},

{85,87,90},{76,77,85}};

如對(duì)全部元素賦值,行下表可以省略,但列下表不能省略。

inta[3][3]={1,2,3,4,5,6,7,8,9};

可以寫為:

inta[][3]={1,2,3,4,5,6,7,8,9);

字符數(shù)組:chare[10];

字符數(shù)組的初始化:假如初始值小于數(shù)組長(zhǎng)度,則將這些字符賦給數(shù)

組中前面的那些元素,其余元素自動(dòng)定位空字符。

字符'\0'作為字符串的結(jié)束標(biāo)記。

字符串處理函數(shù):輸入字符串到字符數(shù)組。

scanf("%s",字符數(shù)組名);

gets(字符數(shù)組名);

?charst[20];gets(st);scanf("%s”,st);

把字符數(shù)組中存放的字符串輸出:

Oprintf(,字符數(shù)組名)

Oputs(字符數(shù)組名)

?charst[20]="China”;puts(st);

printf("%s”,st);

#include<string.h>

stract(字符串1,字符串2)

把字符串2鏈接到字符串1后面。

Strcpy(字符串1,字符串2)

把字符串2的內(nèi)容拷貝的字符串1(覆蓋)

strcmp(字符串1,字符串2)

依據(jù)ASCH碼依次比較兩個(gè)字符串,返回比較結(jié)果。

字符串1二字符串2,返回值二0;

字符串1>字符串2,返回值>0;

字符串k字符串2,返回值<0;

Strlen(字符串)

返回字符串中包含的字符個(gè)數(shù)(不包括結(jié)束標(biāo)記'\0')

Strlwr(字符串)將大寫字母轉(zhuǎn)化成小寫字母。

strupr(字符串)將小寫字母轉(zhuǎn)換成大寫字母。

'A'V:41H-50H

'z-6111-7011

七結(jié)構(gòu)體

定義結(jié)構(gòu)體的類型:struct結(jié)構(gòu)體名

成員列表二類型名+變量名;

);

結(jié)構(gòu)體可以嵌套引用,即一個(gè)結(jié)構(gòu)體的定義中可以引用其他結(jié)構(gòu)體類

型。

structDate

{intmonth;intday;intyear;};

structStu

{intnum;charname[20];

charsex;intage;

structDatebirthday;

charaddr[30];

);

結(jié)構(gòu)體類型及結(jié)構(gòu)體變量是不同的概念,相當(dāng)于變量類型和變量。

只能對(duì)變量賦值,存取或運(yùn)算,而不能對(duì)一個(gè)類型賦值,存取或運(yùn)算。

在編譯時(shí),對(duì)類型是不安排空間的,只對(duì)變量安排空間。

定義結(jié)構(gòu)體類型的變量:

1.先聲明結(jié)構(gòu)體類型,再定義該類型變量

structstudent

(

intnum;charname[20];

charsex;intage;

floatscore;charaddr[30];

);

structstudentstul,stu2;

2.在聲明類型的同時(shí)定義變量

structStudent

{intnum;

charname[20];

charsex;

intage;

floatscore;

charaddr[30];

}studentl,student2;

3.不指定類型名而干脆定義結(jié)構(gòu)體類型變量

?其格式為:

struct

成員表列

}變量名表列;

結(jié)構(gòu)體變量的初始化:

Structdate

(

Intmonth;

Intday;

Intyear;

);

Structdatebirthday={10,22,83};

運(yùn)用結(jié)構(gòu)體變量:只能通過(guò)成員運(yùn)算符引用結(jié)構(gòu)體變量的各個(gè)成員,

一般不能對(duì)結(jié)構(gòu)體變量整體運(yùn)用。

O結(jié)構(gòu)體變量名.成員名

O如:stul.numbirthday,year

假如成員本身又是一個(gè)結(jié)構(gòu)體類型,則要用若干個(gè)成員運(yùn)算符,一級(jí)

一級(jí)找到最低一級(jí)的成員。

O如;

對(duì)結(jié)構(gòu)體變量的成員可以像一般變量一樣進(jìn)行各種運(yùn)算。

stul.num++;

類型定義在前,不安排內(nèi)存,變量定義后,給變量安排一段連續(xù)的內(nèi)

存單元。.

結(jié)構(gòu)體成員名可及程序中的其他變量同名,二者占不同的內(nèi)存單元互

不干擾。.

結(jié)構(gòu)體數(shù)組:就是數(shù)組中的每一個(gè)元素都是一個(gè)結(jié)構(gòu)體類型的變量。

structPerson

(

charname[20];

intnum;

}teacher[3]={"Li",1,"Zhang”,2,"Sun”,3};

指向結(jié)構(gòu)體變量的指針:

指向結(jié)構(gòu)體對(duì)象的指針變量既可以指向結(jié)構(gòu)體變量,也可以用來(lái)指向

結(jié)構(gòu)體數(shù)組中的元素。

指向結(jié)構(gòu)圖變量的指針,其類型必需及結(jié)構(gòu)體變量類型相同。

structStudent*p;

為了運(yùn)用便利和直觀,C語(yǔ)言允許把(*p).num用p->num來(lái)代替。

結(jié)構(gòu)體變量做函數(shù)參數(shù):

用結(jié)構(gòu)體變量的成員作參數(shù):

例如,用num或stu[2].name作函數(shù)實(shí)參,將實(shí)參值傳給形

用結(jié)構(gòu)體變量做參數(shù):

用結(jié)構(gòu)體變量做實(shí)參時(shí),將結(jié)構(gòu)體變量所占的內(nèi)存單元的內(nèi)容全部按

依次傳給形參,形參也必需是同類型的結(jié)構(gòu)體變量。

用指向結(jié)構(gòu)體變量:

指針做實(shí)參,將結(jié)構(gòu)體變量的地址傳給形參。

八指針

內(nèi)存單元的地址稱之為指針。

變量A中存放變量3的地址,稱A是B的指針,即A指向B.

定義指針變量:

Type*name

type可以時(shí)C語(yǔ)言中的任何一種類型。

指針運(yùn)算符:

&一元運(yùn)算符,返回變量的內(nèi)存地址。

*一元運(yùn)算符,返回指針?biāo)赶蜃兞康闹怠?/p>

指針指向變量:

Inta;

Int*p;

P=&a;

指針賦值:及其他變量一樣,指針變量也可以出現(xiàn)在賦值語(yǔ)句中,將

一個(gè)指針變量的值賦給另一個(gè)指針變量。

指針運(yùn)算:+和-

Int*p,當(dāng)前p的值為2000,由于整型數(shù)占4個(gè)字節(jié),p++的值將變

成2004,p—值將變?yōu)?996.p每遞增一次就指向下一個(gè)整形數(shù),遞

減時(shí)也一樣。

指針比較:

int*p=10,*q=20;

if(p<q)-

?比較的是兩個(gè)指針?biāo)赶虻膬?nèi)存地址的大小

指針及數(shù)組:

指針及數(shù)組是緊密相連的。一個(gè)變量有地址,一個(gè)數(shù)組包含若干

個(gè)元素,每個(gè)元素都有相應(yīng)地址,指針變量可以指向數(shù)組元素。

Inta[10];

數(shù)組名a其實(shí)就是一個(gè)地址值,記錄的數(shù)組起先的地址,即a[0]

地址。.

通過(guò)指針引用數(shù)組元素:

(1)下標(biāo)法,如a[i]形式

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論