C語言程序?qū)嵗齙第1頁
C語言程序?qū)嵗齙第2頁
C語言程序?qū)嵗齙第3頁
C語言程序?qū)嵗齙第4頁
C語言程序?qū)嵗齙第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)組的引用:#include<stdio.h>void 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ù)組的遍歷:#include<stdio.h>void 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"

2、, i, xi);一維數(shù)組的最值:#include<stdio.h>int main(int argc, char* argv)int x5 = 1,2,3,4,5 ;int nMax = x0;int i = 0;for (i = 1; i < 5; i+)if (xi > nMax)nMax = xi;printf("max:%dn", nMax);return 0;一維數(shù)組排序:#include<stdio.h>void main(int argc, char * argv)int arr5 = 9, 8, 3, 5, 2 ;int

3、 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 < 5 - 1 - i; j+)if (arrj > arrj + 1) temp = arrj;arrj = arrj + 1;arrj + 1 = temp; printf("冒泡排序后: n"); for (i = 0; i &

4、lt; 5; i+) printf("%d ", arri); printf("n");二維數(shù)組的遍歷#include<stdio.h>void 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");/每一行的末尾

5、添加換行符二維數(shù)組應用#include <stdio.h>void main(int argc, char * argv)int StuScore53 = /張同學88,70,90,/王同學80,80,60,/李同學89,60,85,/趙同學80,75,78,/周同學70,80,80,;int m = 0, n = 0;int nStuTotalScore;int nMathTotalScore = 0;int nChineseTotalScore = 0;int nEnglishTotalScore = 0;printf("個人總成績:n");for (m =

6、 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("張同學:%dn", nStuTotalScore);break;case

7、 1:printf("王同學:%dn", nStuTotalScore);break;case 2:printf("李同學:%dn", nStuTotalScore);break;case 3:printf("趙同學:%dn", nStuTotalScore);break;case 4:printf("周同學:%dn", nStuTotalScore);break;printf("小組數(shù)學總分:%d 小組數(shù)學平均分:%.2fn",nMathTotalScore, (double)nMathTot

8、alScore / 5);printf("小組語文總分:%d 小組語文平均分:%.2fn",nChineseTotalScore, (double)nChineseTotalScore / 5);printf("小組英語總分:%d 小組英語平均分:%.2fn",nEnglishTotalScore, (double)nEnglishTotalScore / 5);無參函數(shù)#include <stdio.h>void func()printf("這是我的第一個函數(shù)!n");void main()func();有參函數(shù)調(diào)用無參

9、函數(shù)#include <stdio.h>void func(int x, int y)int sum = x + y;printf("x+y=%dn", sum);void main()func(3, 5);函數(shù)調(diào)用及返回過程#include<stdio.h>int func(int x, int y)return x + y;void main()int sum = func(3, 5);printf("x+y=%dn", sum);Printf函數(shù)#include<stdio.h>void main()printf

10、("%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ù)#include<stdio.h>void main()char str256; /字符數(shù)組保存得到的字符串scanf("%s", str);printf("%sn", str);

11、嵌套函數(shù)#include<stdio.h>int max2(int a, int b) /用于比較兩個整數(shù)大小的函數(shù)if (a > b)return a;elsereturn b;int max4(int a, int b, int c, int d) /用于比較四個整數(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("請輸入四個整數(shù): 5 7 9

12、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<stdio.h>/下面的函數(shù)使用遞歸實現(xiàn),求1n的和int getsum(int n)if (n = 1)return 1; /滿足條件,遞歸結束int temp = getsum(n - 1); /在函數(shù)體中調(diào)用自身return temp + n;void main()int sum = getsum(4);/調(diào)用

13、遞歸函數(shù),獲得14的和printf("sum=%dn", sum); /打印結果外部函數(shù)建立源文件first.cint add(int x, int y)return x + y;建立源文件second.c#include<stdio.h>extern int add(int x, int y);void main()printf("%dn", add(1, 2);/注:extern 可以省略內(nèi)部函數(shù)用法建立first.c#include<stdio.h>void show()printf("%sn", &qu

14、ot;first.c");建立second.c#include<stdio.h>static void show()printf("%sn", "second.c");void main()show();全局變量#include<stdio.h>int x = 123;void show()printf("show()函數(shù)中,x的值為:%dn", x);void main()show();printf("main()函數(shù)中,x的值為:%dn",x);當局部變量與全局變量重名時,全局

15、變量會被屏蔽#include<stdio.h>int x = 789;void main()int x =123;printf("x的值為:%dn",x);變量的作用域#include<stdio.h>int 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 語句 #include<stdio.h>voi

16、d main()/定義變量xint x = 5;/如果x的值小于10則執(zhí)行if大括號中的代碼if (x < 10)x+;printf("x=%dn", x);If.else語句#include<stdio.h>void main()int num = 19;if (num % 2 = 0)/判斷條件成立,num被2整除printf("num是一個偶數(shù)n");elseprintf("num是一個奇數(shù)n");If.else if.else語句#include<stdio.h>void main()int gr

17、ade = 75;/定義學生成績if (grade >= 80)/滿足條件grsde >= 80printf("該成績的等級為優(yōu)n");else if (grade >= 70)/不滿足條件grade >=80,但滿足條件grade>=70printf("該成績等級為良n");else if (grade >= 60)/不滿足條件 grade >=70,但滿足條件grade >=60printf("該成績等級為中n");else/不滿足條件 grade >=60printf(&qu

18、ot;該成績的等級為差n");三元運算符#include<stdio.h>void main()int x = 0;int y = 1;int max;max = x > y ? x : y;printf("max = %dn");Switch 語句#include<stdio.h>void main()int week = 5;switch (week)case 1:printf("星期一n");break;case 2:printf("星期二n");break;case 3:printf(&

19、quot;星期三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語句過程中,如果多個case條件后面的執(zhí)行語句是一樣的,則該執(zhí)行語句只需書寫一次即可#include<stdio.h>void m

20、ain()int week = 2;switch (week)case 1:case 2:case 3:case 4:case 5:/當week滿足值1、2、3、4、5中任意一個時,處理方式相同printf("今天是工作日n");break;case 6:case 7: /當week滿足值6、7中任意一個時,處理方式相同printf("今天是休息日n");break;While 循環(huán)語句#include<stdio.h>void main()int x = 1;while (x <= 4)printf("x = %dn&quo

21、t;, x);/條件成立,打印x的值x+; /x進行自增Do-while 循環(huán)語句#include<stdio.h>void main()int x = 1; /定義變量x,初始值為1doprintf("x=%dn", x);/條件成立,打印x的值x+; /x進行自增 while (x <= 4); /循環(huán)條件For 循環(huán)#include<stdio.h>void main()int x = 1; /定義變量x,初始值為1doprintf("x=%dn", x);/條件成立,打印x的值x+; /x進行自增 while (x

22、<= 4); /循環(huán)條件Break 語句#include<stdio.h>void main()int x = 1; /定義變量x,初始值為1while (x <= 4) /循環(huán)條件printf("x=%dn", x);if (x = 3)break;x+; /x進行自增 Goto語句#include<stdio.h>int main() int i, j; /定義兩個循環(huán)變量for (i = 1; i <= 9; i+) /外層循環(huán)for (j = 1; j <= i; j+) /內(nèi)層循環(huán)if (i >4) /判斷i的

23、值是否大于4goto end; /跳至標志位end的語句printf("*"); /輸出*printf("n"); /換行end: return 0;Continue 語句#include<stdio.h>void main()int sum = 0; /定義變量sum,用于記住和for (int i = 1; i <= 100; i+)if (i % 2 = 0) /如果i是一個偶數(shù),執(zhí)行if語句中的代碼continue; /結束本次循環(huán)sum += i; /實現(xiàn)sum和i的累加printf("sum = %dn"

24、, sum);無符號整數(shù)類型#include<stdio.h>void 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ù)轉換#include<stdio.h>void main()float a;a = 3.;printf("a=%.9fn", a);字符型變量#inclu

25、de<stdio.h>void main()char ch1 = 'A'char ch2 = 65;printf("%cn", ch1);printf("%cn", ch2);#include<stdio.h>void main()轉義符的用法char ch1 = 'A'char ch2 = 'n'char ch3 = 'B'char ch4 = ''printf("%c", ch1);printf("%c",

26、ch2);printf("%c", ch3);printf("%c", ch4);printf("%c", ch2);枚舉類型變量#include<stdio.h>enum 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

27、 = JUN;printf("%d %d %d n", lastmonth, thismonth, nextmonth); 在枚舉中規(guī)定,如果不給標識符指定具體值,會默認該標識符的值等于前一標識符的值加一。因此可以快速定義#include<stdio.h>/定義一組常量enum Constants c1, c2, c3 = 4, c4, c5 = 3, c6, c7, c8 = '0', c9 ;void main()printf("c9=%dn", c9);Sizeof 運算符#include <stdio.h>

28、void main()/通過類型名稱計算各基本數(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", sizeo

29、f(unsigned char);printf("unsigned short: %dn", sizeof(unsigned short);printf("unsigned int: %dn", sizeof(unsigned int);printf("unsigned long: %dn", sizeof(unsigned long);/通過變量名稱計算變量所屬數(shù)據(jù)類型占用內(nèi)存大小int val_int = 100;double val_double = .0;printf("val_int: %dn", siz

30、eof(val_int);printf("val_double: %dn", sizeof(val_double);指針的取址和取值運算符#include<stdio.h>void main()int num = 100; /int類型變量numprintf("num=%dn", num); /輸出變量值printf("#&num = %pn", &num); /輸出變量的內(nèi)存地址printf("*&num = %dn", *&num); /通過num地址讀取num中的數(shù)

31、據(jù)指針表達式的自增自減運算#include<stdio.h>void 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);同類指針相減運算#include<stdio.h>void main(

32、)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);指針變量的使用#include<stdio.h>void main(int argc,char* argv)int nNum = 0x;int * pNum; /定義一個指針變量pNum = &nNum; /為指針變量賦值print

33、f("nNum Val:%xn", nNum);printf("nNum Addr:%pn", &nNum);printf("pNum Val:%pn", pNum);printf("*pNum :%xn", *pNum);指針變量作為函數(shù)的參數(shù)(作用是將一個變量的地址傳送到另一個函數(shù)中)#include<stdio.h>void main(int argc,char* argv)int nNum = 0x;int * pNum; /定義一個指針變量pNum = &nNum; /為指針變

34、量賦值printf("nNum Val:%xn", nNum);printf("nNum Addr:%pn", &nNum);printf("pNum Val:%pn", pNum);printf("*pNum :%xn", *pNum);指向一維數(shù)組元素的指針#include<stdlib.h>#include<stdio.h>void main(int argc, char* argv)int X10 = 1,2,3,4,5,6,7,8,9,10 ;int i = 0;int n

35、Len = 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");/通過指針移動來遍歷輸出X數(shù)組中的元素for (i = 0; i < 10; i+)printf("%d ", *pT

36、emp);pTemp+;printf("n");指向二維數(shù)組元素的指針#include<stdlib.h>#include<stdio.h>void 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

37、; n < 5; n+)/通過數(shù)組指針來訪問為數(shù)組中的元素printf(" %d", pXElementmn);printf("n"); 指針數(shù)組的概念#include<stdio.h>/輸出指針數(shù)組中元素的值int print(int *arr, int n)if (!arr)return 0;int i = 0;for (i = 0; i<n; i+)printf("%dn", *arri);return 1;void main(int argc, char * argv)int a, b, c, d, e

38、;a = 1;b = 2;c = 3;d = 4;e = 5;int *Arr = &a, &b, &c, &d, &e ;/定義一個int類型的指針數(shù)組print(Arr, 5);/調(diào)出print()函數(shù)指針數(shù)組作為main()函數(shù)的形參#include<stdlib.h>#include<stdio.h>int main(int argc, char * argv)int i = 0;printf("程序的參數(shù)列表如下:n");for (i = 0; i < argc ; i+)printf(&quo

39、t;%s ", argvi);return 0;二級指針#include<stdlib.h>#include<stdio.h>void main(int argc, char * argv)int m = 10;int * pM = &m; /指針pM存放的是變量m的地址int * ppM = &pM; /二級指針ppM存放的是指針pM的地址printf("m = %dn", m);printf("*pM = %dn", *pM);printf("*pM = %dn", *ppM);M

40、alloc()函數(shù)和free()函數(shù)#include<stdio.h>void main()int u, v; /定義二維數(shù)組的長和寬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)中動態(tài)創(chuàng)建第二維arrayi = (int*)malloc

41、(sizeof(int)*v);for(int j = 0; j<v; j+)arrayij = 0; /給數(shù)組元素復制printf("%d ", arrayij);字符數(shù)組#include<stdio.h>void main()/聲明一個字符數(shù)組并初始化char char_array5 = 'h', 'e', 'l', 'l', 'o' ;int i;/通過sizeof關鍵字得到數(shù)組長度,并遍歷打印其內(nèi)容。for (i = 0; i < sizeof(char_arra

42、y); +i)printf("%c", char_arrayi);printf("n");輸出字符串中的字符#include<stdio.h>void main()char char_array6 = ("hello");/聲明一個長度為6的字符數(shù)組并初始化為helloint i;/通過sizeof關鍵字得到數(shù)組長度for (i = 0; i < sizeof(char_array); +i)/通過printf輸出char_array中的字符串printf("char_array的第%dn", i

43、, char_arrayi);獲取用戶輸入字符的長度#define _CRT_SECURE_NO_WARNINGS /關閉安全檢查#include<stdio.h>#include<string.h>void main()char str1024; /聲明一個足夠大的字符型數(shù)組保存將要被輸入的字符串printf("請輸入待測量的字符串:");scanf("%s", str); /接受用戶輸入字符串printf("您輸入的字符串長度為 %d。n", strlen(str);空字符0的使用#include<s

44、tdio.h>void main()char char_array = 'h', 'e', 'l', 'l', 'o', '0', 'w', 'o', 'r', 'l', 'd' ;printf "%sn", char_array ;忘記在字符數(shù)組的末尾添加空字符0,程序也會出現(xiàn)一些奇怪的現(xiàn)象#include<stdio.h>void main()char char_array =

45、'h', 'e', 'l', 'l', 'o' ;printf "%sn", char_array ;使用指針修改字符串中的字符#include<stdio.h>int main()char char_array = "hello world!"char *ptr;printf("修改前的字符串如下:%sn", char_array);ptr = char_array; /將一個字符型指針指向字符型數(shù)組char_array的首地址/開始修改字符

46、串while (*ptr != '0') /檢測是否到串未尾if (*ptr = ' ')*ptr = '!'ptr+;printf("修改后的字符串如下:%s n", char_array);return 0;Gets()函數(shù)#pragma warning(disable:4996)#include<stdio.h>void main()char phoneNumber12;printf("請輸入手機號碼:");gets(phoneNumber);printf("您的手機號碼是: %

47、sn", phoneNumber);Puts()#pragma warning(disable:4996)#include<stdio.h>void main()char buf12;puts("請輸入一個字符串:");gets(buf);puts("您輸入的是: n");puts(buf);字符串比較#pragma warning(disable:4996)#include<stdio.h>#include<string.h>void main()char username100; /定義存放用戶名的字符數(shù)

48、組char password100; /定義存放密碼的字符數(shù)組printf("登錄n");printf("請輸入用戶名: ");gets(username); /獲取用戶輸入的用戶名printf("請輸入密碼: ");gets(password); /獲取用戶輸入的密碼/比較輸入的用戶名和密碼是否正確if (!strcmp(password, "ILoveC") && (!strcmp(username, "user")printf("用戶 %s 登錄成功!n"

49、;, username);elseprintf("登陸失敗,請檢查用戶名或密碼是否正確輸入。n");Strncmp()函數(shù)#include<string.h>#include<stdio.h>void main()char* str1 = "abcdef"char* str2 = "abcdeg"/判斷字符串str1和str2中的前5個字符是否相同if (!strncmp(str1, str2, 5)printf("str1和str2的前5個字符相同");elseprintf("s

50、tr1和str2的前5個字符不同");Strchr()函數(shù)#include<stdio.h>#include<string.h>int getcount(char* str, char c)/存儲找到的字符個數(shù)int count = 0;/存儲當前字符指針在字符串中的位置char* ptr = str;/獲取第一次出現(xiàn)字符變量c值的指針位置while (ptr = strchr(ptr, c) != NULL)+ptr;+count;return count;void main() char str6 = "abaca"char c = &

51、#39;a'int num = getcount(str, c);printf("字符%c在字符串中出現(xiàn)了%d次。n", c, num);Strstr()函數(shù)#pragma warning(disable:4996)#include<stdio.h>#include<string.h>void main()char str10240; /聲明字符串數(shù)組,用于保存段落char word10240; /聲明字符串數(shù)組,用于保存要查找的字符串char* ptr;printf("請輸入要掃描的段落:");gets(str);pri

52、ntf("請輸入要查找的單詞:");gets(word);ptr = strstr(str, word); /搜索是否包含指定的字符串if (ptr = NULL)printf("段落中不包含單詞 %s。n", word);else/得到檢測出的字符串后20個字符if (strlen(ptr) >= 20)ptr20 = 0;printf("單詞出現(xiàn)在 %s附近。n", ptr);Strcat()函數(shù)#pragma warning(disable:4996)#include<stdio.h>#include<s

53、tring.h>void main()/區(qū)號char areaNumber5;/電話號碼char phoneNumber12;int input;/分機號char extraNumber5;/用來存儲連接后的結果,需要初始化為0!char buffer25 = 0 ;printf("請輸入?yún)^(qū)號:");gets(areaNumber);printf("請輸入電話號碼:");gets(phoneNumber);printf("有分機號嗎?(y/n)");input = getchar();/由于getchar()只讀入一個字符,因此

54、需要調(diào)用fflush來清除輸入緩沖區(qū)的換行符fflush(stdin);if (input = 'y')printf("請輸入分機號:");gets(extraNumber);strcat(buffer, areaNumber);strcat(buffer, "-");strcat(buffer, phoneNumber);strcat(buffer, "-");strcat(buffer, extraNumber);elsestrcat(buffer, areaNumber);strcat(buffer, "-");strc

溫馨提示

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

評論

0/150

提交評論