《C語言程序設計基礎》單元總結與練習題及答案_第1頁
《C語言程序設計基礎》單元總結與練習題及答案_第2頁
《C語言程序設計基礎》單元總結與練習題及答案_第3頁
《C語言程序設計基礎》單元總結與練習題及答案_第4頁
《C語言程序設計基礎》單元總結與練習題及答案_第5頁
已閱讀5頁,還剩67頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C語言程序設計基礎單元總結與練習題及答案C語盲程序設計單元總結與練習題單元程序設計宏觀認識單元總結提升本單元中,核心內容有C語言程序框架結構、程序的構成和程序開發過程。通過本單元的學習,我們應該知道:1.C語言程序最基本的程序框架由兩部分構成,分別是:(1)編譯預處理(2)函數組C語言程序設計基礎單元總結與練習題及答案2.C程序最大的特點就是所有的程序都是用函數來裝配的,函數是構成C語言程序的基本單位,函數包括主函數、庫函數和自定義函數。函數的一般結構形式為:函數返回值類型函數名(形式參數)說明語句;函數首部。函數體可執行語句;3.標識符是用來標識程序中的某個對象名字的字符序列。C語言把標識符

2、分為三類,即關鍵字、預立義標識符、用戶自泄義標識符。對于用戸自泄義標識符的命名C語言規左:(1)所有的用戶標識符必須先定義后使用:(2)用戶標識符由字母(AZ,az)、數字(09)、下劃線組成,并且首字符不能是數字:(3)區分大小寫;(4)不能用關鍵字作為用戶自宦義標識符,通常不使用預定義標識符作為用戶自泄義標識符。4.理論上講,程序開發過程分為四個步驟,分別為:(1)編輯源程序_編譯源程序,生成目標程序_(3)(4)連接目標程序及其相關模塊,生成可執行文件_運行可執行文件_5.簡單描述使用VC+6.0開發應用程序的步驟:如圖所示:圖VC+6.0開發程序的步驟總之,通過本單元的學習,應該掌握C

3、語言程序框架結構和程序開發過程,還要對C語言程序設計的知識脈絡有一左的了解。單元練習一.選擇題1.構成C語言程序的基本單位是()。A.框架田.預處理C.函數4).語句C語言程序設計基礎單元總結與練習題及答案2.在程序開發過程中,把文本文件格式源程序轉化為二進制格式的目標程序的過程稱之為()。A.編輯B.編譯C.連接D.運行3.關于主函數,下列說法不正確的是()。A.個完整的C語言應用程序有唯一的主函數B.主函數的爼稱只能是mainC.主函數可以被苴他自泄義函數調用D.C語言程序的運行從主函數開始,以主函數為核心展開4.關于標識符,下列說法不正確的是()和三種字符組成,而且,首字符只能是_或_。

4、*夫*次*n*“n*C語言程序設計基礎單元總結與練習題及答案習題答案:一.選擇題1.G2.B3.C4C5.C二.填空題1主函數main2.分號:3./*4.程序).obj*/源程序.cpp或.3目標文件(或目標可執行文件(或可執行程序)exe5.字母(AZaz)、數字(09)、下劃線字母或下劃線*/*專*扌*卓*次*次C語言程序設計基礎單元總結與練習題及答案單元二程序設計基礎知識單元總結提升本單元中,核心內容有C語言中基本的數據類型、常雖和變量、運算符和表達式以及算法的槪念。通過本單元的學習,我們應該知道:1.c語言中最基本的數據類型有:整型、字符型、浮點型。2.C程序中使用的常量按照表現形式

5、可分為直接常雖和符號常量。(1)直接常量1)整型常量,有十進制、八進制和十六進制三種描述方式,英中,八進制的前置符號標志為0,十六進制的前置符號標志為Ox或0X。2)浮點型常量,有十進制小數和指數兩種描述方式,指數形式的符號標志是_或Eo3)字符型常量,是用單撇引號括起來的單一字符,對一些特殊字符和控制字符用的形式表示。4)字符串常量,是用雙撇引號括起來的一串字符序列。字符串的結朿標志為二0_(2)符號常量符號常量是使用某個符號代表的常量,符號常量使用編譯預處理中的宏立義命令定義。3.C程序中使用變量,必須先左義,后使用變呈:定義后,系統會根據變量的類型分配相應的存儲空間。4.C語言有豐富的運

6、算符,其中算術運算符包括+、-、*、/、,運算符中的僅用于整數間的運算;賦值運算符包括和相應的復合賦值運算符+=、-=、/=,賦值運算的含義是將右側的表達式的計算結果賦值給左側的變量,這與數學中的含義不同,需要注意。5.由運算符和數據構成表達式,若表達式中各數據的類型不同,則存在類型自動轉換問題,必要時也可以使用強制類型轉換。6.7.對于面向過程的程序設計來說,程序二數據結構+算法。在C語言中,對于每一個程序設計單元可采用結構化程序設計方法,有三種基本的程C語言程序設計基礎單元總結與練習題及答案序結構,分別為:順序、選擇和循環。通過本單元的學習,應該掌握C語言程序設訃所需要的基本知識,為后續內

7、容的學習打下堅實的基礎。單元練習一選擇題1.在C語言中,int、short,char三種類型數據所占用的存儲空間是()。A.均為2個字節B.int和short占2個字節,char占1個字節C.與編譯環境有關。D.由用戶自己定義2.下而泄義字符型變量ch的語句不正確的是()。A.charch=X2A;C.charch=65;。oB.charch=”c”;D.charch=NULL;3.已知大寫字母A的ASCII是65,小寫字母a的ASCII是97,以下不能將字符型變量c中的大寫字母轉換成對應的小寫字母的語句是()。A.c=(cAr)%26+*a;C.c=c-A+T;。B.c2=tolower(c

8、);。oDc=(W+c)%26打;4.設有泄義:doubled,h;,英中d為三角形的底邊長,h為三角形的高,則以下C語言表達式與其面積公式丄dh汁算結果不相符的是()o2A.d*h/2。B1/2*d幺hoC.d*h*l/2D.d/2*h5.以下選項中,與k=n卄浣全等價的語句是()。A.k=n:n=n+l;Bn=n+l:k=n:oCk=+n;Dk+=n+l;二填空題1寫出整型變Ma.無符號長整型變量b.雙精度浮點型變量c和字符型變量d的泄義語句:2.常量S和即分別占用_個字節和_個字節的存儲空間。C語言程序設計基礎單元總結與練習題及答案3有定義inta=1234;,獲取其百位數碼的表達式為_

9、4.若有注義:chara=97,c則表達式c=S+8-3的值為_。5.已知intx=6;,則執行x+=x=x-3;語句后,x的值是_。6.將一個浮點型變量n四舍五入精確到小數點后兩位,其表達式為:_7.C語言中基本的數據類型有_、_、_o8.結構化程序設計中基本的程序結構*車*未夫*扌*夫*車*)(*習題答案:一.選擇題1.02.B3oI)。4.B5A二填空題a;unsignedlongb;doub1ec;chard;2.123.a/l0O%104.f5.66(int)(n*100+05)/100.0;7.整型、浮點型、字符型&順序、選擇、循環*4t*4t*m*m*iC語言程序設計基

10、礎單元總結與練習題及答案單元三順序結構程序設計單元總結提升本單元中,核心內容是順序程序結構程序設計中標準輸入輸岀庫函數的使用。通過本單元的學習,我們應該知道:1.C語言提供了標準輸入輸出庫函數用于實現數據輸入輸出操作,其對應的頭文件為stdio.h_o2.單字符輸入和輸出函數分別為getchar()和putchar()3.格式化輸入和輸岀函數分別為scanf()和printf()。4.格式化輸出函數有兩種調用格式:printf(”字符串常晝);(2)printf(格式控制字符串,輸出項列表);5.格式化輸入/輸出中,格式控制符由開頭。常用的格式控制符有:整型int格式符d、float浮點型格式

11、符f、double浮點型格式符lf、字符型格式符c:對于浮點型格式可以用形式的附加格式說明小數的寬度和小數位數。6.格式化輸入中的輸入項為地址列表,對變量取地址的運算符為通過本單元的學習,應對順序結構程序設汁的特點和設計思路有所了解,同時重點學會單字符輸入函數getchar()單字符輸出函數putchar()、格式化輸出函數printf()和格式化輸入函數scanf()的正確使用。單元練習一.選擇題1.已泄義x為float型變疑,英值為213.4567&則printf(H%-4.2An,x);的輸岀結果為()。A.213.46C-213.45ooB.213.45。“D.輸岀格式控制說明的域寬不

12、夠,不能輸出C語言程序設計基礎單元總結與練習題及答案2.有以下程序,程序運行時輸入:1,2,3V回車,則輸出的結果為()include、voidmain()、。、inta,b,c:。scanf(%dd%d,/&a,&b,&c);“printf(Ha+b+c=%dn,a+b+c);A.6B.a+b+c=6C.123。D.不確定的值3下面輸入語句中,正確的是()。A.scanf(a=b=%d,&a,&b);B.seanf(%d,%d,&a,&b);C.scanf(%c,c);。D.scanf(%d%dn,&f1,f2);4.在VC+6.0環境中,下列說法正確的是()。A.輸入函數scanf()輸入

13、多個數據時,有時數據間不必加間隔符。B.輸入函數scanf()中單精度或雙精度浮點型數據都要用彳作為格式控制符。C.使用輸出函數printf()輸出字符或字符串都用格式控制符s。D.輸出函數printf()中單精度或雙精度浮點型數據都要用彳作為格式控制符。5.下而程序的功能是實現兩個字符變量互換值,若為ch1輸入a.ch2輸入b,則程序運行時正確的輸入是()0#inc1udecharchl/ch2/ch;。scanf(%c%c,&chl,&ch2);亠ch=chl;ch1=ch2;ch2=ch;printf(ch1=%c,ch2=%cnchlzch2);)Aa,bB.av空格bC.aHD.av

14、回車b二.填空題1.有語句Putchar(getchar(),程序運行時輸入:A,則輸出結果是_。2.printf(”%6.2f%l,1.0/3);的輸出結果是_。C語言程序設計基礎單元總結與練習題及答案3補充程序:intn1=10,n2=20;printf(”_”小1小2);要求按以下格式輸出nl和n2的值,每個輸岀行從第一列開始。n1=0010n2=00204有以下程序,程序運行時輸入:1234=0)if(x0)y=1;elsey=1:printf(y=%d,y);A.1B.-1C.0D.不確定4.下列語句將小寫字母轉化為大寫字母,正確的語句為(A.if(/z/=ch=/a/)ch二ch3

15、2:B.if(ch=a/&ch=ch=,a)?ch-32:ch;Dch=(ch=/a,&ch=/z/)?ch:ch32;5.關于與switch語句配套的case語句中所使用的表達式,說法正確的是().A.可以是變量B.可以是常量或變量C.只能是常量或常量表達式D.無論是何種表達式,只要在執行時有確定的值就行二.填空題1.在算術運算符、關系運算符、邏輯運算符和賦值運算符中,運算優先級最髙的運算符是_最低的是_。2.正確表示數學關系“la=A&_)elseif(_)putchar(ch):5.以下程序段功能是根據學生考試成績,確左其成績等級.成績與等級對應情況與【例4-7】中表格相同,請將程序段補

16、充完整。charlevel;/成績等級floatscore;考試成績scanf(“f&score);switch(_)J_:1e、,cl=A:_:C語言程序設計基礎單元總結與練習題及答案acase8:levcl=B;break;case7:1evel=,C,;break;case6:1evel=,Dbreak;default:_:C語言程序設計基礎單元總結與練習題及答案printf(“考試成績等級為:_/leve1);*n*京未*習題答案:一選擇題1.O2.D3CB.5.C二.填空題1.!(非)=2.a1&a=/A/&chch二ch+6;)elseif(ch=P&chV二,Z)ch=ch20;

17、putchar(ch);5.charlevel;成績等級floatscore;考試成績scanfC%f&score):switch(int(score/10)case10:case9:lcvc1Albreak;xcasc8:Ievel=B;break:ocase7:Ieve1=Cbreak;case6:level=D*:break;defau1t:leve1=E1:*l*l“*H*夫)K*C語言程序設計基礎單元總結與練習題及答案單元五循環結構程序設計單元總結提升在本單元中,如何理解循環的本質、如何分析循環的三個要素以及如何描述循環結構語句是核心內容。通過本單元的學習,我們應該知道:1.循環的本

18、質是將程序員從大量重復編寫相同代碼的工作中解放出來,減少程序源代碼的存儲空間,提髙程序的質量,提高程序編寫的工作效率,但計算機執行程序的工作量并沒有減少。2.循環結構的三要素包括:(1)循環變量初值(2)循環控制條件表達式(3)循環體3.循環結構描述語句有三種:_while、do-while和for_。其中whi1e和do-while的區別在于不管循環條件是否成立,dowhi1e循環都先執行一次循環體,所以do-vhile循環的循環體至少執行一次,而while循環的循環體可能一次都不執行。4.循環結構控制語句break的作用是:_;循環結構控制語句continue的作用是:提前結束本次循環_。

19、5.在一個循環結構語句中又包含了一個循環結構語句稱之為循環的嵌套程序執行時,外層循環每執行一次,內層循環就要完整的執行完,直至內層循環執行結束,再開始執行下一次外層循環。學習完本單元,應該掌握C語言循環結構程序設訃的思路和基本語句的用法。至此,我們就學完了結構化程序設計中的三種基本結構:順序、選擇和循環。單元練習一.選擇題1.下而說法正確的是()。A.while語句不管條件表達式是否為真,都將執行一次循環體。C語言程序設計基礎單元總結與練習題及答案B.do-while語句構成的循環,一定要有能使while后而表達式的值為0的操作,或在循環體中使用break語句。C.for循環只能用于循環次數確

20、左的情況,且先執行循環體語句,后判斷條件表達式。D.break語句的作用是從最近的循環體內跳出來,而continue語句的作用是繼續執行循環體中尚未執行的語句。2.對for(表達式1;:表達式3),可理解為()。A.for俵達式1:0:表達式3)B.for(表達式1;1;表達式3)C.語法錯誤D.僅執行循環一次3.以下程序的功能為()。#ineludevoidmain()intbk=O;for(i=1;i10;i+=2)k+=i+1;printf(H%dnnzk);A.計算自然數19的累加和C.計算自然數19的奇數之和B.計算自然數110的偶數之和D.計算自然數110的累加和4.以下能正確計算

21、1*2*3*4*5*6*7*8*9*10的程序段是()。Adoi=l:s=l;3。Bdoi=l:s=0;s=s*i;i+;go“a亦+;s=s*i;while(i=10);aowhi1e(i=l0);C.i=l;s=l:oD.i=l;s=0;d002dos=s*i;i+;gwhi1e(i=10);s=s*i;i+;awhile(i=10);5有以下程序段intk=0;C語言程序設計基礎單元總結與練習題及答案while(k=1)k+;while循環執行的次數是()。A無限次。B1次小C語法錯誤,不能執行D.次也不執行C語言程序設計基礎單元總結與練習題及答案二.填空題1若輸入字符串:abcdev回

22、車屯則以下while循環體將執行.次。while(ch=getchar()=,e/)printf2.以下程序執行后的輸岀結果是ftincludevoidmain()inti;for(i=0;i3;i+)switch(i)case1case2:defauIt:Printf(n%d:i);printfprintf(”duJ):3下而程序的功能是:輸出100以內能被3整除且個位數為6的所有整數,請填空。ftincludevoidmain()intij;for(i=0:_i+)j=iTO+6;if(_)continue:printf(%dn”j);4.有以下程序#ineludevoidmain()in

23、tx=23;doprintfL%cT;x):)while(!x);該程序執行的結果為5以下程序的功能是訃算13+5-7+.-99+101的值,請將程序補充完整。#includevoidmain()for(i=1;iB.chara23=ca7b1;C.inta3=h2,3,4,5,6;。D.inta=1,2,3,4,5,6:3.已定義inta3=(1,2,3,4,5,6,7,8,9;,則a12啲初值為()。A2oB.4C6aD84.判斷字符串str1是否大于字符串str2,應當使用()。A.if(shistr2Bif(strcmp(str1,str2)0)。scanf&ai|):for(i=0;

24、i3;i+)for(j=O;jV4;j+)scanf(”d:_):for(i=0;i3;i+)for(j=0:j4;j+)C語言程序設計基礎單元總結與練習題及答案、printf(”dcij);putchar(W):5閱讀下列程序,程序運行后的輸出結果是_#inc1ude#includevoidmain()chars20=12347234567羅6789w:inti,k;for(k=Ozi=l;i3:i+)if(strcmp(skzsi)0)k=i:puts(sk);次*車*習題答案:一.選擇題1.C2C3C4D5.A二填空題1.floata4=00至3162.03.x+=fi;或x=x+fi:

25、4&bijcij=aij+bij5.6789*京*車*夫*C語言程序設計基礎單元總結與練習題及答案C語言程序設計基礎單元總結與練習題及答案單元七函數的使用單元總結提升在本單元中,如何使用自立義函數是核心內容。通過本單元的學習,我們應該知道:1.函數是構成c程序的基本單位,函數的使用為模塊化程序設汁奠左了基礎。從用戶使用的角度,函數分為庫函數、自泄義函數兩種。2.庫函數的使用包括頭文件包含和庫函數調用兩個環節;用戶自左義函數的使用包括函數聲明、函數立義和函數調用三個環節。3.從函數的外觀形式看,函數分為有參函數、無參函數兩種。當主調函數調用無參函數時,不需要向這些函數傳遞參數;當主調函數調用有參

26、函數時,需要傳遞參數。4.用戶自定義函數的一般形式為:函數返回值類型函數名(形式參數列表)/函數首部(函數體;其中第一行稱為函數首部,大括號“”括起來的部分稱為函數體,對于有返回值的函數,函數體中要包括return語句。5.函數首部也稱為函數原型,用函數原型聲明函數時,形參名可以省略不寫,而只寫形參的類型,但形參的類型和數量必須與函數首部保持一致。6.函數要先聲明,然后才能使用,函數聲明在程序中的位宜有以下幾種情況:(1)函數聲明寫在主調函數的外部,這時的函數聲明為全局聲明。(2)函數聲明寫在主調函數的說明語句中,這時的函數聲明為局部聲明。(3)函數的立義出現在主調函數之前,則函數聲明可以省略

27、。7.函數的調用形式為:函數名(實際參數列表)。若調用無參函數,則實參為空;若調用有參函數,則在()內寫出與形參類型、數量一致的實參。對于有參函數,函數調用過程中存在著參數傳遞的問題,參數傳遞有兩種情況,貝一為值傳遞,其二為地址傳遞。8.函數在函數體中出現了對自身調用的語句,就稱為函數遞歸調用。使用遞歸方法解決問題的關鍵是如何找出遞歸關系,以及找岀遞歸調用的終止條件C語言程序設計基礎單元總結與練習題及答案9.帶參宏肚義的一般形式為:#define宏名(形參列表)字符串。通常用帶參數的宏定義代替簡單公式型函數。C語言程序設計基礎單元總結與練習題及答案10.函數的存儲類型有static和exter

28、n兩種。extern型函數稱為“外部函數”,可以被其他編譯單位中的函數調用;stac型函數稱為“內部函數”,只能被本編譯單位的函數調用。11.程序中變量的使用范用稱為變疑的作用域,每個變量都有自己的作用域。按照作用域的范囤可分為兩種:局部變量和全局變量。12.變量的存儲方式可分為“動態存儲”和“靜態存儲”兩種。動態存儲變量包括aut()*11regiest兩種類型;靜態存儲變量包括static和extern兩種類型。靜態存儲變量若沒有初始化,則默認初始值為_ostatic類型變量的值具有繼承性,即本次調用的初值是上次調用結束時變量的值。單元練習一選擇題1.關于使用函數的目的,以下不正確的說法是

29、(A.提髙程序的執行效率C.減少程序文件所占內存。2以下正確的函數首部是(B.提高程序的開發效率D.提髙程序可讀性A.voidfun(intC.voidfun(intx,y)inty)B.voidfun(intx;inty)D.voidfun(x,y)C語言程序設計基礎單元總結與練習題及答案3設函數fun的左義形式為:voidfun(charch,f1oatx).則以下對函數fun的調用正確的是(A.funCabLQ.O):C.funC65:37);。B.t=fun(,D,/12.3);Dfun(65,65);4關于函數的實參和形參,以下正確的說法是()。A.B.C.D.實參和對應的形參各占用

30、獨立的存儲單元實參和對應的形參共同占用同一存儲單元只有當實參與形參重名時才共同占用存儲單元形參是虛擬的,不占用存儲單元5當調用函數時,實參是一個數組名,則向函數傳遞的是(A.數組的長度B數組的首地址C數組的每一個元素的地址。D數組的每一個元素的值6.將一個函數指泄為static存儲類別后,該函數將()。A.既可以被同一源文件中的函數調用,也可以被其他源文件中的函數調用B.只能被同一源文件中的函數調用,不能被其他源文件中的函數調用C.只能被英他源文件中的函數調用,不能被同一源文件中的函數調用D既不能被同一源文件中的函數調用,也不能被英他源文件中的函數調用7.以下敘述正確的是()。A.全局變量的作

31、用域一泄比局部變量的作用域作用范圍大B.靜態static類型變屋的生存期貫穿于整個程序的運行期間C.函數的形參都屬于全局變量D.未在泄義語句中賦初值的auto變量和static變量的初值都是隨機值二.填空題1.假設已有#defineM(r)r*r,則語句printf(%d,M(2+3);的執彳亍結果為_。2.以下程序輸岀結果為_o#includevoidfun(intx,inty)(x=x+y;y=xy;x=xy;printf(%d,%dn,x.y);voidmain()C語言程序設計基礎單元總結與練習題及答案(intx=2,y=3;fun(x,y);printf(%d,%dn,x,y):3.

32、以下程序輸出結果為_。#includeintazb:voidfun()ba=10;b=20;voidmain()int8=3,6=9;fun();printf(”ct%dnn,a,b):4以下程序輸出結果為_oC語言程序設計基礎單元總結與練習題及答案#includeintf()intb=0:staticintc=3;b=b+l:c=c+l:returnb+c:)voidmain()intal,a2;al=f():a2=f();定義f函數,a為形參定義b為自動變雖al.a2):5以下程序輸岀結果為_#inc1udc1ntfun(intn)2if(n=1)return1:eIsereturnfun

33、(n-l)+1:voidmain()intij=O:4or(i=1;i3:i+)j+=fun(i);prinif(”dn:j);6._以下程序輸出結果為#ineludevoidfun(iniaintn)(4or(inti=0;i0)a(i*=2;voidmain()intb|5=1,2,3,4,5):、fun(b.5);for(inti=0;i5;i+)printfC%itbi):C語言程序設計基礎單元總結與練習題及答案*次*夫琢*京*車*#夫*京*習題答案:一.選擇題1A2.A3D。4.A5B6.B-7B二.填空題1.112.3,22,33394.5,65.36246810*球*夫*璟*京*

34、車*夫*車車*琢頭單元八指針的使用*單元總結提升在本單元中,對指針的理解,以及利用指針訪問不同形式的數據是核心內容。通過本單元的學習,我們應該知道:6.內存地址就稱為指針。C語言允許用一個變量來存放指針,這種變量稱為指針變疑,而指針變量的值就是某個內存單元的地址。7.運義指針變量的一般格式為:類型標識符*指針變量名_”其中:。(1)“指針變量名”前而的“*”,表示該變量是指針變量,不能省略。(2)“類型標識符”表示該指針變疑所指向的變量的數據類型。(3)為一個指針變量已確立指向某類型的變量時,不能再指向另一種類型的變量。C語言程序設計基礎單元總結與練習題及答案3.指針變量被賦值后即可引用,引用

35、指針變量的一般方法為:*指針變量名。4.指針和數組有著密切的關系,任何通過控制數組下標實現的對數組的操作,都可用指針來實現。要通過指針操作數組,首先要建立指針變量與數組之間的關系,然后才能通過指針變量訪問數組元素。若有語句段:inta10;int*p;p=a;,則對于數組元素的訪問方式有ai、*(p+i)、pi,對數組元素地址的表示方式有a+i、p+i、&aiQ5數組名代表數組的首地址,利用函數處理一維數組數據時,函數之間的參數傳遞為魚組首地址。將數組的首地址作為實參傳遞給函數的形參以后,實參數組和形參數組其實是同一段內存中的數據。6.字符串是存放在某存儲區域的一串字符序列,可通過字符數組和字

36、符指針兩種方式操作字符串。7.函數返回值可以是地址(指針類型),返回值為地址的函數立義形式為:類型標識符*(形參列表):通過本單元的學習,應明確地址和指針的關系,掌握使用指針訪問內存數據的基本方法。單元練習一選擇題1假設整型變量a的值是12,a的地址是2200,若想使整型指針變量p指向a,以下賦值正確的是()。A.&a=2200;八B.*p=12:o“C*p=2200;。Dp二&a;2.若有定義int*p,m=5.n;,以下正確的程序段是()。A.p二&n;scanf”cT,&p);B.p二&n;scanf(%dM,*p);C.scanf(%d”,&n);*p=n;D.p=&n;*p=m;3.

37、以下合法的定義是()。A.str=*China;6“Bchar*p=China;C.char*p;strcpy(p,*China1);。I)charstr13);str二China;4.若*有定義inta=l,3,5,7,9,11,p=a;z則能夠正確引用該數組元素的是()。C語言程序設計基礎單元總結與練習題及答案A.aBa6ooC*(p)D*(-p)5.以下程序運行結果為()。#includevoidmain()ochara=nLanguageH,b=Mprograme11;ochar*p/q;。intk;。p=a;q=b;for(k=0;k8;k卄)“f(*(p+k)=*(q+k)。pri

38、ntf(%c”嚴(p十k);6A.gaeBgaC.LanguageD.programe二填空題1._給出以下程序的執行結果.#includevoidmain()ointp1,*p2,*p;inta=10,6=12;pl二&a;p2=&b;if(ab)p=p1:pl=p2;p2=p;)printf(”d,%djjp52);printf(H%d,%d,/a/b);2.以下程序的功能是把數組元素的最大值放入a0中,則條件表達式應為_。ointa10=6/7.2,9,5.10,4,3,3,1#includevoidmain();C語言程序設計基礎單元總結與練習題及答案oint*p=a,i;for(i=

39、0;i10:i+,p+)-if(_*ap;。printf(“d丁a);3.以下程序的輸出結果是_#includevoidmain()。-inta23=1,2,3),4r5,6);intMptr;ptr=&a00;0m=(*ptr)*(*(ptr+2)*(ptr+4);printf(”dJm);)4下列函數功能是計算str所指字符串的長度,并作為函數值返回。請填空。intmystrlen(char*str)char*p;for(p=str;_!=、0lp+);oreturn(_);5.以下程序中,函數scmp的功能是返回形參指針si和s2所指字符串中較小字符串的首地址。試問當程序運行時依次輸入:

40、abed、abba和abc三個字符串,則輸出結果為。#include#includechar*scmp(char*s1,char*s2)ifstremp(slzs2)0)return(s1):elseoreturn(s2);)voidmain()inti:C語言程序設計基礎單元總結與練習題及答案charstring20zstr3)(20):for(i=0:i3:i+)ogets*a3.154*ppstr5.abba*車*案*扌*夫*夫C語言程序設計基礎單元總結與練習題及答案單元九結構鬢型的使用單元總結提升在本單元中,結構類型數據的含義、結構類型的描述方法、結構類型數拯的基本操作是核心內容。通過

41、本單元的學習,我們應該知道:1.結構類型數據使用的基本步驟為結構類型說明、結構類型變雖:左義和結構變量使用。2.結構類型說明的關鍵字為struct.結構類型變量所占用內存字節數為結構變量所包含的各個成員變量所占字節數之和。3.若左義了一個結構變雖和一個指向結構變量的指針,則可以用以F三種形式訪問結構成員:0(1)利用結構變量與成員運算符相結合.基本格式為:結構變雖:成員名0。(2)利用結構指針與成員運算符相結合,基本格式為:(*結構指針).成員名。(3)利用結構指針與指向運算符相結合,基本格式為:結構指針一成員4.結構變量不能作為一個整體進行輸入和輸出,但結構變量作為一個整體可以被復制、賦值、

42、傳遞參數,以及作為函數返回值。肖用結構變量作函數參數進行整體傳送時,要將全部成員逐個傳送,特別是成員為數組時,將會使傳送的時間和空間開銷很大,所以一般不將結構變量作為函數參數,而用結構指針變量作函數參數。這時由實參向形參傳遞的只是地址,從而減少了時間和空間的開銷。通過本單元的學習,應明確結構類型的數據特點,掌握結構類型數據描述和操作的基本步驟和方法。單元練習一.選擇題1.以下描述正確的是()。A.結構類型中的成員可以是結構類型C語言程序設計基礎單元總結與練習題及答案B.結構類型的成員不能是指針類型C.結構類型中各成員共享同一個內存單元D.在結構類型說明后就立即分配內存空間2已知如下沱義的結構類

43、型變量,若有p=&data,則對data中的成員a的正確引用是()ostructsk“*inta;f1oatb;data,*p;A.(*p).data.aoB.(*p)C.pdata。D.p.data.a3若有如下宦義,則下列輸入語句正確的是()o、structstuinta;intb:student;A.scanf(%d:&a):八Bscanf(%cT:&student);oC.scanf(%d:&stu.a);。Dscanf(%d:&student.a);4.變量定義,則操作語句正確的是(structworkerintnum;charname10;charsex:intage:s1,s2,

44、t;A.if(si.ages2.age)t=sl;sl=s2;s2=t;B.sl=1101,zhangsan7fS28;。有如下結構類型說明和)C.gets(&);八D.printfr%d,s,%c,%d,1-sexsl-age);5.以下敘述正確的是()A.結構類型說明與結構變量的含義一樣,都可以用來存放數據。B.對于不同類型的數據,若想形成一個有機的整體,可以使用結構類型。C.可以使用或“!=”對同一個結構類型的兩個變量進行整體比較。“C語言程序設計基礎單元總結與練習題及答案D.同一結構類型中的成員變量名稱可以相同。二.填空題1.若有如下泄義:4str

45、uctstudentintnum;charnamc12;doublescore;C語言程序設計基礎單元總結與練習題及答案stu:則結構類型的關鍵字是_,用戶泄義的結構類型名是_,用戶左義的結構變量是_2若有如下立義:structworkerintnum:“charname12;charsex;ints/p;age;則sizeof(structworker)的值是變疑s所占內存字節數是.內存字節數是3若有如下定義:structnum、inta:xintb;f1oatf;n=l,3,50);stractnum*pn=&n;則表達式pn-b/n.a*pn-b的值是_.表達式(*pn).a+pn-f的

46、值是_。4結構數組中存有三個人的姓名和年齡,要輸岀年齡最大的人的姓爼和年齡。將程序補充完整。ffincludestructmancharname20;、intage;person(=ZhanghuaJ20廠Liuyang”.25,MSunpengnf19;voidmain()Pstructman*p*q:、intold=0;or(p=person;p_:p+)。if(oldage)q=p;_;、printf(n%s%dJqnamczqage);C語言程序設計基礎單元總結與練習題及答案5.下面程序的功能是從鍵盤上輸入5個人的年齡、姓名和性別,然后輸岀。將程序補充完整。ffincludestruc

47、tmanC語言程序設計基礎單元總結與練習題及答案4charname(20);intagc;charsex4;voiddata_in(structmanintn)structman*q=_:for(;pq;p卄)。printf(Mname;age;sexnn);oscanf(”s%d%口_,_Jvoiddata_out(structman*p,intn)(structman*q=_:、for(;pname,p-agc.pscx):voidmain()P、structmanperson5:datan(person,5);data_out(person,5);4c*車*#*夫夫*習題答案:一.選擇題l.Ao2B364.A5oB二填空題l.struet2.213.92116.000000studentstu(上機測試)4.page:5p+npname,&(page),psexp+n*夫車*木*車*夫車*夫*C語言程序設計基礎單元總結與練

溫馨提示

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

評論

0/150

提交評論