第 順序結(jié)構(gòu)程序設(shè)計_第1頁
第 順序結(jié)構(gòu)程序設(shè)計_第2頁
第 順序結(jié)構(gòu)程序設(shè)計_第3頁
第 順序結(jié)構(gòu)程序設(shè)計_第4頁
第 順序結(jié)構(gòu)程序設(shè)計_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學1第順序結(jié)構(gòu)程序設(shè)計2/42C語言的語句概述:C程序?qū)?shù)據(jù)的處理是通過“語句”的執(zhí)行來實現(xiàn)的。一條語句完成一項操作(或功能)。一個為實現(xiàn)特定目的的程序應(yīng)包含若干條語句。C語句以“;”作分隔符,編譯后產(chǎn)生機器指令.第1頁/共45頁3/42C語句分類:4、空語句:;執(zhí)行該語句不做任何操作1、程序控制語句(9種):if()~else~switchfor()~while()~do~while()continuebreakgotoreturn分支循環(huán)輔助控制如total=total+limit;a=3;func();printf(“Hello,world!\n”);3、表達式語句:表達式加分號構(gòu)成。2、函數(shù)調(diào)用語句:由一次函數(shù)調(diào)用加一個分號構(gòu)成5、復(fù)合語句:用{…}括起來的一組語句一般形式:

{[數(shù)據(jù)說明部分;]

執(zhí)行語句部分;

}說明:“}”后不加分號語法上和單一語句相同復(fù)合語句可嵌套9種控制語句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn功能:計算表達式的值或改變變量的值。分類:運算符表達式語句賦值語句例:5;i++;語句的功能是,變量i的值增1。a=3,b=a+2,c=a+1;/*由三個賦值語句組成的逗號表達式語句。*/

a+b; /*算術(shù)表達式語句,計算a與b之和。*/賦值語句由賦值表達式加上一個分號構(gòu)成如:a=15;b=a+5;c=d=e=a;

說明:賦值號左面必須為變量 賦值號右面可以是任何合法的表達式賦值號=為運算符注意:不加分號為賦值表達式Y(jié)=sin(1.12);Y1=sin(x);Y2=3*sin(x+1.12)+sqrt(x);Y3=sin(sqrt(x+1.12));#include<stdio.h>#include<math.h>main(){inta=2,b=4;floatx,y;x=a/2+sqrt(b);/*x=3.0*/a++;/*a=3*/y=x*a;/*y=9.0*/printf(“x=%6.2f,y=%6.2f”,x,y);}注意表達式類型轉(zhuǎn)換注意賦值類型輸出結(jié)果:

x=3.00,y=9.00格式:函數(shù)名(參數(shù)列表);分類:標準庫函數(shù)用戶定義函數(shù)標準庫函數(shù)調(diào)用原則:(1)要在程序中包含相應(yīng)的頭文件(2)調(diào)用的一般形式:函數(shù)名(參數(shù)列表);第2頁/共45頁4/42例3-1:#include〈stdio.h〉main(){intx=1,y=2;{intx=2;{intx=3;printf(″x=%d,y=%d\n″,x,y);}printf(″x=%d,y=%d\n″,x,y);}printf(″x=%d,y=%d\n″,x,y);}程序運行結(jié)果為:x=3,y=2x=2,y=2x=1,y=2第3頁/共45頁5/423.2數(shù)據(jù)的輸入與輸出C語言本身不提供輸入/輸出語句。C語言的輸入/輸出功能由C語言的標準I/O庫函數(shù)提供。

#include<stdio.h>C語言的輸入/輸出庫函數(shù)名稱不是保留字(或稱關(guān)鍵字)。如printf,scanf。第4頁/共45頁6/42#include<stdio.h>main(){intc;chara;c=65;a='B';putchar(c);putchar('\n');putchar(a);}運行結(jié)果:AB例3.2.1字符的輸入與輸出字符輸出函數(shù)格式:putchar(c)參數(shù):c為字符常量、字符型變量、整型變量、常量或表達式功能:把字符c輸出到顯示器上返值:正常,返回輸出字符的ASCII碼值第5頁/共45頁7/42例3-2:#include<stdio.h>程序運行結(jié)果為:ABBCmain(){inta=65;charb=‘B’;putchar(a);putchar(65+1);putchar(b);putchar(‘B’+1);}第6頁/共45頁8/42格式:getchar()功能:從鍵盤讀一字符返值:正常,返回讀取字符的ASCII碼值字符輸入函數(shù)

例#include<stdio.h>main(){intch;ch=getchar();putchar(ch);}運行時,輸入如下:A運行結(jié)果:A第7頁/共45頁9/42注意:調(diào)用函數(shù)getchar時,程序執(zhí)行被中斷,等待用戶從鍵盤輸入數(shù)據(jù)。當用戶鍵入字符并敲回車鍵以后,程序繼續(xù)運行。若用戶輸入字符后未按回車鍵,則鍵入的內(nèi)容一直保留在鍵盤緩沖區(qū)中,只有用戶鍵入回車鍵后,字符輸入函數(shù)getchar才進行處理。函數(shù)getchar將回車鍵作為一個字符讀入。如果程序中有兩個以上函數(shù)getchar時,應(yīng)該一次性輸入所需字符,最后再按回車鍵。無論輸入的是英文字母或標點符號還是數(shù)字,都是作為字符輸入。第8頁/共45頁10/423.2.2格式輸出函數(shù)格式:printf(“格式控制字符串”,輸出項列表)功能:按指定格式向顯示器輸出數(shù)據(jù)返值:正常,返回輸出字節(jié)數(shù)輸出表:要輸出的數(shù)據(jù)(可以沒有,多個時以“,”分隔)格式控制串:包含兩種信息格式說明:%[修飾符]格式字符,用于指定輸出格式普通字符或轉(zhuǎn)義字符:原樣輸出第9頁/共45頁11/42例3-3#include"stdio.h"voidmain(){inta=97,b=98;printf("1:%d%d\n",a,b);/*普通字符,原樣輸出*/printf("2:%d,%d\n",a,b);/*a,b以十進制整數(shù)形式輸出*/printf("3:%c,%c\n",a,b);/*a,b以字符形式輸出*/printf("4:a=%d,b=%d",a,b);}程序運行結(jié)果為:1:97982:97,983:a,b4:a=97,b=98inti=97;

charch=‘a(chǎn)’;

printf(“i=%d,%c\n”,i,i);

兩個輸出項都是變量i,但以不同的格式輸出,一個是輸出的整型數(shù),一個輸出的是字符a.其格式是由,%d與%c控制的.

i=97,a輸出結(jié)果第10頁/共45頁12/42格式說明字符:%[修飾符]格式字符.n對實數(shù),指定小數(shù)點后位數(shù)(四舍五入)對字符串,指定實際輸出位數(shù)修飾符功能m輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長度<m,左補空格;否則按實際輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)-輸出符號(正號或負號)+輸出數(shù)值時指定左面不使用的空位置自動填00在八進制和十六進制數(shù)前顯示前導(dǎo)0,0x#表示按短整型量輸出按長整型量輸出,可在d,o,x,u前hl第11頁/共45頁13/42d,ix,Xoucse,Efg%格式字符:十六進制無符號整數(shù)不帶符號十進制整數(shù)十進制整數(shù)標準指數(shù)形式實數(shù)單一字符字符串八進制無符號整數(shù)小數(shù)形式實數(shù)e和f中較短一種百分號本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.67789e+02567.789000567.789%說明 格式字符要用小寫格式字符與輸出項個數(shù)應(yīng)相同,按先后順序一一對應(yīng)輸出轉(zhuǎn)換:格式字符與輸出項類型不一致,自動按指定格式輸出例

main(){unsignedintu=65535;printf(”u=%d\n",u);}

輸出結(jié)果:u=-1例inta=3,b=4;printf(“%d%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);

例inta=3,b=4;printf(“%d%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);輸出結(jié)果:34a=3,b=4111111111111111165535第12頁/共45頁14/42例如:printf("%d\n",100);100printf("%5d\n",100);100100printf("%8d\n%8d″,100,100*100);1001001001000010010010010000第13頁/共45頁15/42例如:printf("%o\n",-1);177777printf("%x,%X\n",-1,-1);177777ffff,FFFFprintf("%u,%d",-1,-1);177777ffff,FFFF65535,-1第14頁/共45頁16/42printf("%4c,%c\n",'A','A');printf("%-8s,%8.2s","Name","Name");

A,A例如:

A,AName----,------Na第15頁/共45頁17/42printf("%f\n%10.3f\n",100.7654321,100.7654321);printf("%e\n%10.9e",100.7654321,100.7654321);m.n例如:100.765432

100.765100.765432100.7651.00765e+021.00765432e+02第16頁/共45頁18/42例:實型數(shù)據(jù)#include<stdio.h>main(){floatx,y,z;doublea,b;x=111111.111;y=222222.222;z=123.456;a=1111111111111.111111111;b=2222222222222.222222222;printf(“%f\n%f\n”,x+y,a+b);printf(“%10f,%10.2f\n”,z,z);printf(“%e\n”,z);printf(“%g\n”,z);}輸出為:333333.3281253333333333333.333010123.456001,□□□□123.461.23456e+02123.456□□□第17頁/共45頁19/42例inta=1234;floatf=123.456;printf(“%08d\n”,a);printf(“%010.2f\n”,f);printf(“%0+8d\n”,a);printf(“0+10.2f\n”,f);例0、+例inta=123;printf(“%o,%#o,%X,%#X\n”,a,a,a,a);

例#例longa=65536;printf(“%8ld\n”,a);

例l//00001234//0000123.46//000+1234//000+123.56//173,0173,7B,0X7B//65536第18頁/共45頁20/42#include"stdio.h"voidmain(){inta=3,b=4;printf("%d\n",(a=b,b,a+3));/*輸出序列是一個逗號表達式*/printf("%d\n",a=b,b,a+3);/*輸出第一個參數(shù)變量a的值*/}例:輸出結(jié)果為:74第19頁/共45頁21/423.2.3格式輸入函數(shù)格式:scanf(“格式控制串”,地址表)功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的存儲單元中,并按回車鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個數(shù)地址表:變量的地址,常用取地址運算符&格式字符:d,i,o,x,u,c,s,f,e例scanf(“%d”,&a);

輸入:10

則a=10例scanf(“%x”,&a);

輸入:11

則a=17第20頁/共45頁22/42格式控制字符:(1)組成:普通字符、格式說明。普通字符:格式說明:鍵盤輸入時,要按原樣輸入,一般起分隔或提示作用。但分隔或提示作用若由用戶輸入,就失去了本來的意義,一般采用printf來實現(xiàn)。%[*][m][h|l]type第21頁/共45頁23/42附加格式說明符(修飾符)l修飾符功能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實數(shù)指定輸入數(shù)據(jù)所占寬度(列數(shù)),為正整數(shù)表示本輸入項讀入后不賦給相應(yīng)的變量例scanf(“%4d%2d%2d”,&yy,&mm,&dd);

輸入19991015

則1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);

輸入12345678765.43

則123k,8765.43f例scanf(“%2d%*3d%2d”,&a,&b);

輸入1234567

則12a,67b例scanf(“%3c%2c”,&c1,&c2);

輸入abcde

則‘a(chǎn)’c1,‘d’c2第22頁/共45頁24/42scanf(“i=%d",&i);printf(“i=%d",i);scanf("%d%d%d",&a,&b,&c);i=30↙輸入i=30輸出i=30↙輸入i=30輸出123↙或1↙2↙3↙1,2,3↙錯第23頁/共45頁25/42scanf(“%d,%d,%d”,&a,&b,&c);1,2,3↙123↙錯scanf(“%d,%*d,%d”,&a,&b);1,2,3↙123↙錯1,2,3↙a=1b=31,2,3↙123↙錯1,2,3↙a=1b=31.01.01.0↙1.01.01.0錯a=1.0b=1.0scanf(“%f%f%*f”,&a,&b);第24頁/共45頁26/42輸入分隔符的指定默認數(shù)據(jù)分隔符:空格、TAB或回車鍵普通字符:格式串中兩個格式符間字符,必須原樣輸入例scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);

輸入123123123輸出a=123,b=83,c=291例scanf(“%d:%d:%d”,&h,&m,&s);

輸入12:30:45

則12h,30m,45s例scanf(“%d,%d”,&a,&b)

輸入3,4

則3a,4b例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);

輸入a=12,b=24,c=36第25頁/共45頁27/42說明:用“%c”格式符時,空格和轉(zhuǎn)義字符作為有效字符輸入如scanf(“%c%c%c”,&c1,&c2,&c3);

若輸入abc

則ac1,

c2,bc3輸入數(shù)據(jù)時,遇以下情況認為該數(shù)據(jù)結(jié)束:遇空格、TAB、或回車遇寬度結(jié)束遇非法輸入如scanf(“%d%c%f”,&a,&b,&c);

若輸入1234a123o.26

則1234a,‘a(chǎn)’b,123c第26頁/共45頁28/42例3-6:#include"stdio.h"voidmain(){inta,b;printf("inputa,b:");scanf("%d%d",&a,&b);printf("a=%d,b=%d",a,b);}

inputa,b:7?8↙a=7,b=8第27頁/共45頁29/42(4)注意事項:scanf()的格式控制字符串中沒有轉(zhuǎn)義字符。如scanf(“%d\n”,&a);是錯誤的。scanf()的格式控制字符串中的普通字符不是用來顯示的,而是輸入時要求照普通字符輸入的。scanf()中參數(shù)的第二部分一定是地址列表,不能是表達式。第28頁/共45頁30/423.3順序程序設(shè)計舉例例3.1輸入圓的半徑,輸出圓的周長和面積。分析:(1)定義實型變量r,l,s用于存放半徑、周長、面積;(2)調(diào)用輸入函數(shù),輸入r;(3)分別利用周長公式和面積公式求出l,s;(4)調(diào)用輸出函數(shù)輸出l,s。程序:#include<stdio.h>voidmain(){floatr,l,s;

scanf(“%f”,&r);

l=2*3.14159*r;s=3.14159*r*r;

printf(“l(fā)=%8.4f\n”,l);

printf(“s=%8.4f\n”,s);}#include<stdio.h>voidmain(){floatr;

scanf(“%f”,&r);

printf(“l(fā)=%8.4f\n”,2*3.14159*r);

printf(“s=%8.4f\n”,3.14159*r*r);}第29頁/共45頁31/42例3.2輸入三個字符,將它們反向輸出。分析:(1)定義三個字符變量ch1,ch2,ch3;(2)調(diào)用字符輸入函數(shù),輸入三個字符依次存于ch1,ch2,ch3;(3)按ch3,ch2,ch1順序輸出三個字符。程序:#include<stdio.h>voidmain(){charch1,ch2,ch3;

ch1=getchar();

ch2=getchar();ch3=getchar();

putchar(ch3);putchar(ch2);putchar(ch1);

}第30頁/共45頁32/42例3.3用格式輸入函數(shù)輸入三個字符,并用輸出函數(shù)反向輸出三個字符和它們的ASCII碼。程序:#include<stdio.h>voidmain(){charch1,ch2,ch3;

scanf(“%c%c%c”,&ch1,&ch2,&ch3);

printf(“%c,%d\n”,ch3,ch3);

printf(“%c,%d\n”,ch2,ch2);printf(“%c,%d\n”,ch1,ch1);}第31頁/共45頁33/42例3.4輸入任意三個整數(shù),求它們的平均值。程序:#include<stdio.h>voidmain(){intnum1,num2,num3;

floataverage;printf(“Pleaseinputthreenumbers:”);

scanf(“%d,%d,%d”,&num1,&num2,&num3);average=(num1+num2+num3)/3.0;printf(“average=%7.2f\n”,average);}思考:能否將average=(num1+num2+num3)/3.0改為average=(num1+num2+num3)/3?注意數(shù)學表達式到C語言表達式的轉(zhuǎn)換第32頁/共45頁34/42例3-5:輸入兩個整數(shù)a、b,將它們交換,例如a為3,b為5,交換后a為5,b為3。#include"stdio.h"voidmain(){inta,b,t;/*t就相當于空杯子*/scanf(“%d,%d”,&a,&b);printf(“a=%d,b=%d\n”,a,b);/*觀察原來的值*/t=a;a=b;b=t;printf("a=%d,b=%d\n",a,b);/*觀察交換后的值*/}用于交換變量a、b的方法通常稱為兩兩交換法。第33頁/共45頁35/42例3.6求方程ax2+bx+c=0的實數(shù)根。程序:#include<stdio.h>#include<math.h>voidmain(){floata,b,c,disc,x1,x2;printf(“inputa,b,c:”);scanf(“%f,%f,%f”,&a,&b,&c);disc=b*b-4*a*c;x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf(“x1=%6.2f\nx2=%6.2f\n”,x1,x2);}第34頁/共45頁36/42例3.7從鍵盤輸入一個小寫字母,用大寫形式輸出該字母。程序:#include<stdio.h>voidmain(){chara;printf(“inputalowercaseletter:”);a=getchar();a=a-32;

printf(“%c\n”,a);}第35頁/共45頁37/42計算機中數(shù)的表示及進制轉(zhuǎn)換數(shù)碼、基與權(quán)數(shù)碼:表示數(shù)的符號基:數(shù)碼的個數(shù)權(quán):每一位所具有的值數(shù)制預(yù)備知識第36頁/共45頁38/42數(shù)制基權(quán)表示數(shù)碼特點10o,101,102,…十進制數(shù)0~910逢十進一二進制數(shù)0~122o,21,22,…逢二進一八進制數(shù)0~788o,81,82,…逢八進一十六進制數(shù)0~9,A~F,a~f1616o,161,162,…逢十六進一十進制:4956=4103+9102+5101+610o二進制:1011=123+022+121+12o十六進制:81AE=8163+1162+10161+1416o八進制:4275=483+282+781+58o第37頁/共45頁39/42各種進制之間的轉(zhuǎn)換二進制、八進制、十六進制轉(zhuǎn)換成十進制

方法:按權(quán)相加第38頁/共45頁40/42

二進制、八進制、十六進制轉(zhuǎn)換成十進制十進制轉(zhuǎn)換成二進制、八進制、十六進制方法:連續(xù)除以基,從低到高記錄余數(shù),直至商為0例把十進制數(shù)459轉(zhuǎn)換成十六進制數(shù)4591628161160(459)10=(1CB)161CB

余11余12余1各種進制之間的轉(zhuǎn)換(整數(shù))

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論