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

下載本文檔

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

文檔簡介

C語言程序設(shè)計技術(shù)基礎(chǔ)太原理工大學(xué)計算機學(xué)院計算機基礎(chǔ)部第3章順序結(jié)構(gòu)程序設(shè)計§3.1C語言的基本語句§3.2常用輸出與輸入函數(shù)§3.3順序結(jié)構(gòu)程序舉例第3章順序結(jié)構(gòu)程序設(shè)計§3.1C語言的基本語句一個完整的C程序可以存放于一個或多個C源文件中,每一個C源文件又可以包含若干預(yù)處理命令和C函數(shù),數(shù)據(jù)聲明和執(zhí)行語句是構(gòu)成C函數(shù)的基本單元。C語言的語句是指示計算機完成某項任務(wù)的操作指令,是C程序中算法實現(xiàn)的最小單位。程序或函數(shù)的功能是由一系列語句實現(xiàn)的,不同的語句結(jié)構(gòu)可以構(gòu)成一個完整的程序。在C語言中,根據(jù)語句的功能可將C語句分為5類:表達式語句、函數(shù)調(diào)用語句、程序控制語句、空語句及復(fù)合語句?!?.1C語言的基本語句【例3-1】輸入兩個整數(shù),求它們的和與積。#include<stdio.h> voidmain(){

inta,b;

intsum,mul; /*以上是數(shù)據(jù)描述部分,以下是執(zhí)行語句部分*/

printf("請輸入兩個整數(shù):\n");

scanf(“%d%d”,&a,&b

); sum=a+b;

mul=a*b;

printf("兩數(shù)之和sum=%d,兩數(shù)之積mul=%d\n",sum,mul);}

3.1.1表達式語句表達式語句由表達式加一個分號“;”組成,其一般形式為:表達式;表達式可以是任意的表達式,包括賦值表達式、算術(shù)運算表達式、關(guān)系運算表達式及邏輯運算表達式等。 例如:

a=8; x=2*x+3*y; i++;

printf("Pleaseinputdata!\n");3.1.2函數(shù)調(diào)用語句函數(shù)調(diào)用語句由函數(shù)調(diào)用后加分號“;”構(gòu)成。 其一般形式為: 函數(shù)名(實際參數(shù)列表);函數(shù)調(diào)用語句的執(zhí)行過程為調(diào)用執(zhí)行被調(diào)函數(shù),實現(xiàn)函數(shù)的功能。例如:

printf("%d",a);

為調(diào)用C語言標準輸出函數(shù),完成輸出變量a的功能。3.1.3程序控制語句

1.條件判斷語句

(1)選擇(分支)語句:if()…else…;

(2)多分支選擇語句:switch。

2.循環(huán)執(zhí)行語句

(1)while語句:while()…;

(2)do-while語句:do…while();

(3)for語句:for()…。

3.轉(zhuǎn)向語句

(1)無條件轉(zhuǎn)向語句:goto<標號>;

(2)終止語句:break;可用于終止執(zhí)行switch和循環(huán)語句;

(3)結(jié)束本次循環(huán)語句:continue;

(4)函數(shù)返回語句:return。3.1.4空語句C語言中的空語句就是只有一個分號的語句:

;在編譯時,空語句不產(chǎn)生任何指令代碼,不執(zhí)行任何操作。3.1.5復(fù)合語句在C語言中,復(fù)合語句又稱為分程序(block),它是由一對花括號括起來的若干語句組成的。例如:

{

int

a,b,x; a=10; b=5; x=a-b;

printf("%d",x); }在上面的例子中,5條語句被一對花括號括起來,構(gòu)成一條復(fù)合語句。從語法上看,復(fù)合語句是作為一個語法整體出現(xiàn),在選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)程序設(shè)計中,經(jīng)常利用復(fù)合語句作為一個語法成分。返回§3.2常用輸出與輸入函數(shù)所謂輸入/輸出是以計算機主機為主體而言的,當需要將外界的數(shù)據(jù)送入計算機內(nèi)部時,由輸入設(shè)備(鍵盤、鼠標等)向計算機傳輸數(shù)據(jù)稱為輸入;當需要將計算機中的數(shù)據(jù)送給外界,即向輸出設(shè)備(顯示器、打印機等)傳輸數(shù)據(jù)成為輸出。在C語言中沒有專門的輸入/輸出語句,輸入/輸出操作是由C函數(shù)庫中的相關(guān)函數(shù)提供的。使用這些函數(shù)時,用預(yù)編譯命令“#include”將輸入/輸出頭文件包含在源程序文件中:

#include<stdio.h>常用的標準輸入/輸出函數(shù): (1)格式化輸入/輸出函數(shù):scanf()/printf()。 (2)字符輸入/輸出函數(shù):getchar()/putchar()。 (3)字符串輸入/輸出函數(shù):gets()/puts()。3.2.1輸出函數(shù)1.格式化輸出函數(shù)printf()

printf()函數(shù)的功能是按格式控制字符串指定的格式,向標準輸出設(shè)備輸出指定的數(shù)據(jù),其一般格式為:

printf("格式控制字符串",輸出項列表)

3.2.1輸出函數(shù)【例3-2】格式輸出簡例。 #include<stdio.h> voidmain() {

int

a;float

b;charc; a=5; b=12.3; c='A';

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

3.2.1輸出函數(shù)printf()函數(shù)的參數(shù)包括兩部分。 (1)輸出項列表 輸出項列表是一系列輸出項,各個輸出項之間用逗號“,”分隔,其中的輸出項可以是任何表達式,如常量、變量、運算表達式、函數(shù)調(diào)用表達式等。如【例3-2】中的“a,b,c”構(gòu)成一個輸出項列表。 (2)格式控制字符串 格式控制字符串是用于描述格式控制的字符串,如【例3-2】中的“a=%d,b=%f,c=%c\n”。

3.2.1輸出函數(shù)格式控制字符串包含兩種成分: ①普通字符:普通字符包括可見字符和轉(zhuǎn)義字符,可見字符主要是一些說明字符,輸出時按原樣顯示在屏幕上,如【例3-2】中的“a=”、“b=”、“c=”和“,”;轉(zhuǎn)義字符是不可見字符,控制產(chǎn)生特殊的輸出效果,如【例3-2】中的“\n”為回車換行符,輸出時顯示自動換到新的一行。

3.2.1輸出函數(shù)②格式說明:格式說明字符由“%”和“格式字符”組成,其作用是將要輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式,如【例3-2】中的“%d”、“%f

”和“%c”格式說明符按照左對應(yīng)關(guān)系控制輸出項列表中數(shù)據(jù)的輸出,如【例3-2】中格式控制中的第一個“%d”控制變量a的輸出,第二個“%f

”控制變量b的輸出,第三個“%c”控制變量c的輸出。在輸出時用格式說明字符對應(yīng)的控制項替代格式字符輸出。

3.2.1輸出函數(shù)

printf()函數(shù)從左向右將格式控制字符串中的普通字符輸出到屏幕上,如遇到格式說明符,就按格式說明符的規(guī)定將輸出項列表中對應(yīng)的輸出項所指的數(shù)據(jù)輸出到屏幕上顯示。在輸出時,對不同類型的數(shù)據(jù)要使用不同的格式字符,其一般形式為: %[<修飾符>]<格式字符>常用輸出格式字符和修飾符如表3-1和表3-2所示。

3.2.1輸出函數(shù)【例3-3】格式輸出函數(shù)綜合應(yīng)用。 #include<stdio.h> voidmain() {

inta=20,b=-50; floatx=12.345,y=-35.762; charc='E';

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

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

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

printf("a=%d,a=%o,a=%x\n",a,a,a); printf("x=%f,y=%f\n",x,y); printf("x=%8.2f,y=%8.2f\n",x,y);

printf("x=%-8.2f,y=%-8.2f\n",x,y

printf("%c,%3c\n",c,c);

printf("%s\n","CProgram"); printf("%10.5s\n","CProgram"); }

3.2.1輸出函數(shù)在使用printf()函數(shù)進行格式輸出時,還應(yīng)注意以下幾點:(1)輸出項列表中表達式的個數(shù)和類型與格式控制字符串中格式符一致。如果輸出項個數(shù)多于格式字符個數(shù),多余部分不輸出。(2)如果想輸出字符“%”,需要在格式控制字符串中連續(xù)使用兩個“%”,例如: printf("a=%%d\n",a); 若a的值為12,則輸出為: a=%12(3)printf()函數(shù)輸出項列表中的參數(shù)按從右向左的順序計算。不同編譯系統(tǒng)對函數(shù)參數(shù)的掃描順序不一定相同,可從右往左,也可從左往右。TurboC和VisualC++6.0是從右往左進行的。

3.2.1輸出函數(shù)【例3-4】參數(shù)求值順序簡例。

#include<stdio.h> voidmain() {

intx=8;

printf("x++=%d,x=%d,y=%d,x=%d\n",x++,x, (++x)+(x++)+(++x),x);

printf("x=%d\n",x); }

3.2.1輸出函數(shù)2.字符輸出函數(shù)putchar()

putchar()函數(shù)是字符輸出函數(shù),其功能是向終端輸出單個字符。其一般形式為:

putchar(參數(shù))

putchar()函數(shù)的參數(shù)可以是一個字符變量、一個整型變量或一個字符型常量(包括控制字符和轉(zhuǎn)義字符)等,作用是輸出該參數(shù)ASCII碼所對應(yīng)的字符。3.2.1輸出函數(shù)【例3-5】字符輸出函數(shù)簡例。

#include<stdio.h> voidmain() {

inta=71,b=79,c=68; charx='G',y='o',z='d'; putchar(a);putchar(b);putchar(b);putchar(c); putchar('\n'); putchar(x);putchar(y);putchar(y);putchar(z); putchar('\n'); }

3.2.2輸入函數(shù)1.格式化輸入函數(shù)scanf()

scanf()函數(shù)的功能是從鍵盤按指定格式輸入數(shù)據(jù),并將輸入的數(shù)據(jù)賦值給相應(yīng)的變量。其一般格式為:

scanf(“格式控制字符串”,輸入項列表)

3.2.2輸入函數(shù)【例3-6】格式輸入簡例。

#include<stdio.h> voidmain() {

int

a;float

b;charc;

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

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

}

3.2.2輸入函數(shù)

scanf()函數(shù)的參數(shù)包括兩部分。 (1)輸入項列表 輸入項列表由一系列變量地址組成,各個變量地址之間用逗號“,”分隔,其中的變量地址是在變量名前面加上地址操作符“&”構(gòu)成。如【例3-6】中的“&a,&b,&c”構(gòu)成一個輸入項列表。 (2)格式控制字符串 格式控制字符串用于描述數(shù)據(jù)的輸入格式,如【例3-6】中的“%d,%f,%c”,包含兩種成分。

3.2.2輸入函數(shù)格式控制字符串包含兩種成分: ①普通字符:與printf()函數(shù)不同,scanf()函數(shù)中的可見字符并不在屏幕上顯示,在輸入數(shù)據(jù)時要求原樣輸入。如【例3-6】中的scanf(“%d,%f,%c”,&a,&b,&c);輸入數(shù)據(jù)時應(yīng)輸入5,12.3,A↙,3個數(shù)據(jù)之間必須輸入“,”。

3.2.2輸入函數(shù)②格式說明:格式說明字符由“%”和“格式字符”組成,其作用是規(guī)定輸入項中的變量以何種數(shù)據(jù)類型的格式被輸入, 如【例3-6】中的“%d”、“%f”和“%c”。格式說明符按照左對應(yīng)關(guān)系控制輸入項列表中數(shù)據(jù)的輸入,如【例3-6】中格式控制中的第一個“%d”控制變量a以十進制整數(shù)的格式輸入,第二個“%f”控制變量b以小數(shù)形式浮點數(shù)的格式輸入,第三個“%c”控制變量c以字符型的格式輸入。

3.2.2輸入函數(shù)

scanf()函數(shù)與printf()函數(shù)中的格式說明類似,在輸入時,對不同類型的數(shù)據(jù)要使用不同的格式字符

,其一般形式為: %[<修飾符>]<格式字符>常用輸入格式字符和修飾符如表3-3和表3-4所示。

3.2.2輸入函數(shù)【例3-7】格式輸入函數(shù)綜合應(yīng)用。

#include<stdio.h> voidmain() {

inta,b; floatx=2.4,y=5.2,z=3.3; charch1,ch2; printf("請輸入三個實數(shù):"); scanf("%f,%*f,%f",&x,&y,&z); printf("x=%.1f,y=%.1f,z=%.1f\n",x,y,z); printf("請輸入兩個整數(shù):"); scanf("%d%3d",&a,&b); printf("a=%d,b=%d\n",a,b); fflush(stdin);/*清空輸入緩沖區(qū)*/ printf("請輸入兩個字符:"); scanf("%c%c",&ch1,&ch2); printf("ch1=%c,ch2=%c\n",ch1,ch2);

}

3.2.2輸入函數(shù)在使用scanf()函數(shù)進行格式輸入時,還應(yīng)注意以下幾點:(1)輸入的數(shù)據(jù)可以用空格符、制表符(tab)和換行符(enter)作為每個變量輸入值完畢的標志,以換行符作為數(shù)據(jù)輸入的結(jié)束。(2)如果在“格式控制字符串”中除了格式說明外還有其他的字符,則在輸入數(shù)據(jù)時在對應(yīng)位置應(yīng)輸入與這些字符相同的字符,如【例3-7】中:scanf("%f,%*f,%f",&x,&y,&z);在輸入時應(yīng)用如下形式:6.6,7.7,8.8↙(3)輸入數(shù)據(jù)時不能指定精度,例如: scanf("%5.2f",&x);這是一種錯誤的用法,在使用printf()函數(shù)輸出數(shù)據(jù)時可以規(guī)定精度。

3.2.2輸入函數(shù)2.字符輸入函數(shù)getchar()

getchar()函數(shù)是字符輸入函數(shù),其功能是從終端輸入單個字符。getchar()函數(shù)沒有參數(shù),其一般形式為:

getchar()使用getchar()函數(shù)時必須注意以下幾點:getchar()函數(shù)只能接受單個字符,輸入的數(shù)字也按字符處理。輸入多于一個字符時,只接收第一個字符。(2)通常把輸入的字符賦予一個字符變量,構(gòu)成賦值語句,例如: charc; c=getchar();(3)鍵盤接收字符之前屏幕上無任何提示信息,若需有提示信息,可在輸入語句前面用printf()函數(shù)提示用戶從鍵盤輸入數(shù)據(jù)。(4)用getchar()函數(shù)接收字符時,并不是從鍵盤輸入一個字符后立即響應(yīng),而是將輸入的數(shù)據(jù)先送入緩沖區(qū),待按下回車鍵后再一并執(zhí)行。3.2.2輸入函數(shù)【例3-8】字符輸入函數(shù)簡例。

#include<stdio.h> voidmain() { charc;

printf("inputacharacter\n"); c=getchar();

putchar(c);

putchar('\n');

}

返回§3.3順序結(jié)構(gòu)程序舉例【例3-9】編寫程序,從鍵盤輸入圓半徑,求圓周長和圓面積,并輸出結(jié)果(保留兩位小數(shù))。分析:圓周長的計算公式為;圓面積的計算公式為。在計算時使用的圓周率是一個常數(shù),使用C語言中的符號常量表示該常量,取值為3.1415926。數(shù)據(jù)設(shè)計:本程序根據(jù)圓半徑計算圓周長和圓面積,因此需要定義以下變量:

1個單精度實型變量r用來存放圓半徑。

1個單精度實型變量l用來存放圓周長。

1個單精度實型變量s用來存放圓面積?!?.3順序結(jié)構(gòu)程序舉例程序如下: #include<stdio.h> #definePI3.1415926 voidmain() { floatr,l,s;

printf("請輸入圓的半徑:\n");

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

printf("r=%-7.2f,l=%-7.2f,s=%-7.2f\n",r,l,s); }§3.3順序結(jié)構(gòu)程序舉例【例3-10】編寫程序,從鍵盤輸入兩個電阻的值,求它們并聯(lián)和串聯(lián)的電阻值,并輸出結(jié)果(保留兩位小數(shù))。分析:并聯(lián)和串聯(lián)的電阻值計算公式如下:并聯(lián)電阻,串聯(lián)電阻。數(shù)據(jù)設(shè)計:本程序根據(jù)上述公式計算兩個電阻并聯(lián)和串聯(lián)后的電阻值,因此需要定義以下變量: 兩個單精度實型變量r1、r2用來存放兩個電阻值。 1個單精度實型變量rs用來存放串聯(lián)后的電阻值。 1個單精度實型變量rp用來存放并聯(lián)后的電阻值。§3.3順序結(jié)構(gòu)程序舉例程序如下: #include<stdio.h> voidmain() { floatr1,r2,rp,rs;

printf("PleaseinputR1andR2:");

scanf("%f%f",&r1,&r2);

rs=(r1+r2);

rp=rs/(r1*r2);

printf("RP=%.2fRS=%.2f\n",rp,rs); }§3.3順序結(jié)構(gòu)程序舉例【例3-11】編寫程序,從鍵盤輸入一個字符,求出與該字符前后相鄰的兩個字符,按從小到大的順序輸出這3個字符的ASCII碼。

分析:字符變量的輸出可以有兩種形式,用“%c”輸出字符型,用“%d”輸出整型,其中整型數(shù)為字符所對應(yīng)的ASCII碼值。一個字符與其前后相鄰的兩個字符的ASCII碼值分別相差1。

數(shù)據(jù)設(shè)計:本程序只需要1個字符型變量ch用來存放鍵盤輸入的字符。與此字符前后相鄰的兩個字符在輸出函數(shù)中分別用表達式求解獲得?!?.3順序結(jié)構(gòu)程序舉例程序如下: #include<stdio.h> voidmain() { charch;

ch=getchar();

printf("%cASCIIcodeis%d\n",ch-1,ch-1);

printf("%cASCIIcodeis%d\n",ch,ch);

printf("%cASCIIcodeis%d\n",ch+1,ch+1); }§3.3順序結(jié)構(gòu)程序舉例【例3-12】編寫程序,根據(jù)公式計算我國10年后的人口數(shù)。人口增長問題:按照每年0.8%的增長速度,我國現(xiàn)有人口13.7億,10年后將有多少人口?并輸出結(jié)果(保留兩位小數(shù))。分析:人口計算公式為:其中,p0=13.7億,rate=0.8%,n=10。數(shù)據(jù)設(shè)計:本程序根據(jù)上述公式計算10年后我國的人口數(shù),因此需要定義以下變量:

1個整型變量n用來存放年限

溫馨提示

  • 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

提交評論