国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C語(yǔ)言程序設(shè)計(jì)(第3章 程序控制語(yǔ)句)

2019-11-17 05:41:35
字體:
供稿:網(wǎng)友
3.1 程序的三種基本結(jié)構(gòu)
3.2 數(shù)據(jù)的輸入與輸出
    3.2.1 scanf()函數(shù)
    3.2.2 PRintf( )函數(shù)
    3.2.3 getchar()函數(shù)與putchar()函數(shù)
    3.2.4 程序應(yīng)用舉例
3.3 條件控制語(yǔ)句
    3.3.1 if語(yǔ)句
    3.3.2 switch 語(yǔ)句
    3.3.3 程序應(yīng)用舉例




3.1 程序的三種基本結(jié)構(gòu)
    通常的計(jì)算機(jī)程序總是由若干條語(yǔ)句組成,從執(zhí)行方式上看,從第一條語(yǔ)句到最后一條語(yǔ)句完全按順序執(zhí)行,是簡(jiǎn)單的順序結(jié)構(gòu);若在程序執(zhí)行過程當(dāng)中,根據(jù)用戶的輸入或中間結(jié)果去執(zhí)行若干不同的任務(wù)則為選擇結(jié)構(gòu);假如在程序的某處,需要根據(jù)某項(xiàng)條件重復(fù)地執(zhí)行某項(xiàng)任務(wù)若干次或直到滿足或不滿足某條件為止,這就構(gòu)成循環(huán)結(jié)構(gòu)。大多數(shù)情況下,程序都不會(huì)是簡(jiǎn)單的順序結(jié)構(gòu),而是順序、選擇、循環(huán)三種結(jié)構(gòu)的復(fù)雜組合。
    三種基本結(jié)構(gòu)的流程圖、N - S圖以及PAD圖可以參看本書第1章1.4節(jié)“算法”相關(guān)內(nèi)容。
    C語(yǔ)言中,有一組相關(guān)的控制語(yǔ)句,用以實(shí)現(xiàn)選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu):
    選擇控制語(yǔ)句: if;    switch、case
    循環(huán)控制語(yǔ)句: for、while、do while
    轉(zhuǎn)移控制語(yǔ)句: break、continue、go to
    我們將在后面幾節(jié)中具體介紹。

3.2 數(shù)據(jù)的輸入與輸出
    在程序的運(yùn)行過程中,往往需要由用戶輸入一些數(shù)據(jù),而程序運(yùn)算所得到的計(jì)算結(jié)果等又需要輸出給用戶,由此實(shí)現(xiàn)人與計(jì)算機(jī)之間的交互,所以在程序設(shè)計(jì)中,輸入輸出語(yǔ)句是一類必不可少的重要語(yǔ)句,在C語(yǔ)言中,沒有專門的輸入輸出語(yǔ)句,所有的輸入輸出操作都是通過對(duì)標(biāo)準(zhǔn)I / O庫(kù)函數(shù)的調(diào)用實(shí)現(xiàn)。最常用的輸入輸出函數(shù)有scanf( )、pri ntf( )、getchar( )和putchar( ),以下分別介紹。

3.2.1 scanf()函數(shù)
    格式化輸入函數(shù)scanf( )的功能是從鍵盤上輸入數(shù)據(jù),該輸入數(shù)據(jù)按指定的輸入格式被賦給相應(yīng)的輸入項(xiàng)。函數(shù)一般格式為:
    scanf( "控制字符串",輸入項(xiàng)列表);
    其中控制字符串規(guī)定數(shù)據(jù)的輸入格式,必須用雙引號(hào)括起,其內(nèi)容是由格式說明和普通字符兩部分組成。輸入項(xiàng)列表則由一個(gè)或多個(gè)變量地址組成,當(dāng)變量地址有多個(gè)時(shí),各變量地址之間用逗號(hào)“,”分隔。
    scanf( )中各變量要加地址操作符,就是變量名前加“ &”,這是初學(xué)者輕易忽略的一個(gè)問題。應(yīng)注重輸入類型與變量類型一致。
    下面探討控制字符串的兩個(gè)組成部分:格式說明和普通字符。
1. 格式說明
    格式說明規(guī)定了輸入項(xiàng)中的變量以何種類型的數(shù)據(jù)格式被輸入,形式是:
    % [ <修飾符> ] <格式字>
    各個(gè)格式字符及其意義見表3 - 1。
    表3-1 輸入格式字符
    格式字符         意義
     d          輸入一個(gè)十進(jìn)制整數(shù)
     o          輸入一個(gè)八進(jìn)制整數(shù)
     x          輸入一個(gè)十六進(jìn)制整數(shù)
     f          輸入一個(gè)小數(shù)形式的浮點(diǎn)數(shù)
     e          輸入一個(gè)指數(shù)形式的浮點(diǎn)數(shù)
     c          輸入一個(gè)字符
     s          輸入一個(gè)字符串

    各修飾符是可選的,可以沒有,這些修飾符是:
⑴ 字段寬度
    例如:scanf("%3d",&a)
按寬度3輸入一個(gè)整數(shù)賦給變量a。
⑵ l和h
    可以和d、o、x一起使用,加l表示輸入數(shù)據(jù)為長(zhǎng)整數(shù),加h表示輸入數(shù)據(jù)為短整數(shù),例如:
    scanf("%10ld % hd" , &x , &i)
    則x按寬度為1 0的長(zhǎng)整型讀入,而i按短整數(shù)讀入。
⑶ 字符*
    *表示按規(guī)定格式輸入但不賦予相應(yīng)變量,作用是跳過相應(yīng)的數(shù)據(jù)。
    例如:
    scanf("%4d % *d % 4d" , &x , &y , &z)
    執(zhí)行該語(yǔ)句,若輸入為“1 2 3”
    結(jié)果為x = 1,z = 3,y未賦值,2被跳過。

2. 普通字符
    普通字符包括空格、轉(zhuǎn)義字符和可打印字符。
(1) 空格
    在有多個(gè)輸入項(xiàng)時(shí),一般用空格或回車作為分隔符,若以空格作分隔符,則當(dāng)輸入項(xiàng)中包含字符類型時(shí),可能產(chǎn)生非預(yù)期的結(jié)果,例如:
    scanf("%d %c" , &a , &ch)
    輸入32q
    期望a = 32,ch = q,但實(shí)際上,分隔符空格被讀入并賦給ch。
為避免這種情況,可使用如下語(yǔ)句:
    scanf("%d %c" , &a , &ch)
    此處% d后的空格,就可跳過字符“ q”前的所有空格,保證非空格數(shù)據(jù)的正確錄入。
(2) 轉(zhuǎn)義字符: /n、/t
    先看下面的例子:
    scanf("%d %d" , &a , &b);
    scanf("%d %d %d" , &x , &y , &z);
    輸入為1 2 3
    4 5 6
    結(jié)果為:a = 1, b = 2, x = 3, y = 4, z = 5
    若將上述語(yǔ)句改為:
    scanf("%d %d/n" , &a , &b);
    scanf("%d %d %d" , &x , &y , &z);
    對(duì)同樣的輸入,其結(jié)果為a = 1,b = 2,x = 4,y = 5,z = 6,由于在第一個(gè)scanf的最后有一個(gè)/n,所以第二個(gè)scanf語(yǔ)句將從第二個(gè)輸入行獲得數(shù)據(jù)。
(3) 可打印字符
    例如:scanf("%d,%d,%c",&a,&b,&ch);
    當(dāng)輸入為: 1, 2, q
    即:a = 1,b = 2,ch = q
    若輸入為1 2 q
    除a = 1正確賦值外,對(duì)b與c h的賦值都將以失敗告終,也就是說,這些不打印字符應(yīng)是輸入數(shù)據(jù)分隔符,scanf在讀入時(shí)自動(dòng)去除與可打印字符相同的字符。

[例3-1] 試編寫求梯形面積的程序,數(shù)據(jù)由鍵盤輸入。
分析:設(shè)梯形上底為A,下底為B,高為H面職為S,則
    S=(A+B)×H÷2
程序如下:
main( )
{
    float a,b,h,s;
    printf("please input a,b,h:");
    scanf("%f %f %f" , &a , &b , &h);
    s = 0.5 * (a + b) * h;
    printf("a=%5.2f b=%5.2f h=%5.2f",a,b,h);
    printf("s = %7.4f" , s ) ;
}
運(yùn)行結(jié)果如下:
please input a,b,h:3.5 4.2 2.8
a=3.50 b=4.20 h=2.80
s = 10.7800

3.2.2 printf( )函數(shù)
    與格式化輸入函數(shù)scanf( )相對(duì)應(yīng)的是格式化輸出函數(shù)printf( ),其功能為按控制字符串規(guī)定的格式,向缺省輸出設(shè)備(一般為顯示器)輸出在輸出項(xiàng)列表中列出的各輸出項(xiàng),其基本格式為:
printf(“控制字符串”,輸出項(xiàng)列表)
輸出項(xiàng)可以是常量、變量、表達(dá)式,其類型與個(gè)數(shù)必須與控制字符串中格式字符的類型、個(gè)數(shù)一致、當(dāng)有多個(gè)輸出項(xiàng)時(shí),各項(xiàng)之間用逗號(hào)分隔??刂谱址仨氂秒p引號(hào)括起,由格式說明和普通字符兩部分組成。
1. 格式說明
一般格式為:
% [ <修飾符> ] <格式字符>
格式字符規(guī)定了對(duì)應(yīng)輸出項(xiàng)的輸出格式,常用格式字符見表3 - 2。
表3-2 輸出格式字符

格式字符意義格式字符意義c按字符型輸出o按八進(jìn)制整數(shù)輸出d按十進(jìn)制整數(shù)輸出x按十六進(jìn)制整數(shù)輸出u按無符號(hào)整數(shù)輸出s按字符串輸出f按浮點(diǎn)型小數(shù)輸出g按e和f格式中較短的一種輸出e按科學(xué)計(jì)數(shù)法輸出
[1] [2] [3] [4] [5] 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 固阳县| 瑞丽市| 贵州省| 宁武县| 毕节市| 宣威市| 类乌齐县| 卢龙县| 荥经县| 合水县| 辉县市| 洪洞县| 潮州市| 昔阳县| 常德市| 共和县| 定边县| 澳门| 丰县| 汉源县| 平昌县| 莲花县| 射阳县| 马尔康县| 内江市| 正阳县| 西和县| 五河县| 九龙城区| 大方县| 泽库县| 六安市| 宁津县| 吉首市| 牡丹江市| 溆浦县| 寻甸| 慈利县| 阿克苏市| 洛南县| 绥化市|