1樓:匿名使用者
4,c=5,x=1.2,y=2.4,z=-3.
6,u=51274,n=128765,c1='a',c2='b',想得到以下的輸出格式和結果,請寫出程式(包括定義變數型別和設計輸出)。要求輸出的結果如下:
a=凵3凵凵b=凵4凵凵c=凵5
x=1.200000,y=2.400000,z=-3.600000
x+y=凵3.60凵凵y+z=-1.20凵凵z+x=-2.40
c1='a'凵or凵97(ascii)
c2='b'凵or凵98(ascii)
解:#include
main()
4.5 請寫出下面程式的輸出結果:
#include
main()
執行結果:(在tc2.0中)
57凵凵5凵凵7
67.856400,-789.124023
67.856400凵,-789.124023
凵凵凵67.86,凵-789.12,67.8564,-789.1240,67.856400,-789.124023
6.785640e+ol,凵凵-7.9e+02
a,65,10l,4l
1234567,4553207,d687
65535,177777,ffff,-1
computer,凵凵com
4.6 用下面的scanf函式輸入資料,使a=3,b=7,x=8.5,y=71.82,c1='a',c2='a'。問在鍵盤上如何輸入?
#include
main()
解:可按如下方式在鍵盤上輸入:
a=3凵b=7↙
8.5凵71.82↙
a凵a↙
輸出為:
a=3,b=7,x=8.500000,y=71.820000,cl=a,c2=a
請注意:在第三個scanf函式雙引號中第一個字元為空格字元。如果沒有這個空格字元,而寫成:
scanf("%c%c,&c1,&c2);
按以上的輸入,輸出就會變成以下兩行:
a=3,b=7,x=8.500000,y=71.820000,cl=
,c2=a
這是因為在輸入完第二行資料後按的回車鍵被作為一個字元送到記憶體輸入緩衝區中,因此第三個scanf函式中的第一個變數c1讀人了回車符(實際上是回車符的ascii碼)。第三行輸入的第一個字元a被c2讀取,所以在執行printf函式輸出cl時,就輸出一個回車符,輸出c2時就輸出字元a。我們在程式第三個scanf函式雙引號中第一個字元處放了一個空格字元,這樣第二行末尾輸入的回車符就不會輸入給c1,而是與該空格字元對應,第三行輸入的第一個字元a就被cl讀取。
也可以不在scanf函式中加空格,而在第三個函式前加一個getchar函式:getchar(); 用它將前面的回車符「吃掉」。
在一個函式中如果有幾個scanf函式,在輸人資料時往往會出現一些想象不到的情況(例如前面碰到的情況),其中一個重要的原因就是由回車符引起的。c語言很靈活,書上不可能把一切細節都講到,讀者在遇到類似情況時,上機多試驗一下就可以找出規律來。
4.7 用下面的scanf函式輸入資料,使a=10,b=20,c1='a',c2='a',x=1.5,y=-3.75,z=67.8,請問在鍵盤上如何輸入資料?
解:#include
main()
運**況如下:
凵凵凵10凵凵凵20aa1.5凵-3.75凵1.5,67.8↙ (此行為輸人的資料)
a=10,b=20,cl=a,c2=a,x=凵凵1.50,y=凵-3.75,x=凵67.80 (此行為輸出)
說明:按%5d格式的要求輸入a與b時,要先鍵入三個空格,然後再鍵人10與20。%*f是用來禁止賦值的。
在輸入時,對應於%*f的地方,隨意打人了一個數如1.5,該值不會賦給任何變數。
4.8 設圓半徑r=1.5,圓柱高h=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。
用scanf輸入資料,輸出計算結果,輸出時要求有文字說明,取小數點後2位數字。請程式設計序。
解:#include
main()
執行結果:
請輸入圓半徑r,圓柱高h;
1.5,3↙
圓周長為:l= 9.42
圓面積為:s= 7.07
圓球表面積為:sq= 28.27
圓球體積為:sv= 7.95
圓柱體積為:sz= 21.21
4.9 輸入一個華氏溫度,要求輸出攝氏溫度。公式為c=5(f-32)/9,輸出要有文字說明,取2位小數。
解:#include
main()
執行結果:
請輸入一個華氏溫度:
78攝氏溫度為:25.56
4.10 程式設計序,用getchar函式讀入兩個字元給cl、c2,然後分別用putchar函式和printf函式輸出這兩個字元。並思考以下問題:
(1)變數c1、c2應定義為字元型或整型?抑或二者皆可?(2)要求輸出c1和c2值的ascii碼,應如何處理?
用putchar函式還是printf函式?(3)整型變數與字元變數是否在任何情況下都可以互相代替?如char"c1,c2;" 與"int cl,c2;" 是否無條件地等價?
解:#include
main()
執行結果:
請輸入兩個字元c1,c2:
ab↙用putchar語句輸出結果為:
ab↙用printf語句輸出結果為:
a,b請注意連續用兩個getchar函式時怎樣輸入字元。不應當用以下方法輸入:
a↙b↙
因為第一行將a和回車符輸入到記憶體的輸入緩衝區,因此c1得到a,c2得到一個回車符。在輸出c2時就會產生一個回車換行,而不會輸出任何可顯示的字元。在實際操作時,只要輸入了"a↙"後,螢幕顯示馬上從使用者屏切換到tc視窗,程式接著執行下去。
因為系統認為使用者已輸入了兩個字元,所以我們連續輸入ab兩個字元然後再按回車鍵,就保證了c1和c2分別得到字元a和b。
回答思考問題:
(1) c1和c2可以定義為字元型或整型,二者皆可。
(2) 在printf函式中用%d格式符輸出,即:
printf("%d,%d\n",c1,c2);
(3) 字元變數在計算機內佔一個位元組,而整型變數佔兩個位元組,因此整型變數在可輸出字元的範圍內(ascii碼為0~255之間的字元)是可以與字元資料互相轉換的。如果整數在此範圍外,則不能代替,請分析以下三個程式。
程式1:(4-10-1.c)
#include
main()
執行結果:
請輸入兩個整數c1,c2:
97,98↙
按字元輸出結果為:
a,b按ascii碼輸出結果為:
97,98
程式2:(4-10-2.c)
#include
main()
執行結果:
請輸入兩個字元c1,c2:
a,b↙
按字元輸出結果為:
a,b按整數輸出結果為:
97,98
程式3:(4-10-3.c)
#include
main()
執行結果:
請輸入兩個整數i1,i2:
289,330↙
按字元輸出結果為:
!,j按整數輸出結果為:
33,74
請注意c1和c2是字元變數,只佔一個位元組,只能存放0~255範圍內的整數,而現在輸入給i1和i2的值已超過0~255的範圍,所以只將i1和i2在記憶體中兩個位元組的低8位賦給c1和c2。可以看到,289-255=33,330-255=74;而與ascii碼33和74相應的字元為"!"
另外,團idc網上有許多產品**,便宜有口碑
2樓:匿名使用者
暈。 我有本書。 書。 沒電腦的資料。
c語言程式設計教程第二版課後答案 李麗娟
文庫精選 內容來自使用者 度米文庫 篇一 c語言程式設計 第2版 課後題答案 p 參 第1章進入c語言程式世界 二 1.i love china printf we are students.n 2.6專案實訓題參 1 編寫一個c程式,輸出以下資訊 i am a student main 2 已知立...
c語言程式設計第二版科學出版社的課後答案
文庫精選 內容來自使用者 度米文庫 篇一 c語言程式設計 第2版 課後題答案 p 參 第1章進入c語言程式世界 二 1.i love china printf we are students.n 2.6專案實訓題參 1 編寫一個c程式,輸出以下資訊 i am a student main 2 已知立...
請問c語言程式設計第二版和第三版有什麼區別
1win tc不是turbo c 2建議用第三版好一些。c語言程式設計 譚浩強主編 第二版跟第三版的有什麼區別 平未漢曼容 有阿在第二版中譚老師加了c 的基礎而第三版中沒有編譯器第二版中採用的是turbo c2.0 第三版中採用的是turbo c 3.0 c語言程式設計 譚浩強 第二版跟第三版的區別...