C 語言基礎(chǔ)教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

C 語言結(jié)構(gòu)體

C 語言文件

C 其他

C 語言參考手冊

C 語言函數(shù)

在本教程中,將向您介紹C語言編程中的函數(shù)(用戶定義函數(shù)和標(biāo)準(zhǔn)庫函數(shù))。此外,您還將學(xué)習(xí)為什么在編程中使用函數(shù)。

函數(shù)是執(zhí)行特定任務(wù)的代碼塊。

假設(shè)您需要創(chuàng)建程序來創(chuàng)建一個圓并為其著色。您可以創(chuàng)建兩個函數(shù)來解決此問題:

  • 創(chuàng)建一個圓的函數(shù)

  • 創(chuàng)建顏色的函數(shù)

將復(fù)雜的問題分成較小的塊可以使我們的程序易于理解和重用。

C 語言函數(shù)的優(yōu)勢

C函數(shù)具有以下優(yōu)點。

  • 通過使用函數(shù),我們可以避免在程序中一次又一次地重寫相同的邏輯/代碼。

  • 我們可以在程序中以及在程序的任何位置多次調(diào)用C函數(shù)。

  • 當(dāng)大型C程序被劃分為多個函數(shù)時,我們可以輕松地對其進行跟蹤。

  • 可重用性是C函數(shù)的主要成就。

  • 但是,函數(shù)調(diào)用始終是C程序的開銷。

函數(shù)包含哪些方面

C函數(shù)包含三個方面。

  • 函數(shù)聲明 必須在C程序中全局聲明函數(shù),以告知編譯器函數(shù)名稱,函數(shù)參數(shù)和返回類型。

  • 函數(shù)調(diào)用 可以從程序中的任何位置調(diào)用函數(shù)。參數(shù)列表在函數(shù)調(diào)用和函數(shù)聲明中要相同。我們必須傳遞與函數(shù)聲明中聲明的函數(shù)數(shù)量相同的函數(shù)。

  • 函數(shù)定義 它包含要執(zhí)行的實際語句。這是調(diào)用函數(shù)時控件所涉及的最重要方面。在這里,我們必須注意,該函數(shù)只能返回一個值。


序號C函數(shù)方面語法
1函數(shù)聲明return_type function_name(argument_list);
2函數(shù)調(diào)用function_name(argument_list)
3函數(shù)定義return_type function_name(argument_list){function body;}

使用C語言創(chuàng)建函數(shù)的語法如下:

return_type function_name(data_type parameter...){
    //要執(zhí)行的代碼
}

函數(shù)類型

C語言編程中有兩種類型的函數(shù):

  1. 標(biāo)準(zhǔn)庫函數(shù):在C頭文件中聲明的函數(shù),例如scanf(),printf(),gets(),puts(),ceil(),floor()等。

  2. 用戶定義的函數(shù):C程序員自定義的函數(shù),我們可以多次使用它。它降低了大型程序的復(fù)雜性并優(yōu)化了代碼。

C 函數(shù)

返回值

C函數(shù)可能會也可能不會從該函數(shù)返回值。如果您不必從函數(shù)返回任何值,則將void用作返回類型。

讓我們看一個簡單的C函數(shù)示例,該函數(shù)不會從該函數(shù)返回任何值。

沒有返回值的示例:

void hello(){
    printf("hello c");
}

如果要從函數(shù)返回任何值,則需要使用任何數(shù)據(jù)類型,例如int,long,char等。返回類型取決于要從函數(shù)返回的值。

讓我們看一個簡單的C函數(shù)示例,該函數(shù)從該函數(shù)返回int值。

返回值示例:

int get(){
    return 10;
}

在上面的示例中,我們必須返回10作為值,因此返回類型為int。如果要返回浮點值(例如10.2、3.1、54.5等),則需要使用float作為方法的返回類型。

float get(){
    return 10.2;
}

現(xiàn)在,您需要調(diào)用該函數(shù)以獲取該函數(shù)的值。

函數(shù)調(diào)用的不同方面

函數(shù)可以接受也可以不接受任何參數(shù)。它可能會或可能不會返回任何值?;谶@些事實,函數(shù)調(diào)用有四個不同方面。

  • 沒有參數(shù)且沒有返回值的函數(shù)

  • 沒有參數(shù)但有返回值的函數(shù)

  • 有參數(shù)且無返回值的函數(shù)

  • 帶有參數(shù)和返回值的函數(shù)

不帶參數(shù)和返回值的函數(shù)示例

實例1

#include<stdio.h>
void printName();
void main ()
{
    printf("Hello ");
    printName();
}
void printName()
{
    printf("www.soo66.com");
}

輸出結(jié)果

Hello www.soo66.com

實例2

#include<stdio.h>
void sum();
void main()
{
    printf("\n計算兩個數(shù)的和:");
    sum();
}
void sum()
{
    int a,b; 
    printf("\n輸入兩個數(shù)字");
    scanf("%d %d",&a,&b); 
    printf("總和是 %d",a+b);
}

輸出結(jié)果

計算兩個數(shù)的和:

輸入兩個數(shù)字 10 
24 

總和是 34

不帶參數(shù)返回值的函數(shù)示例

實例1

#include<stdio.h>
int sum();
void main()
{
    int result; 
    printf("\n計算兩個數(shù)的和:");
    result = sum();
    printf("%d",result);
}
int sum()
{
    int a,b; 
    printf("\n輸入兩個數(shù)字");
    scanf("%d %d",&a,&b);
    return a+b; 
}

輸出結(jié)果

計算兩個數(shù)的和:

輸入兩個數(shù)字 10 
24 

34

示例2:程序計算正方形的面積

#include<stdio.h>
int sum();
void main()
{
    printf("計算這個正方形的面積\n");
    float area = square();
    printf("正方形的面積: %f\n",area);
}
int square()
{
    float side;
    printf("輸入邊長(以米為單位): ");
    scanf("%f",&side);
    return side * side;
}

輸出結(jié)果

計算這個正方形的面積 
正方形的面積: 10 
輸入邊長(以米為單位): 100.000000

帶參數(shù)且不帶返回值的函數(shù)示例

實例1

#include<stdio.h>
void sum(int, int);
void main()
{
    int a,b,result; 
    printf("\n計算兩個數(shù)的和:");
    printf("\n輸入兩個數(shù)字:");
    scanf("%d %d",&a,&b);
    sum(a,b);
}
void sum(int a, int b)
{
	printf("\n總和是 %d",a+b);    
}

輸出結(jié)果

計算兩個數(shù)的和:

輸入兩個數(shù)字 10 
24 

總和是 34

示例2:程序計算五個數(shù)字的平均值。

#include<stdio.h>
void average(int, int, int, int, int);
void main()
{
    int a,b,c,d,e; 
    printf("\n要計算五個數(shù)的平均值:");
    printf("\n輸入五個數(shù)字:");
    scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);
    average(a,b,c,d,e);
}
void average(int a, int b, int c, int d, int e)
{
	float avg; 
	avg = (a+b+c+d+e)/5; 
	printf("給定五個數(shù)字的平均值 : %f",avg);
}

輸出結(jié)果

要計算五個數(shù)的平均值:
輸入五個數(shù)字:10 
20
30
40
50
給定五個數(shù)字的平均值 : 30.000000

帶參數(shù)和返回值的函數(shù)示例

實例1

#include<stdio.h>
int sum(int, int);
void main()
{
    int a,b,result; 
    printf("\n計算兩個數(shù)的和:");
    printf("\n輸入兩個數(shù)字:");
    scanf("%d %d",&a,&b);
    result = sum(a,b);
    printf("\n總和是 : %d",result);
}
int sum(int a, int b)
{
	return a+b;
}

輸出結(jié)果

計算兩個數(shù)的和:
輸入兩個數(shù)字:10
20 
總和是 : 30

示例2:檢查數(shù)字是偶數(shù)還是奇數(shù)的程序

#include<stdio.h>
int even_odd(int);
void main()
{
 int n,flag=0;
 printf("\n檢查一個數(shù)字是偶數(shù)還是奇數(shù)");
 printf("\n輸入數(shù)字: ");
 scanf("%d",&n);
 flag = even_odd(n);
 if(flag == 0)
 {
 	printf("\n數(shù)字是奇數(shù)");
 }
 else 
 {
 	printf("\n這個數(shù)是偶數(shù)");
 }
}
int even_odd(int n)
{
	if(n%2 == 0)
	{
		return 1;
	}
	else 
	{
		return 0;
	}
}

輸出結(jié)果

檢查一個數(shù)字是偶數(shù)還是奇數(shù)
輸入數(shù)字: 100
這個數(shù)是偶數(shù)

C 標(biāo)準(zhǔn)庫函數(shù)

標(biāo)準(zhǔn)庫函數(shù)是C語言中的內(nèi)置函數(shù),它們被分組并放置在稱為庫的公共位置。這些函數(shù)用于執(zhí)行某些特定操作。例如,printf是用于在控制臺上打印的庫函數(shù)。庫函數(shù)由編譯器的設(shè)計者創(chuàng)建。所有C標(biāo)準(zhǔn)庫函數(shù)都在擴展名為.h的不同頭文件中定義。我們需要在程序中包含這些頭文件,以利用在此類頭文件中定義的庫函數(shù)。例如,要使用諸如printf / scanf之類的庫函數(shù),我們需要在程序中包含stdio.h,這是一個頭文件,其中包含有關(guān)標(biāo)準(zhǔn)輸入/輸出的所有庫函數(shù)。

下表列出了最常用的頭文件。

序號頭文件描述
1stdio.h這是一個標(biāo)準(zhǔn)的輸入/輸出頭文件。它包含有關(guān)標(biāo)準(zhǔn)輸入/輸出的所有庫函數(shù)。
2conio.h這是一個控制臺輸入/輸出頭文件。
3string.h它包含所有與字符串相關(guān)的庫函數(shù),例如gets(),puts()等。
4stdlib.h該頭文件包含所有通用庫函數(shù),例如malloc(),calloc(),exit()等。
5math.h該頭文件包含所有與數(shù)學(xué)運算相關(guān)的函數(shù),例如sqrt(),pow()等。
6time.h該頭文件包含所有與時間有關(guān)的函數(shù)。
7ctype.h該頭文件包含所有字符處理函數(shù)。
8stdarg.h變量參數(shù)函數(shù)在此頭文件中定義。
9signal.h所有信號處理函數(shù)都在此頭文件中定義。
10setjmp.h該文件包含所有跳轉(zhuǎn)函數(shù)。
11locale.h該文件包含語言環(huán)境函數(shù)。
12errno.h該文件包含錯誤處理函數(shù)。
13assert.h該文件包含診斷函數(shù)。

訪問這些頁面以了解更多信息:

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清