版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計技術基礎太原理工大學計算機學院計算機基礎部第3章順序結構程序設計§3.1C語言的基本語句§3.2常用輸出與輸入函數§3.3順序結構程序舉例第3章順序結構程序設計§3.1C語言的基本語句一個完整的C程序可以存放于一個或多個C源文件中,每一個C源文件又可以包含若干預處理命令和C函數,數據聲明和執(zhí)行語句是構成C函數的基本單元。C語言的語句是指示計算機完成某項任務的操作指令,是C程序中算法實現的最小單位。程序或函數的功能是由一系列語句實現的,不同的語句結構可以構成一個完整的程序。在C語言中,根據語句的功能可將C語句分為5類:表達式語句、函數調用語句、程序控制語句、空語句及復合語句?!?.1C語言的基本語句【例3-1】輸入兩個整數,求它們的和與積。#include<stdio.h> voidmain(){
inta,b;
intsum,mul; /*以上是數據描述部分,以下是執(zhí)行語句部分*/
printf("請輸入兩個整數:\n");
scanf(“%d%d”,&a,&b
); sum=a+b;
mul=a*b;
printf("兩數之和sum=%d,兩數之積mul=%d\n",sum,mul);}
3.1.1表達式語句表達式語句由表達式加一個分號“;”組成,其一般形式為:表達式;表達式可以是任意的表達式,包括賦值表達式、算術運算表達式、關系運算表達式及邏輯運算表達式等。 例如:
a=8; x=2*x+3*y; i++;
printf("Pleaseinputdata!\n");3.1.2函數調用語句函數調用語句由函數調用后加分號“;”構成。 其一般形式為: 函數名(實際參數列表);函數調用語句的執(zhí)行過程為調用執(zhí)行被調函數,實現函數的功能。例如:
printf("%d",a);
為調用C語言標準輸出函數,完成輸出變量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.轉向語句
(1)無條件轉向語句:goto<標號>;
(2)終止語句:break;可用于終止執(zhí)行switch和循環(huán)語句;
(3)結束本次循環(huán)語句:continue;
(4)函數返回語句:return。3.1.4空語句C語言中的空語句就是只有一個分號的語句:
;在編譯時,空語句不產生任何指令代碼,不執(zhí)行任何操作。3.1.5復合語句在C語言中,復合語句又稱為分程序(block),它是由一對花括號括起來的若干語句組成的。例如:
{
int
a,b,x; a=10; b=5; x=a-b;
printf("%d",x); }在上面的例子中,5條語句被一對花括號括起來,構成一條復合語句。從語法上看,復合語句是作為一個語法整體出現,在選擇結構和循環(huán)結構程序設計中,經常利用復合語句作為一個語法成分。返回§3.2常用輸出與輸入函數所謂輸入/輸出是以計算機主機為主體而言的,當需要將外界的數據送入計算機內部時,由輸入設備(鍵盤、鼠標等)向計算機傳輸數據稱為輸入;當需要將計算機中的數據送給外界,即向輸出設備(顯示器、打印機等)傳輸數據成為輸出。在C語言中沒有專門的輸入/輸出語句,輸入/輸出操作是由C函數庫中的相關函數提供的。使用這些函數時,用預編譯命令“#include”將輸入/輸出頭文件包含在源程序文件中:
#include<stdio.h>常用的標準輸入/輸出函數: (1)格式化輸入/輸出函數:scanf()/printf()。 (2)字符輸入/輸出函數:getchar()/putchar()。 (3)字符串輸入/輸出函數:gets()/puts()。3.2.1輸出函數1.格式化輸出函數printf()
printf()函數的功能是按格式控制字符串指定的格式,向標準輸出設備輸出指定的數據,其一般格式為:
printf("格式控制字符串",輸出項列表)
3.2.1輸出函數【例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輸出函數printf()函數的參數包括兩部分。 (1)輸出項列表 輸出項列表是一系列輸出項,各個輸出項之間用逗號“,”分隔,其中的輸出項可以是任何表達式,如常量、變量、運算表達式、函數調用表達式等。如【例3-2】中的“a,b,c”構成一個輸出項列表。 (2)格式控制字符串 格式控制字符串是用于描述格式控制的字符串,如【例3-2】中的“a=%d,b=%f,c=%c\n”。
3.2.1輸出函數格式控制字符串包含兩種成分: ①普通字符:普通字符包括可見字符和轉義字符,可見字符主要是一些說明字符,輸出時按原樣顯示在屏幕上,如【例3-2】中的“a=”、“b=”、“c=”和“,”;轉義字符是不可見字符,控制產生特殊的輸出效果,如【例3-2】中的“\n”為回車換行符,輸出時顯示自動換到新的一行。
3.2.1輸出函數②格式說明:格式說明字符由“%”和“格式字符”組成,其作用是將要輸出的數據轉換為指定的格式,如【例3-2】中的“%d”、“%f
”和“%c”格式說明符按照左對應關系控制輸出項列表中數據的輸出,如【例3-2】中格式控制中的第一個“%d”控制變量a的輸出,第二個“%f
”控制變量b的輸出,第三個“%c”控制變量c的輸出。在輸出時用格式說明字符對應的控制項替代格式字符輸出。
3.2.1輸出函數
printf()函數從左向右將格式控制字符串中的普通字符輸出到屏幕上,如遇到格式說明符,就按格式說明符的規(guī)定將輸出項列表中對應的輸出項所指的數據輸出到屏幕上顯示。在輸出時,對不同類型的數據要使用不同的格式字符,其一般形式為: %[<修飾符>]<格式字符>常用輸出格式字符和修飾符如表3-1和表3-2所示。
3.2.1輸出函數【例3-3】格式輸出函數綜合應用。 #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輸出函數在使用printf()函數進行格式輸出時,還應注意以下幾點:(1)輸出項列表中表達式的個數和類型與格式控制字符串中格式符一致。如果輸出項個數多于格式字符個數,多余部分不輸出。(2)如果想輸出字符“%”,需要在格式控制字符串中連續(xù)使用兩個“%”,例如: printf("a=%%d\n",a); 若a的值為12,則輸出為: a=%12(3)printf()函數輸出項列表中的參數按從右向左的順序計算。不同編譯系統(tǒng)對函數參數的掃描順序不一定相同,可從右往左,也可從左往右。TurboC和VisualC++6.0是從右往左進行的。
3.2.1輸出函數【例3-4】參數求值順序簡例。
#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輸出函數2.字符輸出函數putchar()
putchar()函數是字符輸出函數,其功能是向終端輸出單個字符。其一般形式為:
putchar(參數)
putchar()函數的參數可以是一個字符變量、一個整型變量或一個字符型常量(包括控制字符和轉義字符)等,作用是輸出該參數ASCII碼所對應的字符。3.2.1輸出函數【例3-5】字符輸出函數簡例。
#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輸入函數1.格式化輸入函數scanf()
scanf()函數的功能是從鍵盤按指定格式輸入數據,并將輸入的數據賦值給相應的變量。其一般格式為:
scanf(“格式控制字符串”,輸入項列表)
3.2.2輸入函數【例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輸入函數
scanf()函數的參數包括兩部分。 (1)輸入項列表 輸入項列表由一系列變量地址組成,各個變量地址之間用逗號“,”分隔,其中的變量地址是在變量名前面加上地址操作符“&”構成。如【例3-6】中的“&a,&b,&c”構成一個輸入項列表。 (2)格式控制字符串 格式控制字符串用于描述數據的輸入格式,如【例3-6】中的“%d,%f,%c”,包含兩種成分。
3.2.2輸入函數格式控制字符串包含兩種成分: ①普通字符:與printf()函數不同,scanf()函數中的可見字符并不在屏幕上顯示,在輸入數據時要求原樣輸入。如【例3-6】中的scanf(“%d,%f,%c”,&a,&b,&c);輸入數據時應輸入5,12.3,A↙,3個數據之間必須輸入“,”。
3.2.2輸入函數②格式說明:格式說明字符由“%”和“格式字符”組成,其作用是規(guī)定輸入項中的變量以何種數據類型的格式被輸入, 如【例3-6】中的“%d”、“%f”和“%c”。格式說明符按照左對應關系控制輸入項列表中數據的輸入,如【例3-6】中格式控制中的第一個“%d”控制變量a以十進制整數的格式輸入,第二個“%f”控制變量b以小數形式浮點數的格式輸入,第三個“%c”控制變量c以字符型的格式輸入。
3.2.2輸入函數
scanf()函數與printf()函數中的格式說明類似,在輸入時,對不同類型的數據要使用不同的格式字符
,其一般形式為: %[<修飾符>]<格式字符>常用輸入格式字符和修飾符如表3-3和表3-4所示。
3.2.2輸入函數【例3-7】格式輸入函數綜合應用。
#include<stdio.h> voidmain() {
inta,b; floatx=2.4,y=5.2,z=3.3; charch1,ch2; printf("請輸入三個實數:"); scanf("%f,%*f,%f",&x,&y,&z); printf("x=%.1f,y=%.1f,z=%.1f\n",x,y,z); printf("請輸入兩個整數:"); 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輸入函數在使用scanf()函數進行格式輸入時,還應注意以下幾點:(1)輸入的數據可以用空格符、制表符(tab)和換行符(enter)作為每個變量輸入值完畢的標志,以換行符作為數據輸入的結束。(2)如果在“格式控制字符串”中除了格式說明外還有其他的字符,則在輸入數據時在對應位置應輸入與這些字符相同的字符,如【例3-7】中:scanf("%f,%*f,%f",&x,&y,&z);在輸入時應用如下形式:6.6,7.7,8.8↙(3)輸入數據時不能指定精度,例如: scanf("%5.2f",&x);這是一種錯誤的用法,在使用printf()函數輸出數據時可以規(guī)定精度。
3.2.2輸入函數2.字符輸入函數getchar()
getchar()函數是字符輸入函數,其功能是從終端輸入單個字符。getchar()函數沒有參數,其一般形式為:
getchar()使用getchar()函數時必須注意以下幾點:getchar()函數只能接受單個字符,輸入的數字也按字符處理。輸入多于一個字符時,只接收第一個字符。(2)通常把輸入的字符賦予一個字符變量,構成賦值語句,例如: charc; c=getchar();(3)鍵盤接收字符之前屏幕上無任何提示信息,若需有提示信息,可在輸入語句前面用printf()函數提示用戶從鍵盤輸入數據。(4)用getchar()函數接收字符時,并不是從鍵盤輸入一個字符后立即響應,而是將輸入的數據先送入緩沖區(qū),待按下回車鍵后再一并執(zhí)行。3.2.2輸入函數【例3-8】字符輸入函數簡例。
#include<stdio.h> voidmain() { charc;
printf("inputacharacter\n"); c=getchar();
putchar(c);
putchar('\n');
}
返回§3.3順序結構程序舉例【例3-9】編寫程序,從鍵盤輸入圓半徑,求圓周長和圓面積,并輸出結果(保留兩位小數)。分析:圓周長的計算公式為;圓面積的計算公式為。在計算時使用的圓周率是一個常數,使用C語言中的符號常量表示該常量,取值為3.1415926。數據設計:本程序根據圓半徑計算圓周長和圓面積,因此需要定義以下變量:
1個單精度實型變量r用來存放圓半徑。
1個單精度實型變量l用來存放圓周長。
1個單精度實型變量s用來存放圓面積。§3.3順序結構程序舉例程序如下: #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順序結構程序舉例【例3-10】編寫程序,從鍵盤輸入兩個電阻的值,求它們并聯和串聯的電阻值,并輸出結果(保留兩位小數)。分析:并聯和串聯的電阻值計算公式如下:并聯電阻,串聯電阻。數據設計:本程序根據上述公式計算兩個電阻并聯和串聯后的電阻值,因此需要定義以下變量: 兩個單精度實型變量r1、r2用來存放兩個電阻值。 1個單精度實型變量rs用來存放串聯后的電阻值。 1個單精度實型變量rp用來存放并聯后的電阻值。§3.3順序結構程序舉例程序如下: #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順序結構程序舉例【例3-11】編寫程序,從鍵盤輸入一個字符,求出與該字符前后相鄰的兩個字符,按從小到大的順序輸出這3個字符的ASCII碼。
分析:字符變量的輸出可以有兩種形式,用“%c”輸出字符型,用“%d”輸出整型,其中整型數為字符所對應的ASCII碼值。一個字符與其前后相鄰的兩個字符的ASCII碼值分別相差1。
數據設計:本程序只需要1個字符型變量ch用來存放鍵盤輸入的字符。與此字符前后相鄰的兩個字符在輸出函數中分別用表達式求解獲得?!?.3順序結構程序舉例程序如下: #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順序結構程序舉例【例3-12】編寫程序,根據公式計算我國10年后的人口數。人口增長問題:按照每年0.8%的增長速度,我國現有人口13.7億,10年后將有多少人口?并輸出結果(保留兩位小數)。分析:人口計算公式為:其中,p0=13.7億,rate=0.8%,n=10。數據設計:本程序根據上述公式計算10年后我國的人口數,因此需要定義以下變量:
1個整型變量n用來存放年限
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度跨境電商平臺區(qū)域代理合同范本3篇
- 2024年生物醫(yī)藥企業(yè)股權收購合同匯編3篇
- 淘寶找建筑課程設計
- 專題03 閱讀理解之推理判斷題(練習)(解析版)
- 煉鋼廠部門崗位職責說明書
- 機電工程施工組織設計
- (一)高標準農田施工方案
- 油條配方課程設計
- 糖果罐子手工課程設計
- 算法課程設計總結
- 妊娠期肝內膽汁淤積癥教學課件
- 【航空個性化服務淺析4700字(論文)】
- 保障農民工工資支付條例全文及解讀課件
- 中國移動全面預算管理
- 【部編】小高考:2021年江蘇普通高中學業(yè)水平測試歷史試卷
- 公路隧道建設施工技術規(guī)范學習考試題庫(400道)
- 新人教版七至九年級英語單詞表 漢譯英(含音標)
- 淺談事業(yè)單位固定資產的折舊本科學位論文
- 食堂管理制度大全
- 愛普生機器人中級培訓資料
-
評論
0/150
提交評論