版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)基礎(chǔ)(C語言)東北大學(xué)高級(jí)語言程序設(shè)計(jì)課程組課程網(wǎng)站:/cxsj計(jì)算機(jī)及程序設(shè)計(jì)概述運(yùn)算符與表達(dá)式3輸入/輸出在C語言中,沒有專門的輸入輸出語句,所有的輸入/輸出操作都是通過對(duì)標(biāo)準(zhǔn)的I/O庫函數(shù)的調(diào)用實(shí)現(xiàn)【例】計(jì)算給定了底和高的三角形面積#include<srdio.h>main(){intheight=5;/*theheightofthetriangle*/intwidth=4;/*thewidthofthetriangleintarea;/*areaofthetriangle(computed)*/area=(width*height)/2;}4輸入/輸出輸入/輸出函數(shù)輸入是指從鍵盤接受用戶輸入數(shù)據(jù),輸出是指在屏幕上顯示結(jié)果數(shù)據(jù)在C的標(biāo)準(zhǔn)函數(shù)庫中提供了多種輸入/輸出函數(shù)例如:printf函數(shù)和scanf函數(shù)這些函數(shù)定義在頭文件stdio.h中提示在調(diào)用標(biāo)準(zhǔn)輸入/輸出庫函數(shù)時(shí),在程序的開始處應(yīng)有預(yù)編譯命令:
#include<stdio.h>或#include“stdio.h”5數(shù)據(jù)輸入getchar函數(shù)功能從標(biāo)準(zhǔn)輸入設(shè)備上(鍵盤)輸入一個(gè)且只能是一個(gè)字符,并將該字符返回為函數(shù)的值格式:getchar();提示只有在按“回車”鍵后輸入的字符才有效此函數(shù)只接受一個(gè)字符,而非一串字符若輸入abcde,該函數(shù)也只接受第一個(gè)字符agetchar函數(shù)得到的字符可以賦給一個(gè)字符變量或整型變量,也可以不賦給任何變量而是作為表達(dá)式的一部分例:#include<stdio.h>main()
{inti;i=getchar()
printf(“%c:%d\n”,i,i);}執(zhí)行本程序時(shí),按鍵A時(shí)顯示結(jié)果如下:A:656數(shù)據(jù)輸入scanf函數(shù)功能該函數(shù)從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上將數(shù)據(jù)讀到地址參數(shù)所指定的位置上格式:scanf(format,addlist);format規(guī)定數(shù)據(jù)的輸入格式,必須由“”括起來,其內(nèi)容包括格式說明和普通字符兩部分addlist必須與format參數(shù)中的類型說明相一致在C語言中一個(gè)變量的地址可以通過&地址運(yùn)算符得到例如:inta,b;則a,b的地址為&a,&b7數(shù)據(jù)輸入【例】
inta;
scanf(“%d”
,&a);含義:按變量a在內(nèi)存的地址將從外界獲取的值存入變量a所描述的存儲(chǔ)單元,變量a的地址在編譯階段分配。說明格式輸入變量地址注意:
scanf()中各個(gè)變量要加地址操作符,就是變量名前加“&”
地址操作符,這是容易忽視的一個(gè)問題。如果忘記了在函數(shù)的每個(gè)變量前面加&符號(hào),可能會(huì)導(dǎo)致程序甚至系統(tǒng)崩潰。格式控制符串:由“”括起的字符串。8數(shù)據(jù)輸入scanf函數(shù)格式轉(zhuǎn)換說明符格式說明規(guī)定了輸入項(xiàng)中的變量將以何種類型的數(shù)據(jù)格式被輸入形式:%[<修飾符>]<格式字>可以指定輸入數(shù)據(jù)的域?qū)?,系統(tǒng)自動(dòng)按域?qū)捊厝≥斎霐?shù)據(jù)例如:scanf(“%3d”,&a);/*按寬度3輸入一個(gè)整數(shù)給變量a*/字符*:*表示按規(guī)定格式輸入但不賦予相應(yīng)的變量,作用是跳過相應(yīng)的數(shù)據(jù)例如:scanf(“%d%*d%d”,&a,&b);輸入long型數(shù)據(jù)必須用%ld,輸入double數(shù)據(jù)必須用%lf或%le9數(shù)據(jù)輸入scanf函數(shù)輸入方法普通字符在輸入時(shí)按原樣輸入例如scanf(“%d,%d;”,&a,&b);/*輸入:3,4<回車>*/問題:如果3
4<回車>?scanf(“a=%d;b=%c;”,&a,&b);/*輸入是:a=3;b=a;*/a=3,而b的值不確定。這是因?yàn)楦袷酱械亩禾?hào)是普通字符,要照原樣輸入10數(shù)據(jù)輸入scanf函數(shù)輸入方法按格式截取輸入數(shù)據(jù)例如:scanf(“%d%4d”,&a,&b);
/*輸入序列為:123
12345則a=123,b=1234*/為什么?雖然輸入的是12345但%4d寬度為4位,截取前4位,即123411數(shù)據(jù)輸入scanf函數(shù)如果格式說明符之間包含其他字符,則輸入時(shí),必須在相應(yīng)位置輸入這些字符如果格式說明符之間不包含其他字符,則輸入數(shù)據(jù)時(shí),兩個(gè)數(shù)據(jù)之間可以使用空格、tab鍵或回車鍵作為間隔輸入字符數(shù)據(jù)時(shí),由于空格和轉(zhuǎn)義字符都是有效字符,所以不能以空格作為間隔符例如:scanf(“%d%c”,&a,&c);輸入32<
>a<ch>/*空格符作為輸入數(shù)據(jù)被賦值給字符型變量c*/不允許有精度輸入例如:scanf(“%7.2f”,&a);是錯(cuò)誤的12數(shù)據(jù)輸出putchar函數(shù)功能將指定表達(dá)式的值所對(duì)應(yīng)的字符輸出到標(biāo)準(zhǔn)設(shè)備(終端/顯示器),每次只能輸出一個(gè)字符格式putchar(輸出表達(dá)式);表達(dá)式可以是字符型或整型的變量或常量或表達(dá)式提示putchar()必須帶輸出項(xiàng),只能是單個(gè)字符而不能是字符串例:
#include“stdio.h”main()
{charo=‘O’,k=‘K’
;
putchar(o);
putchar(k);
}13數(shù)據(jù)輸出printf函數(shù)功能是按控制字符串規(guī)定的格式,向缺省輸出設(shè)備輸出在輸出項(xiàng)列表中列出的各個(gè)輸出項(xiàng)格式:printf(“格式字符串”,輸出項(xiàng)列表);格式字符串是用來說明輸出項(xiàng)表中各輸出項(xiàng)的輸出格式必須由“”括起來當(dāng)系統(tǒng)遇到輸出的格式說明符后,會(huì)自動(dòng)用后面對(duì)應(yīng)的輸出項(xiàng)的值代替它的位置,然后輸出輸出項(xiàng)列表列出要輸出的項(xiàng)可以是常量、變量或表達(dá)式當(dāng)沒有輸出項(xiàng)列表,同時(shí)格式字符串中也不含格式信息,則輸出的是格式字符串本身【例】printf(“%d%f%c”
,a,b,c);14例1:4+4=?#include<stdio.h>main(){inttotal;total=4+4;printf(“Thetotalis%d\n”);}
311.c
該語句告訴程序顯示一個(gè)十進(jìn)制數(shù),但是沒有指定變量.C不會(huì)檢查并確認(rèn)printf函數(shù)被賦予了正確的常量。由于沒有值,所以C生成了一個(gè)值。正確的語句應(yīng)該是:
printf(“Thetotalis%d\n”,total);
例2:
#include<stdio.h>main(){floatanswer;answer=7.0/20.0;printf(“Theansweris%d\n”,answer);}
312.c使用%d指定要顯示的整數(shù),但要轉(zhuǎn)化的是一個(gè)實(shí)數(shù),printf函數(shù)無法檢查參數(shù)類型,所以將實(shí)數(shù)賦予函數(shù),而指定格式為整數(shù),函數(shù)將這個(gè)數(shù)當(dāng)作整數(shù)看待.printf函數(shù)數(shù)據(jù)輸出15數(shù)據(jù)輸出printf函數(shù)輸出方法形式1:printf(字符串);功能:按原樣輸出字符串例:printf(“hellocprogramming.\n");形式2:printf(格式字符串,輸出項(xiàng)表);功能:按格式字符串中的格式依次輸出輸出項(xiàng)表中的各輸出項(xiàng)16數(shù)據(jù)輸出printf函數(shù)輸出方法形式2:printf(格式字符串,輸出項(xiàng)表);例:設(shè)a=2,b=2.5,c=‘A’;printf(“a=%d,b=%f,c=%c\n”,a,b,c);
/*輸出:a=2,b=2.500000,c=A*/%d表示輸出a的值整數(shù)2%f表示輸出b的值2.5,%f格式要求輸出6位小數(shù),在2.5的后面補(bǔ)4個(gè)0;%c表示輸出c的值‘A’“a=”、“b=”、“c=”、","和“\n"不是格式符,按原樣輸出17數(shù)據(jù)輸出printf函數(shù)格式字符串:%[<修飾符>]<格式字符>格式字符規(guī)定了對(duì)應(yīng)輸出項(xiàng)的輸出格式常用的格式見書修飾符用于確定數(shù)據(jù)輸出的寬度、精度、小數(shù)位數(shù)、對(duì)齊方式等,用于產(chǎn)生更加規(guī)范整齊的輸出,當(dāng)沒有輸出修飾符時(shí),按系統(tǒng)缺省設(shè)定顯示18數(shù)據(jù)輸出printf函數(shù)格式字符串:%[<修飾符>]<格式字符>修飾符其中長(zhǎng)度修飾符:l(長(zhǎng)),h(短),放在格式字符前面域?qū)捄途让枋龇簃(域?qū)挘畁(精度),放在長(zhǎng)度修飾符的前面對(duì)齊方式描述符:一般所有輸出數(shù)據(jù)缺省為右對(duì)齊格式,若加一個(gè)“-”號(hào),則變?yōu)椤白髮?duì)齊”方式,放在域?qū)捗枋龇那懊娴那懊?9數(shù)據(jù)輸出printf函數(shù)格式字符串:%[<修飾符>]<格式字符>例如
inti=123,floatj=12.34567;
printf(“%4d+++%5.2f”,i,j);/*
123+++12.35
*/printf(“%2d+++%2.1f”,i,j);/*123+++12.3*/printf(“%4d%10.4f”,i,j);/*
123
12.3457*/printf(“%-4d%10.4f”,i,a);/*123
12.3457
*/printf(“%4d%-10.4f”,i,a);/*
12312.3457*/20數(shù)據(jù)輸出printf函數(shù)格式字符串:%[<修飾符>]<格式字符>提示%md以寬度m輸出整型數(shù),不足m時(shí),左補(bǔ)空格%0md以寬度m輸出整型數(shù),不足m時(shí),左補(bǔ)0%m.nf以寬度m輸出實(shí)型小數(shù),小數(shù)位為n位21數(shù)據(jù)輸出printf函數(shù)格式字符串:%[<修飾符>]<格式字符>提示當(dāng)指定的域?qū)捫∮跀?shù)據(jù)的實(shí)際寬度時(shí)對(duì)整數(shù),按該數(shù)的實(shí)際域?qū)捿敵鰧?duì)浮點(diǎn)數(shù)若指定的域?qū)挻笥诟↑c(diǎn)數(shù)的整數(shù)部分,相應(yīng)的小數(shù)位按精度的位數(shù)四舍五入若域?qū)捫∮诘扔诟↑c(diǎn)數(shù)整數(shù)部分的寬度,則該浮點(diǎn)數(shù)按實(shí)際位數(shù)輸出,但小數(shù)位數(shù)仍遵守精度的規(guī)定22例題【例】若a1,a2,a3,a4均為char類型變量,則執(zhí)行以下程序段后的輸出結(jié)果是:
a1=‘1’;a2=‘2’;a3=‘3’;a4=‘4’;printf(“%1c\n”,a1);printf(“%2c\n”,a2);printf(“%3c\n”,a3);printf(“%4c\n”,a4);a)1234b)1
2
3
4c)1020030004d)輸出格式的描述符不正確【例】若執(zhí)行程序時(shí)的輸入是:1234567,則程序的輸出結(jié)果是:
#include<stdio.h>main(){intx,y;
scanf(“%2d%*2d%1d”,&x,&y);
printf(“x+y=%d;\n”,x+y);}x+y=17;23例題【例】讀程序:
#include<stdio.h>main(){
inta;floatb,c;scanf(“%2d%3f%4f”,a,b,c);printf(“\na=%d,b=%f,c=%f”,a,b,c);
}若運(yùn)行時(shí)從鍵盤輸入9876543210<CR>,則上面程序的輸出結(jié)果是:A)a=98,b=765,c=4321B)a=10,b=432,c=8765C)a=98,b=765.000000,c=4321.000000D)a=98,b=765.0,c=4321.0【例】讀程序,寫出運(yùn)行結(jié)果。
#include<stdio.h>main()
{inta,b,c;
a=(b=(c=3)*5)*2-3;
printf(“a=5d,b=%d,c=%d\n”,a,b,c);
}a=27,b=15,c=3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行客戶服務(wù)接待制度
- 電力設(shè)施職業(yè)衛(wèi)生應(yīng)急預(yù)案
- 酒店裝修勞務(wù)服務(wù)方案
- 吉林大學(xué)《儀器分析實(shí)驗(yàn)》2021-2022學(xué)年第一學(xué)期期末試卷
- 文化創(chuàng)意產(chǎn)業(yè)大會(huì)方案
- 高校中華傳統(tǒng)文化研討活動(dòng)方案
- 抗震墻體加固實(shí)施方案
- 2024試用合同能連續(xù)簽
- 吉林大學(xué)《人體速寫B(tài)》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林大學(xué)《晶體光學(xué)及光性礦物學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 安全技術(shù)之傳動(dòng)裝置的防護(hù)措施
- 農(nóng)貿(mào)市場(chǎng)攤位招商方案
- 醫(yī)療設(shè)備采購 投標(biāo)技術(shù)方案 (技術(shù)方案)
- 《化學(xué)課程思政元素》
- 2024繼續(xù)教育《醫(yī)學(xué)科研誠信與醫(yī)學(xué)了研究倫理》答案
- 門診品管圈課件:提高門診治療患者健康教育的滿意度
- 職業(yè)生涯報(bào)告六篇
- 作業(yè)本印制服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 上虞凈化工程施工方案范本
- 【語文】寧波市小學(xué)四年級(jí)上冊(cè)期中試卷
- 遼寧省沈陽市鐵西區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期中地理試題
評(píng)論
0/150
提交評(píng)論