計(jì)算機(jī)二級(jí)各章考點(diǎn)_第1頁
計(jì)算機(jī)二級(jí)各章考點(diǎn)_第2頁
計(jì)算機(jī)二級(jí)各章考點(diǎn)_第3頁
計(jì)算機(jī)二級(jí)各章考點(diǎn)_第4頁
計(jì)算機(jī)二級(jí)各章考點(diǎn)_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1基礎(chǔ)知識(shí)部分

1.1基本概念

1.C源程序(.c或.cpp)經(jīng)過編譯后生成二進(jìn)制目標(biāo)文件(.obj),再與各種庫函數(shù)連接成一個(gè)可執(zhí)行文件

(.exe)o

2.一個(gè)源程序不論由多少個(gè)源文件組成,都有且僅有一個(gè)main函數(shù),即主函數(shù)。任何一個(gè)C程序都是從

main函數(shù)開始執(zhí)行,在main函數(shù)結(jié)束。一個(gè)C源程序可以由?個(gè)或多個(gè)源文件組成。每個(gè)源文件可由一

個(gè)或多個(gè)函數(shù)組成。函數(shù)是C程序的基本組成單位。

3.程序中使用的變量名、函數(shù)名、標(biāo)號(hào)等統(tǒng)稱為標(biāo)識(shí)符。

(1)C規(guī)定,標(biāo)識(shí)符只能以字母或下劃線開頭,由字母、數(shù)字和下劃線組成。

(2)在標(biāo)識(shí)符中,大小寫是有區(qū)別的。

(3)用戶定義的標(biāo)識(shí)符不應(yīng)與關(guān)鍵字(32個(gè))(課本P238)相同。

4.C語言的注釋:在"/*"和"*/"之間的即為注釋。程序編譯時(shí),不對(duì)注釋作任何處理,不影響程序的運(yùn)行。

注釋符也可以用"〃",但是只能對(duì)當(dāng)前行進(jìn)行注釋。

5.每一個(gè)說明,每一個(gè)語句都必須以分號(hào)結(jié)尾。但預(yù)處理命令(如:ftindude<stdio.h>)、函數(shù)頭(voidmain())

和花括號(hào)"}”之后不能加分號(hào)。

6.結(jié)構(gòu)化程序的三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。

模塊化的程序設(shè)計(jì)方法:自項(xiàng)向下、逐步細(xì)化把程序分成若干相對(duì)獨(dú)立、功能單?的模塊。

例題:

(1)以下敘述中錯(cuò)誤的是()2011.3

A)C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的

B)用C語言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行

C)通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行

D)在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件

(2)以下敘述中錯(cuò)誤的是(兀2011.9

A)C語言編寫的函數(shù)源程序,其文件名后綴可以是.C

B)C語言編寫的函數(shù)都可以作為一個(gè)獨(dú)立的源程序文件

OC語言編寫的每個(gè)函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行

D)一個(gè)C語言程序只能有一個(gè)主函數(shù)

(3)以下C語言用戶標(biāo)識(shí)符中,不合法的是()2011.3

A)_lB)AaBcC)a_bD)a-----b

(4)以下選項(xiàng)中關(guān)于程序模塊化的敘述錯(cuò)誤的是()。2011.9

A)把程序分成若干相對(duì)獨(dú)立的模塊,可便于編碼和調(diào)試

B)把程序分成若干相對(duì)獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊

c)可采用自底向上、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序

D)可采用自項(xiàng)向下、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序

1.2常量和變量

1.2.1常量

1.數(shù)字常量

①八進(jìn)制整數(shù)以。為開頭,如0121表示八進(jìn)制數(shù)121:十六進(jìn)制整數(shù)以O(shè)x開頭。

②實(shí)型常量有兩種表示形式:小數(shù)形式和指數(shù)形式。指數(shù)形式。由數(shù)字和字母e(E)組成,可帶正負(fù)

號(hào),其中,e是指數(shù)的標(biāo)志,要求e之前必須有數(shù)字,e之后必須是整數(shù),這種表示方式也稱為科學(xué)計(jì)數(shù)

法。如12e3或12E3表示12xl03,

2.字符常量

C語言的字符常量是用單引號(hào)括起來的一個(gè)字符。如曾、,D,、$、‘\n,、’\012\,\xOa,等均為字符常量。

每個(gè)字符在內(nèi)存中占用一個(gè)字節(jié),用于存儲(chǔ)它的ASCII碼值。常用轉(zhuǎn)義字符表(課本P93)

3.字符串常量

字符串常量就是用?對(duì)雙引號(hào)括起來的字符序列,如:"china"。

C語言規(guī)定以XT作為字符串的結(jié)束符,它占用存儲(chǔ)空間,但不計(jì)入字符串的有效長(zhǎng)度(即有效字符的

個(gè)數(shù))。字符串由有效字符和字符串結(jié)束符'\0'組成。

4.符號(hào)常量

C語言還可以通過宏定義來表示常量,格式如下:

#define宏名宏定義字符串

如:#defineN10

例題:

(1)以下選項(xiàng)中不能用作C程序合法常量的是()2011.3

A)1,234B)"123"0123D)'\x7G'

(2)以下選項(xiàng)中可用作C程序合法實(shí)數(shù)的是()2011.3

A).leOB)3.0e0.2C)E9D)9.12E

(3)以下選項(xiàng)中關(guān)于c語言常量的敘述錯(cuò)誤的是()。2011.9

A)所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量

B)常量分為整型常量、實(shí)型常量、字符常量和字符串常量

c)常量可分為數(shù)值型常量和非數(shù)值型常量

D)經(jīng)常被使用的變量可以定義成常量

1.2.2變量

1.變量必須遵守"先定義,后使用;先賦值,后運(yùn)算”的原則。

2.基本數(shù)據(jù)類型

1.1整型數(shù)據(jù)

數(shù)據(jù)長(zhǎng)度

類型取值范圍

(比特)

-2147483648-----2147483647

[signed]int有符號(hào)整型32一231?23】-1

0?4294967295

unsigned[int]無符號(hào)整型32

0?232—I

-32768?32767

[signed]short[int]有符號(hào)短整型16—2匕?2J

。?65535

unsignedshort[int]無符號(hào)短整型16

0?2J

-2147483648-----2147483647

[signed]long[int]有符號(hào)長(zhǎng)整型32

—23"-1

1.2實(shí)型數(shù)據(jù)類型

類型數(shù)據(jù)長(zhǎng)度(比特)有效數(shù)字?jǐn)?shù)值范圍

float326?7-3.4x10-38?34x1()38

double6415?16-1.7x10308~1.7X10308

longdouble12818?19-1.2x104M2~1.2x104932

1.3字符型數(shù)據(jù)類型

類型數(shù)據(jù)長(zhǎng)度(比特)注意

與字符常量一樣,字符變量也可以像整數(shù)一樣進(jìn)行運(yùn)算,其利用

字符的ASCII碼進(jìn)行運(yùn)算。如:

char8charch='D';

ch=ch+32;或ch=ch」A'+,a,;/*大寫母轉(zhuǎn)換為小寫字母*/

printf("%cASCII:%d\n",ch,ch);/*以字符和整數(shù)方式輸出*/

3數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換規(guī)則(課本P95)

例題:

(1)若有定義語句:inta=10;doubleb=3.14;,則表達(dá)式'A'+a+b值的類型是()。2011.9

A)charB)intC)doubleD)float

⑵以下程序運(yùn)行后的輸出結(jié)果是([6[3)。2011.3

^include<stdio.h>

main()

{inta;

a=(int)((double)(3/2)+0.5+(int)1.99*2);

printf("%d'n",a);

)

3.局部變量和全局變量

(1)在C語言中,把定義在函數(shù)內(nèi)部或復(fù)合語句內(nèi)部的變量稱為局部變量。局部變量的作用域(即有

效范圍)是從定義的位置開始直到函數(shù)或復(fù)合語句結(jié)束為止。

(2)在C程序中,允許在函數(shù)外部定義變量。定義在函數(shù)外部而不屬于任何函數(shù)的變量,稱為全局變

量(或者全程變量,或者外部變量)。全局變量的作用域(即有效范圍)是從定義的位置開始直到程序文

件的結(jié)束為止。

4.變量的存儲(chǔ)類別

C程序的變量主要存儲(chǔ)在內(nèi)存中,少量的變量也可以存儲(chǔ)在CPU的寄存器中。我們可以使用以下存儲(chǔ)

類別進(jìn)行說明:

(1)auto(自動(dòng)的):"auto"可以省略,自動(dòng)變量只有在使用時(shí),即在定義該變量的函數(shù)被調(diào)用時(shí),系

統(tǒng)才會(huì)在動(dòng)態(tài)存儲(chǔ)區(qū)為其分配存儲(chǔ)空間,開始它的生存期,函數(shù)調(diào)用結(jié)束就自動(dòng)釋放這些存儲(chǔ)空間,相應(yīng)

的自動(dòng)變量也將不復(fù)存在,結(jié)束生存期。

在使用自動(dòng)變量時(shí),需要先賦初值或賦值后再使用,未賦初值的自動(dòng)變量,其值是不確定的隨機(jī)數(shù)。

(2)static(靜態(tài)的):

①靜態(tài)局部變量在函數(shù)或復(fù)合語句內(nèi)部定義,靜態(tài)局部變量的作用域是函數(shù)或復(fù)合語句內(nèi)部,生存期

是整個(gè)程序。

靜態(tài)局部變量是在編譯時(shí)賦初值(即只賦初值一次)的,在程序執(zhí)行期間,再次調(diào)用函數(shù)時(shí)就不會(huì)再

重新賦初值,而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。如果在定義靜態(tài)局部變量時(shí)不賦初值,編譯時(shí)系統(tǒng)會(huì)

自動(dòng)賦初值0(對(duì)數(shù)值型變量)或10'(空字符,對(duì)字符變量)。

②靜態(tài)全局變量,靜態(tài)全局變量的作用域不能被擴(kuò)展,只能在定義它的文件中使用。

③如果?個(gè)函數(shù)只能夠在定義它的文件中被調(diào)用,則稱它為內(nèi)部函數(shù)(也稱為靜態(tài)函數(shù))。定義內(nèi)部

函數(shù)只需在函數(shù)定義的前面加static關(guān)鍵字。

(3)register(寄存器的)

(4)extern(外部的):

①全局變量只能在某個(gè)模塊中定義一次,如果其他模塊要使用該全局變量,必須在引用之前用關(guān)鍵字

extern將該變量聲明為外部變量,用于說明該變量是一個(gè)一經(jīng)在其他模塊中定義的全局變量。

②在定義函數(shù)時(shí),如果冠以關(guān)鍵字extern,則表示此函數(shù)是外部函數(shù)。在定義函數(shù)時(shí)省去了extern關(guān)

鍵字時(shí),則隱含為外部函數(shù)。

例題:

(1)有以下程序

-include<stdio.h>

intfun()

{staticintx=l;

x*=2;

returnx:

)

main()

{inti,s=l;

for(i=l;i<=3;i++)s*=fun();

printf(〃%d\n〃,s);

)

程序運(yùn)行后的輸出結(jié)果是()2。"3

A)0B)10C)30D)64

(2)有以下程序

ttinclude<stdio.h>

intf(intm)

{staticintn=0;

n+=m:

returnn;

)

main()

{intn=0;

printf("%d〃,f(++n));

printf("%d\n”,f(n++));

)

程序運(yùn)行后的輸出結(jié)果是()o2011.9

A)1,2B)l,1C)2,3D)3,3

1.3輸入輸出函數(shù)

LC語言提供的標(biāo)準(zhǔn)輸入輸出函數(shù)(如:printf函數(shù)、scanf函數(shù)等)包含在相應(yīng)的頭文件中。程序中若需調(diào)用這

類函數(shù),必須在程序最開頭引用該頭文件,如寫為:#include<stdio.h>

2.printf函數(shù)和scanf函數(shù)

(1)printf函數(shù)的一般格式:printf("格式控制字符串”,輸出參數(shù)列表);

其作用:原樣輸出雙引號(hào)中的內(nèi)容,其中格式控制符如%d、%c、%f等則依次以其后的輸出參數(shù)代替,

若有轉(zhuǎn)義字符則按轉(zhuǎn)義字符實(shí)際含義輸出。

⑵scanf函數(shù)一般格式:scanf("格式控制字符串”,地址列表);

其作用:原樣輸入雙引號(hào)中的內(nèi)容,其中格式控制符如%d、%c、%£等則依次以需輸入的具體數(shù)據(jù)代替。

注意:輸入多個(gè)數(shù)據(jù)時(shí)可以使用一個(gè)或多個(gè)空格間隔,此外,也可以使用回車鍵或Tab鍵分隔。

常用格式控制說明

數(shù)據(jù)類

格式功能

%d以十進(jìn)制的方式輸入/輸出一個(gè)整數(shù)

%u以十進(jìn)制的方式輸入/輸出一個(gè)無符號(hào)整數(shù)

%o以八進(jìn)制的方式輸入/輸出一個(gè)整數(shù)

整型:%x以十六進(jìn)制的方式輸入/輸出一個(gè)整數(shù)

int

以十進(jìn)制的方式輸入/輸出一個(gè)無符號(hào)長(zhǎng)整數(shù)

short%lu

long%ld以十進(jìn)制的方式輸入/輸出一個(gè)有符號(hào)長(zhǎng)整數(shù),即long型(其中1是long的首字母)

unsigned

輸出數(shù)據(jù)占m列,若數(shù)據(jù)的實(shí)際寬度小于m,則左端補(bǔ)空格(即右對(duì)齊,若數(shù)據(jù)的

%md實(shí)際寬度大于m,則按實(shí)際寬度輸出

如:printf("張三成績(jī):%6d%6d\n",math,en);

輸出數(shù)據(jù)占m歹ij,若數(shù)據(jù)的實(shí)際寬度小于m,則右端補(bǔ)空格(即左對(duì)齊),若數(shù)據(jù)

%—md

的實(shí)際寬度大于m,則按實(shí)際寬度輸出

以小數(shù)形式輸入/輸出實(shí)數(shù)(單、雙精度型皆可float,double型),默認(rèn)輸出小數(shù)點(diǎn)后

%f

的6位數(shù)

%lf以小數(shù)形式輸入/輸出雙精度型實(shí)數(shù)

%e以指數(shù)形式輸出實(shí)數(shù)

實(shí)型:

float%g選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0

double輸出數(shù)據(jù)占m歹U,其中有n位小數(shù)。如果實(shí)際數(shù)據(jù)長(zhǎng)度超過m位,則按實(shí)際輸出,

%m.nf如果實(shí)際數(shù)據(jù)長(zhǎng)度小于m位,則左端補(bǔ)空格(即輸出結(jié)果右對(duì)齊),注意:輸入時(shí)不能

指定精度。

輸出數(shù)據(jù)占m歹1J,其中有n位小數(shù)。如果實(shí)際數(shù)據(jù)長(zhǎng)度超過m位,則按實(shí)際輸出,

%-m.nf

如果實(shí)際數(shù)據(jù)長(zhǎng)度小于m位,則右端補(bǔ)空格(即輸出結(jié)果左對(duì)齊)

字符型:

%c輸出字符型數(shù)據(jù),即char型

char

%s輸入/輸出字符串

例題:

(1)有以下程序段

charname[20];

intnum;

scanf(//name=%snum=%d”,name;&num);

當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Li1inum=1001〈回車》后,name的值為()2011.3

A)LiliB)name=LiliC)Lilinum=D)name=Lilinum=1001

(2)若有定義:inta,b;,通過語句scanf("%d;%d",&a,&b);,能把整數(shù)3賦給變量a,5賦給變量b

的輸入數(shù)據(jù)是()。2011.9

A)35B)3,5C)3;5D)35

⑶以下不能輸出字符A的語句是(注:字符A的ASCII碼值為65,字符a的ASCH碼值為97)%〃9

A)printf("%c\n",'a'-32);B)printf("%d\n",'A');

c)printf("%c\n",65);D)printf(〃%c\n〃,'B'T);

⑷若程序中已給整型變量a和b賦值10和20,請(qǐng)寫出按以下格式輸出a、b值的語句【6]。2011.9

****a=10,b=20****(printf("****a=%d,b=%d****",a,b);)

⑸有以下程序(說明:字符0的ASCII碼值為48)

^include<stdio.h>

mainO

{charcl,c2;

scanf(〃/d〃,&cl);

c2=cl+9;

printf(,,%c%c\n,/,cl,c2);

)

若程序運(yùn)行時(shí)從鍵盤輸入48〈回車),則輸出結(jié)果為([8】09)。2011.3

3.getchar函數(shù)和putchar函數(shù)

調(diào)用getchar函數(shù)或scanf函數(shù)輸入字符,調(diào)用putchar函數(shù)或printf函數(shù)輸出字符,如需調(diào)用這4個(gè)

函數(shù),均須在程序首使用文件包含命令:#include<stdio.h>

(1)putchar函數(shù)的作用是輸出一個(gè)字符,getchar函數(shù)的功能是從鍵盤輸入?個(gè)字符。

例:

①如果c是已經(jīng)定義的字符變量或整型變量,這兩個(gè)函數(shù)的調(diào)用格式如下:

putchar(c);/*以字符的方式輸出變量c的值。*/

c=getchar();/*從輸入設(shè)備輸入字符并賦給變量c。*/

②連續(xù)處理多個(gè)字符:

charch;

while((ch=getchar())!='\n'){}

③對(duì)字符串處理:

inti=0;

charstr[80];/*定義字符數(shù)組存放字符串*/

printf(“請(qǐng)輸入一個(gè)字符串:\n");

while((str[i]=getchar())!='\n')/*輸入字符串*/

i++;

str[i]='\O';

例題:

(1)有以下程序段

^include<stdio.h>

main()

{,,,

while(getchar()!=,\n);

)

以下敘述中正確的是()2011.3

A)此while語句將無限循環(huán)

B)getchar()不可以出現(xiàn)在while語句的條件表達(dá)式中

C)當(dāng)執(zhí)行此while語句時(shí),只有按回車鍵程序才能繼續(xù)執(zhí)行

D)當(dāng)執(zhí)行此while語句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行

4.gets函數(shù)和puts函數(shù)

(1)gets函數(shù):函數(shù)原型為char*gets(char*),其功能是從標(biāo)準(zhǔn)輸入設(shè)備中輸入一個(gè)字符串,并存入?yún)?/p>

數(shù)指針?biāo)赶虻膬?nèi)存單元中。函數(shù)的返回值為指針,即返回輸入字符串的首字符地址。遇回車符結(jié)束輸入,

并自動(dòng)把輸入的字符串和字符串結(jié)束標(biāo)志存入?yún)?shù)指針?biāo)赶虻膬?nèi)存單元中。

例如:char*p,string[100];

p=string;

gets(p);/*或者用gets(string)*/

(2)puts函數(shù):函數(shù)原型為intputs(char*str),其功能是把str指向的字符串輸出到標(biāo)準(zhǔn)輸出設(shè)備中,

將‘\0’轉(zhuǎn)換為回車符。如:對(duì)上例采用gets函數(shù)輸入的字符串,可用以下兩種方式輸出:

puts(p);或puts(string);

例題:

⑴有以下程序

ttinclude<stdio.h>

main()

{chara[30],b[30];

scanf(〃%s〃,a);

gets(b);

printf(,,%s\n%s\n〃,a,b);

)

程序運(yùn)行時(shí)若輸入:

howareyou?Iamfine〈回車〉

則輸出結(jié)果是()宓〃.3

A)howareyou?B)how

Iamfineareyou?Iamfine

C)howareyou?IamfineD)howareyou?

1.4運(yùn)算符和表達(dá)式

c語言提供的運(yùn)算符有以下幾種:

(1)下標(biāo)運(yùn)算符:口

(2)成員運(yùn)算符:.一〉

(3)強(qiáng)制類型轉(zhuǎn)換的運(yùn)算符:(類型名)

(4)長(zhǎng)度運(yùn)算符:sizeof()

(5)指針運(yùn)算符:*&

(6)算術(shù)運(yùn)算符:+—*/%++---

(7)關(guān)系運(yùn)算符:><==>=<=!=

(8)位運(yùn)算符:<<?~|八&

(9)邏輯運(yùn)算符:!&&||

(10)條件運(yùn)算符:?:

(11)賦值運(yùn)算符:=及復(fù)合賦值運(yùn)算符

(12)逗號(hào)運(yùn)算符:,

1.其他運(yùn)算

特殊運(yùn)算符

優(yōu)先級(jí)與運(yùn)

運(yùn)算符運(yùn)算對(duì)象個(gè)數(shù)功能

算方向

()括號(hào)運(yùn)算符1級(jí)改變運(yùn)算順序

[]下標(biāo)運(yùn)算符1級(jí)數(shù)組下標(biāo)

—>指向結(jié)構(gòu)體成員運(yùn)算符

1級(jí)結(jié)構(gòu)體的成員

結(jié)構(gòu)體成員運(yùn)算符

12級(jí)

*間接訪問運(yùn)算指針變量所指向的地址的內(nèi)容

(單月運(yùn)算符)自右向左

12級(jí)

&取地址運(yùn)算取出變量在內(nèi)存中的存儲(chǔ)地址

(單日運(yùn)算符)自右向左

12級(jí)

(類型)強(qiáng)制類型轉(zhuǎn)換(單目運(yùn)算符)

(單目運(yùn)算符)自右向左

12級(jí)

sizeof長(zhǎng)度運(yùn)算符(單目運(yùn)算符)

(單目運(yùn)算符)白右向左

2.算術(shù)運(yùn)算符列表

優(yōu)先級(jí)與運(yùn)算

運(yùn)算符含義示例運(yùn)算對(duì)象個(gè)數(shù)注意

方向

++k:先自加,再運(yùn)算

k++:先運(yùn)算,再自加

K++12級(jí)運(yùn)算對(duì)象可以是整型變量,也

++自增

++k(單目運(yùn)算符)自右向左可以是實(shí)型變量,但不能是常量或

表達(dá)式,如3++,(x+y)++都是不合

法的表達(dá)式。

k-12級(jí)

-自減類似于++

-k(單目運(yùn)算符)自右向左

23級(jí)

*乘法運(yùn)算2.5*5如為單目運(yùn)算符,則為指針運(yùn)算符

(雙目運(yùn)算符)自左向右

如果除法的兩個(gè)運(yùn)算對(duì)象均為整

6/323級(jí)

/除法運(yùn)算數(shù),則運(yùn)算結(jié)果也為整數(shù)。如表達(dá)

6.6/2(雙目運(yùn)算符)自左向右

式9/5的值是k

求余運(yùn)算%的運(yùn)算對(duì)象要求必須為

求余運(yùn)算也23級(jí)

%6%4結(jié)果為2整型數(shù)據(jù),它不能用于實(shí)型數(shù)據(jù)的

稱為模運(yùn)算(雙目運(yùn)算符)自左向右

運(yùn)算。

+加法運(yùn)算3+224級(jí)如為單目運(yùn)算符,則為正號(hào)或負(fù)號(hào)

一減法運(yùn)算3-2(雙目運(yùn)算符)自左向右運(yùn)算符

應(yīng)用舉例:

(1)輸入一個(gè)整數(shù),將這個(gè)整數(shù)的各位逆置后輸出。

源程序:

#include<stdio.h>

voidmain()

{intnumber,digit,num;

printf("Pleaseenterainteger:");

scanf("%d",&number);

num=0;/*num用于存儲(chǔ)將number逆序的結(jié)果*/

/*從低位開始取出number的相應(yīng)位的數(shù)字,并逐一轉(zhuǎn)換為num的相應(yīng)位的數(shù)字*/

do

{digit=number%10;/*取個(gè)位數(shù)*/

num=num*10+digit;

number=number/10;/*丟掉個(gè)位數(shù)*/

}while(number!=0);

printf("%d\n",num);

}

例題:

(1)以下程序運(yùn)行后的輸出結(jié)果是([7】1)。2011.9

ftinclude<stdio.h>

main()

{inta=37;

a%=9;printf(〃%d\n〃,a);

)

(2)有以下程序

ttinclude<stdio.h>

main()

{intx=011;

printf(,,%d\n\++x);

)

程序運(yùn)行后的輸出結(jié)果是()20〃3

A)12B)llC)10D)9

(3)若有定義語句:intx=12,y=8,z;,在其后執(zhí)行語句z=0.9+x/y;,則Z的值為()。2011.9

A)l,9B)1C)2D)2.4

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

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

關(guān)系運(yùn)算符作用舉例運(yùn)算結(jié)果

>大于6>31

<小于6<30

>=大于或等于5>=60

<=小于或等于5<=91

==等于2==21

!=不等于2!=20

在C語言中,關(guān)系運(yùn)算符產(chǎn)生的結(jié)果用數(shù)字〃1〃表示邏輯值真,數(shù)字”0〃表示邏輯值假。

4.位運(yùn)算符

位運(yùn)算符

運(yùn)算符含義運(yùn)算對(duì)象個(gè)數(shù)注意

1

?取反位運(yùn)算的運(yùn)算對(duì)

(單FI運(yùn)算符)

2象必須是整型或字符

?左移

(雙目運(yùn)算符)型數(shù)據(jù),其運(yùn)算規(guī)則

2

右移

?(雙目運(yùn)算符)是:先將兩個(gè)運(yùn)算對(duì)象

2

&按位與轉(zhuǎn)化為二進(jìn)制,然后按

(雙目運(yùn)算符)

位運(yùn)算。

2

1按位或

(雙目運(yùn)算符)★注意:在進(jìn)行位運(yùn)算

2時(shí),所有的數(shù)據(jù)都是以

A按位異或

(雙目運(yùn)算符)補(bǔ)碼的形式進(jìn)行運(yùn)算。

例題:

(1)有以下程序

#include<stdio.h>

main()

{unsignedchara=8,c;

c=a?3;

printf(〃%d\n",c);

}程序運(yùn)行后的輸出結(jié)果是()20〃.3

A)32B)16C)1D)0

(2)有以下程序

#include<stdio.h>

main()

{inta=2,b;

b=a<<2:printr("%d\n〃,b);

}程序運(yùn)行后的輸出結(jié)果是()o201L9

A)2B)4C)6D)8

5.邏輯運(yùn)算符

邏輯運(yùn)算符

邏輯運(yùn)算符作用優(yōu)先級(jí)運(yùn)算對(duì)象個(gè)數(shù)舉例運(yùn)算結(jié)果

1)60

IM運(yùn)算

高(單目運(yùn)算符)

!01

6&&00

2

&&與運(yùn)算

(雙目運(yùn)算符)6&&-21

0&&30

6||01

2

II或運(yùn)算6||-21

f-(雙目運(yùn)算符)

0||00

例如:

(1)letter是英文字符:letter>='A'&&letter<='Z'11letter>='a'&&letter<='z'

(2)如變量a、b已經(jīng)定義且a=2,b=5。

①a=a-2&&b=b+3

計(jì)算該表達(dá)式后,a的值是0,b的值還是5。

②a=a-l11b=b+3

計(jì)算該表達(dá)式后,a的值是1,b的值還是5。

(3)若語句if(!a)中條件恒為真,那么a的值應(yīng)為0。

例題:

(1)若有定義語句:intkl=10,k2=20;,執(zhí)行表達(dá)式(kl=kl>k2)&&(k2=k2>kl)后,kl和k2的值分別為()。

2011.9

A)0和1B)0和20C)10和1D)10和20

(2)若a是數(shù)值類型,則邏輯表達(dá)式(a=l)II(a!=1)的值是()2010.3

A)1B)0C)2D)不知道a的值,不能確定

6.條件運(yùn)算符

條件運(yùn)算是C語言中唯?的一個(gè)三目運(yùn)算符,其一般形式為:

表達(dá)式1?表達(dá)式2:表達(dá)式3;

(1)條件語句:

if(a>b)max=a;

elsemax=b;

可用條件表達(dá)式寫為:max=(a>b)?a:b;

(2)條件運(yùn)算符的結(jié)合方向是自右至左。例如:a>b?a:c>d?c:d應(yīng)理解為:a>b?a:(c>d?c:d)

例題:

(1)有如下嵌套的if語句

if(a<b)

if(a<c)k=a;

elsek=c;

else

if(b<c)k=b;

elsek=c;

以下選項(xiàng)中與上述if語句等價(jià)的語句是()2010.3

A)k=(a<c)?a:b;k=(b<c)?b:c;

B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);

C)k=(a<b)?((a<c)?a:c):((b<c)?b:c);

D)k=(a<b)?a:b;k=(a<c)?a:c;

7.賦值運(yùn)算符

(1)在C語言中,"="稱為賦值運(yùn)算符,其功能是將"="右邊表達(dá)式的值賦給左邊的變量。賦值運(yùn)算符的運(yùn)算方

向是從右到左的。

復(fù)合賦值運(yùn)算符

運(yùn)算符名稱示例注意

+=加賦值a+=b等價(jià)于a=a+b

一=減賦值a-=b等價(jià)于a=a-b

*二乘賦值a*=b等價(jià)于a=a*b(1)如果復(fù)合賦值運(yùn)算符的右側(cè)

是一個(gè)表達(dá)式,則在運(yùn)算時(shí)將

/=除賦值a/=b等價(jià)于a=a/b

表達(dá)式看作一個(gè)整體,相當(dāng)于

%=求余賦值a%=b等價(jià)于a=a%b有括號(hào)。

例如:a*=b+3等價(jià)于a=a*(b+3)

&=按位與賦值a&=b等價(jià)于a=a&b

(2)復(fù)合賦值運(yùn)算符的兩個(gè)組

1=按位或賦值al=b等價(jià)于a=alb合之間不能有空格。

?=按位左移賦值a?=b等價(jià)于a=a?b

?=按位右移賦值a?=b等價(jià)于a=a?b

例題:

(1)若有定義語句:inta=3,b=2,c=l;,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是(')2011.3

A)a=(b=4)=3;B)a=b=c+l;C)a=(b=4)+c;D)a=l+(b=c=4);

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

逗號(hào)表達(dá)式的一般形式為:

表達(dá)式1,表達(dá)式2,表達(dá)式3,表達(dá)式n

逗號(hào)表達(dá)式的結(jié)合方向是自左向右的,逗號(hào)表達(dá)式的值是所有表達(dá)式中最右邊的表達(dá)式的值。攸I如,

表達(dá)式"3+5,3*5〃的值是15。在所有的運(yùn)算符中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。

1.5宏定義

C語言提供的標(biāo)準(zhǔn)輸入輸出函數(shù)(如:printf函數(shù)、scanf函數(shù)等)包含在相應(yīng)的頭文件中,程序中若需調(diào)用

這類函數(shù),必須在程序最開頭引用該頭文件,如寫為:#include<stdio.h>

1.文件包含的一般格式為:

include"需包含的文件名"或者include〈需包含的文件名〉

如:

include<stdio.h>或者#include"math.h"

常用標(biāo)準(zhǔn)頭文件

頭文件名作用

stdio.h輸入輸出函數(shù)中使用的有關(guān)說明和定義

math.h與數(shù)學(xué)處理函數(shù)有關(guān)的說明與定義

ctype.h字符處理

string.h字符串函數(shù)的有關(guān)說明與定義

stddef.h定義某些常用內(nèi)容

stdlib.h雜項(xiàng)說明

time.h支持系統(tǒng)時(shí)間函數(shù)

2.宏定義分為兩種:不帶參數(shù)的宏定義和帶參數(shù)的宏定義。

(1)不帶參數(shù)的宏定義(符號(hào)常量)

定義的格式:#define宏名宏定義字符串

宏定義必須寫在函數(shù)之外,其作用域?yàn)閺暮甓x命令起到源程序結(jié)束。如要終止其作用域可使用#undef

命令。

(2)帶參數(shù)的宏定義

定義的格式:#define宏名(形參表)宏定義字符串

例題:

(1)有以下程序

^include

^defineS(x)4*(x)*x+l

main()

{intk=5,j=2;

printf("%d\n”,S(k+j));

)

程序運(yùn)行后的輸出結(jié)果是()2011.3

A)197B)143C)33D)28

2分支結(jié)構(gòu)

1.if分支結(jié)構(gòu)一般分為二分支結(jié)構(gòu)和多分支結(jié)構(gòu)。

二分支結(jié)構(gòu)主要有以下幾種形式,分別如下:

(1)第一種形式

if(條件)

語句1;

else

語句2;

(2)第二種形式

if(條件)

語句;

(3)第三種形式

else-if語句的一般形式為:

if(條件1)

語句1;

elseif(條件2)

語句2;

elseif(條件n)

語句n;

else

語句n+1;

(4)第四種形式

if語句的嵌套

其一般形式可表示如下:

if(表達(dá)式)

if語句;

或者為

if(表達(dá)式)

if語句;

else

if語句;

注意:

(1)例如以下程序段:

main()

{intx=l,y=3,z=0;

if(!z)z++;

if(x)z-;

if(y)z-=l;

printf("%d\n",z);

)

執(zhí)行后輸出的結(jié)果是-1。

(2)C語言規(guī)定:從最內(nèi)層開始,else總是與它前面離得最近的不帶else的if配對(duì)。

例如以下程序段:

main()

{inta=l,b=2,c=3,d=4,m=6;

if(a>b)

if(c>d)m=3;

注意:第一個(gè)else與第二個(gè)if進(jìn)行

elsem=4;

配對(duì),第二個(gè)else和第一個(gè)if進(jìn)行配對(duì)。

elsem=5;

printf("%d",m);

}

執(zhí)行后輸出的結(jié)果5。

2.switch語句:每個(gè)語句段中都使用break語句

switch(表達(dá)式){

case常量表達(dá)式1:語句段1;break;

注意:如省略break,則從符合條件表達(dá)式

case常量表達(dá)式2:語句段2;break;

的case之后的語句開始執(zhí)行,一直到整個(gè)

switch語句的結(jié)束。

case常量表達(dá)式n:語句段n;break;

default:語句段n+1;break;

)

例如執(zhí)行以下程序:

main()

{intm=5;

switch(m/2)

{casel:m++;

case2:m+=3;

case5:m+=6;break;

default:m—=7;

)

printf(〃%d\n〃,m);

)

執(zhí)行后輸出結(jié)果是14o

3.如已定變量a、b和3其中a、b已賦值,比較交換的三種方式:

方法1:方法2:方法3:

lf(a>b){if(a>b){if(a>b){

temp=a;a=a+b;a=aAb;

a=b;b=a-b;b=bAa;

b=temp;a=a-b;a=aAb;

)})

例題:

(1)if語句的基本形式是:if(表達(dá)式)語句,以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論