亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

C 語(yǔ)言基礎(chǔ)教程

C 語(yǔ)言流程控制

C 語(yǔ)言函數(shù)

C 語(yǔ)言數(shù)組

C 語(yǔ)言指針

C 語(yǔ)言字符串

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

C 語(yǔ)言文件

C 其他

C 語(yǔ)言參考手冊(cè)

C 語(yǔ)言函數(shù)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


序號(hào)C函數(shù)方面語(yǔ)法
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語(yǔ)言創(chuàng)建函數(shù)的語(yǔ)法如下:

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

函數(shù)類(lèi)型

C語(yǔ)言編程中有兩種類(lèi)型的函數(shù):

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

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

C 函數(shù)

返回值

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

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

沒(méi)有返回值的示例:

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

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

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

返回值示例:

int get(){
    return 10;
}

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

float get(){
    return 10.2;
}

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

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

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

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

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

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

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

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

實(shí)例1

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

輸出結(jié)果

Hello www.jixiangtaizi.com.cn

實(shí)例2

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

輸出結(jié)果

計(jì)算兩個(gè)數(shù)的和:

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

總和是 34

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

實(shí)例1

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

輸出結(jié)果

計(jì)算兩個(gè)數(shù)的和:

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

34

示例2:程序計(jì)算正方形的面積

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

輸出結(jié)果

計(jì)算這個(gè)正方形的面積 
正方形的面積: 10 
輸入邊長(zhǎng)(以米為單位): 100.000000

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

實(shí)例1

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

輸出結(jié)果

計(jì)算兩個(gè)數(shù)的和:

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

總和是 34

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

#include<stdio.h>
void average(int, int, int, int, int);
void main()
{
    int a,b,c,d,e; 
    printf("\n要計(jì)算五個(gè)數(shù)的平均值:");
    printf("\n輸入五個(gè)數(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("給定五個(gè)數(shù)字的平均值 : %f",avg);
}

輸出結(jié)果

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

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

實(shí)例1

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

輸出結(jié)果

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

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

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

輸出結(jié)果

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

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

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

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

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

訪問(wèn)這些頁(yè)面以了解更多信息: