計算機(jī)專業(yè):C語言知識復(fù)習(xí)(39頁)(共28頁)_第1頁
計算機(jī)專業(yè):C語言知識復(fù)習(xí)(39頁)(共28頁)_第2頁
計算機(jī)專業(yè):C語言知識復(fù)習(xí)(39頁)(共28頁)_第3頁
計算機(jī)專業(yè):C語言知識復(fù)習(xí)(39頁)(共28頁)_第4頁
計算機(jī)專業(yè):C語言知識復(fù)習(xí)(39頁)(共28頁)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、計算機(jī)專業(yè)筆試(bsh)知識點(diǎn)第一部分(b fen):C語言知識知識點(diǎn)簡述(jin sh)一、常量1、數(shù)字常量 1)普通數(shù)字:1,35,2.72)指數(shù)形式:2.45e-2等價于2.45*10-2 注意e大小寫皆可,e前面的數(shù)字不能省,就算是1也不能省,后面的數(shù)字一定要是整數(shù)3)長整型,單精度浮點(diǎn)型:3235L,32.5F 分別表示3235是長整型數(shù)據(jù),32.5是單精度浮點(diǎn)型左,若不寫上L,F(xiàn)則表示3235是整型,32.5是雙精度浮點(diǎn)型,L,F(xiàn)大小寫皆可2、字符常量1)普通字符常量:用單引號把一個字符括起來,如A,2)轉(zhuǎn)義字符常量:一對單引號括起來并以“”開頭的字符序列,如n(回車)、123(8

2、進(jìn)制123對應(yīng)的字符), x23(16進(jìn)制23對應(yīng)的字符)3、字符串常量用一對雙引號把一個字符序列括起來,如“ABCef”, 系統(tǒng)存放字符串常量,每個字符分配一個字節(jié),各字符所占字節(jié)緊鄰,并且字符串末尾會給再開一個字節(jié)里面放一個0做為結(jié)束標(biāo)志。4、符號常量定義格式 #define 符號常量名 符號常量值,如#define N 20則定義了符號常量N,其值為20,注意符號常量名和符號常量值之間是用空格隔開,而不是寫上=號,#define和符號常量名之間也有空格的。二、標(biāo)識符1、命名規(guī)則以數(shù)字,字母,下劃線這三類字符組成,但只能以字母或下劃線開頭,而不能也數(shù)字開頭,另外不能將關(guān)鍵字做為標(biāo)識符,如:

3、char,static。2、變量名,函數(shù)名,符號常量名全都是標(biāo)識符三、變量1、變量的定義格式類型名 變量名;如 int a;定義了一個整型常量a。變量名是由人類隨便定義的,符合命名規(guī)則的前提下,愛寫啥就寫啥。所以什么flag,cc,y1或者函數(shù)名fun,find等全部是自定的用來做為名字而已,沒有更特別的意義。2、類型名int 整型,long 長整型: 用于存放整數(shù),只是數(shù)值范圍不同float 單精度浮點(diǎn)型 double 雙精度浮點(diǎn)型:用于存放實(shí)數(shù),數(shù)值范圍,精度不同char字符型:用于存放字符3、變量賦值,初始化int a=3;定義的同時初始化a=6*9;定義后在程序中進(jìn)行賦值4、變量的值只

4、有在賦值操作時才會被改變,即將其放在等號左邊時才會改變它的值,或自增自減操作:a=5,a+,a-,像a+3并未改變a的值,只是使用了a的值而已.5、自增自減運(yùn)算變量+,+變量,變量-,-變量 使變量的值自增1或自減1等價于 變量=變量+1 變量=變量-1+,-放于變量前后(qinhu)效果的區(qū)別:當(dāng)自增自減運(yùn)算(yn sun)做為表達(dá)式的一部分時,+,-放在變量(binling)前面是先自增自減再使用變量的值,放在變量后面則是先使用變量的值,再自增自減。如x=3; printf(“%d”,+x);則相當(dāng)于執(zhí)行了+x; printf(“%d”,x);這樣的操作所以打印出4再如x=3; print

5、f(“%d”,x+);則相當(dāng)于執(zhí)行了printf(“%d”,x); x+;這樣的操作,則打印出3,當(dāng)然最后x的值還是4。四、表達(dá)式1、運(yùn)算符和運(yùn)算對象一個運(yùn)算符都有若干個運(yùn)算對象,如 + 必然要跟兩個運(yùn)算對象才能進(jìn)行加法運(yùn)算:3+5。C語言里稱需要跟n個運(yùn)算對象的運(yùn)算符為n元運(yùn)算符。一元運(yùn)算符有:!,(類型名)二元運(yùn)算符有:+,-,*,/,%(求余), =,+=,-=,*=,/=,%=, , =, = =(等于), !=(不等于),&(且) , |(或)多元運(yùn)算符有: ,2、運(yùn)算符的優(yōu)先級和結(jié)合性優(yōu)先級:同一個運(yùn)算對象左右兩邊若同時有兩個運(yùn)算符,則這兩個運(yùn)算符優(yōu)先級高的先進(jìn)行運(yùn)算。結(jié)合性:若同

6、一個運(yùn)算對象左右兩邊的兩個運(yùn)算符優(yōu)先級相同,則根據(jù)結(jié)合性判斷先進(jìn)行哪個運(yùn)算,自左自右結(jié)合性的先算左邊的運(yùn)算符,自右自左的先算右邊的運(yùn)算符。各運(yùn)算符的優(yōu)先級和結(jié)合性見P365附錄C3、強(qiáng)制類型轉(zhuǎn)換格式: (類型名) 表達(dá)式 。將后跟的表達(dá)式的值的數(shù)據(jù)類型轉(zhuǎn)換為與圓括號內(nèi)的類型名一致的類型。注意類型名一定要用() 括起來。4、算術(shù)表達(dá)式算術(shù)運(yùn)算符:+,-,*,/,%(求余)由算術(shù)運(yùn)算符加上運(yùn)算對象構(gòu)成算術(shù)表達(dá)式,如3+3*6-9/2值:跟我們小學(xué)時學(xué)的一樣,就是表達(dá)式的計算結(jié)果整數(shù)除以整數(shù)結(jié)果取整數(shù)部分,故1/3得到的值是05%3 結(jié)果為2,想想小學(xué)除法,求余得到的是余數(shù)不是商。5、賦值表達(dá)式賦值

7、運(yùn)算符:=,+=,-=,*=,/=,%=賦值表達(dá)式:變量=表達(dá)式,如x=3+6,x+=6-9,x+=x*=3+4 注意等號左邊只能是變量復(fù)合賦值運(yùn)算符的運(yùn)算:以/=為例:x/=表達(dá)式 等價于 x=x/(表達(dá)式)值:=號左邊的變量最終的值6、關(guān)系表達(dá)式關(guān)系運(yùn)算符: , =, = =(等于), !=(不等于)由關(guān)系運(yùn)算符加上運(yùn)算對象構(gòu)成關(guān)系表達(dá)式,如3=4, 2=a值:滿足相應(yīng)運(yùn)算符所指定的關(guān)系的值為1,否則為07、邏輯表達(dá)式邏輯運(yùn)算符:&(且) , |(或) , !(非)由邏輯運(yùn)算符加上運(yùn)算對象構(gòu)成邏輯表達(dá)式,如3&4, x|!y值:滿足相應(yīng)運(yùn)算符所指定的關(guān)系的值為1,否則為0進(jìn)行 |或 運(yùn)算時

8、,若|左邊的表達(dá)式值為1,則不再對右邊的表達(dá)式進(jìn)行運(yùn)算。進(jìn)行 &且 運(yùn)算時,若&左邊的表達(dá)式值為0,則不再對右邊的表達(dá)式進(jìn)行運(yùn)算。8、逗號表達(dá)式逗號運(yùn)算符: ,用逗號將各種表達(dá)式連續(xù)起來構(gòu)成逗號表達(dá)式,如3+4,a=9,8*a值:組成逗號表達(dá)式的各個表達(dá)式中的最后一個的值,如上例為8*a五、輸入輸出函數(shù)1、scanf(“格式控制串”,變量地址表列);如scanf(“%d%c%d”,&a,&ch,&b); scanf(“%4f”,&x);注意(zh y):1)格式控制串可控制截取用戶(yngh)輸入的前幾個字符給變量,但不能控制輸入幾位小數(shù)給變量,如不能寫成scanf(“%4.2f”,&x);2

9、)第二個參數(shù)(cnsh)給的是地址,即要么是&+變量名或數(shù)組元素名的形式,要么就是一個數(shù)組名或指針變量名,如int *p,a; p=&a; scanf(“%d”,p);3)考試時注意看題目給你寫好的scanf的格式若其格式控制串內(nèi)各格式符用“,”隔開如scanf(“%d,%c,%d”,&a,&ch,&b);那輸入時也要用逗號隔開,如此例輸入時應(yīng):3,+,5若是這種格式scanf(“%d %d”,&a,&b);則輸入時應(yīng):3 5;若是這種格式scanf(“%d%c%d”,&a,&ch,&b);則輸入時應(yīng)3+5,若寫成3 + 5則a=3,ch= (空格),b=任意值 (自己上機(jī)運(yùn)行看看結(jié)果)2、p

10、rintf(“格式控制串”,輸出項表列);如float x=7.5; printf(“%8.2f”,x);此處的意思是將x打印出來,且占8列,保留兩位小數(shù)。自己上機(jī)運(yùn)行看看效果。3、常用格式符匯總:1)%d:輸入輸出整型數(shù)據(jù),%ld:輸入輸出長整型數(shù)據(jù)2)%c:輸入輸出字符型數(shù)據(jù)3)%f:輸出單(雙)精度浮點(diǎn)型數(shù)據(jù),輸入單精度型數(shù)據(jù)。 %lf:輸入雙精度型數(shù)據(jù)4)%s:輸入輸出一個字符串,用printf輸出字符串時,輸出項書寫時可為字符串常量,或字符數(shù)組名。如printf(“%s”,”hello”);或char str10=”hello”; printf(“%s”,str);5)%u:輸入輸出

11、無符號整型,%o:輸入輸出八進(jìn)制數(shù), 6)%x:輸入輸出十六進(jìn)制數(shù)4)getchar();函數(shù)調(diào)用后返回用戶輸入的一個字符,故需再定義一個變量來存放這個字符,即使用時應(yīng) char c; c=getchar();意思就是接收用戶輸入的一個字符,并將其賦值給變量c。5)putchar(字符常量或字符變量名);如char c=A; putchar(c);或putchar(A);都會向屏幕輸出字符A。六、C語言的語句1、表達(dá)式語句:由表達(dá)式末尾加上分號構(gòu)成。2、函數(shù)調(diào)用語句:由函數(shù)調(diào)用表達(dá)式加上分號構(gòu)成。3、空語句: ;4、選擇結(jié)構(gòu)語句:if語句 switch語句5、循環(huán)語句:for語句 while語

12、句 do while語句6、復(fù)合語句:用花括號將以上任意語句括起來構(gòu)成一條復(fù)合語句。七、C程序的基本結(jié)構(gòu)void main() 聲明部分:用來定義變量和聲明自定義函數(shù)的原型,需以“;”結(jié)尾,如int x; 執(zhí)行語句部分:第六點(diǎn)里介紹的各種語句,如x=3;printf(“%d”,x);main函數(shù)外可寫自定義函數(shù)。如int max() return 0;八、選擇結(jié)構(gòu)語句1、if(表達(dá)式) 語句1 else 語句2 如果if語句的圓括號內(nèi)的表達(dá)式值為非0,則執(zhí)行語句1,值為0則執(zhí)行語句2。1)表達(dá)式可為任意(rny)表達(dá)式,if語句執(zhí)行的實(shí)質(zhì)是判斷表達(dá)式的值是否為0來決定(judng)執(zhí)行語句1還

13、是語句2。另外請在此處表達(dá)嚴(yán)重關(guān)切(gunqi),不管是高手還是菜鳥經(jīng)常會把判斷兩個數(shù)相等的符號“=”寫成了一個等號“=”成為了賦值運(yùn)算,這樣的寫法不會引發(fā)編譯錯誤,但結(jié)果會與原意大大不同,所以考試前請再三提醒自己。2)語句1和語句2都只能是一個語句,若要跟多條語句,切記用一對括起來,構(gòu)成復(fù)合語句;也不要隨便在圓括號后加“;” ,因“ ;”構(gòu)成一條空語句,這會使后面跟的語句1不再屬于if語句的組成部分。3)if語句的三種結(jié)構(gòu)單邊: if(表達(dá)式) 語句雙邊:if(表達(dá)式) 語句1 else 語句2多層(重點(diǎn)掌握):if(表達(dá)式1) 語句1 else if(表達(dá)式2) 語句2 else if(表

14、達(dá)式3) 語句3else 語句n2、條件運(yùn)算符 表達(dá)式1? 表達(dá)式2 : 表達(dá)式3 若表達(dá)式1的值非0,則取表達(dá)式2的值做為整個表達(dá)式的值,否則取表達(dá)式3的值為整個表達(dá)式的值。如 34? 1:2 該表達(dá)式的值為23、switch語句switch(表達(dá)式)case 表達(dá)式1:語句case 表達(dá)式2:語句case 表達(dá)式n:語句default: 語句語句執(zhí)行過程:先計算表達(dá)式的值,然后判斷該值與表達(dá)式1到表達(dá)式n中的哪個相等,若與表達(dá)式i的值相等,則執(zhí)行表達(dá)式i后的所有語句,當(dāng)遇到break;語句時結(jié)束整個switch語句的執(zhí)行。表達(dá)式1到表達(dá)式n的值都不相等的情況下執(zhí)行default后跟的語句。

15、每個case后可跟多條語句。九、循環(huán)結(jié)構(gòu)1、for循環(huán)語句for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體語句語句執(zhí)行過程:1)計算表達(dá)式12)判斷表達(dá)式2的值是否為0,若為0,語句執(zhí)行結(jié)束,若不為0,進(jìn)入步驟33)執(zhí)行循環(huán)體語句(需注意的是循環(huán)體語句只能有一個語句,若要包含多個語句要用一對括起來,構(gòu)成一條復(fù)合語句,此處也不要隨便加上 “ ; ”,因一個“;”可構(gòu)成一條空語句,這會使得后面真正的循環(huán)體語句不屬于for循環(huán)語句的部分)。進(jìn)入步驟44)計算表達(dá)式3,然后重新進(jìn)入步驟22、while循環(huán)語句 do while循環(huán)語句1)while(表達(dá)式) 循環(huán)體語句執(zhí)行過程:(1)判斷表達(dá)式的值是否

16、為非0,若是進(jìn)入步驟2,否則結(jié)束語句執(zhí)行。(2)執(zhí)行循環(huán)體語句,重新回到步驟1。2)do 循環(huán)體語句 while(表達(dá)式);執(zhí)行過程:(1)執(zhí)行循環(huán)體語句,進(jìn)入步驟2(2)判斷(pndun)表達(dá)式的值是否為非0,若是重新回到步驟1,否則結(jié)束語句執(zhí)行。這里要注意的地方跟for語句一樣,即循環(huán)體語句只能有一個語句,若要包含多個語句要用一對(y du)括起來,構(gòu)成一條復(fù)合語句,此處也不要隨便加上 “ ; ”,因一個(y )“;”可構(gòu)成一條空語句,這會使得后面真正的循環(huán)體語句不屬于while循環(huán)語句的部分,另外do while循環(huán)的while(表達(dá)式)后是要加“;”的。3、break語句:放在循環(huán)體內(nèi)

17、實(shí)現(xiàn)的功能是結(jié)束其所在的那層循環(huán)的執(zhí)行。十、數(shù)組1、定義格式:數(shù)據(jù)類型 數(shù)組名整型常量;如 int a10; 定義了一個整型數(shù)組,數(shù)組名為a,這個數(shù)組含有10個元素。2、引用數(shù)組元素: 格式:數(shù)組名下標(biāo) 切記下標(biāo)值從0開始。下標(biāo)可為常量,表達(dá)式,變量等,如int i=3; a0=5;a3*2=9; ai=7;3、初始化:數(shù)據(jù)類型 數(shù)組名整型常量=數(shù)據(jù)表列;將數(shù)據(jù)表列的各個值依次賦值給數(shù)組的各個元素。如int a5=0,1,2,3,4;則數(shù)組a各元素a0到a4的值分別為0,1,2,3,44、遍歷數(shù)組元素數(shù)組定義后,我們不能對數(shù)組進(jìn)行整體的操作,如int a10;不能用a=3這樣的操作將數(shù)組的各元

18、素都賦值為3;而只能一個一個元素的進(jìn)行賦值,如a0=3;a1=3;a2=3a9=3; 當(dāng)然此時我們就可以借助于一個for循環(huán)來控制下標(biāo)的變化從而對數(shù)組的各個元素進(jìn)行賦值5、for(i=0;i y ? x : y ; return ( z ) ;注意點(diǎn):1)函數(shù)類型是指返回值的類型,即要與return語句后跟的表達(dá)式的值的類型一致。若函數(shù)類型為void則說明該函數(shù)無返回值,即函數(shù)體里不能出現(xiàn)return 語句。2)形式參數(shù)列表里定義的變量要記得給它們指定類型,而且如果同時要定義多個,應(yīng)在每個前面都分別指定類型名,而不能寫成int x,y;3)函數(shù)體里能寫的語句跟main函數(shù)一樣,在開頭可定義所需

19、要的變量,后面跟上一堆執(zhí)行語句。2、函數(shù)調(diào)用流程以上面的函數(shù)為例,在main函數(shù)進(jìn)行調(diào)用:void main()int a,b,c; scanf(“%d%d”,&a,&b); printf(“%d”,max(a,b);或 c=max(a,b);printf(“%d”,c);以上兩種方法都會在屏幕中打印出a,b間的較大值。調(diào)用函數(shù)的格式 函數(shù)名(實(shí)際參數(shù)列表);調(diào)用的時候像什么函數(shù)類型,形式參數(shù)的類型就不要加上去了。max(a,b)中max就是函數(shù)名,寫上變量名a,b是實(shí)際參數(shù)列表,執(zhí)行這個調(diào)用語句時,會先把a(bǔ),b的值給相應(yīng)位置的形式參數(shù)即執(zhí)行了x=a,y=b這樣的操作,然后開始執(zhí)行max函數(shù)的

20、函數(shù)體的語句。當(dāng)max函數(shù)體里執(zhí)行到一個return語句時,則max函數(shù)結(jié)束執(zhí)行,將return后的表達(dá)式的值返回給main函數(shù)調(diào)用max函數(shù)的那個位置,即若上面a=3,b=5則max(a,b)return后的表達(dá)式的值應(yīng)該是5也就是說執(zhí)行完max后把5返回到調(diào)用max的位置可看成printf(“%d”,5);或另一種解法的c=5。十三、指針1、指針變量的聲明: 類型名 * 指針變量名;2、通過指針變量訪問它所指向的普通變量的值先將普通變量(binling)的地址賦值給指針變量,再通過指針運(yùn)算符* 得到普通變量的值。int *p,x,y;x=3;p=&x;則printf(“%d”,*p);會打

21、印(d yn)出3即x的值y=*p;則y的值變?yōu)?*p=5;則x的值變?yōu)?3、指針(zhzhn)變量加上(減去)一個位移的效果若指針變量存入的是數(shù)組元素的地址,則其加一減一得到的是那個數(shù)組元素下一個或前一個元素的地址。int a10; p=&a3;*p得到的是a3的值。若p+;此時p存放的是a4的地址&a4; *p得到的就是a4的值。或p-;此時p存放的是a2的地址&a2,*p得到的就是a2的值。4、行指針主要是對于二維數(shù)組來說的,二維數(shù)組每行都有自己的地址,第0行地址用 數(shù)組名 表示,第i行地址為 數(shù)組名+i;而想要得到二維數(shù)組里一個元素的地址,必需先得到其所在行的地址,然后再由那個地址得到

22、元素的地址,比如說 int a34;定義了一個二維數(shù)組,該二維數(shù)組第0行的地址為a,第1行的地址為a+1,第2行的地址為a+2,想從行的地址得到元素的地址,需在行地址前加上指針運(yùn)算符“*”,即*a就是第0行首個元素的地址即a00的地址,而a02的地址就是在a00的地址基礎(chǔ)上加上位移量2,即*a+2,然后想得到a02這個元素的值呢就再加上一個指針運(yùn)算符“*”,即*(*a+2),類似地,想得到a22這個元素的值呢就是*(*(a+2)+2)定義行指針變量: 類型名 (*變量名)數(shù)組長度;如int (*p)4,a34; p=a;此時就可把p當(dāng)成a來用,用法同上所述。5、判斷是否合法訪問數(shù)組元素:若是指

23、針法訪問,判斷指針后跟的是否地址;若是下標(biāo)法訪問,判斷下標(biāo)有無越界。6、函數(shù)指針:函數(shù)名即為函數(shù)的地址(指針)1)函數(shù)指針變量的定義: 類型名 (*變量名) (形參列表);如 int (*p)();2)賦值:指針變量=函數(shù)名;設(shè)有個函數(shù)其函數(shù)名為max,則要將該函數(shù)的地址給p的話只要執(zhí)行如下語句即可 p = max;7、指針數(shù)組:指針數(shù)組的數(shù)組元素都是指針變量,是用來存放變量的地址的,定義格式為 類型名 * 變量名數(shù)組長度; 如int * p10;8、指向指針的指針:指針變量也是一種變量,故在內(nèi)存中也有對應(yīng)的一個地址,而要存放指針變量的地址,就要求助于用來存放指針變量的地址的指針變量,定義格式

24、 類型名 * 變量名;如 int *p1; int *p2; int a=3;可進(jìn)行賦值p1=&a; p2=&p1; 則a 、*p1和 *p2的值都是3.十四、宏定義1、無參宏定義 #define 標(biāo)識符 值 定義后,出現(xiàn)所定義的標(biāo)識符的地方都將以定義時指定的值來代替。#define M 2+3main() int x;x=M*M; 則x的值為2+3*2+3=11若想得到的結(jié)果是(2+3)*(2+3)則定義時也寫成這樣 #define M (2+3)注意#define、標(biāo)識符、值之間都要用空格隔開,且宏定義結(jié)尾不需加分號。2、帶參宏定義 #define 標(biāo)識符(參數(shù)表) 值#define S(

25、x,y) x*ymain( )int a=3,b=4,c=5,d=6;printf(a*b=%dn, S(a,b); 此時會打印出 a*b=12printf(a+b*c+d=%dn , S(a+b,c+d); 此時會打印出a+b*c+d=29,帶參宏定義執(zhí)行時是將a+b這樣一個表達(dá)式代替(dit)x,c+d這樣一個表達(dá)式代替y,所以S(a+b,c+d)進(jìn)行的是a+b*c+d的運(yùn)算,而不是將a+b的值給x,c+d的值給y然后再做x*y,這點(diǎn)跟函數(shù)調(diào)用傳遞(chund)參數(shù)是不一樣的。3、自定義類型名typedef:對已存在(cnzi)的類型名取一個外號。基本格式:typedef 原類型名 新類型

26、名;typedef int INTEGER; 則int a,b;等價于INTEGER a,b;typedef int NUM10; 則 int a10;等價于 NUM a; a即為一個有10個元素的數(shù)組的數(shù)組名。typedef int * INTEGER; 則int *a,*b;等價于INTEGER a,b;十五、結(jié)構(gòu)體,共用體,枚舉類型1、結(jié)構(gòu)體1)結(jié)構(gòu)體類型的定義及變量的定義struct 結(jié)構(gòu)體名 類型 成員1; 類型 成員2; 類型 成員n; 變量名;如struct student char name10;long num;int score4;st1;定義類型時同時定義變量struct

27、 student st2;定義類型后,用類型名定義變量還有一種struct char name10;long num;int score4;st3;不給類型名,直接定義變量2)結(jié)構(gòu)體變量所占字節(jié)數(shù):各成員各占字節(jié)數(shù)之和,如以上st1,st2,st3的字節(jié)數(shù)皆為10+4+2*4=22結(jié)構(gòu)體數(shù)組的定義及初始化struct student a3= zhang,20030001,89,90,91,92, liu,20030002,68,69,70,71, li,20030003,57,58,59,60 結(jié)構(gòu)體成員的訪問結(jié)構(gòu)體變量名. 成員名 如2通過指針訪問:struct studen

28、t *st; st=&st1; (*st).num 或 st-num2、共用體1)共用體類型的定義及變量的定義union 共用體名 類型(lixng) 成員(chngyun)名1; 類型(lixng) 成員名n; ;變量的定義與結(jié)構(gòu)體類似,也有三種方法。union data int i;char ch;float f;d1; 定義類型時同時定義變量union data d2; 定義類型后,用類型名定義變量union int i;char ch;float f;d3; 不給類型名,直接定義變量2)共用體變量所占字節(jié)數(shù):各成員所占字節(jié)數(shù)的最大值,如上d1,d2,d3所占字節(jié)數(shù)皆為4.(單精度浮點(diǎn)型

29、變量所占字節(jié)數(shù)最多為4).3)共用體成員的訪問共用體變量名. 成員名 如d1.f通過指針訪問:union student *d; d=&d1; (*d).num 或 d-num3、枚舉類型1)枚舉類型的定義:enum 枚舉名枚舉元素名1,枚舉元素名2,枚舉元素名n;2)枚舉元素的值:默認(rèn)值分別為0、1、n-1。枚舉元素的值也可在定義時重指定,對于沒有指定值的元素,按順序加1如enum weekdaysun=7,mon=1,tue,wend,thur,fri,sat;則sun值為7,mon值為1,tue值為2,wend值為3,thur值為4,fri值為5,sat值為6十六、Turbo C的使用1

30、、菜單激活: F102、菜單切換:左右方向鍵在不同菜單間切換,上下方向鍵在同一個菜單不同選項間切換。3、載入文件:兩種方法:1.找到源文件所在位置,直接將其拉到Turbo C快捷方式上;2. F34、運(yùn)行程序: ctrl+F95、看程序運(yùn)行結(jié)果:alt+F56、進(jìn)入編輯狀態(tài):菜單Edit7、保存: F28、插入狀態(tài)切換: Insert鍵鞏固練習(xí)一、鞏固練習(xí)11、以下不是C語言的特點(diǎn)的是( )。A、語言簡潔緊湊 B、能夠編制出功能復(fù)雜的程序 C、C語言可以直接對硬件操作 D、C語言移植性好2、下列字符序列(xli)中,不可用作C語言標(biāo)識符的是( )。A、abc123 B、no.1 C、_123_

31、 D、_ok 3、正確(zhngqu)的C語言標(biāo)識符是 ( )。A、_buy_2 B、2_buy C、?_buy D、buy?4、請選出可用作C語言用戶(yngh)標(biāo)識符的一組標(biāo)識符( )。 A、void B、a3_b3 C、For D、2adefine _123 -abc DOWORD IF Case sizeof5、下列符號中,不屬于轉(zhuǎn)義字符的是( )。 A、 B、0 xAA C、t D、06、不屬于C語言關(guān)鍵字的是( )。 A、int B、break C、while D、character 7、是C語言提供的合法關(guān)鍵字的是( )。 A、Float B、signed C、integer D

32、、Char8、以下不能定義為用戶標(biāo)示符的是( )。 A、scanf B、Void C、_3com_ D、int 9、一個C程序是由( )。 A、一個主程序和若干子程序組成B、一個或多個函數(shù)組成C、若干過程組成D、若干子程序組成10、C語言程序的基本單位是( )。 A、程序行 B、語句 C、函數(shù) D、字符11、下列說法中,錯誤的是( )。 A、每個語句必須獨(dú)占一行,語句的最后可以是一個分號,也可以是一個回車換行符號B、每個函數(shù)都有一個函數(shù)頭和一個函數(shù)體,主函數(shù)也不例外C、主函數(shù)只能調(diào)用用戶函數(shù)或系統(tǒng)函數(shù),用戶函數(shù)可以相互調(diào)用D、程序是由若干個函數(shù)組成的,但是必須有、而且只能有一個主函數(shù)12、以下

33、說法中正確的是( )。 A、C語言程序總是從第一個定義的函數(shù)開始執(zhí)行B、在C語言程序中,要調(diào)用的函數(shù)必須在main( )函數(shù)中定義C、C語言程序總是從main( )函數(shù)開始執(zhí)行D、C語言程序中的main( )函數(shù)必須放在程序的開始部分13、C編譯程序是( )。 A、C程序的機(jī)器語言版本 B、一組機(jī)器語言指令 C、將C源程序編譯成目標(biāo)程序 D、由制造廠家提供的一套應(yīng)用軟件14、以下選項中,合法的用戶標(biāo)識符是( )。A、long B、_2abc C、3dmax D、A.dat15、以下選項中,合法的實(shí)型常數(shù)是( )。A、5E2.0 B、E-3 C、2E0 D、1.3E16、已知大寫字母A的ASCI

34、I碼值是65, 小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量101是( )。A、字符A B、字符a C、字符c D、非法(fif)的常量17、以下(yxi)選項中, 合法轉(zhuǎn)義字符的選項是( )。A、 B、018 C、xab D、abc18、以下選項中,正確的字符(z f)常量是( )。A、”F” B、 C、W D、19、以下選項中可作為C語言合法整數(shù)的是A、10110B B、0386 C、0Xffa D、x2a220、下列變量定義中合法的是 A、short _a=1-.le-1; B、double b=1+5e2.5; C、long do=0 xfdaL; D、float 2_an

35、d=1-e-3;21、與數(shù)學(xué)式子 對應(yīng)的C語言表達(dá)式是( )。A、9*xn/(2*x-1) B、9*x*n/(2*x-1)C、9*pow(x,n)*(1/(2*x-1) D、9*pow(n,x)/(2*x-1)22、若有代數(shù)式 ,則不正確的C語言表達(dá)式是( )。A、a/c/d*b*3 B、3*a*b/c/dC、3*a*b/c*d D、a*b/d/c*323、已知各變量的類型說明如下: int m=8,n, a, b; unsigned long w=10; double x=3.14, y=0.12; 則以下符合C語言語法的表達(dá)式是( )。A、a+=a-=(b=2)*(a=8) B、n=n*3

36、=18C、x%3 D、y=float (m)24、以下符合C語言語法的賦值表達(dá)式是( )。A、a=9+b+c=d+9 B、a=(9+b, c=d+9)C、a=9+b, b+, c+9 D、a=9+b+=c+925、已知字母A的ASCII碼為十進(jìn)制數(shù)65,且S為字符型,則執(zhí)行語句S=A+6-3;后,S中的值為( )。A、D B、68 C、不確定的值 D、C26、在C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是( )。A、/ B、+ C、*= D、%27、若有說明語句:char s=72;則變量s( )。A、包含一個字符 B、包含兩個字符C、包含三個字符 D、說明不合法,s的值不確定28、若有定義:in

37、t m=7; float x=2.5, y=4.7; 則表達(dá)式x+m%3*(int)(x+y)%2/4的值是( )。A、2.500000 B、2.750000 C、3.500000 D、0.00000029、在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是( )。A、補(bǔ)碼 B、反碼 C、原碼 D、ASCII碼30、設(shè)變量x為float類型,m為int類型,則以下能實(shí)現(xiàn)將x中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是( )。A、x=(x*100+0.5)/100.0 B、m=x*100+0.5, x=m/100.0C、x=x*100+0.5/100.0 D、x=(x/100+0.5)

38、*100.031、表達(dá)式13/3*sqrt(16.0)/8的數(shù)據(jù)類型是( )。A、int B、float C、double D、不確定(qudng)32、設(shè)以下變量均為int類型(lixng),則值不等于7的表達(dá)式是( )。A、(m=n=6, m+n, m+1) B、(m=n=6, m+n, n+1)C、(m=6, m+1, n=6, m+n) D、(m=6, m+1, n=m, n+1)33、假設(shè)所有(suyu)變量均為整型,則表達(dá)式(x=2, y=5, y+, x+y)的值是( )。A、7 B、8 C、6 D、234、已知s是字符型變量,下面不正確的賦值語句是( )。A、s=012; B、

39、s= u+v;C、s=1+2; D、s=1+2;35、已知s是字符型變量,下面正確的賦值語句是( )。A、s=abc; B、s=08;C、s=xde; D、s=”;36、若有以下定義,則正確的賦值語句是( )。int x,y; float z;A、x=1,y=2, B、x=y=100 C、x+; D、x=int (z);37、設(shè)x、y均為float型變量,則不正確的賦值語句是( )。A、+x ; B、x*=y-2; C、y=(x%3)/10; D、x=y=0;38、下列語句中符合C語言的賦值語句是( )。A、a=7+b+c=a+7; B、a=7+b+=a+7;C、a=7+b,b+,a+7 D、

40、a=7+b,c=a+7;39、putchar函數(shù)可以向終端輸出一個( )。A、整型變量表達(dá)式值。 B、字符串C、實(shí)型變量值。 D、字符或字符型變量值。40、以下程序段的輸出結(jié)果是( )。int a=12345; printf(”%2dn”, a); A、12 B、34 C、12345 D、提示出錯、無結(jié)果41、若x和y均定義為int 型,z定義為double型,以下不合法的scanf()函數(shù)調(diào)用語句為( )。A、scanf(”%d%lx,%le”,&x,&y,&z);B、scanf (”%2d*%d%lf ”, &x, &y, &z);C、scanf(”%x%*d%o”, &x,&y);D。s

41、canf(”%x%o%6.2f”, &x,&y,&z);42、有如下程序段: int x1,x2;char y1,y2;scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);若要求x1、x2、y1、y2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入是( )。(注:代表空格)A、10A20B B、10A20BC、10 A20 B D、10A20B43、若變量已正確說明為float類型, 要通過語句(yj)scanf(”%f %f%f”, &a, &b, &c);給a賦予10.0, b賦予22.0, c賦予33.0, 不正確的輸入形式為( )。A、10 B、10.0,22.0,33.0

42、 22 33C、10.0 D、10 2222.0 33.0 3344、有如下程序,若要求x1、x2、y1、y2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入是( )。(注:代表空格)int x1,x2;char y1,y2;scanf(”%d%d”,&x1,&x2);scanf(”%c%c”, &y1,&y2);A、1020AB B、1020ABCC、1020 D、1020ABAB45、已有定義int a=-2;和輸出語句:printf(”%8lx”,a);以下正確的敘述是( )。A、整型變量的輸出格式符只有%d一種B、%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)C、%x是格式符D、%8l

43、x不是錯誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度46、有如下程序段,對應(yīng)正確的數(shù)據(jù)輸入是( )。float x,y;scanf(”%f%f”, &x,&y);printf(”a=%f,b=%f”, x,y);A、2.04 B、2.04,5.67 5.67C、A=2.04,B=5.67 D、2.055.6747、有如下程序段,從鍵盤輸入數(shù)據(jù)的正確形式應(yīng)是( )。(注:代表空格)float x,y,z;scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);A、123 B、x=1,y=2,z=3C、1,2,3 D、x=1 y=2 z=348、以下說法正確的是( )。A、輸入項可以為一個

44、實(shí)型常量,如scanf(”%f”,3.5);B、只有格式控制,沒有輸入項,也能進(jìn)行正確輸入,如scanf(”a=%d,b=5d”);C、當(dāng)輸入一個實(shí)型數(shù)據(jù)時,格式控制部分應(yīng)規(guī)定小數(shù)點(diǎn)后的位數(shù),如scanf(”%4.2f”,&f);D、當(dāng)輸入數(shù)據(jù)時,必須指明變量的地址,如scanf(”%f”,&f);49、根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為:( )。(注:代表空格)已有定義:float x,y;數(shù)據(jù)的輸入方式:1.23 4.5A、scan(”%f,%f”,&x,&y); B、scanf(”%f%f”,&x,&y);C、scanf(”%3.2f%2.1f”,&x,&y); D、scan

45、f(”%3.2f%2.1f”,&x,&y);50、根據(jù)下面的程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語句的正確形式應(yīng)該為( )。#include ”stdio.h”main()char s1,s2,s3;輸入(shr)語句;printf(”%c%c%c”,s1,s2,s3);輸入(shr)形式:ABC (注:代表(dibio)空格)輸出形式:ABA、scanf(”%c%c%c”,&s1,&s2,&s3);B、scanf(”%c%c%c”,&s1, &s2,&s3);C、scanf(”%c,%c,%c”,&s1,&s2,&s3); D、scanf(”%c%c”, &s1, &s2,&s3);51、

46、以下程序的執(zhí)行結(jié)果是:( )。#include ”stdio.h”main() int x=2,y=3; printf(”x=%d,y=%dn”,x,y);A、x=%2,y=%3 B、x=%d,y=%dC、x=2,y=3 D、x=%d,y=%d52、以下程序的輸出結(jié)果是( )。(注:代表空格)#include ”stdio.h”main() printf(”nstring1=%15s*”, ”programming”); printf(”nstring2=%-5s*”, ”boy”); printf(”string3=%2s*”, ”girl”);A、string1=programming*

47、B、string1=programming* string2=boy* string2=boy*string3=gi* string3=gi* C、string1=programming* D、string1=programming* string2=boy*string3=girl* string2=boy*string3=girl*53、根據(jù)題目中已給出的數(shù)據(jù)的輸入和輸出形式,程序中輸入輸出語句的正確內(nèi)容是( )。#include ”stdio.h”main() int a; float b; 輸入語句 輸出語句輸入形式:12.3 (注:代表空格)輸出形式:a+b=3.300A、scanf

48、(”%d%f”,&a,&b); B、scanf(”%d%3.1f”,&a,&b); printf(”na+b=%5.3f”,a+b); printf(”na+b=%f”,a+b);C、scanf(”%d,%f”,&a,&b); D、scanf(”%d%f”,&a,&b); printf(”na+b=%5.3f”,a+b) printf(”na+b=%f”,a+b);54、閱讀以下程序(chngx),當(dāng)輸入數(shù)據(jù)的形式為:12,34,正確的輸出結(jié)果為( )。#include ”stdio.h”main() int a,b; scanf(”%d%d”, &a,&b); printf(”a+b=%dn

49、”,a+b);A、a+b=46 B、有語法錯誤C、a+b=12 D、不確定(qudng)值55、若有定義:int x,y; char s1,s2,s3; 并有以下輸出數(shù)據(jù)(shj):(注:代表空格) 12 UVW則能給x賦給整數(shù)1,給y賦給整數(shù)2,給s1賦給字符U,給s2賦給字符V,給s3賦給字符W的正確程序段是( )。A、scanf(”x=%dy=%d”,&x,&y); s1=getchar();s2=getchar();s3=getchar();B、scanf(”%d%d”,&x,&y); s1=getchar();s2=getchar();s3=getchar();C、scanf(”%d

50、%d%c%c%c”,&x,&y,&s1,&s2,&s3);D、scanf(”%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3);答案:1、B2、B3、A4、B5、B6、D7、B8、D9、B10、C11、A12、C13、C14、B15、C16、A17、A18、C19、C20、A21、C22、C23、A24、B25、A26、D27、A28、A29、D30、B31、C32、C33、B34、B35、C36、C37、C38、D39、D40、C41、D42、A43、B44、D45、D46、A47、B48、D49、B50、A51、D52、D53、A54、D55、

51、D二、鞏固練習(xí)21、已有定義:int x=3, y=4, z=5; 則表達(dá)式!(x+y)+z-1 & y+z/2的值是()。A、6 B、0 C、2 D、12、設(shè)a=5,b=6,c=7,d=8,m=2,n=2, 則執(zhí)行(m=ab) & (n=cd)后n的值為()。A、1 B、2 C、3 D、43、設(shè)x、y和z都是int類型變量,且x=3,y=4,z=5, 則下面的表達(dá)式中,值為0的表達(dá)式為()。 A、x & y B、x=y C、x|y+z & y-z D、!(xy)&!z|1)4、為了避免嵌套的if-else語句的二義性,C語言規(guī)定else總是與()組成配對關(guān)系。A、縮排位置相同的ifB、在其之

52、前未配對的ifC、在其之前未配對的最近的ifD、同一行上的if5、邏輯(lu j)運(yùn)算符兩側(cè)運(yùn)算對象的數(shù)據(jù)類型()。 A、只能(zh nn)是0或1 B、只能(zh nn)是0或非0正數(shù) C、只能是整型或字符型數(shù)據(jù) D、可以是任何類型的數(shù)據(jù)6、以下關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是()。 A、關(guān)系運(yùn)算符算術(shù)運(yùn)算符賦值運(yùn)算符邏輯與運(yùn)算符 B、邏輯與運(yùn)算符關(guān)系運(yùn)算符算術(shù)運(yùn)算符賦值運(yùn)算符 C、賦值運(yùn)算符邏輯與運(yùn)算符關(guān)系運(yùn)算符算術(shù)運(yùn)算符 D、算術(shù)運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符邏輯與運(yùn)算符7、下列運(yùn)算符中優(yōu)先級最高的是()。 A、 B、& C、+ D、!=8、選擇出合法的if語句(設(shè)int x,a,b,c;

53、)()。 A、if(a=b) c+; B、if(a=b) c+; C、if(ab) c+; D、if(a=b) c+;9、能正確表示“當(dāng)x的取值在-58,-40和40,58范圍內(nèi)為真,否則為假”的表達(dá)式是()。 A、(x= -58) & (x=40) & (x= -58) | (x=40) | (x= -58) & (x=40) & (x= -58) | |(x=40) | (x=58)10、判斷char型變量s是否為小寫字母的正確表達(dá)式是()。 A、a = s=a) & (s=a) & (s=z) D、(a=s)11、若希望當(dāng)x的值為奇數(shù)時,表達(dá)式的值為“真”,x的值為偶數(shù)時,表達(dá)式的值為“

54、假”。則以下不能滿足要求的表達(dá)式是()。 A、x%2=1 B、!(x%2=0) C、!(x%2) D、x%212、已知 x=45, y=a, z=0; 則表達(dá)式(x=z & yz | !y)的值是()。 A、0 B、語法錯 C、1 D、“假”13、指出下列程序段所表示的邏輯關(guān)系是()。if(a0) y=1;else if (x=0) y=0; else y= -1;B、y=0; if (x0) y=1; else if (x=0) if(x0) y=1; else y= -1;D、if (x=0) if (x0) y=1; else y=0; else y= -1;15、執(zhí)行(zhxng)以下

55、語句后,y 的值為()。int x,y,z;x=y=z=0;+x | +y & +z;A、0 B、1 C、2 D、不確定(qudng)值16、已知int a=1,b=2,c=3; 以下語句(yj)執(zhí)行后a,b,c的值是()。if(ab)c=a; a=b; b=c;A、a=1, b=2, c=3 B、a=2, b=3, c=3C、a=2, b=3, c=1 D、a=2, b=3, c=217、請閱讀以下程序:該程序()。#include ”stdio、h”main() int x=-10, y=5, z=0;if (x=y+z) printf(”*n” );else printf(”$n”);A

56、、有語法錯不能通過編譯 B、可以通過編譯但不能通過連接C、輸出* D、輸出$18、以下程序的運(yùn)行結(jié)果是()。#include ”stdio.h”main() int a=1;if (a+1) printf(”%dn”, a);else printf(”%dn”, a-);A、0 B、1 C、2 D、319、當(dāng)a=1,b=2,c=4,d=3時,執(zhí)行完下面一段程序后x的值是()。 if (ab)if (cd) x=1;else if (ac) if (bd) x=2; else x=3;else x=4;else x=5;A、1 B、2 C、3 D、420、執(zhí)行以下(yxi)程序段后,變量x,y,

57、z的值分別為()。 int a=1,b=0, x, y, z;x=(-a=b+)?-a:+b;y=a+;z=b;A、x=0,y=0,z=0 B、x= -1,y= -1,z= 1C、x=0,y=1,z=0 D、x= -1,y= 2, z= 121、若a、b、c、d、w均為int類型(lixng)變量,則執(zhí)行下面語句后的w值是()。a=1;b=2;c=3;d=4;w=(ab)?a :b;w=(wc)?w :c;w=(wb? ac?a:c :b);A、5 B、4 C、6 D、不確定23、若a、b、c1、c2、x、y均為整型變量,正確的switch 語句是()。A、switch (a+b); B、sw

58、itch a case 1: y=a+b; break; case c1: y=a-b; break;case 0: y=a-b; case c2: x=a*d; break; break; default: x=a+b; C、switch (a*a+b*b) D、switch(a-b) case 3: default: y=a*b; break;case 1: y=a+b; break; case 3: x=a+b; break;case 3: y=b-a; break; case 10: case 11: y=a-b; break; 24、執(zhí)行下列程序,輸入為3的數(shù)出結(jié)果是()。#incl

59、ude ”stdio.h”main() int k; scanf(”%d”, &k); switch(k) case 1: printf(”%dn”, k+); case 2: printf(”%dn”, k+); case 3: printf(”%dn”, k+); case 4: printf(”%dn”, k+);break; default: printf(”Full!n”);A、3 B、4 C、3 D、45 425、假定等級和分?jǐn)?shù)有以下(yxi)對應(yīng)關(guān)系:等級(dngj):A 分?jǐn)?shù)(fnsh):85100等級:B 分?jǐn)?shù):6084等級:C 分?jǐn)?shù):60以下對于等級grade輸出相應(yīng)的分?jǐn)?shù)

60、區(qū)間,能夠完成該功能的程序段是()。A、switch (grade) case A :printf(”85100n”);case B :printf(”6084n”);case C :printf(”60n”); default: printf(”grade is error!n”); B、switch (grade) case A :printf(”85100n”); break; case B :printf(”6084n”);case C :printf(”60n”); default: printf(”grade is error!n”); C、switch (grade) case

溫馨提示

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

評論

0/150

提交評論