上機題及答案匯總_第1頁
上機題及答案匯總_第2頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1溫度轉(zhuǎn)換描述已知華氏溫度到攝氏溫度的轉(zhuǎn)換公式為:攝氏溫度=(華氏溫度-32)X5/9,寫程序?qū)⒔o定的華氏溫度轉(zhuǎn)換為攝氏溫度輸出輸入說明只有一個整數(shù),表示輸入的華氏溫度輸出說明輸出一個表示攝氏溫度的實數(shù),小數(shù)點后保留2位有效數(shù)字,多余部分四舍五入輸入樣例50輸出樣例10.002計算球體重量描述已知鐵的比重是7.86,金的比重是19.3。寫一個程序, 分別計算出給定直徑的鐵球與金球的 質(zhì)量,假定PI=3.1415926輸入說明 輸入兩個整數(shù),分別表示鐵球與金球的直徑(單位為毫米)輸出說明輸出兩個浮點數(shù),分別表示鐵球與金球的質(zhì)量(單位為克) ,小數(shù)點后保留3位小數(shù),兩個 浮點數(shù)之間用空格分隔輸入樣

2、例100 100輸出樣例4115.486 10105.456提示#includeint main()double Fe=7.86,Au=19.3,Pi=3.1415926;int m,n;float M1,M2;scanf(%d %d,&m,&n);/注意,要使輸出的兩個數(shù)據(jù)中間無逗號, “”之間要無逗號,下面 也如此M1=(4.0/3)*Pi*m/2*m/2*m/2*Fe/1000; M2=(4.0/3)*Pi*n/2*n/2*n/2*Au/1000;printf(%.3f %.3f,M1,M2);return 0;3階梯電價計費描述電價分三個檔次,0,110度電,每度電0.5元;(110,

3、210度電,超出110部分每度電0.55元, 超過210度電,超出210部分每度電0.70元,給出一個家庭一月用電量,請計算出應(yīng)繳的 電費(四舍五入,保留小數(shù)點后兩位小數(shù)) 。輸入說明第一行為1個整數(shù)m(100 m 0),表示有多少組數(shù)據(jù)。 其后一行為m個正實數(shù),表示m個用電量數(shù)據(jù)輸出說明一行輸出1個電費數(shù)據(jù)(四舍五入保留2位小數(shù))后,換行。輸入樣例3100 200 329.75輸出樣例50.00104.50193.82(1)自己的#includedouble fare(double m)double n;if(m=0&m110) if(m=210) n=0.5*110+0.55*(m-110

4、);else n=0.5*110+0.55*(210-110)+0.70*(m-210);return n;int main ()int a,b; double c; scanf(%d,&a);for(b=0;ba;b+)scanf(%lf,&c); printf(%.2fn,fare(c);return 0;(2)別人的# include double money(double x)if(x=100&x110&x210)return 0.5*110+0.55*100+0.7*(x-210);int main ()int a,b; double c;scanf(%d,&a); for(b=0;

5、ba;b+)scanf(%lf,&c);printf(%.2fn,money(c);return 0;4計算某月天數(shù) 描述 每個月的1,3,5,7,8,10,12月有31天,4,6,9,11月有30天,閏年2月29天, 其他年份2月28天,給定年份和月份求該月的天數(shù)輸入說明多組數(shù)據(jù),輸入數(shù)據(jù)第一行為整數(shù)n(n100),表示有幾組數(shù)據(jù)數(shù)據(jù),其后為n行,每行表 示一組數(shù)據(jù),每組數(shù)據(jù)由兩個正整數(shù)a和b構(gòu)成,a表示年份,b表示月份,a和b之間用 空格分隔輸出說明根據(jù)年份和月份計算該月天數(shù)并輸出,每輸出一個天數(shù)后換行輸入樣例32000 32011 52008 2輸出樣例313129程序問題:輸入時年份和

6、月份在同一行,按空格分開,不能按回車換行1別人的#includevoid tianshu(int x,int y)if(y=1|y=3|y=5|y=7|y=8|y=10|y=12)printf(%dn,31);else if(y=4|y=6|y=9|y=11)printf(%dn,30);else if(x%4=0&x%100!=0|x%400=0)&y=2)printf(%dn,29);else if(y=2)printf(%dn,28);int main()int a,b,m,n;scanf(%d,&n);for (m=1;m=n;+m)scanf(%d %d,&a,&b);tianshu

7、(a,b);return 0;2自己的#includeint main()int a,b;scanf(%dn,&a);for(b=0;ba;b+)int year,month,days;scanf(%d %d,&year,&month);switch(month)case 2:if(year%4=0&year%100!=0|year%400=0) days=29;elsedays=28;break;case 1:case 3:case 5:case 7:case 8:case 10:case 12: days=31;break;case 4:case 6:case 9: case 11:day

8、s=30;break;printf(%dn,days);return 0;5計算整數(shù)各位數(shù)字之和描述假設(shè)n是一個由最多9位數(shù)字(d9,di)組成的正整數(shù)。編寫一個程序計算n的每一位數(shù)字之和 輸入說明有多組數(shù)據(jù),輸入數(shù)據(jù)第1行為整數(shù)m(m100),表示有多少組數(shù)據(jù),其后一行數(shù)輸出說明對每一個整數(shù)n輸出它的各位數(shù)字之和后換行輸入樣例363704 170498輸出樣例614291別人的# include void sum(int a) int x,y;int sum=0;for(x=100000000;x0;x=x/10)y=a/x;a=a-y*x;sum+=y;m個正整printf(%dn,sum

9、);int main()int m,n,x;scanf(%d,&m);for(n=1;n=m;+n) scanf(%d,&x);sum(x);return 0;2自己的#includeint main()int m,a;scanf(%d,&m);for(a=1;a0;x=x/10)y=n/x;sum+=y;n=n-x*y;printf(%dn,sum);return 0;6完數(shù)描述請寫一個程序,給出指定整數(shù)范圍a,b內(nèi)的所有完數(shù),0ab10000。一個數(shù)如果恰好等于除它本身外的所有因子之和,這個數(shù)就稱為完數(shù)。例如6是完數(shù),因為6=123輸入說明只有一組數(shù)據(jù),即一行上的兩個整數(shù)a和b,a和b之間

10、用空格分隔輸出說明輸出a,b內(nèi)的所有完數(shù),每個數(shù)字占一行輸入樣例1 10輸出樣例61別人的#include #include int wanshu (int n)int m;int sum=0;for(m=1;mn;+m) if(n%m=0)sum+=m;if(n=sum)return 1;elsereturn 0;int main()int m,n,i;scanf(%d %d,&m,&n); for(i=m;i=n;+i) if(wanshu(i)=1)printf(%dn,i);return 0;2自己的#include void wanshu(int n)int m,sum=0;for(

11、m=1;mn;m+)if(n%m=0) sum+=m;if(sum=n)printf(%dn,n);int main()int a,b,n;scanf(%d %d,&a,&b); for(n=a;n=b;n+)wanshu(n); printf(n);return 0;# include int main()int a,b,m,x,sum=0;scanf(%d %d,&a,&b);for(x=a;x=b;x+)for(m=1;mx;m+)if(x%m=0)sum+=m;if(sum=x) printf(%dn,x);return 0;7最大公約數(shù)描述最大公約數(shù)(GCD)指某幾個整數(shù)共有因子中最

12、大的一個,最大公約數(shù)具有如下性質(zhì),gcd(a,0)=agcd(a,1)=1因此當兩個數(shù)中有一個為0時,gcd是不為0的那個整數(shù),當兩個整數(shù)互質(zhì)時最大公約數(shù)為1。定義函數(shù):int gcd(int a,int b),返回兩個參數(shù)的最大公約數(shù)。并寫一個主函數(shù)調(diào)用該函數(shù),實 驗各種輸入?yún)?shù)情況。輸入說明多組數(shù)據(jù),每組數(shù)據(jù)由同一行的兩個正整數(shù)a和b構(gòu)成(0=a,b10000),a和b之間用空格分隔,當a和b都為0時表示輸入結(jié)束輸出說明 對每組數(shù)據(jù)輸出其最大公約數(shù)后換行輸入樣例2 412 63 50 0輸出樣例261輸入實例:2 4 12 6 3 5 0 0#includeint gcd(int a,in

13、t b)int n;if(a=0&b=0)return 0;if(a=0)return b;if(b=0)return a; for(n=(ab?b:a);a%n!=0|b%n!=0;n-)Jreturn n;int main()int a,b;while(1)/也可寫為for(; ;)scanf(%d %d,&a,&b); if(a=0&b=0)break;printf(%dn,gcd(a,b);return 0;8角谷定理描述測試,角谷定理:輸入一個自然數(shù),若為偶數(shù),則把它除以2,若為奇數(shù),則把它乘以3加1。經(jīng) 過如此有限次運算后,總可以得到自然數(shù)值1。 求經(jīng)過多少次可得到自然數(shù)1。如:例

14、如數(shù)據(jù)22的變化過程:22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1,數(shù) 據(jù)變化次數(shù)為16??捎玫ɑ蜻f歸法實現(xiàn)。輸入說明第一行1個整數(shù)m(100 m 0),表示有多少組數(shù)據(jù)。 其后一行為m個正整數(shù),表示m個數(shù)據(jù)。輸出說明一行輸出1個數(shù)據(jù)變換次數(shù)后,換行輸入樣例322 33 43輸出樣例162730 #includeint jg(int n)static i=0,m;+i; if(n=1)m=i; i=0; return m;elseif(n%2=0)n=n/2;else n=n*3+1;jg(n);int main()int a,b,n; scanf(

15、%d,&a); for(b=0;b m 0),表示有多少組數(shù)據(jù)。其后一行為m個正整數(shù),表示個整數(shù)。輸出說明 一行輸出數(shù)列對應(yīng)數(shù)據(jù),換行。小數(shù)點后保留6位有效數(shù)字,多余部分四舍五入。輸入樣例33 5 8輸出樣例0.6666670.6250000.617647 #includedouble fun(int n)return n=1?1:1/(1+fun(n-1);int main()int a,b,c;scanf(%d,&a);for(b=0;b3 ),它的每個位上的數(shù)字的n次幕之和等于它本身。(例如:1A3 + 5A3 + 3A3 = 153)。定義一個函數(shù)intfun(int a, int b

16、),計算區(qū)間a,b或b,a的水 仙花數(shù)。輸入說明第一行1個整數(shù)m(100 m 0),表示有多少組數(shù)據(jù)。每行表示一組數(shù)據(jù),每組數(shù)據(jù)由兩 個整數(shù)a和b構(gòu)成,計算a,b或b,a間的水仙花數(shù),a和b之間用空格分隔。輸出說明輸出區(qū)間a,b或b,a的水仙花數(shù)數(shù)量,換行。輸入樣例231000400 5000輸出樣例42#include#includeenumnum=100;int fun(int a,int b)int k,c,dnum,i,m=0,sum=0; if(a=100&a0;k+) c*=10;for(i=0;ik&i m 0),表示有多少組數(shù)據(jù)。其 后 一 行 為m個正偶數(shù),表示m個數(shù)據(jù)。輸出

17、說明每行輸出2個數(shù)據(jù)表示分解的素數(shù)(每個正偶數(shù)可能分解成多組素數(shù)和,是最小和最大素數(shù)的一組,從小到大輸出) ,換行。輸入樣例210 20輸出樣例3 73 17 #includeint isprime(long n)int m;if(n=1) return 0;for(m=2;mn;m+) if(n%m=0) return 0;return 1;int main()int m,n; scanf(%d,&m);for(n=1;n=2;-b)if(isprime(b)=1&isprime(a-b)=1) break;printf(%ld %ldn,a-b,b);return 0;僅輸出分解值分別12

18、矩陣 描述請寫一個程序,對于一個m行m列(2m20)的方陣,求其每一行、每一列及主、輔對角 線元素之和 (注: 主對角線是方正從左上角到右下角的一條斜線, 輔對角線是方陣從右上角 到左下角的一條斜線) ,然后按照從大到小的順序依次輸出這些值。輸入說明 只有一組數(shù)據(jù);輸入數(shù)據(jù)的第一行為一個正整數(shù),表示 表示方陣的元素。輸出說明從大到小排列的一行整數(shù),每個整數(shù)后跟一個空格,最后換行。輸入樣例415 8-2631 241871-3 -9271317 213869輸出樣例159 145 144 135 81 60 44 32 28 27#includeint main()int m,i,j,a2020=0,b42=0,k;scanf(%d,&m);for(i=0;im;+i)for(j=0;jm;+j) scanf(%d,&aij); bi+=aij;if(j=m)printf(n); for(j=0,k=m;jm;+j,+k)for(i=0;im;+i) bk+=aij; for(i=0,j=0;im;+i,+j)bk+=aij;m;接下來為m行、每行m個整數(shù)for(j=m-1,i=0;im;-j,i=m-1-j)bk+1+=aij; for(i=1;i=0&bjk;-j) bj+1=bj;i

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論