C語言函式使用小試牛

2021-07-22 21:21:47 字數 2652 閱讀 4252

函式宣告是一般在主函式前,以分號結束,

函式定義一般在主函式後,用於實現該函式功能的**,

函式呼叫在主函式內部如:stabar(引數1,引數2);

void stabar(void);

第乙個void表示函式型別(無返回值),第二個表示函式不帶引數

//顯示選單由使用者進行選擇

//如果不在1~3之間重複顯示選單並要求重新輸入,輸入4退出

#include void show(void); //顯示選單函式

int show_choice(int ,int); //讀取輸入函式

int main()

printf("bey!\n");

return 0;

}void show(void)

int show_choice(int low, int hig)

if(status!=1) //判斷輸入值非法

return (good); //將讀到的值或者4返回到主函式

}

形參是被調函式中的變數,實參是主調函式賦給被調函式的具體值

強調:因為被調函式的值是從主調函式中拷貝而來,被調函式一般情況改變不了主調函式的變數值,

要想改變主調函式的變數值就需要使用位址或指標作為引數來改變

遞迴是函式呼叫它自己。遞迴必須有條件測試部分即是有確定的遞迴層級不能無限制連續呼叫下去。

形象化理解:fun1呼叫fun2,fun2呼叫fun3,fun3呼叫fun4;當fun4結束時控制傳回fun3,

fun3結束控制傳回fun2,fun2結束控制傳回fun1;只不過遞迴是自己呼叫自己。

尾遞迴是在正好在return語句之前,相當於迴圈。

遞迴的缺點:1.每次遞迴都會建立一組變數,占用記憶體比較嚴重2.函式呼叫需要一定是時間,執行速度慢

非常好的函式學習的程式

四家酒店,每家房價不同但是所有的房間**是一樣的,連續住有折扣,設計讓使用者制定酒店和入住天數後顯示費用;

/* usehotel.c -- room rate program */

/* compile with listing 9.10 */

#include #include "hotel.h" /* defines constants, declares functions */

int main(void)

nights = getnights();

showprice(hotel_rate, nights);

}printf("thank you and goodbye.\n");

return 0;

}

/* hotel.c -- hotel management functions */

#include #include "hotel.h"

int menu(void)

return code;

}int getnights(void)

return nights;

}void showprice(double rate, int nights)

/* hotel.h -- constants and declarations for hotel.c */

#define quit 5

#define hotel1 180.00

#define hotel2 225.00

#define hotel3 255.00

#define hotel4 355.00

#define discount 0.95

#define stars "**********************************"

// shows list of choices

int menu(void);

// returns number of nights desired

int getnights(void);

// calculates price from rate, nights

// and displays result

void showprice(double rate, int nights);

printf("%*s",10,s);等價於printf("%10s",s);

更改主調函式的值注意事項:

#include void interchange(int u, int v); /* declare function */

int main(void)

void interchange(int u, int v) /* define function */

用指標可以實現更改主調函式的變數值

#include void interchange(int u, int v); /* declare function */

int main(void)

void interchange(int *u, int *v) /* define function */

指標並不是整數型別,處理整數的操作不能用來處理指標,也不能進行兩個指標的乘除,可以理解為指標為乙個新型別,不是整數型別。

C語言函式使用小試牛

函式宣告是一般在主函式前,以分號結束,函式定義一般在主函式後,用於實現該函式功能的 函式呼叫在主函式內部如 stabar 引數1,引數2 void stabar void 第乙個void表示函式型別 無返回值 第二個表示函式不帶引數 顯示選單由使用者進行選擇 如果不在1 3之間重複顯示選單並要求重新...

C語言 初學程式設計小試題

1.有個陣列,找出第二大的數,並且列印出來 int a 方法一 陣列 int main int max a 0 int max2 10000 int len sizeof a sizeof int for int i 0 i len i for int i 0 i len i printf 第二大的...

使用C 呼叫SSIS包小試

試驗平台 windows2003 r2 sp2 sql server 2005 加所有最新補丁 vs 2005 professional edition vs2008。如下以前的版本 技術文件 如何使用c 呼叫ssis包 下面是示例 使用帶引數的包,首先引入 using microsoft.sqls...