




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
習題四一、選擇題1、一個C語言源程序至少包含一個且只能包含一個_______函數。(A)MAIN()(B)main()(C)open()(D)close()答案:B2、一個C語言源程序一般包含有許多函數,其中main()函數的位置_______。(A)必須在最開始(B)必須在最后(C)既可以在最開始也可以在最后(D)可以任意答案:D3、對于C語言程序的函數,下列敘述中正確的是_________。(A)函數的定義不能嵌套,但函數的調用可以嵌套(B)函數的定義和調用均不能嵌套(C)函數的定義可以嵌套,但函數的調用不能嵌套(D)函數的定義和調用可以嵌套答案:A4、函數聲明中不包括下面哪一項?_______。(A)函數類型(B)函數名(C)函數參數的類型和參數名(D)函數體答案:D5、以下不正確的說法是___________。(A)在不同函數中可以使用相同名字的變量(B)形式參數是局部變量(C)在函數內定義的變量只在本函數范圍內有效(D)在函數內的復合語句中定義的變量在本函數范圍內有效答案:D6、當一個函數無返回值時,函數的類型應定義為___________。(A)int(B)void(C)無(D)任意答案:B7、在C語言中函數返回值的類型是___________。(A)由調用該函數時系統臨時決定的(B)由return語句中的表達式類型決定的(C)由定義該函數時所指定的函數類型決定的(D)由調用該函數時的主調函數類型決定的答案:C8、下列敘述中,錯誤的是___________。(A)一個函數中可以有多條return語句(B)函數調用執行到return語句即意味著函數調用結束(C)函數調用必須在一條獨立的語句中完成(D)函數通過return語句返回其函數值答案:C9、在函數中未指定存儲類型的變量,其隱含存儲類型為__________。(A)靜態(static)(B)自動(auto)(C)外部(extern)(D)存儲器(register)答案:B二、填空題1、一個函數由_____________和_____________兩部分組成。答案:函數首部函數體@函數頭函數體2、函數體一般包括_______語句和______語句。答案:聲明執行@聲明語句執行語句3、C語言程序的執行是從________函數開始,在_________函數中結束。答案:main()main()@mainmain@main函數main函數@main()函數main()函數4、一個C語言源程序一般包含有許多函數,其中main()函數是程序執行的入口,所以在整個程序中它必須定義在所有的函數之前。以上敘述是否正確?_________答案:不正確5、調用其他函數的函數稱為________函數,被其他函數調用的函數稱為________函數。答案:主調被調@主調函數被調函數6、從變量存在的時間(即生存期)角度來分,可以分為______存儲方式和______存儲方式。答案:動態靜態@靜態動態7、下面add函數的功能是求兩個參數的和,并將值返回調用函數。函數中錯誤部分是__________,改正后為_____________。voidadd(floata,floatb){floatc;c=a+b;returnc;}答案:voidfloat8、以下程序的運行結果是_____________________。voidfun(inti,intj){intx=7;printf("#i=%d,j=%d,x=%d",i,j,x);}intmain(){inti=2,x=5,j=7;fun(j,6);printf("#i=%d,j=%d,x=%d",i,j,x);return0;}答案:#i=7,j=6,x=7#i=2,j=7,x=59、以下程序中的isLeap()是判斷閏年的函數。請填空。intmain(){intyear;_____________printf("Pleaseinputyear:\n");scanf("%d",&year);if(_______________)printf("%disaleapyear.\n",year);elseprintf("%disnotaleapyear.\n",year);return0;}______isLeap(intyear){return(year%4==0&&year%100!=0||year%400==0);}答案:intisLeap(int);isLeap(year)int@intisLeap(intyear);isLeap(year)int10、已有函數pow():doublepow(intx,inty){inti,j=1;for(i=1;i<=y;++i)j=j*x;return(j);}現要求取消變量i后pow函數的功能不變,請填空。doublepow(intx,inty){intj;for(__________;__________;__________)j=j*x;return(j);}答案:j=1;y>=1;y--@j=1;y>0;y--@j=1;y>=1;--y@j=1;y>0;--y11、[程序]voidmyswap(inta,intb){intt;if(a>b)t=a,a=b,b=t;}intmain(){intx=15,y=12,z=20;if(x>y)myswap(x,y);if(x>z)myswap(x,z);if(y>z)myswap(y,z);printf("%d,%d,%d",x,y,z);//程序的輸出為_________________return0;}答案:15,12,2012、以下程序的運行結果是_________。intfunc(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}intmain(){intk=4,m=1,p;p=func(k,m);printf("%d",p);p=func(k,m);printf("%d",p);return0;}答案:817三、程序操作題1、請打開考生文件夾中的文件Ex0409_1.c,按照例4-9的第一種方法(遞推法),上機調試程序。參考代碼:————考生程序代碼————#include<stdio.h>//遞推法求解Fibonacii數列voidnumber_fibonacci(intn){}intmain(){intn;printf("需輸出的Fibonacci數列的項數:");scanf("%d",&n);number_fibonacci(n);return0;}————標準程序代碼————#include<stdio.h>//遞推法求解Fibonacii數列voidnumber_fibonacci(intn){longf,f1=1,f2=1; //f1和f2分別代表數列順數的第1項和第2項inti;printf("%12d%12d\n",f1,f2); //每次輸出2個數,每個數占用12個字符輸出寬度for(i=3;i<=n;i++){f=f1+f2; //利用已有的第1項和第2項求當前的新項f1=f2; //當前的第2項將是下一次求解用的第1項f2=f; //當前得到的新項將是下一次求解用的第2項printf("%12d",f);if(i%2==0)printf("\n"); //每輸出2項后換行}}intmain(){intn;printf("需輸出的Fibonacci數列的項數:");scanf("%d",&n);number_fibonacci(n);return0;}2、請打開考生文件夾中的文件Ex0409_2.c,按照例4-9的第二種方法(遞歸法),上機調試程序。參考代碼:————考生程序代碼————#include<stdio.h>//遞歸法求解Fibonacii數列longfibonacci(intn){}intmain(){intm,n,i;printf("需輸出的Fibonacci數列項數的范圍(m~n):");scanf("%d%d",&m,&n);return0;}————標準程序代碼————#include<stdio.h>//遞歸法求解Fibonacii數列longfibonacci(intn){longf;if(n<=0)f=0;//條件使用n<=0而不僅僅是n==0,可以包容錯誤的參數傳遞elseif(n==1)f=1;elsef=fibonacci(n-1)+fibonacci(n-2);returnf;}intmain(){intm,n,i;printf("需輸出的Fibonacci數列項數的范圍(m~n):");scanf("%d%d",&m,&n);for(i=m;i<=n;i++){printf("%12d",fibonacci(i)); //每個輸出項占用12個字符輸出寬度if(i%2==0)printf("\n"); //每輸出2項后換行}return0;}3、請打開考生文件夾中的文件E0502.c,參照例3-17和例4-13,寫一個求素數的函數,然后在main()函數中調用該函數輸出200~300間的全部素數。參考代碼:————考生程序代碼————#include<stdio.h>#include<math.h>//判斷素數intisPrime(intn){}intmain(){intn;for(_________)if(________)printf("%d",n);//輸出素數printf("\n");return0;}————標準程序代碼————#include<stdio.h>#include<math.h>//判斷素數intisPrime(intn){intprime=1;//先假設n為素數inti,k;k=(int)sqrt(n);for(i=2;i<=k;i++)if(n%i==0){prime=0;break;}returnprime;}intmain(){intn;for(n=201;n<300;n+=2)//偶數肯定不是素數if(isPrime(n))printf("%d",n);printf("\n");return0;}4、請打開考生文件夾中的文件E0503.c,完成"習題4"編程題的第5題:編寫一個反轉函數reverse(),…,例如將-123轉換成-321。參考代碼:————考生程序代碼————#include<stdio.h>intmain(){intn;printf("輸入一個整數:");scanf("%d",&n);printf("反轉后的整數:%d\n",reverse(n));return0;}————標準程序代碼————#include<stdio.h>intmain(){intreverse(intn); //函數聲明intn;printf("輸入一個整數:");scanf("
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南通師范高等專科學校《自然資源學》2023-2024學年第二學期期末試卷
- 九江理工職業學院《材料科學與工程學科論文寫作指導》2023-2024學年第二學期期末試卷
- 石家莊經濟職業學院《影視概念設計》2023-2024學年第二學期期末試卷
- 鄭州美術學院《學前兒童發展》2023-2024學年第二學期期末試卷
- 沈陽體育學院《綠色設計與循環利用》2023-2024學年第二學期期末試卷
- 浙江工業大學《大數據分布式計算》2023-2024學年第二學期期末試卷
- 山東服裝職業學院《工程制圖及工程》2023-2024學年第二學期期末試卷
- 云南工商學院《形體基訓》2023-2024學年第二學期期末試卷
- 寧波城市職業技術學院《公差與技術測量》2023-2024學年第二學期期末試卷
- 包頭鋼鐵職業技術學院《軟件需求分析與建模》2023-2024學年第二學期期末試卷
- 2023年小學科學實驗知識競賽試題庫含答案
- MOOC 頸肩腰腿痛中醫防治-暨南大學 中國大學慕課答案
- 《如何處理人際關系》課件
- 國家中小學智慧教育平臺培訓專題講座
- 圖形創意(高職藝術設計)PPT完整全套教學課件
- 畫法幾何與陰影透視復習題(DOC)
- 螺旋密封的設計及在流體機械中的應用
- 青島市失業人員登記表
- 《中國好聲音》全國校園海選招商方案(冠名)
- 廣西安全文明施工費使用管理細則桂建質新版
- 存貨質押貸款業務管理規定
評論
0/150
提交評論