




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第七章函數(shù)控制每行數(shù)據(jù)的個數(shù)1.for(i=0;i<10;i++){if(i%2==0)printf(“\n”);printf(“%d”,x);}2.for(i=1;i<=10;i++){printf(“%d”,x);if(i%2==0)printf(“\n”);}設(shè)變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不包含回車符)的程序段是
A)n=0;while((ch=getchar())!=”\n”)n++;
B)n=0;while(getchar()!=”\n”)n++;
C)for(n=0;getchar()!=”\n”;n++);
D)n=0;for(ch=getchar();ch!=”\n”;n++);例題:請輸入二個整數(shù),來判斷二個數(shù)是奇數(shù)還是偶數(shù)main(){inta,b;printf(“請輸入二個數(shù)來判斷是奇數(shù)還是偶數(shù):”);scanf(“%d%d”,&a,&b);if(a%2==0)//判斷a是否是偶數(shù)printf(“%d是偶數(shù)”,a);elseprintf(“%d是奇數(shù):”a);if(b%2==0)//判斷b是否是偶數(shù)重復語句(功能一樣)printf(“%d是偶數(shù)”,b);elseprintf(“%d是奇數(shù)”,b);}voidmain(){::::::x=x*x*x;y=y*y*y;z=z*z*z;ans1=x+y+z;
a=a*a*a;b=b*b*b;c=c*c*c;ans2=a+b+c;:::::}為什么使用函數(shù)重復多次的同一計算類型voidmain(){::::::ans1=cube(x,y,z);ans2=cube(a,b,c);:::::}intcube(inta,b,c){intans;ans=(a*a*a)+(b*b*b)+(c*c*c);returnans;}函數(shù)主程序ans函數(shù)可以把相對獨立的某個功能抽象出來,使之成為程序中的一個獨立實體??梢栽谕粋€程序或其他程序中多次重復使用函數(shù)機制的優(yōu)點使程序變得更簡短而清晰有利于程序維護可以提高程序開發(fā)的效率提高了代碼的重用性函數(shù)類型內(nèi)置函數(shù):由C語言系統(tǒng)提供;用戶無須定義,也不必在程序中作類型說明;只需在程序前包含有該函數(shù)定義的頭文件;自定義函數(shù):用戶在程序中根據(jù)需要而編寫的函數(shù);內(nèi)置函數(shù)rand示例2664#include<stdio.h>#include<stdlib.h>
//#include<time.h>voidmain(){inti;printf("產(chǎn)生10個0到99之間的隨機數(shù)序列:\n\n");//srand((unsigned)time(NULL));for(i=0;i<10;i++)printf("%d",rand()%100);printf("\n");}產(chǎn)生10個0到99之間的隨機數(shù)序列:44732658379427422890Pressanykeytocontinue演示:示例47.2函數(shù)定義voiddisplayDiscount(){ floatprice,discount_amt; printf("請輸入價格"); scanf("%f,&price); discount_amt=0.75*price; printf("折扣額為%f",discount_amt);}doublemax(doublex,doubley){doublem;m=x>y?x:y;returnm;}該函數(shù)名為displayDiscount,無參數(shù),使用void說明無返回值,函數(shù)體內(nèi)的語句用于根據(jù)產(chǎn)品的價格求折扣后的價格。該函數(shù)名為max,它有兩個double類型的參數(shù),返回值為double類型。在函數(shù)體內(nèi)有三條語句實現(xiàn)了求兩個數(shù)中較大的數(shù),并將它返回。intdivisibleCheck(intnum){if(num%5==0)return1;elsereturn0;}
C語言中的函數(shù)至多可以返回一個值,不能返回多個值;返回值的數(shù)據(jù)類型必須與函數(shù)原型中返回值的數(shù)據(jù)類型匹配;當遇到return
語句時,函數(shù)執(zhí)行將終止。程序控制流將立即返回調(diào)用函數(shù);函數(shù)返回值C語言中的return語句用于向調(diào)用函數(shù)返回值,語法如下:return(<表達式>);函數(shù)返回值示例#include<stdio.h>intget_age();voidmain(){intage1,age2,age3;age1=get_age();age2=get_age();age3=get_age();if((age1>age2)&&(age1>age3)) printf("\n年齡為%d的人最大\n",age1);elseif((age2>age1)&&(age2>age3)) printf("\n年齡為%d的人最大\n",age2);elseif((age3>age1)&&(age3>age2)) printf("\n年齡為%d的人最大\n",age2);}內(nèi)存age1age26578age3intget_age(){intage;printf("\n請輸入年齡:");scanf("%d",&age);
returnage;} 請輸入年齡:65請輸入年齡:78請輸入年齡:54年齡為78歲的人最大54函數(shù)調(diào)用7.3.1函數(shù)的兩種調(diào)用方式1)當調(diào)用的函數(shù)用于求出某個數(shù)值,即有返回值。y=add(3.0,4.0);2)僅進行某些操作而不返回函數(shù)值。add(3.0,4.0);通過在程序中使用函數(shù)名稱,可以執(zhí)行函數(shù)中包含的語句,這稱為調(diào)用函數(shù)函數(shù)之間允許相互調(diào)用,也允許嵌套調(diào)用函數(shù)還可以自己調(diào)用自己,稱為遞歸調(diào)用#include<stdio.h>floatset_discount(inti,intj)floatdisplayDiscount()voidmain(){ :::::::::y=set_discount(2,3); displayDiscount(); :::::::: ::::::::}說明:1.函數(shù)名必須與所調(diào)用的函數(shù)名稱完全一致2.實參與形參個數(shù)必須一致,且一一對應3.必須先定義后調(diào)用floatset_discount(inti,intj){::::::::::::::::::::}floatdisplayDiscount(){::::::::::::::::::::}函數(shù)調(diào)用語法要求voidreverse(){::::::::::::::::::::}#include<stdio.h>voidmain(){ :::::::::
palindrome(); :::::::: ::::::::}voidpalindrome(){
::::::::reverse();
::::::::}函數(shù)嵌套調(diào)用從一個函數(shù)調(diào)用另一個函數(shù)稱為函數(shù)的嵌套調(diào)用
調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞1.實參與形參之間的數(shù)據(jù)傳遞(按值傳遞)2.通過return把函數(shù)值返回調(diào)用函數(shù)
#include<stdio.h>
floatcount(intx,inty){return;}
voidmain(){...floatcount(2,3);}voidmain(){inta=0;//初始化a值為0
func(a);//調(diào)用函數(shù)funcprintf("%d",a);//輸出a的結(jié)果}//定義函數(shù)funcvoidfunc(inta){a=10;//讓參數(shù)a等于10}傳值調(diào)用0傳值調(diào)用將會輸出什么voidfunc(int);總結(jié):傳值調(diào)用在調(diào)用時,系統(tǒng)將實參拷貝一個副本給形參,使形參具有與實參相同的值,即實參值分別按位置傳遞給對應的形參,使形參獲取從實參傳遞來的值.這種調(diào)用方式的特點是在被調(diào)用函數(shù)中改變形參的值,只是改變其副本值,而不會影響調(diào)用函數(shù)中的實參值.#include<stdio.h>voidtry(int,int,int);main(){intx=2,y=3,z=0;printf(“(1)x=%dy=%dz=%d\n”,x,y,z);try(x,y,z);printf(“(4)x=%dy=%dz=%d\n”,x,y,z);}voidtry(intx,inty,intz){printf(“(2)x=%dy=%dz=%d\n”,x,y,z);z=x+y;x=x*x;y=y*y;printf(“(3)x=%dy=%dz=%d\n”,x,y,z);}程序的運行結(jié)果如下:(1)x=2y=3z=0(2)x=2y=3z=0(3)x=4y=9z=5(4)x=2y=3z=0
例題7.4,編寫函數(shù)isprime(inta),判斷自變量a是否為素數(shù),若是則返回1,否則,返回0#include<stdio.h>intisprime(int);main(){intx;printf(“Enteraintegernumber:”);scanf(“%d,&x));if(isprime(x))printf(“%disprime\n:”,x);elseprintf(“%disnotprime\n:”,x);}intisprime(inta){inti;for(i=2;i<=a/2;i++)if(a%i==0)return0;return1;}
例題7.5,驗證任意大于2的偶數(shù)可以表示為兩個素數(shù)之和,并輸出思路:輸入一個數(shù)偶數(shù)奇數(shù)輸出:這是一個奇數(shù)判斷是否為兩個素數(shù)之和關(guān)鍵:如何判斷?示例:如何判斷x是否為兩個素數(shù)之和?x=素數(shù)+素數(shù)?!拿出2——x/2每個數(shù)i2.判斷i是否為素數(shù)&&判斷x-i是否為素數(shù)#include<stdio.h>intisprime(int);voideven(int)main(){inta;printf(“Eneraevennumber:”);scanf(%d,&a);if(a%2==0)even(a);elseprintf(“The%disnotevennumber\n”,a);}voideven(intx){inti;for(i=2;i<=x/2;i++)if(ispime(i))if(isprime(x-i)){printf(%d=+%d\n”,x,i,x-i);return}}(isprime函數(shù)如上題)#includ<stdio.h>int(sumint);intf(int);main(){inta,b;printf(“Enteraintegernumber:”);scanf(“%d,&a);b=sum(a);printf(“a=%dsum=%d\n”,a,b);}intsum(intn){intx,s=0;for(x=0;x<=n;x++)s+=f(x);returns;}intf(intx){returnx*x+1;}7.10編寫函數(shù)統(tǒng)計輸入文本中單詞的個數(shù),單詞之間用空格符、換行符、跳格符隔開,用@作為輸入結(jié)束標志。分析:a__good____beginningis_a__half__done@(_代表空格,__代表跳格符)即計算單詞第一個字符的個數(shù)。思考:怎樣辨別是單詞的第一個字符?當前字符不是空格、回車、跳格,但當前字符的前一個字符是空格、回車或跳格。設(shè)置一個狀態(tài)flag,記錄字符的前一個狀態(tài)。flag=0表示在單詞外邊,flag=1表示在單詞內(nèi)部,則第一個字符,即flag==0,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 14496-15:2024/Amd 1:2025 EN Information technology - Coding of audio-visual objects - Part 15: Carriage of network abstraction layer (NAL) unit structured video in t
- 2025年度新能源汽車充電樁安裝承包合同
- 2025年度生物制藥工藝保密協(xié)議
- 2025年血液灌流吸附器項目建議書
- 2025年度海上石油鉆井平臺運輸與維護服務(wù)合同
- 品牌創(chuàng)新過程中的團隊協(xié)作計劃
- 倉庫退貨管理的改進方案計劃
- 主管工作總結(jié)的績效任務(wù)安排計劃
- 志愿者活動中的個人成長計劃
- 市場營銷活動的經(jīng)驗與教訓計劃
- 2025年高考語文復習知識清單第十章作文專題11:漫畫作文寫作指導(學生版+解析)
- 中國肥胖及代謝疾病外科治療指南(2024版)
- 二年級上冊100以內(nèi)進位加法豎式計算題100道及答案
- 高三英語語法填空專項訓練100(附答案)及解析
- 2024年湖南省長沙市中考數(shù)學試題(含解析)
- 井控培訓考試題及答案
- 幼兒園 中班心理健康《我會傾訴》
- 貴州省遵義市數(shù)學小升初試卷及解答參考(2024-2025學年)
- 【課件】2024-2025學年高一上學期英語開學第一課課件
- 微積分試卷及規(guī)范標準答案6套
- 專題04 地質(zhì)地貌-備戰(zhàn)2025年高考地理真題題源解密(新高考用)(解析版)
評論
0/150
提交評論