哈工大c語言課件4_第1頁
哈工大c語言課件4_第2頁
哈工大c語言課件4_第3頁
哈工大c語言課件4_第4頁
哈工大c語言課件4_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

本章學習內容

字符常量與轉義字符

字符輸出函數putchar()

字符輸入函數getchar()

數據的格式化輸出函數printf()

數據的格式化輸入函數scanf()第1頁/共37頁字符常量字符常量是用單引號括起來的一個字符'a'是字符常量,而a則是一個標識符'3'表示一個字符常量,而3則表示一個整數轉義字符(EscapeCharacter)一些特殊字符(無法從鍵盤輸入或者另有他用)用轉義字符表示第2頁/共37頁字符型變量的取值范圍取決于計算機系統所使用的字符集ASCII(美國標準信息交換碼)字符集規定了每個字符所對應的編碼一個字符以其對應的ASCII碼的二進制形式存儲在內存中一個字節,保存一個字符(英文字母、數字、符號)字符常數就是一個普通整數,也可參與各種數學運算每個字符具有一個0~255之間的數值,可從ASCII表查出注意:'5'和整數5的區別'5'的ASCII碼值是53字符常量第3頁/共37頁4.1單個字符的輸入/輸出通過調用標準庫函數來實現

#include<stdio.h>字符輸出函數putchar(ch)輸出一個字符ch字符輸入函數getchar()無參數函數值為從輸入設備接收的字符第4頁/共37頁【例4.1】大小寫英文字母轉換PressakeyandthenpressEnter:B↙b

ch=ch-('a'–'A');

Whatdoesthisstatementmean?第5頁/共37頁4.2數據的格式化屏幕輸出格式printf(格式控制字符串,輸出項表列);printf("a=%db=%f",a,b);可以輸出若干任意類型的數據

函數名可選輸出表列普通字符格式說明第6頁/共37頁%ccharacter以字符形式輸出單個字符%sstring輸出一個字符串%ddecimal以帶符號十進制整數輸出%ffloat以小數形式輸出浮點數(6位小數)%eexponent以標準指數形式輸出(6位小數)%g選用%f,%e中輸出寬度較小的一種格式%ooctal以八進制無符號整數輸出(無前導0)%xhex以十六進制無符號整數輸出(無前導0x)%uunsigned以十進制無符號整數輸出printf()格式字符第7頁/共37頁【例4.2】大小寫英文字母轉換PressakeyandthenpressEnter:B↙b,98第8頁/共37頁m表示數據占用的最小寬度數據寬度大于m,按實際寬度輸出數據寬度小于m時,補空格n對實數表示輸出n位小數對字符串表示最多輸出的字符個數l長整型整數,加在d、o、x、u前Llongdouble型數,加在f、e、g前-

改變輸出內容的對齊方式默認為右對齊printf()的格式修飾符第9頁/共37頁printf()的格式修飾符Formatforfloat:%f

Generalformat:

%[<最小域寬>.<小數位數>]fExample:printf("Valueis:%10.4f",32.6784728);Valueis:32.6785

10characters4digits第10頁/共37頁printf()的格式修飾符Example:printf("Valueis:%10f",32.6784728);Valueis:32.67847310characters6digits(default)第11頁/共37頁Example:printf("Valueis:%.3f",32.6784728);

Valueis:32.6783digitsprintf()的格式修飾符第12頁/共37頁Inputr:5.3↙printfWITHOUTwidthorprecisionspecifications:circumference=33.300854,area=88.247263printfWITHwidthandprecisionspecifications:circumference=33.30,area=88.25【例4.3】計算圓的周長和面積

第13頁/共37頁4.3數據的格式化鍵盤輸入格式scanf(格式控制字符串,地址表列);

scanf("%d,%f",&a,&b);格式字符指定輸入數據格式輸入數據地址表列非格式字符輸入數據以,分隔沒有時可以空格、Tab或回車分隔第14頁/共37頁c以字符形式輸入單個字符s輸入字符串,以非空字符開始,遇第一個空白字符結束d以帶符號十進制形式輸入整型數據f以小數形式輸入浮點數e以標準指數形式輸入o以八進制無符號形式輸入(無前導0)x以十六進制無符號形式輸入(無前導0x)scanf()的格式字符第15頁/共37頁m表示數據占用的寬度l加在d、o、x、u前:輸入長整型加在f、e前:輸入雙精度型L加在f、e前:輸入longdouble型h加在d、o、x前:輸入短整型*本輸入項在讀入后不賦給相應的變量scanf()的格式修飾符第16頁/共37頁#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↙跳過一個輸入項輸入數據的格式控制第17頁/共37頁#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題1:當要求程序輸出結果為

a=12,b=34時,用戶應該如何輸入數據?

1234↙輸入數據的格式控制——例4.4第18頁/共37頁#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題2:當限定用戶輸入數據以逗號為分隔符,即輸入數據格式為:12,34↙時,應修改程序中的哪條語句?怎樣修改?,

輸入數據的格式控制——例4.4第19頁/共37頁#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題3:語句scanf("%d%d",&a,&b);修改為scanf("a=%d,b=%d",&a,&b);時,用戶應該如何輸入數據?a=12,b=34↙輸入數據的格式控制——例4.4第20頁/共37頁#include<stdio.h>main(){

inta,b;

scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}

問題4:限定用戶輸入數據為以下格式

1234↙

同時要求程序輸出結果為a=12,b=34%2d%2d

輸入數據的格式控制——例4.4第21頁/共37頁#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}

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

同時要求程序輸出結果為a="12",b="34"\"%d\",b=

\"%d\"輸入數據的格式控制——例4.4第22頁/共37頁#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題6:設計程序使得用戶可以以任意字符(回車、空格、制表符、逗號、其他)作為分隔符進行數據的輸入輸入數據的格式控制——例4.4%*c第23頁/共37頁#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題7:輸入123456時程序的輸出結果是什么?輸入數據的格式控制——例4.4%*2da=12,b=56第24頁/共37頁#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題8:如果用戶輸入了非法字符,例如輸入了123a,那么程序運行結果如何?輸入數據的格式控制——例4.4123a↙a=12,b=3第25頁/共37頁#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題9:如果用戶輸入的是123a,那么結果又會如何呢?輸入數據的格式控制——例4.4123a↙a=123,b=-858993460第26頁/共37頁#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題10:如果程序第5行語句修改為...,那么結果又會如何呢?輸入數據的格式控制——例4.4

a,b第27頁/共37頁#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

第1次測試12+3↙124199288=4199300C格式符的問題及解決—例4.5第28頁/共37頁#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

第2次測試123↙123=15C格式符的問題及解決—例4.5第29頁/共37頁#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=15C格式符的問題及解決—例4.5第30頁/共37頁#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:希望得到的運行結果12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12character

:afloatnumber:3.500000C格式符的問題及解決—例4.6第31頁/共37頁#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:結果好像很奇怪呀!12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12floatnumber:3.500000C格式符的問題及解決—例4.6第32頁/共37頁#include<stdio.h>main(){

inta;

charb;

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

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

:a↙Pleaseinputafloatnumber:3.5↙integer:12character

:afloatnumber:3.500000C格式符的問題及解決—例4.6第33頁/共37頁#include<stdio.h>main(){

inta;

char

溫馨提示

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

評論

0/150

提交評論