當前位置:首頁 » 編程語言 » c語言的函數

c語言的函數

發布時間: 2022-01-11 17:46:51

1. c語言中函數的作用

C語言中的函數的作用是可以將一段經常需要使用的代碼封裝起來,在需要使用時可以直接調用。

示例:

語言的函數定義和函數聲明

#include<stdio.h>

//使用函數前,需要在main函數前對使用的函數進行聲明

int getMax(int, int);

void main() {

int t=getMax(12, 21);

printf("%d ", t);

getchar();

}

int getMax(int a, int b) {

if (a > b) {

return a;

}

else {

return b;

}

}

(1)c語言的函數擴展閱讀

scanf 函數

函數原型:int scanf(char *format [,argument,...])

功能:從標准輸入設備(一般指鍵盤)實現格式化輸入

返回值:成功返回讀入的數據項個數

函數參數:format 格式化字元串

argument 輸入數據項的地址列表

常用格式類型參考printf函數的個格式類型

用法舉例:

從標准輸入設備中輸入一個整數到整形變數a中,輸入一個浮點數到浮點型變數b中

int a=0;

float b=0;

scanf("%d%f",&a,&b);

上面程序執行後,從鍵盤輸入: 19 18.6 ,程序將 19賦值給變數a, 18.6賦值給變數b 。

2. c語言中,函數類型有幾種

一般包括字元庫函數,數學函數,目錄函數,進程函數,診斷函數,操作函數等。

字元庫函數所在函數庫為ctype.h;數學函數所在函數庫為math.h、stdio.h、string.h、float.h;目錄函數所在函數庫為dir.h、dos.h;進程函數所在函數庫為stdlib.h、process.h。

診斷函數所在函數庫為assert.h、math.h;介面子程序所在函數庫為:dos.h、bios.h;操作函數所在函數庫為string.h、mem.h;時間日期函數函數庫為time.h、dos.h。



(2)c語言的函數擴展閱讀

C語言為一種程序設計的入門語言。由於C語言的語句中沒有提供直接計算sin或cos函數的語句,會造成編寫程序困難;但是函數庫提供了sin和cos函數,可以拿來直接調用。顯示一段文字,我們在C語言中找不到顯示語句,只能使用庫函數printf。

C語言的庫函數並不是C語言本身的一部分,它是由編譯程序根據一般用戶的需要,編制並提供用戶使用的一組程序。C的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。在編寫C語言程序時,使用庫函數,既可以提高程序的運行效率,又可以提高編程的質量。

3. c語言定義函數是什麼

從參數角度分類:1.有參函數:函數有形參,可以是一個,或者多個,參數的類型隨便,完全取決於函數的功能。2.無參函數:函數沒有參數,在形參列表的位置寫一個viod或什麼都不寫。

每個C程序都至少有一個函數,即主函數main(),如果程序的任務比較簡單,全部的代碼都寫在main()函數中,但是,在實際開發中,程序的任務往往比較復雜,如果全部的代碼都寫在main()函數中,main()函數將非常龐大臃腫,結構復雜,代碼重復。

詳細信息:

我們可以根據程序的邏輯和任務的分工把代碼劃分到不同的自定義函數中,main()更關心業務邏輯和處理流程,需要執行具體任務的時候,調用這些自定義的函數就可以了。

為了方使理解,我們把函數分為兩種:一種是庫函數,一種是自定義函數。庫函數是C語言提供的,或系統提供的,實現了某些基本的功能,例如scanf、printf,在程序中可以直接使用。

自定義函數是程序員為了完成某項任務而編寫的函數,目的是為了實現某項的功能或讓主程序更簡潔。程序員在使用自定義函數之前,必須先聲明和定義。

4. C語言中的標准函數有哪些

C語言輸入輸出函數有很多,標准I/O函數中包含了如下幾個常用的函數:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.

int getc(FILE *fp)
getc主要是從文件中讀出一個字元.常用的判斷文件是否讀取結束的語句為 (ch = getc(fp)) != EOF.EOF為文件結束標志,定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當fp為stdin時,getc(stdin)就等同於getchar()了.

int putc(int ch,FILE *fp)
putc主要是把字元ch寫到文件fp中去.如果fp為stdout,則putc就等同於putchar()了.

int getchar(void)

getchar主要是從標准輸入流讀取一個字元.默認的標准輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字元時又涉及到緩沖的問題,所以並不是在屏幕中敲上一個字元程序就會運行,一般是通過在屏幕上敲上回車鍵,然後將回車前的字元串放在緩沖區中,getchar就是在緩沖區中一個一個的讀字元.當然也可以在while循環中指定終止字元,如下面的語句:while ((c = getchar()) != '#')這是以#來結束的.

int putchar(int ch)

putchar(ch)主要是把字元ch寫到標准流stdout中去.

char * gets(char *str)
gets主要是從標准輸入流讀取字元串並回顯,讀到換行符時退出,並會將換行符省去.

int puts(char *str)
puts主要是把字元串str寫到標准流stdout中去,並會在輸出到最後時添加一個換行符.

char *fgets(char *str, int num, FILE *fp)
str是存放讀入的字元數組指針,num是最大允許的讀入字元數,fp是文件指針.fgets的功能是讀一行字元,該行的字元數不大於num-1.因為fgets函數會在末尾加上一個空字元以構成一個字元串.另外fgets在讀取到換行符後不會將其省略.

int fputs(char *str, file *fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在列印時並不添加換行符.

int fgetc(FILE *fp)
fgetc從fp的當前位置讀取一個字元.

int fputc(int ch, file *fp)
fputc是將ch寫入fp當前指定位置.

int fscanf(FILE *fp, char *format, 輸入列表)
fscanf按照指定格式從文件中出讀出數據,並賦值到參數列表中.

int fprintf(FILE *fp, char *format, 輸出列表)
fprintf將格式化數據寫入流式文件中.

數據塊讀寫函數

fread (buffer,size,count,fp);
fwrite(buffer,size,count,fp);
參數說明:
buffer:是一個指針。
對fread 來說,它是讀入數據的存放地址。
對fwrite來說,是要輸出數據的地址(均指起始地址)。
size: 要讀寫的位元組數。
count: 要進行讀寫多少個size位元組的數據項。
fp: 文件型指針。

5. C語言中函數是怎樣用的

定義好的函數,若在主函數之後定義,在主函數中要聲明一下。
聲明方法為把定義好的函數按原樣寫下,再加上一個「;」。
若在主函數之前定義,在主函數就可以直接調用。
一般格式k=函數名(變數);
函數運算結果通過return語句返回,賦值給k。
希望你能看懂!

6. c語言的函數

fflush(stdin) ;
清空輸入緩沖區,通常是為了確保不影響後面的數據讀取(例如在讀完一個字元串後緊接著又要讀取一個字元,此時應該先執行fflush(stdin);)
詳細解釋一下:
/*stdin就是標准輸入 std即standard,in即輸入,合起來就是標准輸入。 一般就是指鍵盤輸入到緩沖區里的東西。 */
函數名: fflush
功 能: 清除文件緩沖區,文件以寫方式打開時將緩沖區內容寫入文件
原型:int fflush(FILE *stream)
程序例:
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>
void flush(FILE *stream);
int main(void)
{
FILE *stream;
char msg[] = "This is a test";
/* create a file */
stream = fopen("DUMMY.FIL", "w");
/* write some data to the file */
fwrite(msg, strlen(msg), 1, stream);
clrscr();
printf("Press any key to flush\
DUMMY.FIL:");
getch();
/* flush the data to DUMMY.FIL without\
closing it */
flush(stream);
printf("\nFile was flushed, Press any key\
to quit:");
getch();
return 0;
}
void flush(FILE *stream)
{
int phandle;
/* flush the stream's internal buffer */
fflush(stream);
/* make a plicate file handle */
phandle = p(fileno(stream));
/* close the plicate handle to flush\
the DOS buffer */
close(phandle);
}
fflush 的返回值類型是int類型,那麼這個int類型具體的返回是什麼呢?
返回值:
如果成功刷新,fflush返回0。指定的流沒有緩沖區或者只讀打開時也返回0值。返回EOF指出一個錯誤。
注意:如果fflush返回EOF,數據可能由於寫錯誤已經丟失。當設置一個重要錯誤處理器時,最安全的是用setvbuf函數關閉緩沖或者使用低級I/0常式,如open、close和write來代替流I/O函數。
#include <stdio.h>
int main()
{
int i=0;
char p;
scanf("%d",&i);
問題點---> fflush(stdin);
printf("I is :%d\n",i);
scanf("%c",&p);
printf("Char P is %c.\n",p);
return 0;
}
該程序在dev-c++下編譯執行後
2 <enter>
I is :2
a <enter>
Char P is a.
linux下編譯執行後
2 <enter>
I is :2
Char P is
.
很明顯fflush在linux下沒有起到任何作用?請問我錯在哪裡了?我要怎樣清流?當然在linux下我把fflush(stdin);換成getchar();可以達到效果

7. c語言常用的函數有哪些

#include
<assert.h>
//設定插入點
#include
<ctype.h>
//字元處理
#include
<errno.h>
//定義錯誤碼
#include
<float.h>
//浮點數處理
#include
<fstream.h>
//文件輸入/輸出
#include
<iomanip.h>
//參數化輸入/輸出
#include
<iostream.h>
//數據流輸入/輸出
#include
<limits.h>
//定義各種數據類型最值常量
#include
<locale.h>
//定義本地化函數
#include
<math.h>
//定義數學函數
#include
<stdio.h>
//定義輸入/輸出函數
#include
<stdlib.h>
//定義雜項函數及內存分配函數
#include
<string.h>
//字元串處理
#include
<strstrea.h>
//基於數組的輸入/輸出
#include
<time.h>
//定義關於時間的函數
#include
<wchar.h>
//寬字元處理及輸入/輸出
#include
<wctype.h>
//寬字元分類
標准
C/C++
(同上的不再注釋)
#include
<algorithm>
//STL
通用演算法
#include
<bitset>
//STL
位集容器
#include
<cctype>
#include
<cerrno>
#include
<clocale>
#include
<cmath>
#include
<complex>
//復數類
#include
<cstdio>
#include
<cstdlib>
#include
<cstring>
#include
<ctime>
#include
<deque>
//STL
雙端隊列容器
#include
<exception>
//異常處理類
#include
<fstream>
#include
<functional>
//STL
定義運算函數(代替運算符)
#include
<limits>
#include
<list>
//STL
線性列表容器
#include
<map>
//STL
映射容器
#include
<iomanip>
#include
<ios>
//基本輸入/輸出支持
#include
<iosfwd>
//輸入/輸出系統使用的前置聲明
#include
<iostream>
#include
<istream>
//基本輸入流
#include
<ostream>
//基本輸出流
#include
<queue>
//STL
隊列容器
#include
<set>
//STL
集合容器
#include
<sstream>
//基於字元串的流
#include
<stack>
//STL
堆棧容器
#include
<stdexcept>
//標准異常類
#include
<streambuf>
//底層輸入/輸出支持
#include
<string>
//字元串類
#include
<utility>
//STL
通用模板類
#include
<vector>
//STL
動態數組容器
#include
<cwchar>
#include
<cwctype>
using
namespace
std;
C99
增加
#include
<complex.h>
//復數處理
#include
<fenv.h>
//浮點環境
#include
<inttypes.h>
//整數格式轉換
#include
<stdbool.h>
//布爾環境
#include
<stdint.h>
//整型環境
#include
<tgmath.h>
//通用類型數學宏

8. C語言函數的意思

定義了一個字元串s1,裡面可以存放8個位元組,在定義的同時已經在裡面放了四個字元date
定義了一個字元串s2,裡面可以存放8個位元組,在定義的同時已經在裡面放了四個字元bigdate
strcmp就是讓你比較s1,s2的大小,
若s1=s2,則返回零;
若s1<s2,則返回負數;
若s1>s2,則返回正數。
兩個字元串自左向右逐個字元相比(按ASCII值大小相比較),直到出現不同的字元或遇'\0'為止
這里的s1的首字元d是大於s2首字元b的(ASCII:b=98,d,100),s1>s2,所以返回正數,選擇A

熱點內容
java編譯器中文版 發布:2024-11-15 07:11:56 瀏覽:247
伺服器請求慢怎麼排查 發布:2024-11-15 06:55:35 瀏覽:320
php自學還是培訓 發布:2024-11-15 06:54:05 瀏覽:182
在哪裡找到sim卡設置密碼 發布:2024-11-15 06:51:47 瀏覽:392
細說phppdf 發布:2024-11-15 06:38:35 瀏覽:276
征途PK腳本 發布:2024-11-15 06:37:51 瀏覽:680
vbs打不開編譯器錯誤 發布:2024-11-15 06:35:12 瀏覽:344
深海迷航密碼在哪裡 發布:2024-11-15 06:30:23 瀏覽:303
伺服器日誌怎麼分析 發布:2024-11-15 06:22:04 瀏覽:525
字體目錄在哪個文件夾 發布:2024-11-15 06:20:28 瀏覽:181