




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
./01.C程序基本結(jié)構(gòu)一、C語言的特點:1、C語言源程序的基本組成單位是函數(shù);一個C程序可由若干個函數(shù)組成,其中必須有且僅有一個以main命名的主函數(shù),其余的函數(shù)名稱可由編程者自行設(shè)定.,2、C程序的執(zhí)行總是由main<>函數(shù)的第一個可執(zhí)行語句開始,到main〔函數(shù)的最后一個可執(zhí)行的語句結(jié)束;而其他函數(shù)都是在main〔函數(shù)開始執(zhí)行以后,通過其他函數(shù)的調(diào)用才得以運行.3、C語言系統(tǒng)提供了豐富的庫函數(shù),用戶在程序中需要調(diào)用某個庫函數(shù)時,必須用#include編譯預處理命令將描述該庫函數(shù)的頭文件包含進去.二、C程序的書寫格式:1、語句可從分開放在任意多行內(nèi);如:printf<"ToC,">;printf<"ornottoC:">;與printf<"ToC,ornottoC:">;是等價的2、一行中可以有若干個語句;如:a=123;b=345;3、每個語句和數(shù)據(jù)定義的最后必須有一個分號;三、C語言程序的運行:1、編譯<Compile>:將C源程序文件翻譯成能被計算機識別的二進制形式的"目標"文件;編譯時,編譯器將檢查源程序每一條語句的語法錯誤.2、建造<Bulid>:C語言程序示例:顯示"Hello"#include<stdio.h>intmain<void>{printf<"Hello.\n">;return0;}說明:#include<stdio.h>是必不可少的,它包含了C語言標準輸入輸出庫的相關(guān)信息;printf函數(shù)來自"標準輸入輸出庫",可以產(chǎn)生格式化輸出;\n告訴printf函數(shù)執(zhí)行完信息顯示后要進行換行操作;return0表明程序終止時會向操作系統(tǒng)返回值0;{}來標出main〔函數(shù)的起始和結(jié)束.02.數(shù)據(jù)類型一、C語言的特點:1、C語言源程序的基本組成單位是函數(shù);一個C程序可由若干個函數(shù)組成,其中必須有且僅有一個以main命名的主函數(shù),其余的函數(shù)名稱可由編程者自行設(shè)定.2、C程序的執(zhí)行總是由main<>函數(shù)的第一個可執(zhí)行語句開始,到main〔函數(shù)的最后一個可執(zhí)行的語句結(jié)束;而其他函數(shù)都是在main〔函數(shù)開始執(zhí)行以后,通過其他函數(shù)的調(diào)用才得以運行.3、C語言系統(tǒng)提供了豐富的庫函數(shù),用戶在程序中需要調(diào)用某個庫函數(shù)時,必須用#include編譯預處理命令將描述該庫函數(shù)的頭文件包含進去.二、C程序的書寫格式:1、語句可從分開放在任意多行內(nèi);如:printf<"ToC,">;printf<"ornottoC:">;與printf<"ToC,ornottoC:">;是等價的2、一行中可以有若干個語句;如:a=123;b=345;3、每個語句和數(shù)據(jù)定義的最后必須有一個分號;三、C語言程序的運行:1、編譯<Compile>:將C源程序文件翻譯成能被計算機識別的二進制形式的"目標"文件;編譯時,編譯器將檢查源程序每一條語句的語法錯誤.2、建造<Bulid>:C語言程序示例:顯示"Hello"#include<stdio.h>intmain<void>{printf<"Hello.\n">;return0;}說明:#include<stdio.h>是必不可少的,它包含了C語言標準輸入輸出庫的相關(guān)信息;printf函數(shù)來自"標準輸入輸出庫",可以產(chǎn)生格式化輸出;\n告訴printf函數(shù)執(zhí)行完信息顯示后要進行換行操作;return0表明程序終止時會向操作系統(tǒng)返回值0;{}來標出main〔函數(shù)的起始和結(jié)束.03,運算符和表達式1、算術(shù)運算符和表達式+:加法運算符,如3+5;-:減法運算符,如5-3;*:乘法運算符,如5*8;/:除法運算符,如3/6;參與運算量均為整型時,結(jié)果也為整型,舍去小數(shù);若運算量中有一個是實型,則結(jié)果為雙精度實型.%:模運算符,也稱"取余運算符",用于計算兩數(shù)相除后的余數(shù),如5%3=2;2、賦值運算符和賦值表達式 賦值運算符:"=",其作用是將一個表達式的值賦給一個變量;其一般形式為:變量=表達式如:x=a+b;賦值表達式的功能是計算表達式的值再賦予左邊的變量.賦值運算符具有右結(jié)合性.因此a=b=c=5可理解為a=<b=<c=5>>;復合賦值運算符:+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=構(gòu)成復合賦值表達式的一般形式為:變量雙目運算符=表達式它等價于:變量=變量運算符表達式如:a+=5等價于a=a+5x*=y+7等價于x=x*<y+7>r%=p等價于r=r%p3、類型轉(zhuǎn)換如果賦值運算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動進行類型轉(zhuǎn)換,即把賦值號右邊的類型換成左邊的類型.具體規(guī)定如下:1>實型賦予整型,舍去小數(shù)部分.前面的例子已經(jīng)說明了這種情況.2>整型賦予實型,數(shù)值不變,但將以浮點形式存放,即增加小數(shù)部分<小數(shù)部分的值為0>.3>字符型賦予整型,由于字符型為一個字節(jié),而整型為二個字節(jié),故將字符的ASCII碼值放到整型量的低八位中,高八位為0.整型賦予字符型,只把低八位賦予字符量.4、自增、自減運算符:自增運算符:"++",功能是將變量的值加1;自減運算符:"--",功能是將變量的值減1;可有以下幾種形式: ++ii自增1后再參與其它運算. --ii自減1后再參與其它運算. i++i參與運算后,i的值再自增1. i--i參與運算后,i的值再自減1.注:〔1"++"、"--"的操作對象只能是變量;<2>"++"、"--"運算優(yōu)先級相同,且結(jié)合方向自右向左;-i++應理解為-〔i++,[例]自增、自減運算、#include<stdio.h>main<>{inti=8;printf<"%d\n",++i>;/*i先加1,再輸出i,輸出結(jié)果為9*/printf<"%d\n",--i>;/*i先減1,再輸出i,結(jié)果為8*/printf<"%d\n",i++>;/*先輸出i,輸出結(jié)果為8,i再加1,*/printf<"%d\n",i-->;/*先輸出i,輸出結(jié)果為9,i再減1,*/printf<"%d\n",-i++>;/*先加輸出-i,輸出結(jié)果為-8,i再加1*/printf<"%d\n",-i-->;/*先輸出-i,輸出結(jié)果為-9,i再減1*/}5、求字節(jié)運算符計算表達式的結(jié)果所占字節(jié)數(shù)或某種數(shù)據(jù)類型的定義字節(jié)數(shù).一般格式:sizeof<數(shù)據(jù)類型標識符>或sizeof〔表達式如:sizeof〔float的值為4,占4個字節(jié);sizeof〔2*3的值為2,占2個字節(jié);6、關(guān)系運算符和關(guān)系表達式關(guān)系運算符:"<"<小于>、"<="<小于等于>、">"<大于>、">="<大于等于>、"=="〔等于、"!="〔不等于關(guān)系表達式:若關(guān)系表達式成立,其值為"真",否則為"假";在C語言中,用0代表"假",用1代表"真";7、邏輯運算符和邏輯表達式:邏輯運算符:"!"〔非、"&&"〔與、"||"〔或;運算優(yōu)先級:!>&&>||邏輯表達式:用邏輯運算符將表達式連接起來的式子;邏輯表達式的結(jié)果仍然是邏輯量〔"真"或"假"8、條件運算符:一般格式:<表達式1>?<表達式2>:<表達式3>先計算表達式1,若表達式1的值為真,則計算表達式2的值,且表達式2的值為整個條件表達式的值;否則,計算表達式3的值,且表達式3的值即為整個條件表達式的值.9、逗號運算符和逗號表達式逗號運算符:","作為運算符,其功能是將多個表達式組成一個表達式;一般形式:表達式1,表達式2,…,表達式n求解過程:先計算表達式1,再計算表達式2,依此計算表達式n,最終,表達式n的值即為整個表達式的值.04.順序結(jié)構(gòu)一、概述:順序語句按照語法形式分為:表達式語句、函數(shù)調(diào)用語句、復合語句、流程控制語句和空語句.1、表達式語句:語法格式:表達式;如:a+4;其中賦值語句為最典型的表達式語句,如:a=5;a=b+3;特別提示:分號〔;是表達式語句中不可缺少的一部分.2、函數(shù)調(diào)用語句:如:printf〔"Iamastudent!";其中:printf<>為系統(tǒng)提供的函數(shù),用于顯示信息.3、復合語句:所謂"復合語句"即由一對"{}"括起來的一組語句,也稱"塊語句"或"分程序".一般形式為:{語句1語句2...語句n}如:{i++;j=a+3;printf<"%d,j=",i,j>;}特別提示:復合語句中的最后一條語句的分號不得缺少;復合語句的"}"之后不得有分號.4、空語句:"空語句"即為一個獨立的分號.如:main〔{...;...}二、數(shù)據(jù)的輸入輸出C語言提供了一些輸入輸出函數(shù),如printf<>和scanf<>,在程序中調(diào)用這些輸入輸出函數(shù)時,必須將標準輸入輸出頭文件"stdio.h"包含到用戶所編寫的源程序中.如:#include<stdio.h>其中:#include命令一般寫在程序的開頭位置.1、格式輸入輸出1、格式輸出函數(shù)printf<><1>一般格式:printf<格式字符串,輸出列表>其中:"格式字符串"包括"輸出字符"和"格式控制字符"<由%和格式字符組成,指定輸出項的輸出格式.?d格式符:用于輸出十進制整數(shù);%d:以十進制形式顯示輸出變量的值;%5d:以十進制形式顯示變量的值,且至少占用5個字符的空間,若不夠5位數(shù)字,則左側(cè)補空格;%-5d:以十進制形式顯示變量的值,且至少占用5個字符的空間,左對齊;%5.3d:以十進制形式顯示變量的值,且至少占用5個字符的空間并至少有3位數(shù)字,若不夠3位數(shù)字,則左側(cè)補0;如:#include<stdio.h>main<>{inti;i=40;printf<"%d\n",i>;printf<"%5d\n",i>;printf<"%-5d\n",i>;printf<"%5.3d\n",i>;}?f格式符:用于以小數(shù)形式輸出實數(shù);%10.3f:以定點十進制形式顯示變量的值,且總共用10個字符,其中,整數(shù)位6位,小數(shù)位3位,小數(shù)點1位;如:#include<stdio.h>main<>{floatx;x=839.21f;printf<"%10.3f\n",x>;}?c格式符:用于輸出一個字符;如:x="a",y="b",則printf<%c%c",x,y>的輸出結(jié)果為:ab若變量的值為整數(shù),則輸出該整數(shù)值為ASCII碼的字符:如x=65,y=98,則printf<"%c,%c",x,y>的輸出結(jié)果為:A,b;同理,一個字符的數(shù)據(jù)也可以以整數(shù)的形式輸出;如x=’a’,y=’B’,則printf<"%d,%d",x,y>的輸出結(jié)果為:97,66?s格式符:用于輸出一個字符串.如:printf<"%s","Iamastudent!">?e,E格式符:用于以指數(shù)形式輸出實數(shù).如:printf<"%e",123.456>,則輸出結(jié)果為:1.234560e+002;?g,G格式符:用于輸出實數(shù),根據(jù)數(shù)值的大小自動選擇f格式或e格式.2、格式輸入函數(shù)scanf<><1>一般格式:scanf<格式字符串,變量地址表>其中:格式字符串使用雙引號括起來的字符串,包括"普通字符"〔按原樣輸入、"格式控制字符"〔由%和格式字符組成,用來標定輸入數(shù)據(jù)的格式.變量地址表是由若干個變量地址組成的表列,可以是變量的地址,也可以使字符串的首地址.?d格式:用于輸入十進制整數(shù);如:scanf<"%d,%d",&x,&y>;則輸入格式為:123,3456?u格式:用于輸入十進制無符號整數(shù);?f格式:用于輸入以小數(shù)形式的實數(shù);如:scanf<"%f,%f",&x,&y>;則輸入格式為:123.23,23.456?c格式:用于輸入一個字符;如:scanf<"%c,%c",&x,&y>;則輸入格式為:a,b?s格式:用于輸入一個字符串;如:scanf<"%s",a>;假定a為字符數(shù)組,則輸入格式為:abcdef注:輸入的字符串中間不能包含空格.特別說明:?對于變量,"&"加變量名即為該變量的地址;如:&a、&b等分別表示變量a和變量b的地址;?對于字符串數(shù)組或字符指針型變量,數(shù)組名和指針變量名本身即為其地址;?可以在%和格式字符之間加表示位數(shù)的數(shù)字;如:scanf<"%5s",p>;表示只能輸入5個字符給字符串指針p;3、字符數(shù)據(jù)的輸入輸出:<1>putchar<>函數(shù):是向標準輸入輸出設(shè)備輸出一個字符;其調(diào)用格式為:putchar<ch>;其中:ch為一個字符變量或常量;putchar<>函數(shù)作用等同于printf<"%c",ch>;<2>getch<>getche<>和getchar<>函數(shù):?getch<>:從鍵盤上讀入一個字符,但不顯示在屏幕上;?getche<>:從鍵盤上讀入一個字符,顯示在屏幕上;?getchar<>:從鍵盤上讀入一個字符,并顯示在屏幕上,但直到輸入回車鍵時才結(jié)束輸入,第一個字符為其函數(shù)的返回值.05.選擇結(jié)構(gòu)一、if語句:一般格式:if<表達式>語句;表示:當"表達式"成立時,則執(zhí)行"語句";否則跳過"語句";如:if<a>b>printf<"a>b!">;例:若用戶輸入的數(shù)為3的倍數(shù),則顯示"OK"#include<stdio.h>main<>{inta;scanf<"%d",&a>;if<a%3==0>printf<"OK">;}二、if-else語句:一般格式:if<表達式>語句1;else語句2;例:給出用戶輸入的兩個整數(shù)的較大者#include<stdio.h>main<>{inta,b;scanf<"%d,%d",&a,&b>;if<a>b>printf<"themax=%d",a>;elseprintf<"themax=%d",b>;}三、if語句的嵌套1、if子句中嵌套:?if<表達式1>if<表達式2>語句1;else語句2;else語句3;?if<表達式1>{if<表達式2>語句1;}else語句2;2、else子句中嵌套?if<表達式1>語句1;elseif<表達式2>語句2;else語句3;?if<表達式1>語句1;elseif<表達式2>語句2;3、嵌套一般格式:if<表達式1>語句1;elseif<表達式2>語句2;elseif<表達式3>語句3;…elseif<表達式n>語句n;else語句n+1;例:將用戶輸入的成績按以下規(guī)則轉(zhuǎn)換成等級成績:分數(shù):90~100等級:優(yōu)分數(shù):80~89等級:良分數(shù):70~79等級:中分數(shù):60~69等級:及格分數(shù):60以下等級:不及格#include<stdio.h>main<>{intd;printf<"輸入分數(shù):">;scanf<"%d",&d>;if<d>=90>printf<"優(yōu)">;elseif<d>=80>printf<"良">;elseif<d>=70>printf<"中">;elseif<d>=60>printf<"及格">;elseprintf<"不及格">;}四、條件語句:表達式1?表達式2:表達式3執(zhí)行的過程:若表達式1的值為非0時,該條件語句的職位表達式2,否則為表達式3;例:求一個整數(shù)的絕對值#include<stdio.h>main<>{inti,absi;scanf<"%d",&i>;absi=i>0?i:-i;printf<"%d絕對值是%d\n",i,absi>;}五、switch語句switch〔表達式{case常量表達式1:語句1;break;case常量表達式2:語句2;break;…case常量表達式n:語句n;break;default:語句n+1;}例:商店賣貨物,每一件3.5元,按購買的數(shù)量給與優(yōu)惠:購買100件,優(yōu)惠5%;購買200件以上,優(yōu)惠6%;購買300件以上,優(yōu)惠8%;購買400件以上,優(yōu)惠10%;購買500件以上,優(yōu)惠15%;#include<stdio.h>main<>{intn;floatp,price;scanf<"%d",&n>;switch<n/100>{case1:p=0.05;break;case2:p=0.06;break;case3:p=0.08;break;case4:p=0.10;break;case5:p=0.15;break;}price=3.5*n*<1-p>;printf<"%應付款=%7.2f\n",price>;}06.循環(huán)結(jié)構(gòu)一、for語句:一般格式:for<表達式1;表達式2;表達式3>語句;表示:先計算表達式1的值,再計算表達式2的值,若表達式2的值為0,則跳出循環(huán)體,轉(zhuǎn)去執(zhí)行循環(huán)體后面的程序命令;若表達式2的值非0,則執(zhí)行循環(huán)體中的語句,接著計算表達式3的值;而后,再從計算表達式2的值開始重復上訴操作,直到表達式2的值為0時結(jié)束.例:計算sum=1+2+3+…+100的值"#include<stdio.h>main<>{inti,sum;sum=0;for<i=1;i<=100;i++>sum=sum+i;printf<"sum=%d",sum>;}二、while語句:一般格式:while<表達式>語句;表示:先計算表達式的值,若為非0,則執(zhí)行循環(huán)體語句,然后再計算表達式的值,重復上述過程,直到計算表達式的值為0時結(jié)束循環(huán).例:計算sum=1+2+3…+100的值#include<stdio.h>main<>{inti,sum;i=1;sum=0;while<i<=100>{sum=sum+i;i++;}printf<"sum=%d",sum>;}三、do-while語句1、一般格式:Do語句;While<表達式>;表示:先執(zhí)行一次循環(huán)語句,然后計算表達式的值,若表達式的值非0,則再執(zhí)行循環(huán)語句,然后從計算表達式的值開始重復上述過程,直到計算表達式的值為0,循環(huán)結(jié)束.例:計算sum=1+2+3…+100的值#include<stdio.h>main<>{inti,sum;i=1;sum=0;do{sum=sum+i;i++;}while<i<=100>;printf<"sum=%d",sum>;}四、break和continue語句:1、break語句:使用break語句可以提前結(jié)束由while、for、do-while語句構(gòu)成的循環(huán),而去執(zhí)行循環(huán)下面的語句.例:判定用戶輸入的一個數(shù)是否為素數(shù)#include<stdio.h>main<>{inta,d;printf<"請輸入一個整數(shù):">;scanf<"%d",&a>;for<d=2;d<a;d++>if<a%d==0>break;//跳出當前的循環(huán),執(zhí)行循環(huán)后面的語句if<d<a>printf<"%d不是素數(shù)",a>;elseprintf<"%d是素數(shù)",a>;}2、continue:continue語句用于for、while、do-while語句中,其作用是結(jié)束本次循環(huán),接著進入下一次是否執(zhí)行循環(huán)的判斷.例:輸入10個非0的整數(shù)并求和.#include<stdio.h>main<>{inti,n=0,sum=0;while<n<10>{printf<"請輸入整數(shù):">;scanf<"%d",&i>;if<i==0>continue;//若為0,則繼續(xù)輸入下一個數(shù)sum+=i;n++;}printf<"%d",sum>;}五、三種循環(huán)的比較:1、三種循環(huán)可以處理同一個問題,一般情況下可以相互代替;2、while和do-while循環(huán)語句只在while語句之后指定循環(huán)條件,在循環(huán)體內(nèi)應包含使循環(huán)趨于結(jié)束的語句;for循環(huán)語句可以在<語句3>中包含使循環(huán)趨于結(jié)束的語句;3、對于while和do-while循環(huán)語句,循環(huán)變量的初始化應在while和do-while語句之前完成;for循環(huán)語句可以在<表達式1>中進行;4、while和for語句是先判斷表達式,后執(zhí)行循環(huán);do-while循環(huán)語句是先執(zhí)行循環(huán),后判斷表達式;07數(shù)組數(shù)組是一組具有同一名字、不同下標的變量.數(shù)組中帶下標的變量稱為數(shù)組元素,每個數(shù)組元素由數(shù)組名字和下標唯一地來確定;同一數(shù)組中的元素數(shù)據(jù)類型相同.一、一維數(shù)組:1、定義:只有一個下標的數(shù)組.2、定義格式:類型說明符數(shù)組名[常量表達式]如:inta[3];//定義了一個一維數(shù)組,名稱為a,數(shù)據(jù)類型為整型,含3個數(shù)組元素a[0]、a[1]、a[2];說明:?類型說明符:是指數(shù)組的數(shù)據(jù)類型;?常量表達式:是一個值為正整數(shù)的表達式,用來表示該數(shù)組的元素的個數(shù),即數(shù)組的大??;3、數(shù)組的引用:數(shù)組名[下標];如:a[2]4、數(shù)組的初始化:?對數(shù)組的全部因素賦初值:如:inta[3]={10,20,30};則該語句執(zhí)行后,a[0]=10,a[1]=20,a[2]=30;?對數(shù)組的部分元素賦初值:如:intb[3]={12,11};則該語句執(zhí)行后,b[0]=12,b[1]=11,a[2]=0;?對數(shù)組的全部元素賦初值時,也可將數(shù)組定義為一個不確定長度的數(shù)組:如:intc[]={10,15,20};則該語句執(zhí)行后,數(shù)組c的長度自動確定為3,c[0]=10,c[1]=15,c[2]=20;例:將輸入的10個整數(shù)按反序輸出#include<stdio.h>main<>{inta[10],i;printf<"請輸入10個整數(shù):">;for<i=0;i<10;i++>scanf<"%d",&a[i]>;printf<"反序輸出:";for<i=9;i>=0;i-->printf<"%d",a[i]>;printf<"\n">;}例:計算Fibonacci數(shù)列的前20項Fibonacci數(shù)列定義:f<1>=1f<2>=1f<n>=f<n-1>+f<n-2><n>2>#include<stdio.h>main<>{intf[21],i;f[1]=1;f[2]=1;for<i=3;i<=20;i++>f[i]=f[i-1]+f[i-2];for<i=1;i<=20;i++>{printf<"%8d",f[i]>;//每個數(shù)字占8位if<i%5==0>printf<"\n">;//按5個一行輸出}}二、二維數(shù)組:具有兩個下標的數(shù)組為二維數(shù)組.1、定義格式:類型說明符數(shù)組名[常量表達式][常量表達式]如:inta[3][2];//定義了一個二維數(shù)組,名稱數(shù)組名為a,含有6個元素:a[0][0]、a[0][1]、a[1][0]、a[1][1]、a[2][0]、a[2][1];說明:?第一個常量表達式指出的是數(shù)組的行數(shù);第二個常量表達式指出的是數(shù)組的列數(shù);?二維數(shù)組元素的順序是:按行存放;即先順序存放第一行的元素,再存放第二行的元素…以此類推;其存儲格式:a[0][0] a[0][1]a[1][0] a[1][1]a[2][0] a[2][1]2、二維數(shù)組的初始化:同一維數(shù)組.?分行為二維數(shù)組賦初值:inta[3][2]={{1,2},{3,4},{5,6}};則該語句執(zhí)行后,a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4,a[2][0]=5,a[2][1]=6;?按數(shù)組在存儲時的排列次序賦初值:inta[3][2]={1,2,3,4,5,6};?對數(shù)組的部分元素賦初值:inta[3][2]={{1},{2,3},{4}};?忽略第一維的長度,對二維數(shù)組賦初值:inta[][2]={1,2,3,4,5,6};該語句執(zhí)行后,C語言系統(tǒng)自動計算出第一維的長度為6/2=3,同樣有:a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4,a[2][0]=5,a[2][1]=6;例:將兩個2行3列的矩陣相加,并顯示結(jié)果.#include<stdio.h>main<>{inta[2][3]={1,3,5,7,9,11};intb[2][3]={2,4,6,8,10,12};intc[2][3],sum=0,i,j;for<i=0;i<2;i++>//i表示第1行到第3行for<j=0;j<3;j++>//j表示第1列到第3列c[i][j]=a[i][j]+b[i][j];for<i=0;i<2;i++>for<j=0;j<3;j++>{printf<"%5d",c[i][j]>;if<<j+1>%3==0>printf<"\n">;}}08字符數(shù)組字符數(shù)組是用來存放字符的數(shù)組,字符數(shù)組中的一個元素存放一個字符.1、字符數(shù)組的定義:chara[10];2、字符串:字符串是借助于字符數(shù)組來存放的,并規(guī)定以字符’\0’<占用存儲空間,但不計入字符串的長度>為字符串的結(jié)束標記.3、字符串處理函數(shù):?scanf<"%s",a>;//以格式符%s輸入字符串,輸入的字符串自動以’\0’結(jié)尾;輸入的字符數(shù)組名前不加"&"前綴;?printf<"%s",a>;//以格式符%s輸出字符串,輸出的字符串以’\0’結(jié)尾;?gets<a>;//a為字符數(shù)組名,輸入的字符可以包含’\0’字符;?puts<a>;//a為字符數(shù)組名,輸入的字符可以包含’\0’字符;?strcat<字符串1,字符串2>;//把字符串2連接到字符串1后;?strcpy<字符數(shù)組1,字符串2>;//把字符串2拷貝到字符數(shù)組1中;如:str為字符數(shù)組,將字符常量賦予str:strcpy〔str,"abcdef">;?strcmp<字符串1,字符串2>;//比較兩個字符串,若相等,則返回0,若字符串1>字符串2,則返回1,否則返回-1;如:比較兩個字符串str1、str2:if<strcmp<str1,str2>==1>printf<"str1>str2">;?strlen<字符數(shù)組>;//返回字符數(shù)組中包含的字符串的長度;?strlwr<字符串>;//將字符串的大寫字符轉(zhuǎn)換為小寫;?strupr<字符串>;//將字符串的小寫字符轉(zhuǎn)換為大寫;例:不使用strlen<>函數(shù),計算一個字符串的長度#include<stdio.h>main<>{inti=0;charstr[30];printf<"輸入一個字符串:">;gets<str>;while<str[i]!=’\0’>i++;printf<"字符串長度為:%d\n",i>;}例:將一字符串逆轉(zhuǎn)#include<stdio.h>#include<string.h>main<>{charstr[20],temp;inti,j;printf<"輸入一個字符串:">;gets<str>;for<i=0;i<strlen<str>/2;i++>{j=strlen<str>-1;temp=str[i];str[i]=str[j-i];str[j-i]=temp;}printf<"倒置的字符串為:%s\n",str>;}09指針字符數(shù)組是用來存放字符的數(shù)組,字符數(shù)組中的一個元素存放一個字符.1、字符數(shù)組的定義:chara[10];2、字符串:字符串是借助于字符數(shù)組來存放的,并規(guī)定以字符’\0’<占用存儲空間,但不計入字符串的長度>為字符串的結(jié)束標記.3、字符串處理函數(shù):?scanf<"%s",a>;//以格式符%s輸入字符串,輸入的字符串自動以’\0’結(jié)尾;輸入的字符數(shù)組名前不加"&"前綴;?printf<"%s",a>;//以格式符%s輸出字符串,輸出的字符串以’\0’結(jié)尾;?gets<a>;//a為字符數(shù)組名,輸入的字符可以包含’\0’字符;?puts<a>;//a為字符數(shù)組名,輸入的字符可以包含’\0’字符;?strcat<字符串1,字符串2>;//把字符串2連接到字符串1后;?strcpy<字符數(shù)組1,字符串2>;//把字符串2拷貝到字符數(shù)組1中;如:str為字符數(shù)組,將字符常量賦予str:strcpy〔str,"abcdef">;?strcmp<字符串1,字符串2>;//比較兩個字符串,若相等,則返回0,若字符串1>字符串2,則返回1,否則返回-1;如:比較兩個字符串str1、str2:if<strcmp<str1,str2>==1>printf<"str1>str2">;?strlen<字符數(shù)組>;//返回字符數(shù)組中包含的字符串的長度;?strlwr<字符串>;//將字符串的大寫字符轉(zhuǎn)換為小寫;?strupr<字符串>;//將字符串的小寫字符轉(zhuǎn)換為大寫;例:不使用strlen<>函數(shù),計算一個字符串的長度#include<stdio.h>main<>{inti=0;charstr[30];printf<"輸入一個字符串:">;gets<str>;while<str[i]!=’\0’>i++;printf<"字符串長度為:%d\n",i>;}例:將一字符串逆轉(zhuǎn)#include<stdio.h>#include<string.h>main<>{charstr[20],temp;inti,j;printf<"輸入一個字符串:">;gets<str>;for<i=0;i<strlen<str>/2;i++>{j=strlen<str>-1;temp=str[i];str[i]=str[j-i];str[j-i]=temp;}printf<"倒置的字符串為:%s\n",str>;}10函數(shù)C程序是由函數(shù)組成的,有且只有一個主函數(shù)main<>,由主函數(shù)調(diào)用其他函數(shù),其他各函數(shù)也可以相互調(diào)用.1、函數(shù)的定義:一般格式:類型說明函數(shù)名<形式參數(shù)表>//函數(shù)頭{說明部分;//函數(shù)體執(zhí)行部分;}其中:類型說明:是指函數(shù)返回值的數(shù)據(jù)類型;默認為int;函數(shù)名:為一標識符;代表了函數(shù)的入口地址;形式參數(shù)表:是用逗號分隔的一組變量說明,指出每一個形式參數(shù)的類型和名稱;函數(shù)值的返回:有時,調(diào)用函數(shù)是為了計算一個結(jié)果,這是需要使用返回語句將就是結(jié)果返回給主調(diào)函數(shù),此值即為函數(shù)的返回值;一般格式:return<表達式>;其中,圓括號可以省略;當函數(shù)不需要返回值時,可以寫成:return;例:編寫一個函數(shù)power<>,用于計算x的n次方的值#include<stdio.h>floatpower<floatx,intn>{inti;floats;s=1;for<i=1;i<=n;i++>s=s*x;return<s>;}2、函數(shù)的調(diào)用:C語言中函數(shù)調(diào)用的一般格式:函數(shù)名<實參表>;如:floatf;f=power<3,10>;3、數(shù)組作為函數(shù)的參數(shù)?數(shù)據(jù)元素作為函數(shù)實參在函數(shù)調(diào)用時,把數(shù)組元素作為實參傳遞給形參,實現(xiàn)單向的值傳遞;如:判別各個元素的值,大于0,則輸出該值,小于或等于0,則輸出0#include<stdio.h>voidfunc<intx>{if<x>0>printf<"%4d",x>;elseprintf<"%2d",0>;}main<>{inta[5],i;printf<"請輸入5個數(shù):">;for<i=0;i<5;i++>scanf<"%d",&a[i]>;for<i=0;i<5;i++>func<a[i]>;//將數(shù)組元素作為實參傳遞}?數(shù)組名作為函數(shù)參數(shù)〔1使用數(shù)組名作為函數(shù)參數(shù)時,形參和實參是同類型的數(shù)組;〔2在主調(diào)函數(shù)和被調(diào)函數(shù)中分別定義數(shù)組;〔3數(shù)組名代表了數(shù)組的起始地址,數(shù)組名作為函數(shù)參數(shù)傳遞的是該數(shù)組的起始地址,而不是該數(shù)組元素的值;例:將數(shù)組中的元素的和計算并顯示出來.#include<stdio.h>func<intb[]>{intsum=0,i;for<i=0;i<10;i++>sum+=b[i];returnsum;}main<>{inta[]={1,2,3,4,5,6,7,8,9,10},s;s=func<a>;//將數(shù)組a組為參數(shù)傳遞給函數(shù)funcprintf<"s=%d",s>;}4、內(nèi)部函數(shù)和外部函數(shù)?內(nèi)部函數(shù):在定義函數(shù)時,在其類型名之前加"static",則所定義的函數(shù)為內(nèi)部函數(shù),只能被所在的源文件中的函數(shù)調(diào)用,其他源文件若有同名的內(nèi)部函數(shù),互不干擾.?外部函數(shù):在定義函數(shù)時,在其類型名之前加"extern"〔也可省略,則所定義的函數(shù)為外部函數(shù)〔也稱全局函數(shù),可被其他源程序的函數(shù)調(diào)用.如:staticintfunc_1<>//內(nèi)部函數(shù){...}externfunc_2〔//外部函數(shù){...}綜合測試~~~~~給定程序為:猴子第一天摘下若干個桃子,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時工簽合同范本
- 公寓用品租賃合同范本
- 人工突觸芯片研發(fā)合作合同
- 人防固定車位出租合同范本
- 中標總價合同范例
- 廠房照明采購合同范本
- 醫(yī)院氣體安裝合同范本
- 加油站車子轉(zhuǎn)讓合同范本
- 單機采購合同范本
- 勞動合同范本保安
- 《研學旅行課程設(shè)計》課件-辨識與研學旅行場混淆的概念
- GB/T 43700-2024滑雪場所的運行和管理規(guī)范
- 魯迅《社戲》原文+賞析
- 部編版道德與法治三年級下冊教案全冊
- 幼兒教師之《幼兒游戲與指導》考試題庫(通用版)
- 中國建設(shè)銀行養(yǎng)老金融模式發(fā)展問題研究
- 關(guān)于布郎芬布倫納發(fā)展心理學生態(tài)系統(tǒng)理論
- 我們身邊的法律故事課件
- 執(zhí)行律師服務(wù)方案
- 修建蓄水池施工合同協(xié)議書范本
- GB 24544-2023墜落防護速差自控器
評論
0/150
提交評論