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

下載本文檔

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

文檔簡介

C語言程序設(shè)計第3章順序結(jié)構(gòu)程序設(shè)計問題:一年有春夏秋冬四季,按序執(zhí)行,做事亦有先后順序,那么C語言在編寫程序時可以采用這樣的順序結(jié)構(gòu)嗎?

按程序書寫的前后順序依次按序執(zhí)行。順序結(jié)構(gòu)程序設(shè)計

C語言同樣提供了這種最簡單的程序設(shè)計結(jié)構(gòu):順序結(jié)構(gòu)。引子

本章重點第3章順序結(jié)構(gòu)程序設(shè)計

本章難點

C語言基本語句的分類字符數(shù)據(jù)輸入輸出函數(shù)格式化輸入輸出函數(shù)

格式化輸入輸出函數(shù)的格式控制字符串3.13.23.33.4C語言語句概述字符數(shù)據(jù)的輸入輸出格式化輸入輸出函數(shù)順序結(jié)構(gòu)程序設(shè)計舉例本章主要內(nèi)容說明語句變量定義或說明數(shù)據(jù)類型定義函數(shù)聲明等語句可執(zhí)行語句:用來向計算機發(fā)出操作指令。簡單語句表達(dá)式語句:表達(dá)式;例:i++;函數(shù)調(diào)用語句控制語句空語句:只有分號“;”組成的語句,程序執(zhí)行時不產(chǎn)生任何動作。復(fù)合語句:把多個語句用括號“{}”括起來組成的一個語句C語言無I/O語句,I/O操作由函數(shù)實現(xiàn)#include<stdio.h>1)條件判斷語句:if語句、switch語句等;2)循環(huán)執(zhí)行語句:do-while語句、while語句、for語句;3)轉(zhuǎn)向語句:break語句、goto語句、continue語句、return語句。3.1C語言語句概述printf("CProgram");/*調(diào)用庫函數(shù),輸出字符串*/

while(getchar()!='\n');

{語句1;

語句2;┇

語句n;}。

{x=y+z;a=b+c;

printf("%d%d",x,a);

}3.13.23.33.4C語言語句概述字符數(shù)據(jù)的輸入輸出格式化輸入輸出函數(shù)順序結(jié)構(gòu)程序設(shè)計舉例本章主要內(nèi)容輸出3.2字符數(shù)據(jù)的輸入輸出從計算機向外部輸出設(shè)備(如顯示器、打印機、磁盤等)輸出數(shù)據(jù)輸入從輸入設(shè)備(如鍵盤、磁盤、光盤、掃描儀等)向計算機輸入數(shù)據(jù)在VC中,調(diào)用輸入/輸出函數(shù)之前,必須使用下面預(yù)編譯命令對頭文件“stdio.h”(stdio是standardinput/output的縮寫)進(jìn)行文件包含說明。

#include<stdio.h>格式:putchar(ch)參數(shù):ch為字符常量或變量,也可以是一個轉(zhuǎn)義字符

功能:在默認(rèn)輸出終端(一般為顯示器)上輸出單個字符

字符輸出函數(shù)(putchar)3.2字符數(shù)據(jù)的輸入輸出#include<stdio.h>main(){charch='B';

putchar(ch);/*輸出變量的值字符B*/

putchar('\n');/*輸出一個換行符*/

putchar('B');/*直接輸出字符B*/

putchar('\n');/*輸出一個換行符*/putchar(0x42);/*使用ASCII值輸出字符B*/

putchar('\n');/*輸出一個換行符*/}運行結(jié)果:BBB例:輸出單個字符格式:getchar()功能:從系統(tǒng)默認(rèn)的輸入終端(一般為鍵盤)輸入一個字符,可以是字母字符、數(shù)字字符和其他字符等例3.2輸入單個字符,并輸出。#include<stdio.h>main(){charc;c=getchar();

putchar(c);}

運行結(jié)果:abc↙a字符輸入函數(shù)(getchar)getchar函數(shù)等待輸入直到按回車才結(jié)束,回車前所輸入的全部字符都會在在屏幕上顯示,但只有第一個字符作為函數(shù)的返回值。例3.2輸入單個字符,并輸出。#include<stdio.h>main(){putchar(getchar());}

3.13.23.33.4C語言語句概述字符數(shù)據(jù)的輸入輸出格式化輸入輸出函數(shù)順序結(jié)構(gòu)程序設(shè)計舉例本章主要內(nèi)容格式:printf("格式控制字符串",輸出表列);功能:將數(shù)據(jù)在終端設(shè)備(或系統(tǒng)默認(rèn)的輸出設(shè)備上)按指定格式輸出

說明:輸出表列是以逗號隔開的表達(dá)式;

格式控制字符串規(guī)定輸出格式格式控制串作用:為各輸出項提供輸出格式%[修飾符]格式字符:將要輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出,由“%”符號開始,緊跟其后的是格式描述符,說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。

原樣輸出普通字符:在程序運行過程中起提示作用格式輸出函數(shù)(printf)3.3格式化輸入輸出函數(shù)例3.3輸出函數(shù)printf程序示例。#include<stdio.h>main(){inti=3314;floata=2.1454;

printf("i=%d,a=%f,a*10=%e\n",i,a,a*10);}運行結(jié)果:i=3314,a=2.145400,a*10=2.145400e+001printf函數(shù)中常用的輸出格式printf函數(shù)的輸出格式的一般形式為:%[標(biāo)志][寬度指示符][.精度指示符][長度修飾符]格式字符格式字符格式字符說明d或iox,Xufe,E以十進(jìn)制形式輸出帶符號整數(shù)(正數(shù)不輸出符號)以八進(jìn)制形式輸出無符號整數(shù)(不輸出前綴0)以十六進(jìn)制形式輸出無符號整數(shù)(不輸出前綴0x),對于x用abcdef輸出;對于X用ABCDEF輸出以十進(jìn)制形式輸出無符號整數(shù)以小數(shù)形式輸出單、雙精度實數(shù),隱含輸出6位小數(shù)以指數(shù)形式輸出單、雙精度實數(shù),數(shù)字部分小數(shù)位數(shù)為6位,指數(shù)部分占5位,用“E”時,指數(shù)以大寫表示格式字符格式字符說明g,Gcsp以%f或%e中較短的輸出寬度輸出單、雙精度實數(shù),不輸出無意義的0,用“G”時,則指數(shù)以大寫表示輸出單個字符輸出字符串輸出變量的內(nèi)存地址寬度(域?qū)挘┲甘痉W饔茫河脕碇付ㄝ敵鰯?shù)據(jù)項的最小字段寬度,通常用十進(jìn)制表示。

省略寬度指示符時,按實際位數(shù)輸出;若實際位數(shù)大于定義的寬度,也按實際位數(shù)輸出;若實際位數(shù)小于定義的寬度,數(shù)據(jù)右對齊,左邊補以空格。未指定寬度和指定輸出寬度時的輸出結(jié)果輸出語句輸出結(jié)果printf("%3d\n",4321);printf("%f\n",123.54);printf("%12f\n",123.54);4321123.540000ㄩㄩ123.540000printf("%e\n",123.54);1.235400e

+

002printf("%14e\n",123.54);ㄩ1.235400e

+

002printf("%g\n",123.5);123.5printf("%8g\n",123.5);ㄩㄩㄩ123.5精度指示符以“.”開頭,后跟十進(jìn)制整數(shù)精度指示符通常與寬度指示符結(jié)合使用,格式為:“m.n”,“m”表示輸出數(shù)據(jù)所占總的寬度,“n”表示輸出數(shù)據(jù)的精度浮點數(shù)n表示輸出數(shù)據(jù)的小數(shù)的位數(shù),輸出數(shù)據(jù)的小數(shù)位數(shù)大于“n”時,截去右邊多余的小數(shù),并對截去的第一位小數(shù)做四舍五入;輸出數(shù)據(jù)的小數(shù)位數(shù)小于“n”時,在小數(shù)的最右邊添0。省略“m.n”中的m用“.n”表示小數(shù)的位數(shù),并對截去的第一位小數(shù)進(jìn)行四舍五入,這時輸出數(shù)據(jù)的寬度由系統(tǒng)決定。若指定“%.0f”,則不輸出小數(shù)部分,但要對第一位小數(shù)進(jìn)行四舍五入。對于g或G“.n”表示輸出的有效數(shù)字,并對截去的第一位進(jìn)行四舍五入,整數(shù)部分并不丟失,隱含的輸出有效數(shù)字為6位有效數(shù)字。對于字符串“.n”則表示要輸出字符的個數(shù);如果實際位數(shù)大于所定義的精度時,則截去超過的部分。輸出語句輸出結(jié)果指定精度時的輸出結(jié)果printf("%8.3f\n",123.55);

ㄩ123.550-

printf("%8.1f\n",123.55);

ㄩㄩㄩ123.6

printf("%8.0f\n",123.55);

printf("%g\n",123.56789);printf("%.7g\n",123.56789);

printf("%.5s\n",“abcdefg”);

ㄩㄩㄩㄩㄩ124

123.568

123.5679

abcde

注意:輸出數(shù)據(jù)的實際精度不完全取決于格式控制串中的寬度和精度,而是取決于數(shù)據(jù)的存儲精度。如果在格式控制串中指定的寬度和精度超過了相應(yīng)類型數(shù)據(jù)的有效數(shù)字,輸出的多余數(shù)字是沒有意義的,只是系統(tǒng)用來填充數(shù)據(jù)寬度而已。標(biāo)志標(biāo)志及其意義

標(biāo)志意義?

輸出結(jié)果左對齊,右邊填空格;缺省則輸出結(jié)果右對齊,左邊填空格+輸出符號(正號或負(fù)號)

空格輸出值為正時冠以空格,為負(fù)時冠以負(fù)號

#對c,s,d,u類無影響;對o類,在輸出時加前綴0;對x類,在輸出時加前綴0x標(biāo)志標(biāo)志的用法輸出語句輸出結(jié)果ㄩㄩㄩ111

printf("%6d\n",111);

printf("%?6d\n",111);111ㄩㄩㄩ

printf("%

+

d\n",111);

+111

printf("%ㄩd\n",111);

ㄩ111

printf("%ㄩd\n",?111);

?111

printf("%#o\n",10);

012

printf("%#x\n",16);0x10

長度修飾符長度修飾符為h、l兩種h表示按短整型(short)輸出,可加在格式符d、o、x、u前面,如%hd;l表示按長整型(long)輸出,如%ld、%lx等。l也可加在格式符f前面,但沒有什么意義。例3.4輸出函數(shù)printf程序示例。#include<stdio.h>main(){inta=15;floatb=123.1234567;doublec=12345678.1234567;chard='p';

printf("a=%d,%5d,%o,%x\n",a,a,a,a);

printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);

printf("c=%lf,%f,%8.4lf\n",c,c,c);

printf("d=%c,%8c\n",d,d);}運行結(jié)果如下:a=15,ㄩㄩㄩ15,17,fb=123.123459,123.123459,123.1235,1.231235e+002c=12345678.123457,12345678.123457,12345678.1235d=p,ㄩㄩㄩㄩㄩㄩㄩp調(diào)用printf函數(shù)時的注意事項如果格式控制字符串中的格式描述符少于輸出項的個數(shù),多余的輸出項不予輸出;如果格式控制字符串中的格式描述符多于輸出項的個數(shù),則對于多余的格式將輸出不定值(或0值)。(1)輸出表列中的各輸出項要用逗號隔開,輸出項可以是合法的常量、變量或表達(dá)式。格式控制字符串中的格式描述符與輸出列表的輸出項在數(shù)量和類型上應(yīng)該一一對應(yīng)。例inta=3,b=4;

printf(“%d%d\n”,a,b);

printf(“a=%d,b=%d\n”,a,b);輸出結(jié)果:34a=3,b=4例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);

調(diào)用printf函數(shù)時的注意事項(2)如果格式控制字符串中的格式描述符與對應(yīng)的輸出項類型不匹配,將導(dǎo)致數(shù)據(jù)不能正確輸出,這時系統(tǒng)并不報錯例如:在輸出長整型數(shù)據(jù)時,應(yīng)使用%ld格式說明,在VC6.0中也可使用%d(因為int型和long型數(shù)據(jù)所占字節(jié)數(shù)相同),但如果使用%hd,將輸出錯誤的數(shù)據(jù)。例3.5輸出函數(shù)printf程序示例。#include<stdio.h>main(){longa=80000;

printf("x=%hd\n",a);}運行結(jié)果:x=14464調(diào)用printf函數(shù)時的注意事項(3)在格式控制字符串中,除了合法的格式說明外,可以包含任意的合法字符(包括轉(zhuǎn)義字符),這些字符在輸出時將原樣輸出。(4)如果需要輸出百分號%,則應(yīng)該在格式控制字符串中用連續(xù)的百分號“%%”來表示。(5)printf函數(shù)的返回值通常是本次調(diào)用中輸出項的個數(shù)。(6)盡量不要在輸出函數(shù)中改變輸出變量的值,因為在輸出時,先對輸出表列的各項求值,然后再輸出。輸出順序是從左到右,而求值順序,有的編譯系統(tǒng)是從左到右,有的是從右到左,VC6.0是按從右到左進(jìn)行的。例3.6輸出函數(shù)printf程序示例。#include<stdio.h>main(){inti=8;printf("%d\t%d\n",i,++i);}輸出結(jié)果為:99格式輸入函數(shù)(scanf)格式:scanf(“格式控制串”,地址表)功能:從終端設(shè)備(或系統(tǒng)默認(rèn)的輸入設(shè)備)上輸入數(shù)據(jù)。格式控制字符串的作用是指定輸入數(shù)據(jù)的格式,由“%”符號開始,其后是格式描述符。各輸入項只能是合法的地址表達(dá)式例scanf(“%d”,&a);

輸入:10

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

輸入:11

則a=17例scanf("%d%d",&a,&b);scanf函數(shù)中常用的格式說明scnaf格式字符

格式字符說明輸入有符號的十進(jìn)制整數(shù)

d,i

o

輸入無符號的八進(jìn)制整數(shù)

x,X

輸入無符號的十六進(jìn)制整數(shù)

u

輸入無符號的十進(jìn)制整數(shù)

f,e

輸入實型數(shù)(用小數(shù)形式或指數(shù)形式)c輸入單個字符s

輸入字符串,結(jié)果存入字符數(shù)組中,輸入時以第一個非空白字符開始,以第一個空白字符結(jié)束,系統(tǒng)自動加上'\0'作為字符串結(jié)束標(biāo)志%[*][輸入數(shù)據(jù)寬度][長度修飾符]格式字符scanf函數(shù)中常用的格式說明“*”符表示讀入該輸入項后不賦予相應(yīng)的變量,即跳過該輸入值。數(shù)據(jù)寬度用十進(jìn)制整數(shù)指定輸入的寬度,即讀取輸入數(shù)據(jù)中相應(yīng)位數(shù)賦給相應(yīng)的變量,舍棄多余部分。長度修飾符長度格式符為h和l。在VC環(huán)境下,輸入short型整數(shù),格式控制要求用%hd;輸入double型數(shù)據(jù),必須用%lf或%le。否則,數(shù)據(jù)可能不能正確輸入。但在VC中,%ld與%d一樣。10a,30b12345a12a,67bscanf(“%d%*d%d”,&a,&b);

輸入102530scanf(“%5d”,&a);

輸入12345678scanf(“%2d%*3d%2d”,&a,&b);

輸入12345671234a,5678bscanf("%4d%4d",&a,&b);

輸入12345678scanf(“%4d%2d%2d”,&yy,&mm,&dd);

輸入199910151999yy,10mm,15dd調(diào)用scanf函數(shù)時的注意事項scanf函數(shù)中的格式字符前可以用一個整數(shù)指定輸入數(shù)據(jù)所占寬度,但不可以對實型數(shù)指定小數(shù)位的寬度。scanf("%5.2f",&a);非法的scanf中要求給出變量地址,如給出變量名則會出錯。scanf("%d",a);非法的在輸入多個數(shù)值數(shù)據(jù)時,若格式控制字符串中沒有非格式字符作為輸入數(shù)據(jù)之間的間隔,則可用空格、Tab或回車作為間隔。程序在運行時碰到空格、Tab鍵、回車或非法數(shù)據(jù)時即認(rèn)為該數(shù)據(jù)結(jié)束。對"%d"輸入“12A”時,A即為非法數(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說明:用“%c”格式符時,空格和轉(zhuǎn)義字符作為有效字符輸入如scanf(“%c%c%c”,&c1,&c2,&c3);

若輸入abc

則ac1,

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

若輸入1234a123o.26則1234a,‘a(chǎn)’b,123c輸入函數(shù)留下的“垃圾”:例intx;charch;

scanf(“%d”,&x);

ch=getchar();

printf(“x=%d,ch=%d\n”,x,ch);執(zhí)行:123輸出:x=123,ch=10例intx;charch;

scanf(“%d”,&x);

scanf(“%c”,&ch);

printf(“x=%d,ch=%d\n”,x,ch);執(zhí)行:123輸出:x=123,ch=10解決方法:(1)用getchar()清除(2)用函數(shù)fflush(stdin)清除全部剩余內(nèi)容(3)用格式串中空格或“%*c”來“吃掉”例intx;charch;

scanf(“%d”,&x);

scanf(“%c”,&ch);或scanf(“%*c%c”,&ch);

例scanf(“%3c%2c”,&c1,&c2);

輸入abcde

在輸入字符數(shù)據(jù)時,若格式控制字符串中沒有非格式字符,則認(rèn)為所有輸入的字符均為有效字符。調(diào)用scanf函數(shù)時的注意事項scanf("%c%c%c",&a,&b,&c);

輸入dㄩeㄩf↙“d”a,“ㄩ”b,“e”

cscanf("%c%c%c",&a,&b,&c);

輸入def↙“d”a,“e”b,“f”

c例scanf(“%3d%*4d%f”,&k,&f);

輸入12345678765.43123k,8765.43f

‘a(chǎn)’c1,‘d’c2調(diào)用scanf函數(shù)時,應(yīng)當(dāng)注意變量類型與格式字符保持一致,否則雖然編譯能夠通過,但結(jié)果將不正確。例3.7輸入函數(shù)scanf程序示例。#include<stdio.h>main(){longi;doublef;

scanf("%hd%f",&i,&f);

printf("%d\t%g\n",i,f);}運行情況如下:1111111111123↙-859032121-9.25596e+061scanf函數(shù)也有一個返回值,這個返回值就是成功輸入的項數(shù)。調(diào)用scanf函數(shù)時的注意事項調(diào)用scanf函數(shù)時,應(yīng)當(dāng)注意變量類型與格式字符保持一致,否則雖然編譯能夠通過,但結(jié)果將不正確。例3.8輸入函數(shù)scanf的返回值。#include<stdio.h>main(){int

x,y;

printf("%d\n",scanf("%d%d",&x,&y));}運行結(jié)果:45ㄩ54↙2例3.9輸入函數(shù)scanf程序示例。#include<stdio.h>main(){int

a,b,c,d;

scanf("%d%d",&a,&b);

printf("a=%d,b=%d\n",a,b);

scanf("%d%d",&c,&d);

printf("c=%d,d=%d",c,d);}運行結(jié)果:45ㄩ54ㄩ23ㄩ89↙a=45,b=54c=23,d=893.13.23.33.4C語言語句概述字符數(shù)據(jù)的輸入輸出格式化輸入輸出函數(shù)順序結(jié)構(gòu)程序設(shè)計舉例本章主要內(nèi)容例輸入圓半徑,輸出圓周長和面積。#include<stdio.h>#definePI3.14159main(){floatr,l,s;

scanf("%f",&r);l=2*PI*r;s=PI*r*r;

printf("\nl=%8.4f",l);

printf("\ns=%8.4f",s);}運行情況如下:

5↙l=ㄩ31.4159s=ㄩ78.5397文件包含預(yù)處理命令變量定義輸入數(shù)據(jù)輸出數(shù)據(jù)3.4

順序結(jié)構(gòu)程序設(shè)計舉例#include<stdio.h>main(){

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論