急需《C語言程式設計教程》第三版 譚浩強張基溫 編著,高等教育出版社出版,課後習題答案

時間 2021-08-30 11:17:32

1樓:喬伊

上 bbs,5hupo,com 琥珀課後資源網···這裡面有很全的大學課後資源··應該會有你想要的~··祝你學業有成哈··

2樓:匿名使用者

c程式設計(第三版)[譚浩強著]課後題答案!!!(2009-06-04 19:57:53)標籤:教育 分類:學習

1.5請參照本章例題,編寫乙個c程式,輸出以下資訊:

**************************

very good!

**************************

解:mian()

1.6 編寫乙個程式,輸入a、b、c三個值,輸出其中最大值。

解:mian()

執行結果:

密碼是glmre

3.9求下面算術表示式的值。

(1)x+a%3*(int)(x+y)%2/4

設x=2.5,a=7,y=4.7

(2)(float)(a+b)/2+(int)x%(int)y

設a=2,b=3,x=3.5,y=2.5

(1)2.5

(2)3.5

3.10寫出程式執行的結果。

main()

解:9,11,9,10

3.12 寫出下面表示式運算後a的值,設原來a=12。設a和n都已定義為整型變數。

(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a

(5) a%=(n%=2),n的值等於5

(6)a+=a-=a*=a

解:(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0

第四章4.4若a=3,b=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.600_ _y+z=-1.20_ _z+x=-2.40

c1=ˊaˊ_or_97(ascii)

c2=ˊbˊ_or_98(ascii)

main()

4.7用scanf下面的函式輸入資料,使a=3,b=7,x=8.5,y=71.82,c1=ˊaˊ,c2=ˊaˊ,問在鍵盤上如何輸入?

main()

a=3_b=7

_x=8.5_y=71.82

_c1=a_c2=a

4.8設圓半徑r=1.5,圓柱高h=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入資料,輸出計算結果,輸出時要求文字說明,取小數點後兩位數字。請程式設計序。

main()

4.9輸入乙個華氏溫度,要求輸出攝氏溫度。公式為

c=5(f-32)/9

輸出要求有文字說明,取位2小數。

main()

4.10程式設計序,用getchar函式讀入兩個字元給c1、c2,然後分別用函式和函式輸出這兩個字元。並思考以下問題:(1)變數c1、c2應定義為字元型或整形?

抑二者皆可?(2)要求輸出c1和c2值的ascii碼,應如何處理?用putchar函式還是printf函式?

(3)整形變數與字元變數是否在任何情況下都可以互相代替?如:

char c1,c2;

與int c1,c2;

是否無條件的等價?

#include"stdio.h"

main()

#include"stdio.h"

main()

第五章5.1 什麼是算術運算?什麼是關係運算?什麼是邏輯運算?

解:略。

5.2 c語言中如何表示「真」和「假」?系統如何判斷乙個量的「真」和「假」?

解:設有乙個邏輯表示式,若其結果為「真」,則以1表示;若其結果為「假」,則以0表示。但是判斷乙個邏輯量的值時,以0代表「真」,以非0代表「假」。

例如3&&5的值為「真」,系統給出3&&5的值為1。

5.3 寫出下面各邏輯表示式的值。設a=3,b=4,c=5。

(1) a+b>c&&b==c

(2) a||b+c&&b-c

(3) !(a>b)&&!c||1

(4) !(x=a)&&(y=b)&&0

(5) !(a+b)+c-1&&b+c/2

解:(1) 0

(2) 1

(3) 1

(4) 0

(5) 1

5.4 有3個整數a、b、c,由鍵盤輸入,輸出其中最大的數。

解:方法一

#include

main()

5.5 有一函式:

寫一程式,輸入x值,輸出y值。

解:#include

main()

else if (x<10)

else

}5.6 給乙個百分制成績,要求輸出等級』a』、』b』、』c』、』d』、』e』。90分以上為』a』,80~90分為』b』,70~79分為』c』,60分以下為』d』。

解:程式如下:

#include

main()

switch((int)(score/10))

printf("成績是%5.1f,相應的等級是%c。\n",score,grade);

}說明:對輸入的資料進行檢查,如小於0或大於100,要求重新輸入。(int)(score/10)的作用是將 (score/10) 的值進行強制型別轉換,得到乙個整型值。

5.7 給定乙個不多於5位的正整數,要求:① 求它是幾位數;② 分別列印出每一位數字;③ 按逆序列印出各位數字。例如原數為321,應輸出123。

解:#include

main()

}5.8 企業發放的獎金根據利潤提成。利潤i低於或等於10萬元時,獎金可提成10% ;利潤高於10萬元,低於20萬元(1000001000000時,超過100萬元的部分按1%提成。

從鍵盤輸入當月利潤i,求應發放獎金總數。要求:(1)用if語句程式設計序;(2)用switch語句程式設計序。

解:計算利潤時,要特別注意不同利潤的不同提成比例。例如,利潤為15萬元,其中有10萬元按10%的比例提成,另外5萬元則按7.5%提成。

(1) 用if語句程式設計序。

#include

main()

此題的關鍵在於正確寫出每一區間的獎金計算公式。例如利潤在10萬元至20萬時,獎金應由兩部分組成:①利潤為10萬元時應得的獎金。

即100000ⅹ0.1;②10萬元以上部分應得的獎金。即(num-100000)ⅹ0.

075。同理,20萬~40萬這個區間的獎金也應由兩部分組成:①利潤為20萬元時應得的獎金,即100000ⅹ0.

1ⅹ10萬ⅹ0.075;②20萬元以上部分應得的獎金,即(num-200000)ⅹ0.05。

程式中先把10萬、20萬、40萬、60萬、100萬各關鍵點的獎金計算出來,即bon1、bon2、bon4、bon6、hon10;然後再加上各區間附加部分的獎金。

(2) 用switch語句程式設計序。

輸入利潤i,確定相應的提成等級branch

根據branch確定獎金值

0 獎金=i*0.1

1 獎金=bon1+(i-105)*0.075

2 獎金=bon2+(i-2*105)*0.05

34 獎金=bon4+(i-4*105)*0.03

56 獎金=bon6+(i-6*105)*0.01578

910 獎金=bon10+(i-106)*0.01

輸出獎金

#include

main()

printf("獎金是%10.2f",bonus);

}5.9 輸入4個整數,要求按由大到小的順序輸出。

解:此題採用依次比較的方法排出其大小順序。在學習了迴圈和陣列以後,可以有更多的排序方法。

#include

main()

if(a>c)

if(a>d)

if(b>c)

if(b>d)

if(c>d)

printf("排序結果如下:\n");

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

}5.10 有4個圓塔,圓心分別為(2,2)、(-2,2)、(2,-2)、(-2,-2),圓半徑為1。這4個塔的高度分別為10m。

塔以外無建築物。今輸入任一點的座標,求該點的建築高度(塔外的高度為零)。

程式如下:

#include

main()

第六章第六章 迴圈控制

6.1輸入兩個正整數m和n,求其最大公約數和最小公倍數。

main()

if(m>=n) j=m;

else j=n;

for(;!(j%m==0&&j%n==0);j++);

printf("s=%ld,j=%ld\n",s,j);

}6.2輸入一行字元,分別統計出其中英文本母、空格、數字和其他字元的個數。

#include"stdio.h"

main()

}6.3求sn=a+aa+aaa+…+aa…aaa(有n個a)之值,其中a是乙個數字。例如:2+22+222+2222+22222(n=5),n由鍵盤輸入。

#include"math.h"

main()

printf("sum=%d\n",sum);

}6.4 求 ,(即求1!+2!+3!+4!+5!+…+20!)

main()

printf("sum=%ld\n",sum);

}6.5 求

main()

6.6列印出所有"水仙花數",所謂"水仙花數"是指乙個三位數,其各位數字立方和等於該本身。例如:153是乙個水仙花數,因為153=1^3+5^3+3^3。

#include"math.h"

main()

}6.7乙個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如,6的因子為1、2、3,而6=1+2+3,因此6是"完數"。

程式設計序找出1000之內的所有完數,並按下面格式輸出其因子:

6 its factors are 1、2、3

main()

6.12 用牛頓迭代法求方程在1.5附近的根。

main()

while(y!=0);

printf("x=%.3f\n",x);

}6.13用二分法求方程在(-10,10)之間的根

main()

while(y1!=0);

dowhile(y2!=0);

printf("x1=%.3f,x2=%.3f\n",x1,x2);

}6.14列印以下圖案

** * *

* * * * *

* * * * * * *

* * * * *

* * *

*#include"math.h"

main()

for(i=0;i<=2;i++)

}第七章

第七章 陣列

7.1 用篩法求之內的素數。

main()

printf("\n");

}7.2用選擇法對10個整數從小到大排序。

main()

for(i=0;i<10;i++)

printf("%5d",a[i]);}或

main()

for(i=1;i<11;i++)

printf("%d",a[i]);

printf("\n");

}7.3求乙個3×3矩陣對角線元素之和。

main()

或main()

7.4已有乙個已排好的陣列今輸入乙個數要求按原來排序的規律將它插入陣列中。

main()

;int i,j,t;

scanf("%d",&a[9]);

for(i=9;i>0;i--)

if(a[i]-1;i--)

printf("%5d",b[i]);

printf("\n");}

7.6列印出以下楊輝三角形(要求列印出10行)。

11 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1∶∶

main()

printf("\n");}}

}或main()

,,,,,,,,,};

a[1][1]=1;

for(k=2,k<11;k++)

for(i=2;i<=k;i++)

for(j=2;j<=i;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

for(k=1;k<11;k++)

for(i=1;i<=k;i++)

for(j=1;j<=i;j++)

printf("%d",a[i][j]);

}7.7 列印「魔方陣」,所謂魔方陣是指這樣的方陣,它的每一行、每一列和對角線之和均相等。例如,三階魔方陣為

8 1 6

3 5 7

4 9 2

要求列印出由1~n2的自然數構成的魔方陣。

解:#include

main()

for(i=1;i<=n;i++)

for(j=1;j<=n;j++) a[i][j]=0

求高手解題 C程式設計(第三版)

呵呵,分類不對啊,不好有人來,有空幫你寫吧。求這幾題c語言程式設計題目的解析 14 while迴圈沒有加,所以只控制printf一條列印語句。第一次 n 為6 n使用時是5 n為4 第二次 n 為4 n使用時是3 n為2 第三次 n 為2 n使用時是1 n為0 從第一次迴圈中我們得到列印的結果每次 ...

譚浩強的C程序設計第三版中介紹函式和陣列的問題

一 高維陣列 有時,陣列的維數並不止一維,例如乙個記錄消費中心在第一季度裡各個月的收入資料就可以用二維陣列來表示。定義二維陣列的方法是在一維陣列定義的後面再加上乙個用方括號括起來的維數說明。例如 float array 3 8 實際上,這個陣列可以看成3個連續的一維陣列,每個一維陣列具有8個元素。該...

c程式設計第三版第二章第5題答案

第二章2.3 1 10 10 12 8 a 16 2 32 10 40 8 20 16 3 75 10 113 8 4b 16 4 617 10 176627 8 fd97 16 5 111 10 177621 8 ff91 16 6 2483 10 4663 8 963 16 7 28654 10...