c語言地4章課后題_第1頁
c語言地4章課后題_第2頁
c語言地4章課后題_第3頁
c語言地4章課后題_第4頁
c語言地4章課后題_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一、第四章p56-58頁的習(xí)題4.14.3。4-1(1)分析并寫出下列程序運(yùn)行結(jié)果#include <stdio.h>main()char c1='a',c2='b',c3='c' /*定義三個(gè)字符*/printf("a%cb%cc%cn",c1,c2,c3); /*格式化輸出三個(gè)字符*/ 結(jié)果:(2)#include <stdio.h>main()int a=12,b=15;printf("a=%d%,b=%d%n",a,b); /*格式化輸出a=12%,b=15%*/結(jié)果:(3)

2、假設(shè)程序輸入123456#include <stdio.h>main()int a,b;scanf("%2d%*2s%2d",&a,&b); /*對(duì)輸入的數(shù)取前兩位賦給a,跳過長度為2 的字符串,再取兩位數(shù)賦給b*/printf("%d,%dn",a,b);結(jié)果:4-2分析下面程序,請(qǐng)指出錯(cuò)誤原因和程序錯(cuò)在哪里,并改正錯(cuò)誤改正后:#include <stdio.h>main()long a,b;float x,y;scanf("%ld,%ld",&a,&b);getchar();

3、scanf("%5f,%5f",&x,&y);printf("a=%ld,b=%ldn",a,b);printf("x=%f,y=%fn",x,y);錯(cuò)誤分析: 1、定義long 型,輸入時(shí)要寫成 %ld ,輸入時(shí)不能加入 n ,取址符號(hào) & 丟掉,scanf 函數(shù)中不 .n,規(guī)定精度 2、輸出a,b對(duì)應(yīng)為long型,輸出格式符為 %ld ,x,y對(duì)應(yīng)為float型,輸出格式為%f,%f 3、在兩個(gè)scanf() 函數(shù)中,輸入4個(gè)數(shù)時(shí),會(huì)在兩個(gè)整數(shù)和兩個(gè)浮點(diǎn)型數(shù)之間加入逗號(hào),但加入逗號(hào)后,第二條scanf()

4、語句會(huì)認(rèn)為逗號(hào)也為有效輸入項(xiàng),后面的浮點(diǎn)型數(shù)就不會(huì)被讀入,所以要加入getchar() 函數(shù)將逗號(hào)吸收掉。4-3、填空題(1)要使下面程序在屏幕上顯示1,2,34,則從鍵盤輸入的數(shù)據(jù)格式應(yīng)為 1234#include <stdio.h>main()char a,b;int c;scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%dn",a,b,c);結(jié)果:(2)在與上面程序的鍵盤輸入相同的情況下,若將程序中的第7條語句修改為Printf(“%-2c%-2c%dn”,a,b,c);則屏幕輸出為

5、 1 2 34(3)要使上面程序的鍵盤輸入數(shù)據(jù)格式為1,2,34,輸出語句在屏幕上顯示的結(jié)果也為1,2,34,則應(yīng)將程序中的第六條語句修改為 scanf("%c%*c%c%*c%d",&a,&b,&c) (4)在(3)的程序基礎(chǔ)上,程序仍然輸入1,2,34,若將程序中的第7條語句修改為 Pirntf(“%c,%c,%dn”,a,b,c);則程序的屏幕輸出為 1,2,34(5) 要使上面程序的鍵盤輸入無論用哪種格式輸入數(shù)據(jù),程序在屏幕上的輸出結(jié)果都為1,2,34,則將程序中的第6條語句修改為 scanf("%c%*c%c%*c%d"

6、,&a,&b,&c);第1種輸入方式:1,2,34 (以逗號(hào)作為分隔符)第2種輸入方式:1 2 34 (以逗號(hào)作為分隔符)第3種輸入方式:1234 (以逗號(hào)作為分隔符)第4種輸入方式:1234 (以回車作為分隔符)二、收集資料,總結(jié)printf和scanf函數(shù)的用法。一、print格式化輸出函數(shù) 1、print(“要輸出的字符序列”)注意:“要輸出的字符序列”必須用英文的雙引號(hào)括起來,其作用是在屏幕上原樣輸出“要輸出的字符序列”。 例如:printf(“I love china!”);屏幕結(jié)果:I love china!2、printf(“輸出格式控制符”,輸出列表項(xiàng))

7、注意:“輸出格式控制符”必須用英文的雙引號(hào)括起來,其作用是按照輸出格式來輸出后面的輸出列表項(xiàng)的值。Printf(“%d,%d”,x,y);的作用是:以%d的格式輸出變量x,y的值,中間以逗號(hào)分隔。 “輸出格式控制符”可以是:(1) 格式符:即由%和格式字符組成,如:%d,%f等(2) 普通字符:如printf(“a=%d,b=%dn”,a,b);中的“a=”、“b=”都是普通字符,普通字符原樣輸出。(3) 轉(zhuǎn)義字符:如printf(“a=%d,b=%dn”,a,b);中的“n”。其含義是“換行”。C語言中常使用的格式字符共用9種。格式符字 說 明d , i輸出帶符號(hào)位的十進(jìn)制整數(shù)(整數(shù)前無符號(hào)

8、)O以八進(jìn)制無符號(hào)形式輸出整數(shù)(無前導(dǎo)o)X或x 以十六進(jìn)制無符號(hào)形式輸出整數(shù)(無前導(dǎo)ox),用x則輸出的af是小寫的形式,用X則輸出的af是大寫的形式U以十進(jìn)制無符號(hào)型輸出整數(shù) C輸出一個(gè)字符 S輸出字符串的字符,遇到“0”時(shí)結(jié)束輸出,或者輸出由精度指定的字符數(shù)F以小數(shù)形式輸出單精度或雙精度數(shù),隱含輸出六位小數(shù),當(dāng)指定精度為0時(shí),小數(shù)部分(包含小數(shù)點(diǎn))都不輸出E 或 E以標(biāo)準(zhǔn)形式輸出單雙精度數(shù),當(dāng)用E時(shí),指數(shù)部分的e用E表示,小數(shù)位數(shù)保留6位G或 g由系統(tǒng)決定采用%f,%e,%E的格式,以使輸出寬度最小,當(dāng)用G時(shí),指數(shù)部分e用E表示 %輸出百分號(hào)%在格式說明中,在%和上述格式字符之間還可以插

9、入修飾符,如下表:修飾符 說 明L或 l輸出長整形,放在d,o,x,u之前;輸出double型,放在f、e之前 h輸出短整型,放在d,o,x,u之前 m輸出數(shù)據(jù)寬度 n對(duì)于實(shí)數(shù),表示輸出n位小數(shù),對(duì)于字符串,表示截取字符個(gè)數(shù) -輸出的數(shù)據(jù)在域內(nèi)左對(duì)齊Printf()函數(shù)常用的格式符如下:(1) d格式符用來輸出十進(jìn)制整數(shù)%d:以整數(shù)的實(shí)際位數(shù)輸出%+d:以整數(shù)的十進(jìn)制實(shí)際位數(shù)輸出,輸出的正整數(shù)前帶“+”%md:輸出的整數(shù)有m列并右對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余的位數(shù)用空格填補(bǔ),當(dāng)m小于整數(shù)的寬度時(shí),則按實(shí)際寬度輸出%-md:輸出的整數(shù)有m列并左對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余的位數(shù)用空格填補(bǔ)

10、,當(dāng)m小于整數(shù)的寬度時(shí),則按實(shí)際寬度輸出 例如:printf(“%8dn,%-8dn”,2009,2009); 結(jié)果為: 2009 2009%ld或%Ld:按實(shí)際位輸出長整形數(shù)據(jù)%hd:按實(shí)際位數(shù)輸出短整型數(shù)據(jù)%mld或%mLd:輸出的長整型數(shù)據(jù)有m列并右對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余的位數(shù)用空格填補(bǔ),當(dāng)m小于整數(shù)的寬度時(shí),則按實(shí)際寬度輸出%-mld或%-mLd:輸出的長整型數(shù)據(jù)有m列并左對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余的位數(shù)用空格填補(bǔ),當(dāng)m小于整數(shù)的寬度時(shí),則按實(shí)際寬度輸出例如:long x=123456;printf("%8ldn%-8ldn",x,x);結(jié)果: 12

11、3456 123456%0md: 輸出的整數(shù)有m列并右對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余的位數(shù)用0填補(bǔ),當(dāng)m小于整數(shù)的寬度時(shí),則按實(shí)際寬度輸出注意:沒有%-0md(2)o,x,u的格式符用法與d相同,只是o,x,u不考慮符號(hào)位 例如: 結(jié)果: (3)c格式符用來輸入一個(gè)字符。用法:%c:輸出一個(gè)字符%mc:輸出的字符占m列并右對(duì)齊,多余的空位用空格填補(bǔ)%-mc: 輸出的字符占m列并左對(duì)齊,多余的空位用空格填補(bǔ) 例如:printf(“%-4cn%4cn”,A,A); 結(jié)果:A A(4)s格式符用來輸出一個(gè)字符串。用法: %s:以字符串的實(shí)際長度輸出一個(gè)字符串 %ms: 輸出的字符串占m列并右對(duì)齊,

12、當(dāng)m大于字符串的寬度時(shí),多余的位數(shù)用空格填補(bǔ),當(dāng)m小于字符串的寬度時(shí),則按實(shí)際寬度輸出 %-ms:輸出的字符串占m列并左對(duì)齊,當(dāng)m大于字符串的寬度時(shí),多余的位數(shù)用空格填補(bǔ),當(dāng)m小于字符串的寬度時(shí),則按實(shí)際寬度輸出 例如: 結(jié)果: %m.ns:在m列的位置上輸出一個(gè)字符串的前n個(gè)字符,并右對(duì)齊,m>n時(shí),多余的位數(shù)用空格填補(bǔ);m<n時(shí),輸出n位實(shí)際長度的字符串。 %-m.ns:在m列的位置上輸出一個(gè)字符串的前n個(gè)字符,并左對(duì)齊,m>n時(shí),多余的位數(shù)用空格填補(bǔ);m<n時(shí),輸出n位實(shí)際長度的字符串。例如: 結(jié)果: (5)f格式符以小數(shù)形式輸出單雙精度實(shí)數(shù) %f:輸出單精度實(shí)數(shù)

13、,整數(shù)部分全部輸出,小數(shù)部分保留6位,在有效范圍內(nèi)的小數(shù)部分要進(jìn)行四舍五入。 %lf或%Lf:輸出雙精度實(shí)數(shù),整數(shù)部分全部輸出,小數(shù)部分保留6位,在有效范圍內(nèi)的小數(shù)部分要進(jìn)行四舍五入。 例如: 結(jié)果: %m.nf:在m列的位置上輸出一個(gè)實(shí)數(shù)保留n位小數(shù)并右對(duì)齊,系統(tǒng)自動(dòng)對(duì)在有效數(shù)據(jù)范圍內(nèi)的小數(shù)部分進(jìn)行四舍五入。當(dāng)m大于實(shí)際寬度時(shí),則多余位用空格填補(bǔ),當(dāng)M小于實(shí)際寬度時(shí),實(shí)數(shù)的整數(shù)部分按實(shí)際寬度輸出。 %-m.nf: 在m列的位置上輸出一個(gè)實(shí)數(shù)保留n位小數(shù)并左對(duì)齊,系統(tǒng)自動(dòng)對(duì)在有效數(shù)據(jù)范圍內(nèi)的小數(shù)部分進(jìn)行四舍五入。當(dāng)m大于實(shí)際寬度時(shí),則多余位用空格填補(bǔ),當(dāng)M小于實(shí)際寬度時(shí),實(shí)數(shù)的整數(shù)部分按實(shí)際寬

14、度輸出,且結(jié)果左對(duì)齊。 例如: 結(jié)果: %.nf:實(shí)數(shù)的整數(shù)部分按實(shí)際輸出,小數(shù)部分保留n位,自動(dòng)對(duì)在有效范圍內(nèi)的小數(shù)進(jìn)行四舍五入保存,結(jié)果左對(duì)齊。(6)e格式符用來以指數(shù)形式輸出一個(gè)實(shí)數(shù),用法同f格式符。 例如:printf(“%e”,12.122344); 結(jié)果:1.212234e+001(7)g格式符用來輸出實(shí)數(shù),系統(tǒng)根據(jù)實(shí)數(shù)的大小,自動(dòng)選擇f格式符或e格式符輸出,輸出時(shí)選擇占寬度較小的一種格式輸出,且不輸出無意義的0總結(jié): 1、數(shù)據(jù)類型應(yīng)與格式說明符匹配,否則會(huì)出錯(cuò)。 2、int型數(shù)據(jù)可以用%u格式輸出,一個(gè)unsigned型數(shù)據(jù)可用%d,%o,%x格式輸出 3、除了X,E,G,L可以

15、大寫以外,其他格式必須小寫 4、如果需要輸出“%”,應(yīng)在格式符內(nèi)連續(xù)使用兩個(gè)“%”,如:Printf(“%5.2f%”,3.0/100); 結(jié)果:33.33%二、scanf()輸入函數(shù) 格式輸入函數(shù)scanf()用于從鍵盤輸入數(shù)據(jù),該輸入數(shù)據(jù)按指定的輸入格式賦給相應(yīng)的輸入項(xiàng)。 其輸入格式為: Scanf(“輸入格式控制符”,輸入項(xiàng)地址列表);注意:“輸入格式控制符”必須用英文的雙引號(hào)括起來,他的作用是按照輸入格式從鍵盤從鍵盤鍵入若干類型的數(shù)據(jù)給后面的輸入項(xiàng)。例如: int a,b;Scanf(“a=%d,b=%d”,&a,&b); 運(yùn)行時(shí)從鍵盤輸入a=3,b=5 按enter

16、鍵,則變量a和b的值分別是3和5。“輸入格式控制符”可以是:(1)格式符:由%和格式字符構(gòu)成,如%d 和%f等(2)普通字符:如printf(“a=%d,b=%dn”,a,b);中的“a=”,“,”、“b=”都是普通字符,輸入時(shí)要按原樣輸入。下表是scanf()格式說明格式字符 說 明d 和 i輸入帶符號(hào)的十進(jìn)制整數(shù)O輸入不帶符號(hào)位的八進(jìn)制整數(shù)X 和x輸入不帶符號(hào)位的十六進(jìn)制整數(shù),大小寫形式相同 u輸入不帶符號(hào)位的十進(jìn)制整數(shù)c輸入單個(gè)字符s輸入字符串f輸入實(shí)數(shù),以小數(shù)形式或指數(shù)形式E e g G與f作用相同,e與f,g可以相互替換,大小寫形式相同 在格式說明中,在%和上述格式字符之間還可以插入下表的修飾符格式字符 說 明L 或l輸入長整形,放在d,o,x,u的前面;輸入double型,放在f,e之前h 輸入短整型,放在d,o,x,u之前m用來指定輸入數(shù)據(jù)的寬度*表示輸入項(xiàng)在讀入后不賦給相應(yīng)的變量輸入scanf()函數(shù)要注意以下幾點(diǎn):(1)地址表列要用地址運(yùn)算符“&”取變量的地址或用指針變量(2)“輸入格式控制符”中的普通字符一定要按照

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論