C primer plus 第六版 第6版 004章 第四章 復(fù)習(xí)題 答案 中文

1.再次運(yùn)行程序清單4.1讼庇,但是在要求輸入名字時,請輸入名和姓做祝,中間保有一個空格砾省,看看會發(fā)生什么?

#include <stdio.h>
#include <string.h>
#define DENSITY 62.4 // human density in lbs per cu ft

int main(){
 
    float weight, volume;
    int size, letters;
    char name[40]; // name is an array of 40 chars
    
    printf("Hi! What's your first name?\n");
    scanf("%s", name);
    printf("%s, what's your weight in pounds?\n", name);
    scanf("%f", &weight);
    size = sizeof name;
    letters = strlen(name);
    volume = weight / DENSITY;
    printf("Well, %s, your volume is %2.2f cubic feet.\n",name, volume);
    printf("Also, your first name has %d letters,\n",letters);
    printf("and we have %d bytes to store it.\n", size);

    return 0;
}

程序不能正常運(yùn)行混槐,第一個scanf()語句只讀取用戶輸入的名编兄,而用戶輸入的姓仍留在緩沖區(qū)中(緩沖區(qū)是用于存儲輸入的臨時存儲區(qū))。下一條scang()語句声登,在輸入緩沖區(qū)查找重量時狠鸳,從上次讀入結(jié)束的地方開始讀取。這樣就把留在緩沖區(qū)的姓作為體重來讀取悯嗓,導(dǎo)致sacnf()讀取失敗件舵。另一方面,如果在要求輸入姓名時輸入Lasha 114绅作,那么程序會把144作為用戶的體重(雖然用戶是在程序提示輸入體重之前輸入了144)

2.假設(shè)下列事例都是完整程序中的一部分芦圾,它們的打印結(jié)果分別是什么?

a.

printf("He sold the painting for $%2.2f.\n", 2.345e2);
打印出:He sold the painting for $234.50.

b.

printf("%c%c%c\n", 'H', 105, '\41');
'' 打印出:Hi!

c.

#define Q "His Hamlet was funny without being vulgar."

printf("%s\nhas %d characters.\n", Q, strlen(Q));
打印出:
His Hamlet was funny without being vulgar.
has 42 characters.

d.

printf("Is %2.2e the same as %2.2f?\n", 1201.0, 1201.0);
打印出:Is 1.20e+03 the same as 1201.00?

3在第二題的C中俄认,如果要輸出包含雙引號的字符串Q个少,該如何修改?

    #define Q "His Hamlet was funny without being vulgar."
    
    printf("\"%s\"\nhas %d characters.\n", Q, strlen(Q));

4找出下面程序中的錯誤 下面這個已經(jīng)被我改好了

#include <stdio.h>  //缺少這個頭文件不可以
define B "booboo"   
'' #define X 10   
int main() { 
int age; 
int xp;
char name[40];  
'' printf("Please enter your first name.\n"); 
scanf("%s", name); 
printf("All right, %s, what's your age?\n", name); 
scanf("%d", &age); 
xp = age + X;
 printf("That's a %s! You must be at least %d.\n", B, xp);
 retrun 0;
}

5.假設(shè)一個程序的開頭是這樣的,

#define BOOK "War and Peace" 
int main(void) { 
    float cost =12.99; 
    float percent = 80.0;

請構(gòu)造一個使用BOOK,cost和percent的printf()語句眯杏,打印以下內(nèi)容:

This copy of "War and Peace" sells for $12.99.

That is 80% of list.

語句應(yīng)該這么寫:
printf("This copy of "%s" sells for $%.2f.\nThat is %.1f%% of list\n",BOOK,cost,percent);

6.打印下列各項(xiàng)內(nèi)容要分別使用什么轉(zhuǎn)換說明夜焦?

  • 一個字段寬度與位數(shù)相同的十進(jìn)制整數(shù) %d
  • 一個形如8A、字段寬度為4的十六進(jìn)制整數(shù) %4x
  • 一個形如232.346岂贩、字段寬度為10的浮點(diǎn)數(shù) %10.3f
  • 一個形如2.33e+002茫经、字段寬度為12的浮點(diǎn)數(shù) %12.2e
  • 一個字段寬度為30、左對齊的字符串 %-30s

7.打印下面各項(xiàng)內(nèi)容要分別使用什么轉(zhuǎn)換說明?

  • a. An unsigned long integer in a field width of 15 %15lu

  • b. A hexadecimal integer in the form 0x8a in a field width of 4 %#4x

  • c. A floating-point number in the form 2.33E+02 that is left-justified in a field width of 12 %-12.2E

  • d. A floating-point number in the form +232.346 in a field width of 10 %+10.3f

  • e. The first eight characters of a string in a field eight characters wide %8.8s

8. What conversion specification would you use to print each of the following?

  • a. A decimal integer having a minimum of four digits in a field width of 6 %6.4d

  • b. An octal integer in a field whose width will be given in the argument list
    %o

  • c. A character in a field width of 2 #2c

  • d. A floating-point number in the form +3.13 in a field width equal to the number of characters in the number %+.2f

  • e. The first five characters in a string left-justified in a field of width 7

  • %-7.5s

9. For each of the following input lines, provide a scanf() statement to read it. Also declare any variables or arrays used in the statement.

a. 101
int number; scanf("%d",&number);
b. 22.32 8.34E?09
float kgs,share; scanf("%f%f",&kgs,&share);
c. linguini
char pasta[20]; scanf("%s",pasta);

d. catch 22
char action[20];
int value;
scanf("%s %d",action. &value);

e. catch 22 (but skip over catch)
int value;
scanf("%*s %d",&value);

10. What is whitespace?

空白包括空格卸伞、制表符和換行符抹镊。C語言使用空白分隔記號。scanf()使用空白分隔連續(xù)的輸入項(xiàng)荤傲。

11.What’s wrong with the following statement and how can you fix it?

printf("The double type is %z bytes..\n", sizeof (double));

%z中的z是修飾符垮耳,不是轉(zhuǎn)換字符,所以要在修飾符后面加上一個它修飾的轉(zhuǎn)換字符遂黍≈辗穑可以使用%zd打印十進(jìn)制數(shù),或用不同的說明符打印不同進(jìn)制的數(shù)雾家,例如铃彰,%zx打印十六進(jìn)制的數(shù)。

12. Suppose that you would rather use parentheses than braces in your programs. How well would the following work?

#define ( { 
#define ) }

可以是可以的芯咧,但是以后你就沒有圓括號了牙捉,都變成方括號了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末唬党,一起剝皮案震驚了整個濱河市鹃共,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驶拱,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晶衷,死亡現(xiàn)場離奇詭異蓝纲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)晌纫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門税迷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锹漱,你說我怎么就攤上這事箭养。” “怎么了哥牍?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵毕泌,是天一觀的道長。 經(jīng)常有香客問我嗅辣,道長撼泛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任澡谭,我火速辦了婚禮愿题,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己潘酗,他們只是感情好杆兵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著仔夺,像睡著了一般琐脏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上囚灼,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天骆膝,我揣著相機(jī)與錄音,去河邊找鬼灶体。 笑死阅签,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蝎抽。 我是一名探鬼主播政钟,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼樟结!你這毒婦竟也來了养交?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瓢宦,失蹤者是張志新(化名)和其女友劉穎碎连,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驮履,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鱼辙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了玫镐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倒戏。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖恐似,靈堂內(nèi)的尸體忽然破棺而出杜跷,到底是詐尸還是另有隱情,我是刑警寧澤矫夷,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布葛闷,位于F島的核電站,受9級特大地震影響口四,放射性物質(zhì)發(fā)生泄漏孵运。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一蔓彩、第九天 我趴在偏房一處隱蔽的房頂上張望治笨。 院中可真熱鬧驳概,春花似錦、人聲如沸旷赖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽等孵。三九已至稚照,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間俯萌,已是汗流浹背果录。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咐熙,地道東北人弱恒。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像棋恼,于是被迫代替她去往敵國和親返弹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容