選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 《C語言程序設(shè)計(jì)及應(yīng)用教程》 課件_第1頁
選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 《C語言程序設(shè)計(jì)及應(yīng)用教程》 課件_第2頁
選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 《C語言程序設(shè)計(jì)及應(yīng)用教程》 課件_第3頁
選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 《C語言程序設(shè)計(jì)及應(yīng)用教程》 課件_第4頁
選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 《C語言程序設(shè)計(jì)及應(yīng)用教程》 課件_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第3章選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)?C語言程序設(shè)計(jì)及應(yīng)用教程?課件A條件Byn選擇結(jié)構(gòu)流程圖3.1.2if語句語句的一般格式:if〔表達(dá)式〕{語句;}算法分析:做一次比較,當(dāng)輸入的數(shù)值小于0時(shí),將其轉(zhuǎn)換為正數(shù)。

#include<stdio.h>voidmain(){intm,n;printf("請輸入一個(gè)整數(shù):");scanf("%d",&m);n=m;if(m<0)n=-m;printf("%d的絕對值是:%d\n",m,n);}【例3-1】從鍵盤上輸入一個(gè)整數(shù)m,輸出m的絕對值。運(yùn)行結(jié)果:①請輸入一個(gè)整數(shù):-30<CR>-30的絕對值是:30②請輸入一個(gè)整數(shù):10<CR>10的絕對值是:102.雙分支選擇結(jié)構(gòu)if〔表達(dá)式〕語句塊1〔A〕;else語句塊2〔B〕;例:if〔x>y〕printf("%d",x);elseprintf("%d",y);【例3-2】判定學(xué)生某門課程是否及格。算法分析:成績>=60,就是及格,否那么就是不及格。#include<stdio.h>voidmain(){ intmark; printf("Mark:"); scanf("%d",&mark); if(mark>=60) printf("Pass\n"); else printf("Fail\n");printf("Yourmarkis%d",mark);

}運(yùn)行結(jié)果:①M(fèi)ark:78<CR>PassYourmarkis78②Mark:46<CR>FailYourmarkis46if(表達(dá)式1)if(表達(dá)式2)語句1;else語句2;elseif(表達(dá)式3)語句3;……

elseif(表達(dá)式n)語句n;if(表達(dá)式1){if(表達(dá)式2)語句1;}else語句2;【例3-3】西部某地區(qū)職工五險(xiǎn)一金的繳納比例為:養(yǎng)老保險(xiǎn):單位繳納21%,個(gè)人繳納8%;

醫(yī)療保險(xiǎn):單位繳納9%,個(gè)人繳納2%,外加10塊大病統(tǒng)籌;失業(yè)保險(xiǎn):單位繳納2%,個(gè)人繳納1%;工傷保險(xiǎn):單位繳納0.5%,個(gè)人不繳納繳;生育保險(xiǎn):單位繳納0.8%,個(gè)人不繳納;住房公積金:單位繳納8%,個(gè)人繳納8%。2021年國務(wù)院公布的個(gè)人輸入所得稅繳納政策:納稅基數(shù)td與納稅率r之間的關(guān)系如表3-1所示。級數(shù)納稅基數(shù)td(元)稅率r(%)速算扣除數(shù)t(元)1td<lt;td<=45001010534500<td<=90002055549000<td<=35000251005535000<td<=55000302755655000<td<=800003555057td>8000045135053-1納稅基數(shù)與稅率對照表〔1〕從個(gè)人工資salary中扣除五險(xiǎn)一金后的應(yīng)納稅額:income=salary

*

(1-(8%

+

2%

+

1%

+

8%))

-10=〔2〕個(gè)人收入所得稅起征點(diǎn):TexBegin=3500元;〔3〕納稅基數(shù):td=income-TexBegin〔4〕個(gè)稅計(jì)算:td*稅率-速算扣除數(shù)不同納稅等級的速算扣除數(shù)在表3-1中已給出。〔5〕速算扣除數(shù):按td*稅率納稅計(jì)算而多算的局部。編寫一個(gè)計(jì)算個(gè)人收入所得稅繳納金額的程序。例:假設(shè)果td=4500,那么:1500元以內(nèi)的局部,個(gè)稅:1500*.03=45(元)1500~4500元局部,個(gè)稅:3000*.1=300(元〕實(shí)際應(yīng)納稅:345(元)但為了簡單統(tǒng)一按10%算,為450元,那么多算105元,應(yīng)補(bǔ)回。源程序:#include<stdio.h>#defineTexBegin3500#defineBASE.81//三金扣除后應(yīng)發(fā)工資率voidmain(){floatIncome;//納稅局部floatSalary,Salary1,Safe;//應(yīng)發(fā)工資、實(shí)發(fā)工資、三金扣除floattd,Tax;//納稅基數(shù)、稅金

floatt1=0,t2=105,t3=555,t4=1005,t5=2755,t6=5505,t7=13505;//速算扣除金floatr1=.03,r2=.1,r3=.2,r4=.25,

r5=.30,r6=.35,r7=.45;//稅率printf("請輸入職工的月工資額(>0):");scanf("%f",&Salary);Safe=Salary*(1-BASE)+10;Income=Salary-Safe;td=Income-TexBegin;if(td<=0.)Tax=0;else

if(td<=1500.)Tax=td*r1-t1;else if(td<=4500.)Tax=td*r2-t2;elseif(td<=9000.)Tax=td*r3-t3;elseif(td<=35000.)Tax=td*r4-t4;else

if(td<=55000.)Tax=td*r5-t5;else

if(td<=80000.)Tax=td*r6-t6;

elseTax=td*r7-t7;Salary1=Income-Tax;printf("\n個(gè)人工資總額:%.2f元\n",Salary);printf("扣除三金金額:%.2f元\n",Safe);printf("個(gè)稅繳納金額:%.2f元\n",Tax);printf("實(shí)發(fā)工資金額:%.2f元\n",Salary1);}運(yùn)行程序,以月工資6500元為例,可算得:個(gè)人工資總額:元扣除三金金額:元個(gè)稅繳納金額:元實(shí)發(fā)工資金額:元3.1.3多路分支結(jié)構(gòu)概念:依次判斷給定的n〔n>l〕個(gè)條件,以確定從n+1組操作中選擇某一組來執(zhí)行的結(jié)構(gòu)稱為多分支結(jié)構(gòu)。實(shí)現(xiàn):if-else-if、switch語句。

1、使用if-else-if:if(表達(dá)式1){語句1;}elseif(表達(dá)式2){語句2;}elseif(表達(dá)式3){語句3;}……elseif(表達(dá)式n){語句組n;}else{語句組n+1;}多分支選擇結(jié)構(gòu)流程圖

算法設(shè)計(jì):〔1〕此題目做三種情況的判斷:英文字母:c>='a'&&c<='z'||c>='A'&&c<='Z';數(shù)字字符:c>='0'&&c<='9';其他字符:。〔2〕用兩個(gè)if-else嵌套的選擇結(jié)構(gòu)。

#include<stdio.h>voidmain(){charc;printf("Enteracharacter:");scanf("%c",&c);if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

printf("Thecharacterisaletter.\n");

elseif(c>='0'&&c<='9')

printf("Thecharacterisadigit.\n");

else

printf("Thecharacterisothercharacter.\n");

}運(yùn)行【例3-4】從鍵盤上輸入一個(gè)字符c,判斷它是英文字母、數(shù)字或其他字符。①Enteracharacter:G<CR>Thecharacterisaletter.②Enteracharacter:k<CR>Thecharacterisaletter.③Enteracharacter:6<CR>Thecharacterisadigit.④Enteracharacter:$<CR>Thecharacterisothercharacter.switch

(整型表達(dá)式){

case

常量表達(dá)式1:語句塊1;[break];

case

常量表達(dá)式2:語句塊2;[break];

……

case常量表達(dá)式n:語句塊n;[break];

default:

語句塊n+1;[break];}2.switch語句根本格式算法分析:〔1〕用電量計(jì)算:根據(jù)輸入的用戶月平均用電量w,乘以3而得到季度用電量t?!?〕計(jì)算用電等級:計(jì)算方法:m=t/200?!?〕選擇用電信息:根據(jù)不同等級,用switch語句給出不同用電信息。【例3-5】為了節(jié)約能源保護(hù)環(huán)境,國家實(shí)行階梯電價(jià)。假設(shè)電價(jià)以居民季度用電量每200kwh為一個(gè)臺階計(jì)算,對于1~199Kwh以內(nèi)的小型用戶應(yīng)授予“節(jié)約用電模范戶〞稱號、200~399kwh的中型用戶應(yīng)告知“節(jié)約用電榮耀請?jiān)俳釉賲杽?chuàng)造新的節(jié)約用電記錄〞、400~599kwh的大型用戶應(yīng)給予“請注意環(huán)保享受低碳生活采取措施有效節(jié)約用電〞的提示、600及以上kwh的特大用戶應(yīng)給予“拉閘限電立即整改還一片藍(lán)天〞的警告。編程計(jì)算如輸入一個(gè)用戶的月用電量,確定該用戶會得到那條用電信息。源程序如下:#include<stdio.h>voidmain(){intm,iw,it;printf(“請輸入用戶的月用電量〔>=0〕:");scanf("%d",&iw);it=3*iw;m=it/200;switch(m){case0:printf("節(jié)約用電模范戶");break;case1:printf("節(jié)約用電榮耀請?jiān)俳釉賲杽?chuàng)造新的節(jié)約用電記錄");break;case2:printf("請注意環(huán)保享受低碳生活采取措施有效節(jié)約用電");break;default:printf("拉閘限電立即整改還一片藍(lán)天");}printf("\n");}3.2循環(huán)控制結(jié)構(gòu)3.2.1循環(huán)結(jié)構(gòu)概述3.2.2用goto語句實(shí)現(xiàn)當(dāng)循環(huán)3.2.3while當(dāng)循環(huán)3.2.4do…while當(dāng)循環(huán)3.2.5for語句3.2.6循環(huán)語句的嵌套3.2.7break和continue的程序3.2.8幾種循環(huán)的比較3.2.1循環(huán)結(jié)構(gòu)概述概念:循環(huán)結(jié)構(gòu)是指在給定的條件下,使計(jì)算機(jī)重復(fù)執(zhí)行某段程序。分類:

當(dāng)循環(huán):當(dāng)條件成立時(shí)才執(zhí)行循環(huán)體的循環(huán);

到循環(huán):當(dāng)條件不成立時(shí)才執(zhí)行循環(huán)體的循環(huán)。

對于同一個(gè)循環(huán)問題,兩種循環(huán)條件恰好是相反的。C語言循環(huán):只有當(dāng)循環(huán)3.2.2用goto語句實(shí)現(xiàn)當(dāng)循環(huán)#include<stdio.h>voidmain(){inti=1,isum=0;//初始化,循環(huán)開始前的準(zhǔn)備loop:isum+=i;//累加求和i+=2;//更新循環(huán)變量iif(i<100)gotoloop;//轉(zhuǎn)到語句標(biāo)號為:loop的行,執(zhí)行對應(yīng)的語句printf("sum=%d\n",isum);}【例3-6】使用goto語句實(shí)現(xiàn)100內(nèi)所有奇數(shù)的和。

運(yùn)行結(jié)果:sum=25003.2.3while當(dāng)循環(huán)1.while語句一般格式while(表達(dá)式〕循環(huán)體;falseTrue先判后做while循環(huán)流程圖表達(dá)式循環(huán)體2.說明:〔1〕while語句的特點(diǎn)是先判斷,再執(zhí)行?!?〕while(表達(dá)式)中的表達(dá)式可以為任意類型的表達(dá)式?!?〕在循環(huán)結(jié)構(gòu)前,應(yīng)為循環(huán)變量賦初值?!?〕循環(huán)體內(nèi)要有循環(huán)變量的更新語句,或者有能夠結(jié)束循環(huán)的break、goto語句,從而防止死循環(huán)的發(fā)生?!?〕當(dāng)表達(dá)式的值非0〔真〕時(shí),才執(zhí)行循環(huán)體?!?〕循環(huán)體只默認(rèn)執(zhí)行一條內(nèi)嵌語句,假設(shè)內(nèi)嵌語句多于一條,那么用“{}〞括起來,形成一條復(fù)合語句〔語句塊〕。輸出:sum=873#include<stdio.h>voidmain(){intifac,i=1,isum=0;ifac=1;while(i<=6){ifac*=i++;isum+=ifac;}printf("sum=%d\n",isum);}【例3-7】用while語句編程實(shí)現(xiàn)1!+2!+3!+…+6!3.2.4do…while當(dāng)循環(huán)do—while:“先做后判〞型當(dāng)循環(huán)語句特點(diǎn):先執(zhí)行一次循環(huán)體的操作,然后再判斷條件是否滿足。滿足繼續(xù)做,不滿足那么結(jié)束循環(huán)。do---while語句一般格式do循環(huán)體;while(表達(dá)式〕;算法分析:〔1〕解高次方程就是求函數(shù)f(x)=0時(shí)的x值?!?〕函數(shù)在x1點(diǎn)的一階導(dǎo)數(shù)是函數(shù)在該點(diǎn)的切線斜率。切線與x軸的交點(diǎn)是x2,切線的斜率:f’(x1)=f(x1)/(x1-x2)牛頓迭代法求解一元高次方程的迭代公式:yf(x)xx1f(x1)x2f(x2)【例3-8】使用高等數(shù)學(xué)中的牛頓迭代法解一元高次方程:

x3-3x2+3x-1=0的一個(gè)解。

x2=x1-f(x1)/f’(x1)利用迭代公式由x1做出x2,將x2賦給x1又做出新的x2,反復(fù)如此即可求出方程的解。牛頓迭代法程序:#include<stdio.h>#include<math.h>voidmain(){doublef,f1;//f、f1分別是函數(shù)和它的導(dǎo)數(shù)變量doublex1,x2;doubleeps=1e-6;doublea;shortic=0;//循環(huán)次數(shù)計(jì)數(shù)器,如循環(huán)次數(shù)超過50次,那么認(rèn)為方程無解a=x2=3;//賦初值,為循環(huán)做好必要準(zhǔn)備do{

x1=x2;f=x1*x1*x1-3*x1*x1+3*x1-1;f1=3*x1*x1-6*x1+3;x2=x1-f/f1;ic++;if(ic>50){printf("此題在%lf附近無解,退出!\n",a);exit〔0〕; }}while(fabs(x2-x1)>eps);printf("x=%lf\n",(x1+x2)/2);}3.2.5for語句1.for語句的格式for(表達(dá)式1;表達(dá)式2;表達(dá)式3〕循環(huán)體;2.for語句的執(zhí)行過程:〔1〕先求解表達(dá)式1;〔2〕求解表達(dá)式2,假設(shè)為0〔假〕,那么結(jié)束循環(huán),并轉(zhuǎn)到〔5〕;〔3〕假設(shè)表達(dá)式2為非0〔真〕,那么執(zhí)行循環(huán)體,然后求解循環(huán)表達(dá)式3;〔4〕轉(zhuǎn)回〔2〕;〔5〕執(zhí)行for語句下面的一個(gè)語句。for語句流程圖【例3-9】從地球上發(fā)射一枚地球同步衛(wèi)星,設(shè)衛(wèi)星的質(zhì)量m=1000kg,衛(wèi)星軌道高度離地球H=36000km,地球的平均半徑約為R=6400km〔地球的實(shí)際平均半徑6371km〕,發(fā)射過程中衛(wèi)星的離地的瞬時(shí)高度為r,求在發(fā)射過程中火箭所做的功。

f(x)xbai梯形計(jì)分法的原理:①定積分的幾何意義是求曲線在區(qū)間[a,b]間所圍成的面積。②將[a,b]區(qū)間等分為n段,段長h=(b-a)/n,

每段將組成一個(gè)小梯形;

第1個(gè)小梯形的上底為f(a),下底為f(a+h);

第2個(gè)小梯形的上底為f(a+h),下底為f(a+2h);……;

第i個(gè)小梯形的上底為f(a+(i-1)h),下底為f(a+ih);……;

最后一個(gè)小梯形的上底為f(a+(n-1)h),下底為f(b)。③小梯形的面積:第1個(gè)小梯形面積:(f(a)+f(a+h))*h/2;第2個(gè)小梯形面積:(f(a+h)+f(a+2h))*h/2;……程序設(shè)計(jì):#include<stdio.h>#include<math.h>#defineG10voidmain(){doubleR=6.4e+6,H=3.6e+7;

//R:地球半徑;H:衛(wèi)星高度:mdoublem=1000;

//m:衛(wèi)星質(zhì)量,單位:kgdoubler;

//火箭發(fā)射時(shí)的瞬時(shí)高度doubleh=1000;

//小梯形的高1km分為一段intn,i;

//n:小梯形的個(gè)數(shù),i:循環(huán)變量doublew;

//火箭所做的功,單位:jn=H/h;w=0.5*(1/(R+H)/(R+H)+1/R/R);for(i=1;i<=n-1;i++)w+=1/(R+i*h)/(R+i*h);w=m*G*R*R*h*w/1000;//化為kjprintf("火箭所做的功:w=%eKj\n",w);}運(yùn)行運(yùn)行結(jié)果為:火箭所做的功:w=5.433962e+007kj該定積分的解析解為:5.433962×107kj3.2.6循環(huán)語句的嵌套#include<stdio.h>voidmain(){inti,j,k;//打印表頭for(i=1;i<=32;i++)printf("=");printf("九九乘法口歌表");for(i=1;i<=32;i++)printf("=");printf("\n");

for(i=1;i<=9;i++)

{ j=1; while(j<=i) {

k=i*j;

printf("%1d×%1d=%2d",i,j,k);

j++;

}

printf("\n");}【例3-10】輸出一個(gè)運(yùn)行結(jié)果如圖3-9所示的下三角形九九乘法表。三角形乘法口歌表3.2.7break和continue的程序1〕使用環(huán)境:switch結(jié)構(gòu)、循環(huán)結(jié)構(gòu)中2〕功能:強(qiáng)制退出循環(huán)或跳出swicth選擇語句。3〕形式:break;【例3-11】舉例

#include<stdio.h>voidmain(){inti;for(i=1;i<=50;i++){printf(“%2d〞,i);if(i==5)break;}printf("\n");}運(yùn)行結(jié)果為:123451〕用處:循環(huán)結(jié)構(gòu)2〕格式:continue;3〕功能:使程序流程提前結(jié)束本次循環(huán),轉(zhuǎn)而開始下一次循環(huán)。可以形象地將它稱為“短路〞語句?!纠?-12】contiune的使用。#include<stdio.h>voidmain(){inti;for(i=1;i<=20;i++){if(i%4==0)continue;printf(“%4d〞,i);}printf("\n");}運(yùn)行結(jié)果:123567910111314151718193.3.9幾種循環(huán)的比較〔1〕for循環(huán)是while循環(huán)集成版;while循環(huán)是for循環(huán)離散化版。一般情況下,3種循環(huán)可以互相代替。〔2〕在while和do---while循環(huán)中,循環(huán)體應(yīng)包含使循環(huán)趨于結(jié)束的語句?!?〕用while和do---while循環(huán)時(shí),循環(huán)變量初始化的操作應(yīng)在while和do---while語句之前完成。而for語句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。3.3控制結(jié)構(gòu)應(yīng)用舉例

#include<stdio.h>voidmain()

{floatx,max,min;inti=1;printf(“輸入第%d個(gè)學(xué)生成績:",i);scanf("%f",&x)

max=min=x;

while(x>=0){if(max<x)max=x;if(min>x)min=x;i++;printf(“輸入第%d個(gè)學(xué)生成績:",i);scanf(“%f〞,&x);}printf("max=%f,min=%f\n",max,min);}【例3-13】從鍵盤輸入假設(shè)干學(xué)生的成績,當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束輸入,統(tǒng)計(jì)并輸出最高成績和最低成績。3.4控制結(jié)構(gòu)應(yīng)用舉例算法分析:設(shè)sinx的泰勒展開式通項(xiàng)為fitem由分子〔e〕、分母〔d〕、符號〔s〕三局部組成。特點(diǎn):分子:e0=x,ei=ei-1*x*x;分母:d0=1,di=di-1*〔++i〕*〔++i〕;i的初值取1符號:s0=1,si=-si-1?!纠?-14】正弦函數(shù)的泰勒級數(shù),編程計(jì)算sinx的值,要求最后一項(xiàng)的絕對值小于10-7。#include<stdio.h>voidmain(){floatsinx;//sinx:展開式的值floate,d;//e:分子〔Element〕;d:分母〔Denominator〕floatfitem,a;//fitem:通項(xiàng)〔Item〕;a:角度〔Angle〕floateps=1e-7;//收斂精度(ε);floatx;//轉(zhuǎn)為弧度的角度值ints=1,i=1;//s:項(xiàng)的符號printf("請輸入角度值(單位:度:)");scanf("%f",&a);x=PI/180.*a;//將度化為弧度sinx=x;//為sinx賦初值fitem=e=x;//第0項(xiàng)為x,分子即為xd=1;//第0項(xiàng)分母為1while(fitem>eps){ e*=x*x; d=d*(++i)*(++i); fitem=e/d;//求通項(xiàng)的絕對值

s=-s;//求該項(xiàng)的符號

sinx+=s*fitem;//求正弦值}

printf("sin(%3.1f)=%.4f\n",a,sinx);

}運(yùn)行#include<stdio.h>#include<math.h>voidmain(){intn,i,j,ic=1;printf(“%5d〞,2); for(n=3;n<=1000;n+=2) {i=sqrt(n); j=2;/*內(nèi)循環(huán):判斷整數(shù)n是否是素?cái)?shù)*/ do{ if(n%j==0)break;/*n不是素?cái)?shù),強(qiáng)行結(jié)束內(nèi)循環(huán)*/j++;}while(j<=i); if(j>i)//i一定是素?cái)?shù),打印 {printf("%5d",n); ic++; if(ic%10==0)printf("\n"); /*每行輸出10個(gè)素?cái)?shù)*/ } }printf(“\n〞);}【例3-15】輸出1000以內(nèi)的全部素?cái)?shù)程序運(yùn)行結(jié)果【例3-16】中國古代算題“百錢買百雞〞。雞翁1值錢5,雞婆1值錢3,雞雛3值錢1。今百錢買百雞,各幾何。算法分析:1〕兩個(gè)約束三個(gè)未知數(shù),屬于不定解,即可能有多組解?!?〕最少使用兩重循環(huán)求解。外循環(huán)為買公雞,內(nèi)循環(huán)為買母雞,買小雞的個(gè)數(shù)從100之中減去已買的公雞數(shù)和母雞數(shù)即可得到?!?〕100元全部買公雞Cock,最多買20只,但錢數(shù)夠雞數(shù)不夠〔4〕買1只公雞,將少買5/3.只母雞Hen,因此買母雞的個(gè)數(shù)最多為:33-Cock*5/3只?!?〕小雞Child的只數(shù)為:100-Cock-Hen〔6〕如滿足那么該組解有效,輸出之。#include<stdio.h>voidmain(){ intCock,Hen,Child; floatMoney; printf("CockHenChild\n"); for(Cock=0;Cock<20;Cock++)

for(Hen=0;Hen<33-Cock*5/3;Hen++) {

Child=100-Cock-Hen;

Money=Cock*5+Hen*3+Child/3.0;

if(Money==100.0)

printf("%5d%5d%5d\n",Cock,Hen,Child); }}

運(yùn)行算法分析:〔1〕GB2312-80按94區(qū)*94位存放漢字和各種字符〔全角〕,其中1~9區(qū)存各種通用字符;10~15區(qū)存各種自定義字符;16~55區(qū)存一級漢字;56~87區(qū)存二級漢字,88區(qū)~94區(qū)存自定義漢字。設(shè)區(qū)碼為:AreaCode,位碼為LocationCode?!?〕每個(gè)漢字:高字節(jié)HighByte=AreaCode+160;低字節(jié)LowerByte=LocationCode+160?!?〕以區(qū)碼為外循環(huán),位碼為內(nèi)循環(huán),將每個(gè)漢字高、低字節(jié)均按字符格式輸出即可輸出該漢字。【例3-17】在以ASCII碼的形式存儲字符的計(jì)算機(jī)系統(tǒng),一個(gè)漢字按兩個(gè)字節(jié)存儲,這種存儲方式與漢字的區(qū)位碼存在簡單的對應(yīng)關(guān)系,即:高字節(jié)=區(qū)碼+160;低字節(jié)=位碼+160。請編程制作一個(gè)“中華人民共和國國家標(biāo)準(zhǔn)信息交換用漢字編碼字符集-根本集〔GB2312-80〕〞。/*顯示漢字程序hz.c*/#include<stdio.h>voidmain(){intAreaCode,LocationCode,HighByte,LowerByte;printf("中華人民共和國國家標(biāo)準(zhǔn)信息交換用漢字編碼字符集-根本集〔GB2312-80〕全部漢字\n\n");for(AreaCode=16;AreaCode<=87;AreaCode++){prin

溫馨提示

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

評論

0/150

提交評論