第三章-C語言數(shù)據(jù)的輸入與輸出復(fù)習(xí)_第1頁
第三章-C語言數(shù)據(jù)的輸入與輸出復(fù)習(xí)_第2頁
第三章-C語言數(shù)據(jù)的輸入與輸出復(fù)習(xí)_第3頁
第三章-C語言數(shù)據(jù)的輸入與輸出復(fù)習(xí)_第4頁
第三章-C語言數(shù)據(jù)的輸入與輸出復(fù)習(xí)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言數(shù)據(jù)的輸入與輸出復(fù)習(xí)數(shù)據(jù)輸入輸出的概念所謂輸入輸出是以計算機(jī)主機(jī)為主體而言的。輸出:從計算機(jī)向外部輸出設(shè)備(顯示器,打印機(jī))輸出數(shù)據(jù)。輸入:從輸入設(shè)備(鍵盤,鼠標(biāo),掃描儀)向計算機(jī)輸入數(shù)據(jù)C語言本身不提供輸入輸出語句,輸入和輸出操作是由C函數(shù)庫中的函數(shù)來實現(xiàn)的例如:字符輸入函數(shù):getchar字符輸出函數(shù):putchar格式輸入函數(shù):scanf格式輸出函數(shù):printf字符串輸入函數(shù):gets字符串輸出函數(shù):puts字符輸入輸出函數(shù)putchar(x)函數(shù):有參數(shù) 例:putchar(ch);putchar('A');putchar(65);

每句只能輸出一個字符數(shù)據(jù)。getchar()函數(shù):無參數(shù) 從鍵盤讀入一個字符(空格回車都算)。 程序執(zhí)行到getchar函數(shù)時,等待輸入字符,直到按回車才結(jié)束,回車前的所有輸入字符都將逐個顯示在屏幕上。但只有第一個字符被getchar函數(shù)接收。

c=getchar();按回車符才可送出當(dāng)使用這兩個函數(shù)時,在程序的開頭一定要加上:

#include<stdio.h>字符輸入輸出函數(shù)getch()函數(shù):無參數(shù)。

getch()的作用與getchar類似,都是從標(biāo)準(zhǔn)輸入設(shè)備(通常指鍵盤)讀入一個字符。其調(diào)用形式分別為:

getch(); 但getch函數(shù)讀入的字符不會回顯在屏幕上,它與getchar函數(shù)不同之處在于:getch函數(shù)不必輸入回車才結(jié)束,只要輸入任意一個鍵,該字符立即被接收,程序繼續(xù)執(zhí)行下一條語句。利用這一特點,這兩個函數(shù)經(jīng)常用于交互輸入的過程中實現(xiàn)暫停功能,或直接查看程序運行結(jié)果。例:輸出單個字符#include"stdio.h"main(){chara,b,c;a='A';b='B';c='C';clrscr();putchar(a);putchar(b);putchar(c);putchar('\n');putchar(a);putchar('\n');putchar(b);putchar('\n');putchar(c);}每次只能輸出一個字符

putchar('');輸出空格運行結(jié)果:ABCABC

字符輸入輸出函數(shù)putchar('\101');A運行程序:

從鍵盤輸入字符a

按Enter鍵

屏幕上將顯示輸出的字符a

a

a例輸入單個字符。

#include"stdio.h"

main()

{

charc;

c=getchar();

putchar(c);

putchar('\n');

}字符輸入輸出函數(shù)3.4.4格式輸入函數(shù)與格式輸出函數(shù)printf函數(shù)是格式化輸出函數(shù),用于向標(biāo)準(zhǔn)輸出設(shè)備(通常指定為屏幕)按規(guī)定格式輸出數(shù)據(jù)。printf函數(shù)的調(diào)用格式為:printf(格式控制字符串,輸出列表);

其中格式化字符串包括兩部分內(nèi)容:一是普通字符按原樣輸出,轉(zhuǎn)義字符輸出它所代表的字符;二是“輸出格式說明”,

以“%”開始,后跟格式字符,用來指定輸出數(shù)據(jù)的格式。如%d輸出int型數(shù)據(jù)

輸出列表是若干個需要輸出的數(shù)據(jù)項,稱為函數(shù)的參數(shù),可以是常量、變量或表達(dá)式,各參數(shù)之間用","分開。格式化輸出函數(shù)printf()printf函數(shù)的輸出格式說明 每個格式說明都必須用%開頭,以一個格式字符作為結(jié)束,在此之間根據(jù)需要可以插入"寬度說明"、長度修飾符'l'和'L"等。(1)格式字符:格式字符用于規(guī)定輸出不同的數(shù)據(jù)類型,格式字符和它們的作用如下表,可詳見附錄D。格式化輸出函數(shù)printf()(2)長度修飾符:長度修飾符加在%和格式字符之間。長度修飾符作用l格式字符是d,i,o,u,x,X時,用于輸出長整型數(shù)據(jù)(longint)L格式字符是e,E,f,g,G時,用于輸出長雙精度實型數(shù)據(jù)(longdouble)

從上表可知:雙精度實型數(shù)據(jù)的輸出不要用%lf,只要用%f即可。但長雙精度實型數(shù)據(jù)的輸出必須加長度修飾符L,例如%Lf、%Le等。格式化輸出函數(shù)printf()(4)在輸出的數(shù)字前加"+"號使用%+格式字符(如%+d、%+f等),可在輸出的數(shù)字前加"+"號,例如

printf("%+d,%+10.2f",123,12345.678);

輸出結(jié)果如下:+123,+12345.68。例:intx=1234,y=123,z=12;

printf("%4d+%3d+%2d",x,y,z)

輸出結(jié)果:1234+123+12格式化輸出函數(shù)printf()(5)輸出數(shù)據(jù)所占的寬度①整型數(shù)據(jù)的輸出寬度

%md、%mu、%mo、%mx,按m寬度輸出數(shù)據(jù),不足m個位數(shù),左補(bǔ)空格(數(shù)據(jù)右對齊)。②實型數(shù)據(jù)的輸出寬度

%m.nf、%m.ne、%m.ng,數(shù)據(jù)輸出的總寬占m列,其中小數(shù)部分占n列,若數(shù)據(jù)自身寬度小于m列,則左補(bǔ)空格。③字符串的輸出寬度

%ms輸出寬度占m列,若字符串寬度小于m列,左補(bǔ)空格,若字符串寬度大于m列則原樣輸出字串。實型數(shù)據(jù)的輸出寬度main(){floata=123.456;printf("a=%f\n",a);printf("a=%4f\n",a);printf("a=%15f\n",a);printf("a=%.2f\n",a);printf("a=%.5f\n",a);}a=123.456001a=123.456001a=123.456001a=123.46a=123.45600格式化輸出函數(shù)printf()例輸出實數(shù)時指定小數(shù)位數(shù)。

#include"stdio.h"

main()

{

floata=123.456;

printf("*%f*,*%10f*,*%10.2f*\n",a,a,a);

printf("*%-10.2f*,*%.2f*\n",a,a);

}

運行結(jié)果:

*123.456001**123.456001**123.46**123.46**123.46*

main(){floata=123.456;clrscr();printf("a=%e\n",a);printf("a=%10e\n",a);printf("a=%10.2e\n",a);printf("a=%-10.2e\n",a);printf("a=%.2e\n",a);}(8)e格式符,以指數(shù)形式輸出實數(shù)a=1.23456e+02a=1.23456e+02a=1.2e+02a=1.2e+02a=1.2e+02格式化輸出函數(shù)printf()格式化輸出函數(shù)printf()(9)g格式符,用來輸出實數(shù).

它根據(jù)數(shù)值的大小,自動選f格式或e格式(選擇輸出時占寬度較小的一種),且不輸出無意義的零。例:若a=123.456,則

printf("%f",a);123.456001printf("%g",a);123.456格式化輸入函數(shù)scanf()scanf函數(shù)的功能是從標(biāo)準(zhǔn)輸入流中按指定格式接收輸入的數(shù)據(jù);scanf函數(shù)的調(diào)用格式為:

scanf(格式控制字符串,地址列表);格式控制字符串同printf地址列表是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址格式化輸入函數(shù)scanf()例:用scanf函數(shù)輸入數(shù)據(jù)#include"stdio.h"main(){inta,b,c;scanf("%d%d%d",&a,&b,&c);printf("%d,%d,%d\nf",a,b,c);}運行情況:

345<回車>(輸入a,b,c的值)

3,4,5(輸出a,b,c的值)a在內(nèi)存中的地址&是地址運算符格式化輸入函數(shù)scanf()3、在格式字符串中插入其它字符如果想在屏幕上輸入字符來提示,應(yīng)該使用printf函數(shù);如果用scanf格式控制字符串中插入其它字符,則輸入時,要求按一一對應(yīng)的位置原樣輸入這些字符;#include"stdio.h"

main()

{inta,b,c;

clrscr();printf(“input:a,b,c\n“);scanf("%d%d%d",&a,&b,&c);

printf("%d,%d,%d\nf",a,b,c);

}scanf(“input:a,b,c:%d%d%d",&a,&b,&c);運行情況:

inputa,b,c:345

格式化輸入函數(shù)scanf()說明:1、TC環(huán)境下,輸入long整數(shù)時,用%ld;輸入double時,用lf;2、格式說明的類型和輸入項類型,應(yīng)該一一匹配;

floata;scanf(“%d”,&a);不合法3、在scanf函數(shù)中的格式字符前,可以一個整數(shù)指定輸入數(shù)據(jù)所占寬度,但不可對實型數(shù)指定小數(shù)寬度;

scanf(“%3d”,&a);合法

scanf(“%3.2f”,&a);不合法格式化輸入函數(shù)scanf()4、在用“%c”格式輸入字符時,無需間隔符,在這里,回車、Tab、空格字符和“轉(zhuǎn)義字符”都作為有效字符輸入#include"stdio.h"main(){chara,b,c;clrscr();printf("input:\n");

scanf("%c%c%c",&a,&b,&c);printf("%c,%c,%c\n",a,b,c);}#include"stdio.h"main(){chara,b,c;printf("input:\n");

scanf("%c,%c,%c",&a,&b,&c);printf("%c,%c,%c\n",a,b,c);}鍵盤輸入:abc<回車>鍵盤輸入:a,b,c<回車>格式化輸入函數(shù)scanf()例:以下程序的運行結(jié)果是什么?#include"stdio.h"main(){charc1,c2;inta,b;clrscr();scanf("%d%c%d%c",&a,&c1,&b,&c2);printf("c1=%c,c2=%c,a=%d,b=%d\n",c1,c2,a,b);}鍵盤輸入:1x2y<回車>會是什么結(jié)果?正確輸入:1x2y<回車>5、在格式輸入串中,格式說明符的個數(shù)應(yīng)該與輸入項的個數(shù)相同,若格式符個數(shù)少于輸入項,scanf函數(shù)按格式符的項目結(jié)束輸入,多余的輸入項沒有得到新的數(shù)據(jù);若格式符的個數(shù)多于輸入項,scanf函數(shù)按輸入項的數(shù)據(jù)結(jié)束輸入,多余的格式符不起作用;格式化輸入函數(shù)scanf()main(){inta,b,k,i;clrscr();scanf("%d%d",&a,&b,&k);scanf("%d%d",&i);printf("a=%d,b=%d,k=%d,i=%d\n",a,b,k,i);getch();}6、當(dāng)輸入數(shù)據(jù)少于輸入項時,程序等待輸入,直到滿足要求為止,當(dāng)輸入的數(shù)據(jù)多于輸入項時,多余數(shù)據(jù)并不消失,而是留做下一個輸入操作的輸入數(shù)據(jù);格式化輸入函數(shù)scanf()輸入時個數(shù)不夠,會到下一行取,太多個則放在緩沖區(qū),如

scanf("%d%d",&a,&b,&k);

當(dāng)輸入123則3不送k,仍放在緩沖區(qū)。接著執(zhí)行: scanf("%d%d",&i);

輸入4后, 程序運行結(jié)果是:a=1,b=2,k=5852,i=3printf與scanf對實數(shù)處理時的區(qū)別:

實型數(shù)據(jù)printfscanffloat%f%fdouble%f或%lf%lflongdouble%Lf%Lf格式化輸入函數(shù)scanf()語句:

scanf("%3d%8f%d",&i,&f,&j);鍵盤輸入數(shù)據(jù):123456.7891234回車結(jié)果:i為123,f為456.7891,j為234說明:遇到寬度3和8,數(shù)據(jù)項結(jié)束。語句:

scanf("%ld%c%d",&k,&ch,&i);鍵盤輸入數(shù)據(jù):123456.7890回車結(jié)果:k為123456,ch為'.',i的值為7890說明:遇到非法字符'.',數(shù)據(jù)項結(jié)束。格式化輸入函數(shù)scanf()注意%c用法:讀1個字符(空格,回車鍵也算)。

charc1,c2,c3; scanf("%c%c%c",&c1,&c2,&c3);

輸入abc,c1為'a',則c2為空格,c3為'b'雙引號內(nèi)最好不用其它字符:(逗號可用)

例:scanf("x=%f",&x);要輸入:x=123.456

例:scanf("%d",&i) scanf("x=%f",&x);

則輸入第一個數(shù)后不能按回車 第二句改為scanf("x=%f",&x);才行。

作業(yè)練習(xí)1編一程序,輸入三角形的三條邊,求三角形面積。#include<stdio.h>#include<stdlib.h>#include<math.h>intmain(){double

triange_length1,triange_length2,triange_length3,triange_avg,triange_area;printf("輸入三角形的三邊長:");

scanf("%lf%lf%lf",&triange_length1,&triange_length2,&triange_length3);if(triange_length1+triange_length2<=triange_length3||triange_length1+triange_length3<=triange_length2||triange_length2+triange_length3<=triange_length1){printf("不好意思,您輸入的三條邊不能構(gòu)成三角形!?。?);}else{triange_avg=(triange_length1+triange_length2+triange_length3)/2;triange_area=sqrt(triange_avg*(triange_avg-triange_length1)*(triange_avg-triange_length2)*(triange_avg-triange_length3));printf("根據(jù)您輸入三條邊的數(shù)據(jù)構(gòu)成的三角形面積為:%.2lf\n",triange_area);}return0;}

作業(yè)練習(xí)2編一程序,從鍵盤輸入一個大寫字母,要求輸出時,顯示小寫字母。#include<stdio.h>intmain(){c

溫馨提示

  • 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

提交評論