第4章2014鍵盤輸入和輸出_第1頁
第4章2014鍵盤輸入和輸出_第2頁
第4章2014鍵盤輸入和輸出_第3頁
第4章2014鍵盤輸入和輸出_第4頁
第4章2014鍵盤輸入和輸出_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章鍵盤輸入

和屏幕輸出2回顧常量和變量C語言中的基本數(shù)據(jù)類型表達(dá)式算術(shù)運(yùn)算符賦值運(yùn)算符sizeof運(yùn)算符3本章教學(xué)目標(biāo)

字符常量了解語句的基本概念了解語句的分類掌握字符輸入輸出函數(shù)getchar和putchar掌握格式輸入輸出函數(shù)scanf和printf算法及其表示掌握順序程序設(shè)計(jì)字符常量字符常量是用單引號括起來的一個字符'a'是字符常量,而a則是一個標(biāo)識符'3'表示一個字符常量,而3則表示一個整數(shù)轉(zhuǎn)義字符(EscapeCharacter)一些特殊字符(無法從鍵盤輸入或者另有他用)用轉(zhuǎn)義字符表示5字符型變量的取值范圍取決于計(jì)算機(jī)系統(tǒng)所使用的字符集ASCII(美國標(biāo)準(zhǔn)信息交換碼)字符集規(guī)定了每個字符所對應(yīng)的編碼一個字符以其對應(yīng)的ASCII碼的二進(jìn)制形式存儲在內(nèi)存中一個字節(jié),保存一個字符(英文字母、數(shù)字、符號)字符常數(shù)就是一個普通整數(shù),也可參與各種數(shù)學(xué)運(yùn)算每個字符具有一個0~255之間的數(shù)值,可從ASCII表查出注意:'5'和整數(shù)5的區(qū)別'5'的ASCII碼值是53字符常量7字符型'''5''p''$'

有效的字符型值"2"'2'正確'2'+'2'=4

X值符號值符號值符號0空字符44,91[32空格45-92\33!46.93]34"47/94^35#48~570~9

95-36$58:96`37%59;97~122a~z38&60<123{39'61=124|40(62>125}41)63?126~42*64@127DEL(Delete鍵)43+65~90A~Z

8字符型變量char占8位內(nèi)存signed或

unsignedSigned-128至

+127

unsigned0至

255示例:chargender;gender='m';或chargender='m';4.1單個字符的輸入/輸出通過調(diào)用標(biāo)準(zhǔn)庫函數(shù)來實(shí)現(xiàn)#include<stdio.h>字符輸出函數(shù)putchar(ch)輸出一個字符ch字符輸入函數(shù)getchar()無參數(shù)函數(shù)值為從輸入設(shè)備接收的字符10字符輸入輸出函數(shù)字符型變量getchar()字符型數(shù)據(jù)字符型數(shù)據(jù)putchar()11getchar函數(shù)例如:charc;c=getchar();注意:getchar函數(shù)無參數(shù)12#include<stdio.h>intmain(){

charch;

printf("PressakeyandthenpressEnter:");ch=getchar();

printf("Youpressed");

putchar(ch);

putchar('\n');return0;}運(yùn)行程序PressakeyandthenpressEnter:A↙YoupressedA該語句的作用是什么?13getchar和putchar函數(shù)使用#include<stdio.h>intmain(){chara,b;printf("請輸入兩個字符:\n");a=getchar();fflush(stdin);b=getchar();fflush(stdin);putchar(a);putchar(b);putchar('\n');return0;}內(nèi)存abOK輸出:請輸入兩個字符:OKOKPressanykeytocontinue_14C語言中的語句控制語句if()……else……return變量聲明語句inta=1;函數(shù)調(diào)用語句printf("helloworld!");表達(dá)式語句k++;k=k+1;空語句;復(fù)合語句{t=x;x=y;y=t;}15復(fù)合語句在什么情況下使用復(fù)合語句?條件語句和循環(huán)語句在語法上只允許帶一條語句當(dāng)分支和循環(huán)中需要進(jìn)行多項(xiàng)操作時{

t=x;x=y;y=t;}被當(dāng)作一條語句來處理16復(fù)合語句使用#include<stdio.h>intmain(void){ inta=0; { inta=1; printf("In:a=%d\n",a); } printf("Out:a=%d\n",a);}17空語句空語句有什么作用?什么也不做,只表示語句的存在自頂向下程序設(shè)計(jì)時用在那些未完成的模塊中延時用的空循環(huán)intmain(void){DataInitialze();DataProcess();DataOutput();return0;}DataInitialze(){;}4.2數(shù)據(jù)的格式化屏幕輸出格式printf(格式控制字符串,輸出項(xiàng)列表);printf("a=%db=%f",a,b);可以輸出若干任意類型的數(shù)據(jù)

函數(shù)名可選輸出列表普通字符格式說明19格式輸入輸出函數(shù)輸入/輸出函數(shù)(scanf/printf)用于接收和顯示數(shù)據(jù)或信息#include<stdio.h>intmain(){ intnum; printf("請輸入一個數(shù):"); scanf("%d",&num); printf("\n%d的平方為

%d\n",num,num*num);return0;}轉(zhuǎn)換字符串轉(zhuǎn)義序列printf()函數(shù)的一般形式為:

printf("格式描述串",輸出列表);說明:第一個參數(shù)說明采用什么樣的格式輸出內(nèi)容。格式描述串中可以包含轉(zhuǎn)換字符串(以"%"開始),也可以包含轉(zhuǎn)義序列(以"\"標(biāo)識)。第二個參數(shù)是要顯示其值的參數(shù)列表。如果格式描述串中沒有特殊字符"%",那么該輸出語句里就不能有輸出列表,也不需要表示分隔的逗號這是使用printf()函數(shù)的最簡單的形式。20printf函數(shù)intvisitor_count=150;printf("

%d"

,visitor_count);printf將一些信息按照指定的格式送到標(biāo)準(zhǔn)輸出(顯示器)"

%d"

visitor_count將按指定的格式顯示該變量的值轉(zhuǎn)換字符串說明%d將參數(shù)按整數(shù)形式轉(zhuǎn)換輸出,對應(yīng)參數(shù)應(yīng)是int類型%ld將參數(shù)按長整數(shù)形式轉(zhuǎn)換輸出,對應(yīng)參數(shù)應(yīng)是longint類型%c輸出一個字符,對應(yīng)參數(shù)應(yīng)該是一個字符類型%s輸出一個字符串,對應(yīng)參數(shù)應(yīng)該是一個字符串%f將參數(shù)按帶小數(shù)點(diǎn)數(shù)形式輸出,對應(yīng)參數(shù)應(yīng)是double類型或float類型,默認(rèn)情況下精確到

6位小數(shù)%ccharacter以字符形式輸出單個字符%sstring輸出一個字符串%ddecimal以帶符號十進(jìn)制整數(shù)輸出%ffloat以小數(shù)形式輸出浮點(diǎn)數(shù)(6位小數(shù))%eexponent以標(biāo)準(zhǔn)指數(shù)形式輸出(6位小數(shù))%g選用%f,%e中輸出寬度較小的一種格式%ooctal以八進(jìn)制無符號整數(shù)輸出(無前導(dǎo)0)%xhex以十六進(jìn)制無符號整數(shù)輸出(無前導(dǎo)0x)%uunsigned以十進(jìn)制無符號整數(shù)輸出printf()格式字符【例4.2】大小寫英文字母轉(zhuǎn)換PressakeyandthenpressEnter:B↙b,9823printf函數(shù)intsalary=5500;printf("

%10d"

,salary);輸出結(jié)果:

5500輸出結(jié)果的左邊顯示了6個空格"

%10d"24printf函數(shù)floatcircumference=78.53;printf("

%f"

,circumference);輸出結(jié)果:78.529999默認(rèn)情況下六位有效數(shù)字9.4786789;9.478679m表示數(shù)據(jù)占用的最小寬度數(shù)據(jù)寬度大于m,按實(shí)際寬度輸出數(shù)據(jù)寬度小于m時,補(bǔ)空格n對實(shí)數(shù)表示輸出n位小數(shù)對字符串表示最多輸出的字符個數(shù)l長整型整數(shù),加在d、o、x、u前Llongdouble型數(shù),加在f、e、g前-

改變輸出內(nèi)容的對齊方式默認(rèn)為右對齊printf()的格式修飾符printf()的格式修飾符Formatforfloat:%f

Generalformat:

%[<最小域?qū)?gt;.<小數(shù)位數(shù)>]fExample:printf("Valueis:%10.4f",32.6784728);Valueis:32.6785

10characters4digitsprintf()的格式修飾符Example:printf("Valueis:%10f",32.6784728);Valueis:32.67847310characters6digits(default)Example:printf("Valueis:%.3f",32.6784728);

Valueis:32.6783digitsprintf()的格式修飾符29printf函數(shù)使用#include<stdio.h>intmain(){ floatradius=1.5,high=2.0;floatpi=3.14159,vol; /*計(jì)算體積*/ vol=pi*radius*radius*high; /*輸出體積的值*/

printf("vol=%7.2f\n",vol);return0;}內(nèi)存radiushighvol1.52.014.14輸出:vol=14.14pi3.1415930printf函數(shù)使用#include<stdio.h>intmain(){ floatf1=100.15799,f2=12.55,f3=1.7; intn1=123,n2=45,n3=6;

printf("printfWITHOUTwidthorprecision specifications:\n"); printf("%f\n%f\n%f\n",f1,f2,f3); printf("%d\n%d\n%d\n",n1,n2,n3); printf("printfWITHwidthandprecision specifications:\n"); printf("%5.2f\n%6.1f\n%3.0f\n",f1,f2,f3); printf("%5d\n%6d\n%3d\n\n",n1,n2,n3);return0;}31scanf函數(shù)scanf("%d",&num);scanf函數(shù)從標(biāo)準(zhǔn)輸入(鍵盤)讀取信息,按照格式描述把讀入的信息轉(zhuǎn)換為指定數(shù)據(jù)類型的數(shù)據(jù),并把這些數(shù)據(jù)賦給指定的程序變量。

轉(zhuǎn)換字符串&符號(附在讀取的每個變量上)用于指明變量在內(nèi)存中的位置變量的名稱轉(zhuǎn)換字符串參數(shù)變量的類型要求的實(shí)際輸入%dint十進(jìn)制數(shù)字序列%ldlongint十進(jìn)制數(shù)字序列%ffloat十進(jìn)制數(shù),可以有小數(shù)點(diǎn)及指數(shù)部分%lfdouble十進(jìn)制數(shù),可以有小數(shù)點(diǎn)及指數(shù)部分32scanf函數(shù)內(nèi)存floattax_rate;scanf("%f"

,&tax_rate);tax_rate在內(nèi)存中分配一塊32位存儲空間存儲空間使用名稱“tax_rate”標(biāo)識提示用戶輸入一個值輸入的值存儲在變量中(因?yàn)閟canf提供此變量的地址)12.23433scanf函數(shù)使用#include<stdio.h>intmain(){

doubleradius,high,vol;printf("請輸入圓柱體底面積的半徑和圓柱體的高:");scanf("%lf%lf",&radius,&high);vol=3.14*radius*radius*high;printf("radius=%7.2f,high=%7.2f,vol=%7.2f\n",radius,high,vol);return0;}內(nèi)存radiushighvol510785請輸入圓柱體底面積的半徑和圓柱體的高:510radius=5.00,high=10.00,vol=785.0034scanf函數(shù)常見錯誤常見錯誤scanf("%d,%f\n",&a,&b);scanf("%d,%f",a,b);scanf("%7.2f",&a);35scanf函數(shù)使用#include<stdio.h>intmain(){ inta,b; printf("Pleaseinputaandb:"); scanf("%d%d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);return0;}↙以空格或TAB鍵作為分隔符36scanf函數(shù)使用#include<stdio.h>intmain(){ inta,b; printf("Pleaseinputaandb:"); scanf("%2d%2d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);return0;}Pleaseinputaandb:a=12,b=34,a+b=461234↙遇寬度時結(jié)束37scanf函數(shù)使用#include<stdio.h>intmain(){ inta,b; printf("Pleaseinputaandb:"); scanf("%d,%d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);return0;}Pleaseinputaandb:a=12,b=34,a+b=4612,34↙這里逗號需要原樣輸入38scanf函數(shù)使用#include<stdio.h>intmain(){ inta,b; printf("Pleaseinputaandb:"); scanf("%2d%2d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);return0;}Pleaseinputaandb:a=12,b=3,a+b=15123a↙遇非法輸入時結(jié)束#include<stdio.h>main(){

inta,b; printf("Pleaseinputaandb:"); scanf("%2d%*2d%2d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);}Pleaseinputaandb:a=12,b=56,a+b=68123456↙跳過一個輸入項(xiàng)輸入數(shù)據(jù)的格式控制40輸入數(shù)據(jù)的格式控制#include<stdio.h>intmain(){ inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);return0;}問題1:當(dāng)要求程序輸出結(jié)果為

a=12,b=34時,用戶應(yīng)該如何輸入數(shù)據(jù)?

1234↙41輸入數(shù)據(jù)的格式控制#include<stdio.h>intmain(){ inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);return0;}

問題5:限定用戶輸入數(shù)據(jù)為以下格式為12↙34↙

同時要求程序輸出結(jié)果為a="12",b="34"scanf("%d%d",&a,&b);printf("a=\"%d\",b=\"%d\"\n",a,b);42輸入數(shù)據(jù)的格式控制#include<stdio.h>intmain(){ inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);return0;}問題6:設(shè)計(jì)程序使得用戶可以以任意字符(回車、空格、制表符、逗號、其它)作為分隔符進(jìn)行數(shù)據(jù)的輸入scanf("%d%*c%d",&a,&b);

#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題9:如果用戶輸入的是123a,那么結(jié)果又會如何呢?123a↙a=123,b=-858993460#include<stdio.h>main(){

intdata1,data2,sum;

charop;

printf("Pleaseentertheexpression data1+data2\n"); scanf("%d%c%d",&data1,&op,&data2); printf("%d%c%d=%d\n",data1,op,data2,data1+data2);}Pleaseentertheexpressiondata1+data2

第3次測試12+3↙12+3=15#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:希望得到的運(yùn)行結(jié)果12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12character

:afloatnumber:3.500000#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:結(jié)果好像很奇怪呀!12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12floatnumber:3.500000#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");

getchar();/*將存于緩沖區(qū)中的回車字符讀入,避免被后面的變量作為有效字符讀入*/scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:程序修改后得到的運(yùn)行結(jié)果12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12character

:afloatnumber:3.500000#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf(“%c”,&b);/*第2種解決方案:在%c前加一個空格*/printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }49順序程序設(shè)計(jì)由計(jì)算機(jī)向屏幕上輸出一個數(shù)#include<stdlib.h>//包含偽隨機(jī)數(shù)生成函數(shù)#include<time.h>//包含取系統(tǒng)時間的函數(shù)#include<stdio.h>intmain(void){srand(time(NULL));//隨機(jī)數(shù)種子初始化

printf("%d",rand());return0;}50順序程序設(shè)計(jì)編寫一個重量單位換算程序,輸入用公斤表示的重量,然后程序能夠轉(zhuǎn)換并輸出用鎊和盎司表示的等效重量。請輸入重量(公斤):23轉(zhuǎn)換為用磅表示的重量(磅):50.7055轉(zhuǎn)換為用盎司表示的重量(盎司):811.287問題如何設(shè)計(jì)變量及選擇相應(yīng)的數(shù)據(jù)類型?公斤、磅和盎司的轉(zhuǎn)換公式是什么?51順序程序設(shè)計(jì)doublekilogram,pound,ounce; //公斤、鎊、盎司公斤、磅和盎司的轉(zhuǎn)換公式:

1磅=16盎司=0.4536千克(公斤)問題分析算法如下:1.得到用公斤表示的重量2.將重量轉(zhuǎn)化為磅:pound=kilogram/0

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論