C語言程序設計第3單元_第1頁
C語言程序設計第3單元_第2頁
C語言程序設計第3單元_第3頁
C語言程序設計第3單元_第4頁
C語言程序設計第3單元_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3單元順序結構摘要3.1算法與結構化程序設計3.1.1什么是算法3.1.2算法與流程圖3.1.3結構化程序設計及原則3.2C語言語句3.3字符輸入與輸出3.3.1字符輸入函數(shù)3.3.2字符輸出函數(shù)3.4格式化輸入與輸出3.4.1格式化輸入函數(shù)3.4.2格式化輸出函數(shù)實例分析與實現(xiàn)3.1算法與結構化程序設計3.1.1什么是算法4算法-Algorithm把大象裝進冰箱需要幾個步驟?第一步:把冰箱門打開;第二步:把大象放進冰箱;第三步:把冰箱門關上。5做任何事情都有一定的步驟。為解決一個問題而采取的方法和步驟,就稱為算法。

算法-Algorithm數(shù)值運算算法非數(shù)值運算算法計算機算法可分為兩大類:算法-Algorithm例:求1×2×3×4×5。S1:先求1×2,得到結果2。S2:將步驟1得到的乘積2再乘以3,得到結果6。S3:將6再乘以4,得到結果24。S4:將24再乘以5,得到結果120。S1:使t=1S2:使i=2S3:使t×i,乘積仍然放在在變量t中S4:使i的值+1,即i+1→iS5:如果i≤5,返回重新執(zhí)行步驟S3以及其后的S4和S5;否則,算法結束。S1:1→tS2:3→iS3:t×i→tS4:i+2→tS5:若i≤11,返回S3,否則,結束。求1×3×5×7×9×11?算法-AlgorithmC語言算法的特性有窮性有效性有一個或多個輸出有零個或多個輸入確定性3.1算法與結構化程序設計3.1.2算法與流程圖算法與流程圖起止框輸入輸出框判斷框處理框流程線連接點用流程圖表示算法:算法與流程圖【例3.2】將例3.1求5!的算法用流程圖表示。算法與流程圖三種基本結構和改進的流程圖

順序結構

選擇結構

循環(huán)結構只有一個入口;只有一個出口;結構內(nèi)的每一部分都有機會被執(zhí)行到;結構內(nèi)不存在“死循環(huán)”。算法與流程圖用N-S流程圖表示算法

順序結構

選擇結構

循環(huán)結構3.1算法與結構化程序設計3.1.3結構化程序設計及原則結構化程序設計及原則最早由迪杰斯特拉在1965年提出一個程序的任何邏輯問題都可由順序、選擇、循環(huán)三

種基本控制結構構造結構化程序中的任意基本結構都具有唯一入口和唯一出口,

且程序不會出現(xiàn)死循環(huán)在程序的靜態(tài)形式與動態(tài)執(zhí)行流程之間具有良好的對應關系結構化程序設計及原則三種基本的程序結構:

順序結構選擇結構循環(huán)結構結構化程序設計及原則結構化程序設計的原則:自頂向下逐步細化模塊化設計限制使用goto語句3.2C語言語句C語言語句C程序的基本組成

源文件1

源文件2函數(shù)1說明部分......函數(shù)2可執(zhí)行部分

語句

源文件i............預編譯命令

源文件nC程序C語言語句語句是C程序的基本組成成分。語句能完成特定操作,語句的有機組合能實現(xiàn)指定的計算處理功能。語句最后必須有一個分號,分號是C語句的組成部分。C語句的分類表達式語句運算符、常量、變量等可以組成表達式。表達式語句由一個表達式加一個分號構成。其一般形式為:表達式;執(zhí)行表達式語句就是計算表達式的值例如:a=5是一個賦值表達式,而a=5;是一個賦值語句。C語句的分類流程控制語句

C語言中控制程序流程的語句有三類,共9種語句。選擇語句:選擇語句有if語句和switch語句兩種循環(huán)語句:循環(huán)語句有for、while和do_while三種轉移語句:轉移語句有break,continue,return和goto四種

例如:if(a>b)max=a;elsemax=b;例如:for(i=1;i<10;i++)printf("%d",i);例如:for(i=1;i<10;i++){printf("%d",i);if(i==5)break;}C語句的分類函數(shù)調(diào)用語句

由一個函數(shù)調(diào)用加一個分號構成,例如:printf("ThisisaCstatement.");

C語句的分類復合語句用一對大括號括起一條或多條語句,稱為復合語句。注意:復合語句只視為一條語句,復合語句的“}”后面不能出現(xiàn)分號,而“}”前復合語句中最后一條語句的分號不能省略。例如:{t=a;a=b;b=t;};{t=a;a=b;b=t}均是錯誤的,

{t=a;a=b;b=t;}

則為正確的復合語句。C語句的分類空語句

空語句由一個分號組成,它表示什么操作也不做。例如:;C語言的輸入輸出第1步:數(shù)據(jù)輸入第2步:數(shù)據(jù)處理第3步:數(shù)據(jù)輸出C語言的輸入輸出為了實現(xiàn)輸入和輸出功能,在C語言的庫函數(shù)中提供了一組輸入輸出函數(shù)。使用標準輸入輸出庫函數(shù)時要用到“stdio.h”文件,因此源文件開頭應有以下預編譯命令:#include<stdio.h>或

#include"stdio.h"3.3字符輸入與輸出3.3.1字符輸入函數(shù)字符輸入函數(shù)getchar()getchar()函數(shù)的功能是從鍵盤上輸入一個字符。

其一般形式為:

getchar();通常把輸入的字符賦給一個字符變量,構成賦值語句。

例如:charc;c=getchar();字符輸入函數(shù)getchar()【例】輸入單個字符。#include<stdio.h>intmain(){charc;printf("inputacharacter\n");c=getchar();putchar(c);return0;}字符輸入函數(shù)getchar()使用getchar()函數(shù)時應注意以下幾點:getchar()函數(shù)只能接受單個字符,輸入數(shù)字也按字符處理。輸入多于一個字符時,只接收第一個字符。使用本函數(shù)前必須包含頭文件“stdio.h”3.3字符輸入與輸出3.3.2字符輸出函數(shù)字符輸出函數(shù)putchar()putchar()函數(shù)是字符輸出函數(shù),其功能是在顯示器上輸出單個字符。

其一般形式為:

putchar(c)

其中,c可以是被單引號引起來的單個字符,可以是介于0~127之間的一個十進制整型數(shù),也可以是一個字符型變量。例如:putchar('A');/*輸出大寫字母A*/putchar(66);/*輸出大寫字母B*/putchar(x);/*輸出字符變量x的值*/字符輸出函數(shù)putchar()【例】輸出單個字符。#include<stdio.h>intmain(){chara='B',b='o',c='k';putchar(a);putchar(b);putchar(b);putchar(c);putchar('\t');putchar(a);putchar(b);putchar('\n');putchar(b);putchar(c);return0;}字符輸出函數(shù)putchar()用putchar()函數(shù)可以輸出控制字符。例如:putchar(‘\n’)/*換行'*/putchar('\101')/*輸出字符'A'*/putchar('\'')/*輸出字符'*/putchar(‘\t’)/*跳制表域*/3.4格式化輸入與輸出3.4.1格式化輸入函數(shù)scanf()函數(shù)的使用

scanf函數(shù)的調(diào)用形式:

scanf(格式控制字符串,地址表列);

格式控制字符串的作用是根據(jù)特定的格式接收用戶輸入地址是由地址運算符“&”后跟變量名組成的例如:&a,&b分別表示變量a和變量b的地址。scanf()函數(shù)的使用【例】用scanf函數(shù)輸入數(shù)據(jù)。#include<stdio.h>intmain(){inta,b,c; printf("inputa,b,c\n");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d",a,b,c);return0;}scanf()函數(shù)常用格式控制符格式字符串的一般形式為:%[*][輸入數(shù)據(jù)寬度][長度]類型格式字符說明d,i用來輸入有符號的十進制整數(shù)u用來輸入無符號的十進制整數(shù)o用來輸入無符號的八進制整數(shù)x,X用來輸入無符號的十六進制整數(shù)c用來輸入單個字符s用來輸入字符串,將字符串送到一個字符數(shù)組中,在輸入時以非空白字符開始,以第一個空白字符結束。字符串以串結束標志'\0'作為其最后一個字符f用來輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入e,E,g,G與f作用相同,e與f、g可以互相替換字符功能說明l用于輸入長整型數(shù)據(jù)以及雙精度型數(shù)據(jù)h用于輸入短整型數(shù)據(jù)域寬指定輸入數(shù)據(jù)所占寬度,域寬應為正整數(shù)*表示本輸入項在讀入后不賦給相應的變量scanf()函數(shù)常用格式控制符【例】scanf(“%3d%3d”,&a,&b);

輸入:123456

變量a,b的值分別是多少?【例】scanf("%2d%*3d%2d",&a,&b);輸入:12□345□67變量a,b的值分別是多少?scanf()函數(shù)常用格式控制符在使用scanf函數(shù)時還須注意以下幾點:①scanf中要求給出變量地址,如給出變量名則會出錯。例如:inta;scanf(“%d”,a);//錯誤的scanf(“%d”,&a);//正確的scanf()函數(shù)常用格式控制符在使用scanf函數(shù)時還須注意以下幾點:②在輸入多個數(shù)值數(shù)據(jù)時,若格式控制串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔,則可用空格,TAB或回車作間隔。例如:inta,b,c;//令a=5,b=6,c=7scanf(“%d%d%d”,&a,&b,&c);輸入:567或567或567scanf()函數(shù)常用格式控制符在使用scanf函數(shù)時還須注意以下幾點:③在輸入字符數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。

例如:scanf("%c%c%c",&a,&b,&c);

輸入1:opq輸入2:opq結果是多少??scanf()函數(shù)常用格式控制符在使用scanf函數(shù)時還須注意以下幾點:④如果在格式控制字符串中加入空格作為間隔,則輸入時各數(shù)據(jù)之間可加空格。

例如:scanf("%c%c%c",&a,&b,&c);

輸入:mnk時,a=m,b=n,c=k

scanf()函數(shù)常用格式控制符在使用scanf函數(shù)時還須注意以下幾點:⑤如果格式控制字符串中有非格式字符則輸入時也要輸入該非格式字符。

例如:scanf("%d,%d,%d",&a,&b,&c);

輸入:8,9,10

例如:scanf(“a=%d,b=%d,c=%d",&a,&b,&c);

輸入:a=8,b=9,c=10scanf()函數(shù)常用格式控制符在使用scanf函數(shù)時還須注意以下幾點:⑥如輸入的數(shù)據(jù)與輸出的類型不一致時,雖然編譯能夠通過,但結果將不正確。scanf()函數(shù)常用格式控制符【例】為提高學生們對中華文化的學習熱情,某班級特舉辦“學習強國”答題競賽。請編程模擬答題過程。

例如:“魏晉時期的(

)因主持編繪《禹貢地域圖》和提出“制圖六體”而被稱為地圖學家。A.阮籍 B.嵇康 C.裴秀 D.向秀

“您的答案是:”分析:分析:通過對C語言輸入和輸出函數(shù)的學習可知,競賽題目的顯示應使用格式化輸出函數(shù)實現(xiàn);題目答案的輸入應使用格式化輸入函數(shù)實現(xiàn)。

3.4格式化輸入與輸出3.4.2格式化輸出函數(shù)printf()函數(shù)的使用

printf()函數(shù)的調(diào)用形式:printf(格式控制字符串,輸出項表);

功能:按格式控制字符串中的格式依次輸出輸出項表中的各輸出項。

printf()函數(shù)的使用格式控制字符串是用來說明各輸出項的輸出格式。輸出項表列出要輸出的項(常量、變量或表達式),各輸出項之間用逗號分開。若輸出項表不出現(xiàn),且格式字符串中不含格式信息,則輸出的是格式字符串本身。printf()函數(shù)的使用實際調(diào)用printf()函數(shù)時有兩種形式:形式1:printf(字符串);

功能:按原樣輸出字符串。

例如:printf("Howareyou\n");

輸出:Howareyou并換行。printf()函數(shù)的使用形式2:printf(格式控制字符串,輸出項表);

功能:按格式控制字符串中的格式依次輸出輸出項表中的各輸出項。

例如:printf("r=%d,s=%f\n",2,3.14*2*2);

輸出:r=2,s=12.560000。printf()函數(shù)的使用

格式字符串中有兩類字符:①非格式字符

非格式字符(或稱普通字符)一律按原樣輸出。如:上例中的"r="和"s="等。②格式字符

格式字符的形式:%[附加格式說明符]格式字符如:%d,%10.2f等。53printf()函數(shù)常用格式控制符常用的格式字符:d格式符:用來輸出十進制整數(shù)。有以下幾種用法:格式控制符功能舉例%d按十進制整型數(shù)據(jù)的實際長度輸出inta=5;printf(“%d”,a);輸出結果為:5

%mdm為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補以空格,若大于m,則按實際位數(shù)輸出printf("%4d,%4d",a,b);若a=123,b=12345,則輸出結果為:□123,12345

%ld輸出長整型數(shù)據(jù)longa=123456;printf("%8ld",a);輸出結果為:□□12345654printf()函數(shù)常用格式控制符常用的格式字符:o格式符:以八進制整數(shù)形式輸出。

例如:inta=-1;printf("%d,%o",a,a);-1在內(nèi)存單元中的存放形式(以補碼形式存放)如下:

輸出結果為:-1,377777777771111111111111111111111111111111155printf()函數(shù)常用格式控制符常用的格式字符:x格式符:以十六進制數(shù)形式輸出整數(shù)。例如:inta=-1;printf("%x,%o,%d",a,a,a);

輸出結果為:ffffffff,37777777777,-11111111111111111111111111111111156printf()函數(shù)常用格式控制符常用的格式字符:c格式符:用來輸出一個字符。

例如:

charc='a';printf("%c",c);

輸出結果為:a57printf()函數(shù)常用格式控制符【小提示】

一個整數(shù),只要它的值在0~255范圍內(nèi),也可以用"%c"使之按字符形式輸出;反之,一個字符數(shù)據(jù)也可以用整數(shù)形式輸出。58printf()函數(shù)常用格式控制符【例3.6】用printf函數(shù)輸出數(shù)據(jù)。#include<stdio.h>intmain(){inta=88,b=89;printf("%d%d\n",a,b);printf("%d,%d\n",a,b);printf("%c,%c\n",a,b);printf("a=%d,b=%d",a,b);return0;}59printf()函數(shù)常用格式控制符常用的格式字符:s格式符:用來輸出一個字符串。

格式控制符功能%s輸出一個字符串%ms輸出的字符串占m列,如字符串本身長度大于m,則突破m的限制,將字符串全部輸出。若串長小于m,則左補空格%-ms如果串長小于m,則在m列范圍內(nèi),字符串向左靠,右補空格%m.ns輸出占m列,但只取字符串中左端n個字符。這n個字符輸出在m列的右側,左補空格%-m.nsm、n含義同上,n個字符輸出在m列范圍的左側,右補空格。如果n>m,則m自動取n值,即保證n個字符正常輸出60printf()函數(shù)常用格式控制符【例3.7】s格式符的使用。#include<stdio.h>intmain(){printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");return0;}61printf()函數(shù)常用格式控制符常用的格式字符:f格式符:用來輸出實數(shù)(包括單、雙精度),以小數(shù)形式輸出。

格式控制符功能%f不指定字段寬度,由系統(tǒng)自動指定,整數(shù)部分全部輸出,并輸出6位小數(shù)%m.nf指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,則左補空格%-m.nf與%m.nf基本相同,只是使輸出的數(shù)值向左端靠齊,右端補空格%lf輸出

溫馨提示

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

評論

0/150

提交評論