




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第3章順序結(jié)構(gòu)程序設(shè)計2025/10/101一、C語句概述二、格式輸出和輸入
三、字符輸出和輸入四、順序結(jié)構(gòu)程序設(shè)計舉例主要內(nèi)容2025/10/102一、C語句概述3.1.1C語句的五種類型1.表達式語句一般形式為:表達式;執(zhí)行語句就是計算表達式的值例:i++是個自增一表達式
而i++;就是個自增一語句
注:
a*b;是乘法運算語句但結(jié)果無法保留無實際意義2.函數(shù)調(diào)用語句由函數(shù)名+實際參數(shù)+;組成一般形式為:函數(shù)名(實參);執(zhí)行函數(shù)語句就是調(diào)用函數(shù)體并將實參值賦予形參讓后執(zhí)行被調(diào)函數(shù)體中的語句,求取函數(shù)值。例如:Printf(“cprogram”);調(diào)用庫函數(shù),輸出字符串。2025/10/1033.
控制語句用于控制程序的流程,以實現(xiàn)程序的各種結(jié)構(gòu)方式,它們由特定的語句定義符組成。C語言有九種控制語句,分為以下三類:(1)條件判斷語句
if語句,switch語句(2)循環(huán)執(zhí)行語句
dowhile語句,while語句,
for語句(3)break語句,goto語句,
continue語句,return語句4.復(fù)合語句把多條語句用{}括起來組成的一個語句,在程序中應(yīng)把復(fù)合語句看成單條語句例如:{x=y+z;
a=b+c;
printf(“%d%d”,x,a);}復(fù)合語句中各條語句都必須以;結(jié)尾}外不加;5.空語句只有分號的語句稱為空語句,空語句什么也不做。
創(chuàng)建圖表43.1.2賦值語句一般形式為:變量=表達式賦值語句的功能和特點都與賦值表達式相同,使用中應(yīng)注意以下幾點:1.賦值表達式和賦值語句的區(qū)別
表達式可以出現(xiàn)在允許表達式出現(xiàn)的地方,語句則不能
例如:
下述語句是合法的
if((x=y+5)>0)z=x;語句的功能是:若x=y+5大于0則z=x
下屬語句是非法的
if((x=y+5;)>0)z=x;
因為x+y是語句,不能出現(xiàn)在表達式中創(chuàng)建圖表52.注意變量初始化和賦值語句的區(qū)別在變量初始化時,不允許連續(xù)給多個變量賦初值比如:
inta=b=c=5;這種寫法是錯的,必須寫為:Inta=5,b=5,c=5;賦值語句允許連續(xù)賦值給變量,賦初值是變說明的一部分。賦初值后的變量與其后的其他同類變量之間仍必須用逗號間隔,而賦值語句必須用分號結(jié)尾。創(chuàng)建圖表6#include<stdio.h>main(){inta,b=8,k;if((a=b++)>=0)k=1;elsek=-1;a+=b*k;printf(“%d\t%d\t%d\n”,a,b,k);}【例3.1】條件語句中賦值表達式的使用
程序如下:創(chuàng)建圖表7說明:if語句后的條件是(a=b++)>0,即b先把值賦給a再自增一,這時a中的值若>0則條件為真執(zhí)行if下的語句k=1,將1賦給k。a+=b*k等于a=a+b*k,b在上面的語句中先引用將8給了a,后增一,所以b=9,a=8,k=1。a=8+9*1,a=17,將計算出的結(jié)果重新賦給a,a\b\k結(jié)果依次為17
91back創(chuàng)建圖表8二、格式輸出和輸入3.2.1格式輸出函數(shù)(printf函數(shù))1.函數(shù)的一般形式Printf(“格式控制”,輸出表列);Printf為標(biāo)準庫函數(shù),在頭文件<stdio.h>中包含著如右圖所示,其功能是按用戶指定的格式把指定的數(shù)據(jù)顯示到顯示屏幕上Printf(“a=%d,b=%d\n”,a,b);原樣輸出格式說明換行符輸出表2025/10/1092.格式控制格式控制也稱“轉(zhuǎn)換控制字串”,用于指定輸出格式。格式控制中包含以下三種字符:(1)格式字符:創(chuàng)建圖表10格式字符作用d以十進制形式輸出帶符號整數(shù)(正數(shù)不輸出符號)u以十進制形式輸出無符號整數(shù)f以小數(shù)形式輸出單、雙精度實數(shù),隱含輸出六位小數(shù)s輸出字符串c以字符形式輸出,只輸出一個字符E,e以標(biāo)準指數(shù)形式輸出單、雙精度實數(shù)X,x以十六進制形式輸出無符號整數(shù)(不輸出前綴0X)o以八進制形式輸出無符號整數(shù)(不輸出前綴0)G,g以%f%e中較短的輸出寬度輸出單、雙精度實數(shù)創(chuàng)建圖表11說明:①可以在"%"和字母之間插進數(shù)字表示最大長寬。如果字符串的長度、或整型數(shù)位數(shù)超過說明的長寬,將按其實際長度輸出。但對浮點數(shù),若整數(shù)部分位數(shù)超過了說明的整數(shù)位寬度,將按實際整數(shù)位輸出;若小數(shù)部分位數(shù)超過了說明的小數(shù)位寬度,則按說明的寬度以四舍五入輸出。另外,若想在輸出值前加一些0,就應(yīng)在場寬項前加個0。如果用浮點數(shù)表示字符或整型量的輸出格式,小數(shù)點后的數(shù)字代表最大寬度,小數(shù)點前的數(shù)字代表最小寬度。創(chuàng)建圖表12②可以在“%”和字母之間加小寫字母l,表示輸出的是長型數(shù)。③可以控制輸出左對齊或右對齊,即在"%"和字母之間加入一個"-"號可說明輸出為左對齊,否則為右對齊。
創(chuàng)建圖表13(2)轉(zhuǎn)義字符:例如,例3.1中printf()函數(shù)中的’\n’就是轉(zhuǎn)義字符,輸出時產(chǎn)生一個“換行”操作。常用轉(zhuǎn)義字符見第二章表2.1。(3)普通字符:在輸出時原樣輸出,在顯示中起提示作用。如下語句中printf("a=%d",5*5);“a=”為普通字符串,此語句輸出結(jié)果是a=25創(chuàng)建圖表143.輸出表列輸出表列中給出了各個輸出項,可以是常量、變量、表達式和函數(shù)。如果要輸出的數(shù)據(jù)不止1個,相鄰2個之間用逗號分開。要求格式字符和各輸出項在數(shù)量和類型上應(yīng)該一一對應(yīng)。創(chuàng)建圖表15例3.2利用printf函數(shù)輸出各變量值程序如下:#include”stdio.h”main(){charc;inta=1234;floatf=3.141592653589;doublex=0.12345678987654321;c='\x41';printf("a=%d\n",a);/*結(jié)果輸出十進制整數(shù)a=1234*/
printf("a=%6d\n",a);/*結(jié)果輸出6位十進制數(shù)a=1234*/printf("a=%06d\n",a);/*結(jié)果輸出6位十進制數(shù)a=001234*/printf("a=%2d\n",a);/*a超過2位,按實際值輸出a=1234*/printf("f=%f\n",f);/*輸出浮點數(shù)f=3.141593*/printf("f=6.4f\n",f);/*輸出6位其中小數(shù)點后4位的浮點數(shù)f=3.1416*/printf("x=%lf\n",x);/*輸出長浮點數(shù)x=0.123457*/printf("x=%18.16lf\n",x);/*輸出18位其中小數(shù)點后16位的長浮點數(shù)*/printf("c=%c\n",c);/*輸出字符c=A*/printf("c=%x\n",c);/*輸出字符的ASCII碼值c=41*/}創(chuàng)建圖表16創(chuàng)建圖表173.2.2格式輸入函數(shù)(scanf函數(shù))1.scanf函數(shù)的一般形式scanf函數(shù)稱為格式輸入函數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中。scanf函數(shù)是一個標(biāo)準庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中,與printf函數(shù)相同,C語言也允許在使用scanf函數(shù)之前不必包含stdio.h文件。創(chuàng)建圖表18scanf函數(shù)的一般形式如下:scanf(“格式控制”,地址表列);scanf(“a=%d,b=%d”,&a,&b);原樣輸入格式說明地址列表如下圖所示:創(chuàng)建圖表192.格式控制scanf函數(shù)中的“格式控制”的作用與printf函數(shù)的相同,但不能顯示普通字符,即非格式字符串,也就是不能顯示提示字符串。表3.3列出了scanf函數(shù)用到的格式字符。
創(chuàng)建圖表20━━━━━━━━━━━━━━━━━━━━━━━━━━━
格式字符作用───────────────────────────
d輸入十進制整數(shù)
u輸入無符號十進制整數(shù)
f或e輸入實型數(shù)(用小數(shù)形式或指數(shù)形式)s輸入字符串
c輸入單個字符
x,X輸入十六進制整數(shù)
0輸入八進制整數(shù)━━━━━━━━━━━━━━━━━━━━━━━━━━━創(chuàng)建圖表21說明:
(1)可以在"%"和字母之間插進數(shù)字指定輸入的寬度(即字符數(shù))。例如:scanf("%5d",&a);輸入:12345678只把12345賦予變量a,其余部分被截去。又如:
scanf("%4d%4d",&a,&b);輸入:12345678將把1234賦予a,而把5678賦予b。(2)可以在"%"和字母之間加長度格式符為l和h,l表示輸入長整型數(shù)據(jù)(如%ld)和雙精度浮點數(shù)(如%lf)。h表示輸入短整型數(shù)據(jù)。創(chuàng)建圖表223.地址表列地址表列中給出各變量的地址。地址是由地址運算符“&”后跟變量名組成的。例如,&a,&b分別表示變量a和變量b的地址。這個地址就是編譯系統(tǒng)在內(nèi)存中給a,b變量分配的地址。應(yīng)該把變量的值和變量的地址這兩個不同的概念區(qū)別開來。變量的地址是C編譯系統(tǒng)分配的,用戶不必關(guān)心具體的地址是多少。創(chuàng)建圖表23變量的地址和變量值的關(guān)系如下:若a=567,a為變量名,567是變量的值,&a是變量a的地址。在賦值表達式中,賦值號左邊是變量名,不能寫地址,而scanf函數(shù)在本質(zhì)上也是給變量賦值,但要求寫變量的地址,如&a。這兩者在形式上是不同的。&是一個取地址運算符,&a是一個表達式,其功能是求變量的地址。如下例創(chuàng)建圖表24【例3.3】&的用法!程序如下:#include<stdio.h>main(){inta,b,c;printf("inputa,b,c\n");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);}創(chuàng)建圖表25創(chuàng)建圖表26在本例中,由于scanf函數(shù)本身不能顯示提示串,故先用printf語句在屏幕上輸出提示,請用戶輸入a、b、c的值。執(zhí)行scanf語句,則在運行窗口中等待用戶輸入數(shù)據(jù)。用戶輸入789后按下回車鍵,此時,運行窗口顯示程序的運行結(jié)果。在scanf語句的格式串中由于沒有非格式字符在“%d%d%d”之間作輸入時的間隔,因此在輸入時要用一個以上的空格或回車鍵或Tab鍵作為每兩個輸入數(shù)之間的間隔。如:789或7
8
9創(chuàng)建圖表274.使用scanf函數(shù)時應(yīng)注意以下幾點:(1)scanf函數(shù)中沒有小數(shù)位數(shù)控制,如:scanf("%5.2f",&a);是非法的。不能企圖用此語句輸入小數(shù)為2位的實數(shù)。(2)scanf中要求給出變量地址,如給出變量名則會出錯。如scanf(“%d”,a);是非法的,應(yīng)改為scnaf(“%d”,&a);才是合法的。創(chuàng)建圖表28(4)在輸入字符數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。例如:scanf("%c%c%c",&a,&b,&c);輸入為:def則把‘d’賦予a,‘’賦予b,‘e’賦予c。只有當(dāng)輸入為:def時,才能把'd'賦于a,'e'賦予b,'f'賦予c。(3)在輸入多個數(shù)值數(shù)據(jù)時,若格式控制串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔則可用空格,TAB或回車作間隔。C編譯在碰到空格,TAB,回車或非法數(shù)據(jù)(如對“%d”輸入“12A”時,A即為非法數(shù)據(jù))時即認為該數(shù)據(jù)結(jié)束
創(chuàng)建圖表29(5)如果格式控制串中有非格式字符,則輸入時也要輸入該非格式字符。例如: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=7同樣,如果在格式控制中加入空格作為間隔,如scanf("%c%c%c",&a,&b,&c);則輸入時各數(shù)據(jù)之間可加空格。
back創(chuàng)建圖表30三、字符的輸出和輸入1.函數(shù)的一般形式putchar函數(shù)是字符輸出函數(shù),其功能是在顯示器上輸出單個字符。其調(diào)用一般形式如下:putchar(字符變量)
2.函數(shù)說明(1)“字符變量”可以是:字符常量、變量、字符表達式
2025/10/1031【例3.4】輸出字符程序如下:#include<stdio.h>main(){charc=’E’;putchar('A');/*輸出大寫字母A*/putchar(c);/*輸出字符變量c的值*/putchar(c+3);/*輸出字符表達式c+3的值*/putchar('\n');/*輸出換行對控制字符則執(zhí)行控制功能,不在屏幕上顯示*/}
創(chuàng)建圖表32創(chuàng)建圖表33(2)使用本函數(shù)前必須要用文件包含命令:#include<stdio.h>利用putchar函數(shù)輸出字符程序如下:#include<stdio.h>main(){chara='G',b='o',c='d';
putchar(a);putchar(b);putchar(b);putchar(c);putchar('\t');putchar(a);putchar(b);putchar('\n');putchar(b);putchar(c);putchar('\n');}
創(chuàng)建圖表34創(chuàng)建圖表35getchar()函數(shù)也是從鍵盤上讀入一個字符,并顯示在屏幕上。它與前面兩個函數(shù)的區(qū)別在于:getchar()函數(shù)等待輸入直到按回車才結(jié)束,回車前的所有輸入字符都會逐個顯示在屏幕上。但只有第一個字符作為函數(shù)的返回值。getchar()函數(shù)的調(diào)用格式為:
getchar();
3.3.2字符輸入函數(shù)(getchar)
創(chuàng)建圖表36【例3.6】getchar()函數(shù)的使用程序如下:#include<stdio.h>main(){charc;c=getchar();/*從鍵盤讀入字符直到回車結(jié)束*/putchar(c);/*顯示輸入的第一個字符*/printf(“\n”);}
創(chuàng)建圖表37back創(chuàng)建圖表38四、順序結(jié)構(gòu)程序設(shè)計舉例【例3.7】輸入圓柱體的半徑和高,計算該圓柱體的體積。分析:已知圓柱體的半徑,設(shè)為r,高設(shè)為h,輸出體積vol。計算圓柱體體積的數(shù)學(xué)公式是定義3個單精度的變量,分別是半徑r、高h、體積v利用格式輸入語句輸入半徑和高計算體積輸出體積圖3-9程序分析N-S圖2025/10/1039#include“stdio.h”voidmain(){floatr,h,v;printf("Pleaseinputradiusandhigh:");scanf("%f%f",&r,&h);v=3.14*r*r*h;printf("v=%f\n",v);}程序如下:創(chuàng)建圖表40創(chuàng)建圖表41【例3.8】從鍵盤輸入一個小寫字母,要求用大寫字母輸出。分析:已知一個小寫字母設(shè)為c1,要輸出其大寫字母c2。大寫字母abc…z的ASCII(十進制)是97,98,99…,而大寫字母ABC…Z的ASCII(十進制)是65,66,67…,一個字母的大小寫ASCII值相差是32,用公式表示如下:c2(大寫字母)=c1(小寫字母)-32創(chuàng)建圖表42定義2個字符變量輸入一個小寫字母將小寫字母轉(zhuǎn)換為大寫字母輸出大寫字母圖3-11程序分析N-S圖程序如下: #include"stdio.h"voidmain(){charc1,c2;c1=getchar();printf("lower=%c\n",c1);c2=c1-32;printf("upper=%c\n",c2);}創(chuàng)建圖表43創(chuàng)建圖表44【例3.9】求方程ax2+bx+c=0的根。a、b、c由鍵盤輸入,設(shè)b2-4ac>0。分析:已知a、b、c的值,輸出方程的根x1和x2。定義6個變量,分別是3個系數(shù),Δ的值和兩個根輸入3個系數(shù)的值計算b2-4ac計算根
x=
輸出根的值圖
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中美術(shù)考試題及答案
- 客戶信息收集與維護記錄表模板
- 生產(chǎn)進度跟蹤與質(zhì)量控制表
- 我的校園美好生活記作文(8篇)
- 高級花卉工考試題及答案
- 2025年病案編碼員考試題庫資格證考試模擬試題(附答案)
- 2025年丙肝培訓(xùn)考試題和答案
- 水電組 勞務(wù)分包合同6篇
- 2025貴陽學(xué)院人才引進15人考前自測高頻考點模擬試題及一套答案詳解
- 人力資源管理流程標(biāo)準化實施流程工具
- 靜脈輸液藥物外滲應(yīng)急快速處理指南
- 人工智能與核醫(yī)學(xué)的深度融合與應(yīng)用探索
- 關(guān)于三違管理辦法
- 成人高考專升本政治考試歷年真題(含答案)
- GB/T 15704-2025道路車輛輕合金車輪沖擊試驗方法
- GB/T 10819-2025木制底盤
- 女生青春期性教育核心知識框架
- 船舶消防救生培訓(xùn)課件
- 貴州貴州磷化有限責(zé)任公司招聘筆試真題2024
- 2023中國臨床腫瘤學(xué)會(CSCO)非小細胞肺癌診療指南
- 中興信息安全管理制度
評論
0/150
提交評論