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

下載本文檔

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

文檔簡(jiǎn)介

第3章qq順序結(jié)構(gòu)程序設(shè)計(jì)

本章主要內(nèi)容3.1

順序結(jié)構(gòu)程序的引入3.2數(shù)據(jù)的輸入3.3數(shù)據(jù)的輸出3.4基本語(yǔ)句及程序規(guī)范3.5順序結(jié)構(gòu)程序設(shè)計(jì)及實(shí)例3.1順序結(jié)構(gòu)程序的引入3.1.1問題與引例【引例】從鍵盤輸入一個(gè)3位正整數(shù)m,然后將其各位數(shù)字分離為a、b、c,并輸出。問題分析:將一個(gè)3位數(shù)的各位數(shù)字分離,實(shí)際上就是計(jì)算出各位數(shù)字的值,可以利用下列方法進(jìn)行運(yùn)算。百位:a=m/100十位:b=(m%100)/10個(gè)位:c=m%10對(duì)程序而言,順序結(jié)構(gòu)就是指按照書寫順序,自上而下順次執(zhí)行每一條語(yǔ)句。AB順序結(jié)構(gòu)ab3.1.2順序結(jié)構(gòu)的基本概念3.1.3順序結(jié)構(gòu)流程圖輸入數(shù)據(jù)數(shù)據(jù)處理輸出數(shù)據(jù)3.1.4順序結(jié)構(gòu)舉例【例3.1】從鍵盤輸入兩個(gè)整數(shù)a與b,將它們交換后輸出。算法分析在此程序中,可以使用scanf函數(shù)語(yǔ)句實(shí)現(xiàn)隨機(jī)輸入,將從鍵盤輸入的2個(gè)數(shù)分別賦給變量a、b;要交換兩個(gè)變量的值,可采用借助中間變量t的方法實(shí)現(xiàn)數(shù)據(jù)交換后輸出。#include<stdio.h>//標(biāo)準(zhǔn)庫(kù)函數(shù)聲明voidmain(){inta,b,t;//定義3個(gè)整型變量

printf("請(qǐng)輸入兩個(gè)數(shù):");//輸入提示

scanf("%d,%d",&a,&b);//格式化輸入函數(shù)

printf("交換前:a=%d,b=%d\n",a,b);//輸出交換前的兩個(gè)數(shù)t=a;a=b;b=t;//此前3句為兩數(shù)交換語(yǔ)句

printf("交換后:a=%d,b=%d\n",a,b);//輸出交換后的兩個(gè)數(shù)}思考:能否不借助于中間變量實(shí)現(xiàn)兩個(gè)整數(shù)的交換?8

1.getchar()函數(shù)的用法從標(biāo)準(zhǔn)輸入輸出設(shè)備上輸入一個(gè)字符,一般是鍵盤使用格式:ch=getchar();

例:#include<stdio.h>voidmain(){charc;c=getchar();printf("c=%d\n",c);}鍵盤上輸入的數(shù)字、空格、回車、逗號(hào)等都將作為一個(gè)字符輸入3.2數(shù)據(jù)的輸入#include<stdio.h>

//輸入小寫字母,輸出大寫字母voidmain(){charch1,ch2;//聲明變量ch1=getchar();

//從鍵盤輸入一個(gè)字符,并存入變量ch1printf("%c,%d\n",ch1,ch1);//輸出字母和其ASCII碼值c2=c1-32;

//小寫字母轉(zhuǎn)化為大寫字母

printf("%c,%d\n",ch2,ch2);

//輸出對(duì)應(yīng)的小寫字母和ASCII碼值}【例3.2】從鍵盤輸入一個(gè)小寫字母,輸出其對(duì)應(yīng)的大寫字母。注意點(diǎn):(1)getchar()是一個(gè)無(wú)參函數(shù),函數(shù)的返回值就是從鍵盤讀入的字符。(2)getchar()函數(shù)只能接收單個(gè)字符,輸入數(shù)字、空格、回車等也按字符處理。當(dāng)輸入多個(gè)字符時(shí),只接收第一個(gè)字符。(3)使用getchar()函數(shù)前必須包含文件"stdio.h"。(4)執(zhí)行g(shù)etchar()輸入字符時(shí),輸入后需要按回車鍵,這樣程序才會(huì)響應(yīng)輸入,繼續(xù)執(zhí)行后續(xù)語(yǔ)句。即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量中?!暗刂繁砹小笔怯扇舾蓚€(gè)地址組成的表列scanf("%d,%f",&a,&b);格式說明地址表列3.2.2格式化輸入函數(shù)scanf()格式輸入函數(shù)scanf

(格式控制字符串,地址表列);”&”是”地址運(yùn)算符”,&a指在a內(nèi)存中的地址。scanf()函數(shù)的格式說明(二)格式說明以%開始,以一個(gè)格式字符結(jié)束。格式字符格式字符含義d輸入一個(gè)帶符號(hào)的十進(jìn)制整數(shù)o輸入一個(gè)無(wú)符號(hào)的八進(jìn)制整數(shù)x輸入一個(gè)無(wú)符號(hào)的十六進(jìn)整數(shù)u輸入一個(gè)無(wú)符號(hào)的十進(jìn)制整數(shù)f/e用來輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入c輸入一個(gè)單字符s輸入一個(gè)字符串scanf的附加格式說明字符字符說明l用于輸入整型數(shù)據(jù)(可用%ld,%lo,%lx)以及型數(shù)據(jù)(用%lf或%le)h用于輸入短整型數(shù)據(jù)(可用%hd,%ho,%hx)域?qū)捴付ㄝ斎霐?shù)據(jù)所占寬度(列數(shù)),域?qū)拺?yīng)為正整數(shù)*表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量14使用scanf()函數(shù)需注意:(1)scanf()函數(shù)中一定給出變量地址,不可是變量名,否則出錯(cuò)。如:scanf("%d",a);錯(cuò)

scanf("%d",&a);對(duì)(2)scanf()函數(shù)可以設(shè)置輸入寬度,不能設(shè)置精度

floata; scanf("%5f",&a); 正確

scanf("%5.2f",&a);非法(3)輸入多個(gè)數(shù)據(jù)時(shí),格式控制串中沒有非格式字符,則輸入時(shí)數(shù)據(jù)間的分隔符可用空格、Tab鍵、回車鍵。如:scanf("%d%d%f",&a,&b,&c);格式輸入函數(shù)-scanf函數(shù)15(4)用連續(xù)%c輸入字符數(shù)據(jù)時(shí),任意字符都有效

scanf("%c%c%c",&a,&b,&c);printf("a=%c,b=%c,c=%c",a,b,c);

輸入:A,B,C

輸出:a=A,b=,,c=B

(5)如果格式控制字符串中有非格式字符,則輸入時(shí)也要輸入非格式字符。scanf("%d,%d,%d",&a,&b,&c);

輸入應(yīng)為:5,6,7若為:scanf("a=%d,b=%d,c=%d",&a,&b,&c);

輸入應(yīng)為:a=5,b=6,c=716(6)

輸入輸出格式控制符必須匹配,否則不能正確輸出

設(shè):從鍵盤輸入:1020.5<CR>

,分析各程序的輸出

voidmain(){inta;floatb;scanf("%d%d",&a,&b);printf("%d,%f",a,b); }voidmain(){inta;floatb;scanf("%d%f",&a,&b);printf("%d,%f\n",a,b);}voidmain(){inta;floatb;scanf("%d%d",&a,&b);printf("%d,%d",a,b); }17(7)遇到寬度設(shè)置,認(rèn)為數(shù)據(jù)輸入結(jié)束123.000000,456 voidmain() { intx; doublem; scanf("%4lf%d",&m,&x); printf("%lf,%d\n",m,x); } 若輸入123.456□23,則輸出結(jié)果是?18#include<stdio.h>main(){ inta,b; printf("Pleaseinputaandb:"); scanf("%2d%*2d%2d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);}(8)

%*

表示本輸入項(xiàng)在讀入后不賦給相應(yīng)變量19

putchar()向標(biāo)準(zhǔn)輸入輸出設(shè)備上輸出一個(gè)字符,一般是顯示器。使用格式:putchar(ch);已定義: intc;c='a';若想輸出字符a,可以用幾種方式?

putchar(c);

或putchar(‘a(chǎn)’);

或putchar(97);對(duì)于不可打印的字符,輸出方式有兩種:

putchar(012);和putchar('\12');3.3.1字符輸出函數(shù)putchar()3.3數(shù)據(jù)的輸出例:輸出控制字符、轉(zhuǎn)義字符。#include<stdio.h>voidmain(){putchar('\101');putchar('\n');putchar('\\');}例如:

printf("a=%d,b=%f",a,b);21調(diào)用格式:

printf("格式控制字符串",輸出表列);格式控制:格式說明(%格式字符)+普通字符輸出表列:即需要輸出的數(shù)據(jù),可以是表達(dá)式

函數(shù)名輸出表列普通字符格式說明:%格式說明符3.3.2格式化輸出函數(shù)printf()printf函數(shù)常用類型格式符表格式字符格式字符含義d以十進(jìn)制形式輸出一個(gè)帶符號(hào)的整數(shù)(默認(rèn)正數(shù)不輸出符號(hào))o以八進(jìn)制形式輸出一個(gè)無(wú)符號(hào)的整數(shù)(默認(rèn)不輸出前導(dǎo)符0)x,X以十六進(jìn)制形式輸出一個(gè)無(wú)符號(hào)的整數(shù)(默認(rèn)不輸出前導(dǎo)符0x或0X)u以十進(jìn)制形式輸出一個(gè)無(wú)符號(hào)的整數(shù)f以小數(shù)形式輸出帶符號(hào)的實(shí)數(shù)(包括單、雙精度)e,E以指數(shù)形式輸出帶符號(hào)的實(shí)數(shù)g,G選擇%f或%e格式輸出實(shí)數(shù)c輸出一個(gè)單字符s輸出一個(gè)字符串231.

標(biāo)志:-、+、#、空格、0的意義如下:

- 結(jié)果左對(duì)齊,右邊填空格

+ 輸出符號(hào)(正號(hào)或負(fù)號(hào))(只對(duì)十進(jìn)制數(shù))

空格 輸出值為正時(shí)冠以空格,為負(fù)時(shí)冠以負(fù)號(hào)

#

對(duì)c,s,d,i,u類無(wú)影響;對(duì)o類,在輸出時(shí)加前綴0;對(duì)x類,在輸出時(shí)加前綴0x;對(duì)e,g,f類,確保出現(xiàn)小數(shù)點(diǎn),即使無(wú)小數(shù)位時(shí)亦如此

0 右對(duì)齊輸出數(shù)據(jù)時(shí),不夠?qū)挾妊a(bǔ)0

Printf()函數(shù)24若實(shí)際位數(shù)多于定義的寬度:則按實(shí)際位數(shù)輸出。若實(shí)際位數(shù)少于定義的寬度:默認(rèn)右對(duì)齊,有負(fù)號(hào)左對(duì)齊n:

精度m:

域?qū)挘摧敵鲰?xiàng)在輸出設(shè)備上所占的寬度

輸出實(shí)型數(shù)據(jù),n指定實(shí)型數(shù)據(jù)所占的小數(shù)位數(shù)輸出字符串,n指定最多輸出的字符個(gè)數(shù)域?qū)捈熬龋╩.n)25例1:printf("%4d,%-4d,%4d",a,a,b);

若a=123,b=12345

則輸出結(jié)果是:□123,123□,12345例2:printf("%lf,%8.2lf\n",b,b);

若b=123.4567

則輸出結(jié)果是:123.456700,□□123.46例3:printf("%s,%8s,%8.3s","china","china","china");

則輸出結(jié)果是:china,□□□china,□□□□□chi格式輸出函數(shù)-printf函數(shù)26#include<stdio.h>main(){inta=100;floatb=123.255;printf("a=%d\n",a);printf("a=%10d\n",a);printf("a=%-10d\n",a);printf("a=%+d\n",a);printf("a=%d\n",a);printf("a=%#o\n",a);printf("a=%#x\n",a);printf("b=%07.1f\n",b);}//a=100

//a=□□□□□□□100//a=100□□□□□□□

//a=+100//a=□100//a=0144//a=0x64//b=00123.33.4基本語(yǔ)句及程序規(guī)范1、控制語(yǔ)句控制語(yǔ)句完成一定的控制功能。C語(yǔ)言只有9條控制語(yǔ)句,又可細(xì)分為三種:(1)選擇結(jié)構(gòu)控制語(yǔ)句(又稱為條件語(yǔ)句)

if()~else~,switch()~(2)循環(huán)結(jié)構(gòu)控制語(yǔ)句

do~while(),for()~,while()~,break,continue(3)其它控制語(yǔ)句

goto,return3.4.1C語(yǔ)言的基本語(yǔ)句2、函數(shù)調(diào)用語(yǔ)句函數(shù)調(diào)用語(yǔ)句由一次函數(shù)調(diào)用加一個(gè)分號(hào)(語(yǔ)句結(jié)束標(biāo)志)構(gòu)成。例如:printf("ThisisaCfunctionstatement.");3、表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句由表達(dá)式后加一個(gè)分號(hào)構(gòu)成。最典型的表達(dá)式語(yǔ)句是,在賦值表達(dá)式后加一個(gè)分號(hào)構(gòu)成的賦值語(yǔ)句。例如:“num=5”是一個(gè)賦值表達(dá)式,而“num=5;”卻是一個(gè)賦值語(yǔ)句。4、空語(yǔ)句空語(yǔ)句僅由一個(gè)分號(hào)構(gòu)成。顯然,空語(yǔ)句什么操作也不執(zhí)行。例如,下面就是一個(gè)空語(yǔ)句:;C語(yǔ)言語(yǔ)句概述5、復(fù)合語(yǔ)句復(fù)合語(yǔ)句是由大括號(hào)括起來的一組(也可以是1條)語(yǔ)句構(gòu)成。例如:

main(){……{……}//復(fù)合語(yǔ)句……}注意:

(1)在語(yǔ)法上和單一語(yǔ)句相同,即單一語(yǔ)句可以出現(xiàn)的地方,也可使用復(fù)合語(yǔ)句。右括號(hào)后不需要分號(hào)。(2)復(fù)合語(yǔ)句可以嵌套,即復(fù)合語(yǔ)句中也可出現(xiàn)復(fù)合語(yǔ)句。C語(yǔ)言的語(yǔ)句概述3.4.2程序的風(fēng)格與基本規(guī)范1.程序風(fēng)格最基本的是縮進(jìn)、花括號(hào)的位置以及換行等2.程序設(shè)計(jì)基本規(guī)范程序設(shè)計(jì)主要原則是“清晰第一,效率第二”,限制使用goto語(yǔ)句。(1)適當(dāng)增加注釋,并保持注釋與代碼完全一致。(2)每個(gè)源程序文件,都有文件頭說明。(3)每個(gè)函數(shù),都有函數(shù)頭說明。(4)定義標(biāo)識(shí)符時(shí),盡量“見名知義”,并通過注釋反映其含義。(5)利用縮進(jìn)來顯示程序的邏輯結(jié)構(gòu),縮進(jìn)量一致并以Tab鍵為單位,定義Tab為6個(gè)字節(jié)。(6)注釋可以與語(yǔ)句在同一行,也可以在上一行。(7)空行和空白字符也是一種特殊注釋。3.5.1順序結(jié)構(gòu)程序設(shè)計(jì)1.問題分析2.算法分析3.代碼設(shè)計(jì)4.運(yùn)行調(diào)試3.5順序結(jié)構(gòu)程序設(shè)計(jì)及實(shí)例【例3.7】已知圓柱的半徑和高,求圓柱的體積。#include<stdio.h>voidmain(){floatr,h,v;//定義變量:r為圓柱的底面半徑,h為高,v為體積printf("請(qǐng)輸入圓柱的底面半徑和高:");//輸出提示信息scanf("%f%f",&r,&h);//從鍵盤上輸入半徑和高v=3.1415926*r*r*h;//按公式計(jì)算圓柱體積printf("圓柱的體積是:%8.2f\n",v);

//按指定格式輸出變量v的值}【例3.8】輸入一個(gè)3位正整數(shù),輸出逆序后的數(shù)。如:輸入345,輸出為543。程序代碼#include<stdio.h>//標(biāo)準(zhǔn)庫(kù)函數(shù)聲明voidmain(){inta,b,c,x,y;//變量定義printf("請(qǐng)輸入一個(gè)三位數(shù):");//輸入提示scanf("%d",&x);//格式化輸入函數(shù)a=x/100;//計(jì)算

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論