C語(yǔ)言程序?qū)嵗?doc_第1頁(yè)
C語(yǔ)言程序?qū)嵗?doc_第2頁(yè)
C語(yǔ)言程序?qū)嵗?doc_第3頁(yè)
C語(yǔ)言程序?qū)嵗?doc_第4頁(yè)
C語(yǔ)言程序?qū)嵗?doc_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

_數(shù)組的引用:#includevoid main (int argc,char *argv )int x5 = 2,3,1,4,6 ;int i;for (i = 0; i 5; i+)printf(%dn, 2 * xi);一維數(shù)組的遍歷:#includevoid main(int argc, char *argv)int x5 = 1,2,3,4,5 ;int i = 0;for (i = 0; i 5; i+)printf(x%d:%dn, i, xi);一維數(shù)組的最值:#includeint main(int argc, char* argv)int x5 = 1,2,3,4,5 ;int nMax = x0;int i = 0;for (i = 1; i nMax)nMax = xi;printf(max:%dn, nMax);return 0;一維數(shù)組排序:#includevoid main(int argc, char * argv)int arr5 = 9, 8, 3, 5, 2 ;int temp = 0;int i, j;printf(冒泡排序前: n);for (i = 0; i 5; i+)printf(%d , arri);printf( n);for (i = 0; i 5-1; i+)for (j = 0; j arrj + 1) temp = arrj;arrj = arrj + 1;arrj + 1 = temp; printf(冒泡排序后: n); for (i = 0; i 5; i+) printf(%d , arri); printf(n);二維數(shù)組的遍歷#includevoid main()/聲明并初始化數(shù)組int array34 = 1,2,3,4,5,6,7,8,9,10,11,12 ;for (int i = 0; i 3; i+)/循環(huán)遍歷行for (int j = 0; j 4; j+)/循環(huán)遍歷列printf(%d%d: %d , i, j, arrayij);printf(n);/每一行的末尾添加換行符二維數(shù)組應(yīng)用#include void main(int argc, char * argv)int StuScore53 = /張同學(xué)88,70,90,/王同學(xué)80,80,60,/李同學(xué)89,60,85,/趙同學(xué)80,75,78,/周同學(xué)70,80,80,;int m = 0, n = 0;int nStuTotalScore;int nMathTotalScore = 0;int nChineseTotalScore = 0;int nEnglishTotalScore = 0;printf(個(gè)人總成績(jī):n);for (m = 0; m 5; m+)nStuTotalScore = 0;for (n = 0; n 3; n+)nStuTotalScore += StuScoremn;switch (n)case 0:nMathTotalScore += StuScorem0;break;case 1:nChineseTotalScore += StuScorem1;break;case 2:nEnglishTotalScore += StuScorem2;switch (m)case 0:printf(張同學(xué):%dn, nStuTotalScore);break;case 1:printf(王同學(xué):%dn, nStuTotalScore);break;case 2:printf(李同學(xué):%dn, nStuTotalScore);break;case 3:printf(趙同學(xué):%dn, nStuTotalScore);break;case 4:printf(周同學(xué):%dn, nStuTotalScore);break;printf(小組數(shù)學(xué)總分:%d 小組數(shù)學(xué)平均分:%.2fn,nMathTotalScore, (double)nMathTotalScore / 5);printf(小組語(yǔ)文總分:%d 小組語(yǔ)文平均分:%.2fn,nChineseTotalScore, (double)nChineseTotalScore / 5);printf(小組英語(yǔ)總分:%d 小組英語(yǔ)平均分:%.2fn,nEnglishTotalScore, (double)nEnglishTotalScore / 5);無(wú)參函數(shù)#include void func()printf(這是我的第一個(gè)函數(shù)!n);void main()func();有參函數(shù)調(diào)用無(wú)參函數(shù)#include void func(int x, int y)int sum = x + y;printf(x+y=%dn, sum);void main()func(3, 5);函數(shù)調(diào)用及返回過程#includeint func(int x, int y)return x + y;void main()int sum = func(3, 5);printf(x+y=%dn, sum);Printf函數(shù)#includevoid main()printf(%c %c, H, n);printf(%s, Hellow,world!n);printf(%d %d %d n,1, 2, 3);printf(%f %f %f n,2.1, 2.2);Scanf 函數(shù)#includevoid main()char str256; /字符數(shù)組保存得到的字符串scanf(%s, str);printf(%sn, str);嵌套函數(shù)#includeint max2(int a, int b) /用于比較兩個(gè)整數(shù)大小的函數(shù)if (a b)return a;elsereturn b;int max4(int a, int b, int c, int d) /用于比較四個(gè)整數(shù)大小的函數(shù)int res;res = max2(a, b);res = max2(res, c);res = max2(res, d);return res;void main()int a = 5, b = 7, c = 9, d = 22, max;printf(請(qǐng)輸入四個(gè)整數(shù): 5 7 9 22 n);/scanf(%d %d %d %d, a=5, b=7, c=9, d=22);max = max4(a, b, c, d);printf(max=%d n, max);遞歸調(diào)用#include/下面的函數(shù)使用遞歸實(shí)現(xiàn),求1n的和int getsum(int n)if (n = 1)return 1; /滿足條件,遞歸結(jié)束int temp = getsum(n - 1); /在函數(shù)體中調(diào)用自身return temp + n;void main()int sum = getsum(4);/調(diào)用遞歸函數(shù),獲得14的和printf(sum=%dn, sum); /打印結(jié)果外部函數(shù)建立源文件first.cint add(int x, int y)return x + y;建立源文件second.c#includeextern int add(int x, int y);void main()printf(%dn, add(1, 2);/注:extern 可以省略內(nèi)部函數(shù)用法建立first.c#includevoid show()printf(%sn, first.c);建立second.c#includestatic void show()printf(%sn, second.c);void main()show();全局變量#includeint x = 123;void show()printf(show()函數(shù)中,x的值為:%dn, x);void main()show();printf(main()函數(shù)中,x的值為:%dn,x);當(dāng)局部變量與全局變量重名時(shí),全局變量會(huì)被屏蔽#includeint x = 789;void main()int x =123;printf(x的值為:%dn,x);變量的作用域#includeint x = 10;void show()int x = 20;printf(show()函數(shù)中,x的值為:%dn, x);void main()int x = 30;printf(main()函數(shù)中,x的值為%dn, x);show();If 語(yǔ)句 #includevoid main()/定義變量xint x = 5;/如果x的值小于10則執(zhí)行if大括號(hào)中的代碼if (x 10)x+;printf(x=%dn, x);If.else語(yǔ)句#includevoid main()int num = 19;if (num % 2 = 0)/判斷條件成立,num被2整除printf(num是一個(gè)偶數(shù)n);elseprintf(num是一個(gè)奇數(shù)n);If.else if.else語(yǔ)句#includevoid main()int grade = 75;/定義學(xué)生成績(jī)if (grade = 80)/滿足條件grsde = 80printf(該成績(jī)的等級(jí)為優(yōu)n);else if (grade = 70)/不滿足條件grade =80,但滿足條件grade=70printf(該成績(jī)等級(jí)為良n);else if (grade = 60)/不滿足條件 grade =70,但滿足條件grade =60printf(該成績(jī)等級(jí)為中n);else/不滿足條件 grade =60printf(該成績(jī)的等級(jí)為差n);三元運(yùn)算符#includevoid main()int x = 0;int y = 1;int max;max = x y ? x : y;printf(max = %dn);Switch 語(yǔ)句#includevoid main()int week = 5;switch (week)case 1:printf(星期一n);break;case 2:printf(星期二n);break;case 3:printf(星期三n);break;case 4:printf(星期四n);break;case 5:printf(星期五n);break;case 6:printf(星期六n);break;case 7:printf(星期日n);break;default:printf(輸入的數(shù)字不正確.n);break;在使用switch語(yǔ)句過程中,如果多個(gè)case條件后面的執(zhí)行語(yǔ)句是一樣的,則該執(zhí)行語(yǔ)句只需書寫一次即可#includevoid main()int week = 2;switch (week)case 1:case 2:case 3:case 4:case 5:/當(dāng)week滿足值1、2、3、4、5中任意一個(gè)時(shí),處理方式相同printf(今天是工作日n);break;case 6:case 7: /當(dāng)week滿足值6、7中任意一個(gè)時(shí),處理方式相同printf(今天是休息日n);break;While 循環(huán)語(yǔ)句#includevoid main()int x = 1;while (x = 4)printf(x = %dn, x);/條件成立,打印x的值x+; /x進(jìn)行自增Do-while 循環(huán)語(yǔ)句#includevoid main()int x = 1; /定義變量x,初始值為1doprintf(x=%dn, x);/條件成立,打印x的值x+; /x進(jìn)行自增 while (x = 4); /循環(huán)條件For 循環(huán)#includevoid main()int x = 1; /定義變量x,初始值為1doprintf(x=%dn, x);/條件成立,打印x的值x+; /x進(jìn)行自增 while (x = 4); /循環(huán)條件Break 語(yǔ)句#includevoid main()int x = 1; /定義變量x,初始值為1while (x = 4) /循環(huán)條件printf(x=%dn, x);if (x = 3)break;x+; /x進(jìn)行自增 Goto語(yǔ)句#includeint main() int i, j; /定義兩個(gè)循環(huán)變量for (i = 1; i = 9; i+) /外層循環(huán)for (j = 1; j 4) /判斷i的值是否大于4goto end; /跳至標(biāo)志位end的語(yǔ)句printf(*); /輸出*printf(n); /換行end: return 0;Continue 語(yǔ)句#includevoid main()int sum = 0; /定義變量sum,用于記住和for (int i = 1; i = 100; i+)if (i % 2 = 0) /如果i是一個(gè)偶數(shù),執(zhí)行if語(yǔ)句中的代碼continue; /結(jié)束本次循環(huán)sum += i; /實(shí)現(xiàn)sum和i的累加printf(sum = %dn, sum);無(wú)符號(hào)整數(shù)類型#includevoid main()int a = 12345;long b = -23456, sum1;unsigned int c = 32800, sum2;sum1 = b - a;sum2 = c - b;printf(sum1=%1d,sum2=%un, sum1, sum2);Float 和double之間的數(shù)據(jù)轉(zhuǎn)換#includevoid main()float a;a = 3.141592612;printf(a=%.9fn, a);字符型變量#includevoid main()char ch1 = A;char ch2 = 65;printf(%cn, ch1);printf(%cn, ch2);#includevoid main()轉(zhuǎn)義符的用法char ch1 = A;char ch2 = n;char ch3 = B;char ch4 = ;printf(%c, ch1);printf(%c, ch2);printf(%c, ch3);printf(%c, ch4);printf(%c, ch2);枚舉類型變量#includeenum month JAN=1,FEB=2,MAR=3,APR=4,MAY=5,JUN=6, JUL=7,AUG=8,SEP=9,OCT=10,NOV=11,DEC=12;void main()enum month lastmonth, thismonth, nextmonth;lastmonth = APR;thismonth = MAY;nextmonth = JUN;printf(%d %d %d n, lastmonth, thismonth, nextmonth); 在枚舉中規(guī)定,如果不給標(biāo)識(shí)符指定具體值,會(huì)默認(rèn)該標(biāo)識(shí)符的值等于前一標(biāo)識(shí)符的值加一。因此可以快速定義#include/定義一組常量enum Constants c1, c2, c3 = 4, c4, c5 = 3, c6, c7, c8 = 0, c9 ;void main()printf(c9=%dn, c9);Sizeof 運(yùn)算符#include void main()/通過類型名稱計(jì)算各基本數(shù)據(jù)類型所占內(nèi)存大小printf(char: %dn, sizeof(char);printf(short: %dn, sizeof(short);printf(long: %dn, sizeof(long);printf(float: %dn, sizeof(float);printf(double: %dn, sizeof(double);printf(unsigned char: %dn, sizeof(unsigned char);printf(unsigned short: %dn, sizeof(unsigned short);printf(unsigned int: %dn, sizeof(unsigned int);printf(unsigned long: %dn, sizeof(unsigned long);/通過變量名稱計(jì)算變量所屬數(shù)據(jù)類型占用內(nèi)存大小int val_int = 100;double val_double = 100000.0;printf(val_int: %dn, sizeof(val_int);printf(val_double: %dn, sizeof(val_double);指針的取址和取值運(yùn)算符#includevoid main()int num = 100; /int類型變量numprintf(num=%dn, num); /輸出變量值printf(#&num = %pn, &num); /輸出變量的內(nèi)存地址printf(*&num = %dn, *&num); /通過num地址讀取num中的數(shù)據(jù)指針表達(dá)式的自增自減運(yùn)算#includevoid main()int arr5 = 1,2,3,4,5 ;int *p1 = &arr0;int *p2 = &arr3;printf(p1的值為: %dn, *p1);printf(+p1的值為: %dn, *(+p1);printf(p2的值為: %dn, *p2);printf(-p2的值為: %dn, *(-p2);同類指針相減運(yùn)算#includevoid main()int arr5 = 1,2,3,4,5 ;int *p1 = &arr0;int *p2 = &arr3;printf(p1的值為: %dn, p1);printf(p2的值為: %dn, p2);printf(p1-p2的值為: %dn, p2-p1);指針變量的使用#includevoid main(int argc,char* argv)int nNum = 0x12345678;int * pNum; /定義一個(gè)指針變量pNum = &nNum; /為指針變量賦值printf(nNum Val:%xn, nNum);printf(nNum Addr:%pn, &nNum);printf(pNum Val:%pn, pNum);printf(*pNum :%xn, *pNum);指針變量作為函數(shù)的參數(shù)(作用是將一個(gè)變量的地址傳送到另一個(gè)函數(shù)中)#includevoid main(int argc,char* argv)int nNum = 0x12345678;int * pNum; /定義一個(gè)指針變量pNum = &nNum; /為指針變量賦值printf(nNum Val:%xn, nNum);printf(nNum Addr:%pn, &nNum);printf(pNum Val:%pn, pNum);printf(*pNum :%xn, *pNum);指向一維數(shù)組元素的指針#include#includevoid main(int argc, char* argv)int X10 = 1,2,3,4,5,6,7,8,9,10 ;int i = 0;int nLen = 10;printf(數(shù)組X修改前:n);for (i = 0; i 10; i+)printf(%d , Xi);/用指針pTemp 指向數(shù)組Xint * pTemp = X;/通過指針pTemp訪問數(shù)組中的元素,并修改元素的值for (i = 0; i nLen; i+)pTempi = pTempi * 2;printf(n數(shù)組X修改之后:n);/通過指針移動(dòng)來(lái)遍歷輸出X數(shù)組中的元素for (i = 0; i 10; i+)printf(%d , *pTemp);pTemp+;printf(n);指向二維數(shù)組元素的指針#include#includevoid main()int X25 = 1,2,3,4,5 , 6,7,8,9,10 ;/定義數(shù)組指針用于指向二維數(shù)組int(*pXElement)5 = X;int m = 0;int n = 0;printf(二維數(shù)組元素如下: n);for (m = 0; m 2; m+)printf(第%d行的元素如下: n, m + 1);for (n = 0; n 5; n+)/通過數(shù)組指針來(lái)訪問為數(shù)組中的元素printf( %d, pXElementmn);printf(n); 指針數(shù)組的概念#include/輸出指針數(shù)組中元素的值int print(int *arr, int n)if (!arr)return 0;int i = 0;for (i = 0; in; i+)printf(%dn, *arri);return 1;void main(int argc, char * argv)int a, b, c, d, e;a = 1;b = 2;c = 3;d = 4;e = 5;int *Arr = &a, &b, &c, &d, &e ;/定義一個(gè)int類型的指針數(shù)組print(Arr, 5);/調(diào)出print()函數(shù)指針數(shù)組作為main()函數(shù)的形參#include#includeint main(int argc, char * argv)int i = 0;printf(程序的參數(shù)列表如下:n);for (i = 0; i argc ; i+)printf(%s , argvi);return 0;二級(jí)指針#include#includevoid main(int argc, char * argv)int m = 10;int * pM = &m; /指針pM存放的是變量m的地址int * ppM = &pM; /二級(jí)指針ppM存放的是指針pM的地址printf(m = %dn, m);printf(*pM = %dn, *pM);printf(*pM = %dn, *ppM);Malloc()函數(shù)和free()函數(shù)#includevoid main()int u, v; /定義二維數(shù)組的長(zhǎng)和寬printf(第一維為:);scanf(%d, &u);printf(第二維為:);scanf(%d, &v);int* array = (int*)malloc(sizeof(int*)* u); /先創(chuàng)建第一維for (int i = 0; i u; i+)/在內(nèi)層循環(huán)中動(dòng)態(tài)創(chuàng)建第二維arrayi = (int*)malloc(sizeof(int)*v);for(int j = 0; jv; j+)arrayij = 0; /給數(shù)組元素復(fù)制printf(%d , arrayij);字符數(shù)組#includevoid main()/聲明一個(gè)字符數(shù)組并初始化char char_array5 = h, e, l, l, o ;int i;/通過sizeof關(guān)鍵字得到數(shù)組長(zhǎng)度,并遍歷打印其內(nèi)容。for (i = 0; i sizeof(char_array); +i)printf(%c, char_arrayi);printf(n);輸出字符串中的字符#includevoid main()char char_array6 = (hello);/聲明一個(gè)長(zhǎng)度為6的字符數(shù)組并初始化為helloint i;/通過sizeof關(guān)鍵字得到數(shù)組長(zhǎng)度f(wàn)or (i = 0; i sizeof(char_array); +i)/通過printf輸出char_array中的字符串printf(char_array的第%dn, i, char_arrayi);獲取用戶輸入字符的長(zhǎng)度#define _CRT_SECURE_NO_WARNINGS /關(guān)閉安全檢查#include#includevoid main()char str1024; /聲明一個(gè)足夠大的字符型數(shù)組保存將要被輸入的字符串printf(請(qǐng)輸入待測(cè)量的字符串:);scanf(%s, str); /接受用戶輸入字符串printf(您輸入的字符串長(zhǎng)度為 %d。n, strlen(str);空字符0的使用#includevoid main()char char_array = h, e, l, l, o, 0, w, o, r, l, d ;printf %sn, char_array ;忘記在字符數(shù)組的末尾添加空字符0,程序也會(huì)出現(xiàn)一些奇怪的現(xiàn)象#includevoid main()char char_array = h, e, l, l, o ;printf %sn, char_array ;使用指針修改字符串中的字符#includeint main()char char_array = hello world!;char *ptr;printf(修改前的字符串如下:%sn, char_array);ptr = char_array; /將一個(gè)字符型指針指向字符型數(shù)組char_array的首地址/開始修改字符串while (*ptr != 0) /檢測(cè)是否到串未尾if (*ptr = )*ptr = !;ptr+;printf(修改后的字符串如下:%s n, char_array);return 0;Gets()函數(shù)#pragma warning(disable:4996)#includevoid main()char phoneNumber12;printf(請(qǐng)輸入手機(jī)號(hào)碼:);gets(phoneNumber);printf(您的手機(jī)號(hào)碼是: %sn, phoneNumber);Puts()#pragma warning(disable:4996)#includevoid main()char buf12;puts(請(qǐng)輸入一個(gè)字符串:);gets(buf);puts(您輸入的是: n);puts(buf);字符串比較#pragma warning(disable:4996)#include#includevoid main()char username100; /定義存放用戶名的字符數(shù)組char password100; /定義存放密碼的字符數(shù)組printf(登錄n);printf(請(qǐng)輸入用戶名: );gets(username); /獲取用戶輸入的用戶名printf(請(qǐng)輸入密碼: );gets(password); /獲取用戶輸入的密碼/比較輸入的用戶名和密碼是否正確if (!strcmp(password, ILoveC) & (!strcmp(username, user)printf(用戶 %s 登錄成功!n, username);elseprintf(登陸失敗,請(qǐng)檢查用戶名或密碼是否正確輸入。n);Strncmp()函數(shù)#include#includevoid main()char* str1 = abcdef;char* str2 = abcdeg;/判斷字符串str1和str2中的前5個(gè)字符是否相同if (!strncmp(str1, str2, 5)printf(str1和str2的前5個(gè)字符相同);elseprintf(str1和str2的前5個(gè)字符不同);Strchr()函數(shù)#include#includeint getcount(char* str, char c)/存儲(chǔ)找到的字符個(gè)數(shù)int count = 0;/存儲(chǔ)當(dāng)前字符指針在字符串中的位置char* ptr = str;/獲取第一次出現(xiàn)字符變量c值的指針位置while (ptr = strchr(ptr, c) != NULL)+ptr;+count;return count;void main() char str6 = abaca;char c = a;int num = getcount(str, c);printf(字符%c在字符串中出現(xiàn)了%d次。n, c, num);Strstr()函數(shù)#pragma warning(disable:4996)#include#includevoid main()char str10240; /聲明字符串?dāng)?shù)組,用于保存段落char word10240; /聲明字符串?dāng)?shù)組,用于保存要查找的字符串char* ptr;printf(請(qǐng)輸入要掃描的段落:);gets(str);printf(請(qǐng)輸入要查找的單詞:);gets(word);ptr = strstr(str, word); /搜索是否包含指定的字符串if (ptr = NULL)printf(段落中不包含單詞 %s。n, word);else/得到檢測(cè)出的字符串后20個(gè)字符if (strlen(ptr) = 20)ptr20 = 0;printf(單詞出現(xiàn)在 %s附近。n, ptr);Strcat()函數(shù)#pragma warning(disable:4996)#include#includevoid main()/區(qū)號(hào)char areaNumber5;/電話號(hào)碼char phoneNumber12;int input;/分機(jī)號(hào)char extraNumber5;/用來(lái)存儲(chǔ)連接后的結(jié)果,需要初始化為0!char buffer25 = 0 ;printf(請(qǐng)輸入?yún)^(qū)號(hào):);gets(areaNumber);printf(請(qǐng)輸入電話號(hào)碼:);gets(phoneNumber);printf(有分機(jī)號(hào)嗎?(y/n);input = getchar();/由于getchar()只讀入一個(gè)字符,因此需要調(diào)用fflush來(lái)清除輸入緩沖區(qū)的換行符fflush(stdin);if (input = y)printf(請(qǐng)輸入分機(jī)號(hào):);gets(extraNumber);strcat(buffer, areaNumber);strcat(buffer, -);strcat(buffer, phoneNumber);strcat(buffer, -);strcat(buffer, extraNumber);elsestrcat(buffer, areaNumber

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論