經(jīng)典練習(xí)C語言編程的題目及答案整理_第1頁
經(jīng)典練習(xí)C語言編程的題目及答案整理_第2頁
經(jīng)典練習(xí)C語言編程的題目及答案整理_第3頁
經(jīng)典練習(xí)C語言編程的題目及答案整理_第4頁
經(jīng)典練習(xí)C語言編程的題目及答案整理_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1.逆序輸出正三位數(shù)#include <stdio.h>int main()int input,output= 0; scanf("%d",&input);while(input != 0) output = output*10 + input%10; input /= 10; printf("%dn",output); return 0;2.百元找零函數(shù)#include <stdio.h>int main()int amount=100; int price=0;printf("請輸入金額(元)");

2、scanf("%d",&price); printf("請輸入票面");scanf("%d",&amount); int change=amount-price;printf("找您%d元。n",change);return 0;3.求平均數(shù)#include <stdio.h>int main()int a,b;scanf("%d %d",&a,&b); double c=(a+b)/2.0;/*scanf("%d",&am

3、ount); 這是注釋,我隨便放的,沒意義int change=amount-price;*/printf("%d和%d的平均值是%fn",a,b,c);return 0;4.寫出程序的輸出:int i=1; switch ( i/3 )  case 0: printf("zero"); case 1: printf("one"); case 2: printf("two"); 正確答案是:zeroonet

4、wo。5.水仙花數(shù)是指一個N位正整數(shù)(N>=3),它的每個位上的數(shù)字的N次冪之和等于它本身。例 如:153 = 13 + 53+33。 本題要求編寫程序,計算所有N位水仙花數(shù)。輸入格式:輸入在一行中給出一個正整數(shù)N(3<=N<=7)。輸出格式:按遞增順序輸出所有N位水仙花數(shù),每個數(shù)字占一行。輸入樣例:3輸出樣例:153370371407#include <stdio.h>int main(void) int i, j, n, low = 1, high, temp, sum, item, remainder;scanf("%d", &

5、amp;n);for(i = 1; i < n; +i)low *= 10;/* 得到n位數(shù)的下限 */high = low * 10;/* 得到n位數(shù)的上限 */for(i = low; i < high; +i) temp = i;sum = 0;while(temp > 0) remainder = temp % 10;item = remainder;for(j = 1; j < n; +j)item *= remainder;sum += item;temp /= 10;if(i = sum)printf("%dn", i);return

6、0;6.時間換算UTC是世界協(xié)調(diào)時,BJT是北京時間,UTC時間相當(dāng)于BJT減去8?,F(xiàn)在,你的程序要讀入一個整數(shù),表示BJT的時和分。整數(shù)的個位和十位表示分,百位和千位表示小時。如果小時小于10,則沒有千位部分;如果小時是0,則沒有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11點(diǎn)24分,而905表示9點(diǎn)5分,36表示0點(diǎn)36分,7表示0點(diǎn)7分。有效的輸入范圍是0到2359,即你的程序不可能從測試服務(wù)器讀到0到2359以外的輸入數(shù)據(jù)。你的程序要輸出這個時間對應(yīng)的UTC時間,輸出的格式和輸入的相同,即輸出一個整數(shù),表示UTC的時和分。整數(shù)的個位和十位表示分,百位和千位表示小時。

7、如果小時小于10,則沒有千位部分;如果小時是0,則沒有百位部分;如果分小于10分,需要保留十位上的0。提醒:要小心跨日的換算。輸入格式:一個整數(shù),表示BJT的時和分。整數(shù)的個位和十位表示分,百位和千位表示小時。如果小時小于10,則沒有千位部分;如果小時是0,則沒有百位部分;如果分小于10分,需要保留十位上的0。輸出格式:一個整數(shù),表示UTC的時和分。整數(shù)的個位和十位表示分,百位和千位表示小時。如果小時小于10,則沒有千位部分;如果小時是0,則沒有百位部分;如果分小于10分,需要保留十位上的0。輸入樣例:903輸出樣例:103時間限制:500ms內(nèi)存限制:32000kb#include <

8、stdio.h>int main() int h,m,input,b; scanf("%d",&input); h = input/100; m = input%100; if (h>=8) printf("%d",b = (h-8)*100+m); else printf("%d",b = (h+24-8)*100+m); return 0; 7. 信號報告題目內(nèi)容:無線電臺的RS制信號報告是由三兩個部分組成的:R(Readability) 信號可辨度即清晰度.S(Strength)    信

9、號強(qiáng)度即大小.其中R位于報告第一位,共分5級,用15數(shù)字表示.· 1-Unreadable· 2-Barely readable, occasional words distinguishable· 3-Readable with considerable difficulty· 4-Readable with practically no difficulty· 5-Perfectly readable報告第二位是S,共分九個級別,用19中的一位數(shù)字表示· 1-Faint signals, barely perceptible

10、83; 2-Very weak signals· 3-Weak signals· 4-Fair signals· 5-Fairly good signals· 6-Good signals· 7-Moderately strong signals· 8-Strong signals· 9-Extremely strong signals現(xiàn)在,你的程序要讀入一個信號報告的數(shù)字,然后輸出對應(yīng)的含義。如讀到59,則輸出:Extremely strong signals, perfectly 

11、readable.輸入格式:一個整數(shù),信號報告。整數(shù)的十位部分表示可辨度,個位部分表示強(qiáng)度。輸入的整數(shù)范圍是11,59,這個范圍外的數(shù)字不可能出現(xiàn)在測試數(shù)據(jù)中。輸出格式:一句話,表示這個信號報告的意義。按照題目中的文字,先輸出表示強(qiáng)度的文字,跟上逗號和空格,然后是表示可辨度的文字,跟上句號。注意可辨度的句子的第一個字母是小寫的。注意這里的標(biāo)點(diǎn)符號都是英文的。輸入樣例:33輸出樣例:Weak signals, readable with considerable difficulty.#include <stdio.h>int mai

12、n() int rs; scanf("%d",&rs);if(rs % 10 != 0) int r = rs / 10; int s = rs % 10; switch(s) case 1: printf("Faint signals,barely perceptible,"); break; case 2: printf("Very weaksignals,"); break; case 3: printf("Weak signals,"); break; case 4: printf("Fa

13、ir signals,"); break; case 5: printf("Fairly goodsignals,"); break; case 6: printf("Good signals,"); break; case 7: printf("Moderately strongsignals,"); break; case 8: printf("Strong signals,"); break; case 9: printf("Extremely strongsignals,");

14、 break; switch(r) case 1: printf("unreadable."); break; case 2: printf("barely readable,occasional words distinguishable."); break; case 3: printf("readable withconsiderable difficulty."); break; case 4: printf("readable withpractically no difficulty."); break

15、; case 5: printf("perfectly readable."); break; return 0; 也可以寫成下面這樣:#include <stdio.h>int main()    int s;    int r;    int n;    scanf("%d",&n);    r=n/10;    s=n%10;  

16、 switch(s)        case 0:printf("");        case 1:printf("Faint signals, barely perceptible, ");break;        case 2:printf("Very weak signals, ");break;    &#

17、160;   case 3:printf("Weak signals, ");break;        case 4:printf("Fair signals, ");break;        case 5:printf("Fairly good signals, ");break;        case 6:printf(&quo

18、t;Good signals, ");break;        case 7:printf("Moderately strong signals, ");break;        case 8:printf("Strong signals, ");break;        case 9:printf("Extremely strong signals,

19、 ");break;        switch(r)        case 0:printf("");        case 1:printf("unreadable.");break;        case 2:printf("barely readable, occasional wor

20、ds distinguishable.");break;        case 3:printf("readable with considerable difficulty.");break;        case 4:printf("readable with practically no difficulty.");break;        case 5:

21、printf("perfectly readable.");break;        return 0;8. 數(shù)字特征值題目內(nèi)容:對數(shù)字求特征值是常用的編碼算法,奇偶特征是一種簡單的特征值。對于一個整數(shù),從個位開始對每一位數(shù)字編號,個位是1號,十位是2號,以此類推。這個整數(shù)在第n位上的數(shù)字記作x,如果x和n的奇偶性相同,則記下一個1,否則記下一個0。按照整數(shù)的順序把對應(yīng)位的表示奇偶性的0和1都記錄下來,就形成了一個二進(jìn)制數(shù)字。比如,對于342315,這個二進(jìn)制數(shù)字就是001101。這里的計算可以用下面的表格來表示

22、:數(shù)字342315數(shù)位654321數(shù)字奇偶奇偶偶奇奇奇數(shù)位奇偶偶奇偶奇偶奇奇偶一致001101二進(jìn)制位值32168421按照二進(jìn)制位值將1的位的位值加起來就得到了結(jié)果13。你的程序要讀入一個非負(fù)整數(shù),整數(shù)的范圍是0,100000,然后按照上述算法計算出表示奇偶性的那個二進(jìn)制數(shù)字,輸出它對應(yīng)的十進(jìn)制值。提示:將整數(shù)從右向左分解,數(shù)位每次加1,而二進(jìn)制值每次乘2。輸入格式:一個非負(fù)整數(shù),整數(shù)的范圍是0,100000。輸出格式:一個整數(shù),表示計算結(jié)果。輸入樣例:342315輸出樣例:13#include "stdio.h"#include "math.h"/使

23、用pow函數(shù)需要引用int main() /number:輸入的正整數(shù);ret:結(jié)果 int number=-1,ret=0; scanf("%d",&number); if(number>0 && number<=100000) /cont:數(shù)位;num:個位數(shù);binary:二進(jìn)制位值; int cont=1,num,binary=1; do num=number%10;/等到個位上的數(shù) if(num%2=0 && cont%2=0) | (num%2=1 && cont%2=1)/判斷奇偶一致性 if

24、(cont!=1) binary=pow(2,cont-1);/pow(2,3):冪次方函數(shù),表示2的3次方 ret += binary;/相加每一位奇偶一致的二進(jìn)制位值,得到十進(jìn)制數(shù) number/=10;/去掉個位上的數(shù) cont+; while( number>0 ); printf("%d",ret); return 0; 9. 奇偶個數(shù)題目內(nèi)容:你的程序要讀入一系列正整數(shù)數(shù)據(jù),輸入-1表示輸入結(jié)束,-1本身不是輸入的數(shù)據(jù)。程序輸出讀到的數(shù)據(jù)中的奇數(shù)和偶數(shù)的個數(shù)。輸入格式:一系列正整數(shù),整數(shù)的范圍是(0,100000)。如果輸入-1則表示輸入結(jié)束。輸出格式:兩

25、個整數(shù),第一個整數(shù)表示讀入數(shù)據(jù)中的奇數(shù)的個數(shù),第二個整數(shù)表示讀入數(shù)據(jù)中的偶數(shù)的個數(shù)。兩個整數(shù)之間以空格分隔。輸入樣例:9 3 4 2 5 7 -1輸出樣例:4 2#include <stdio.h>int main()    int a,i=0,j=0;     do      scanf("%d",&a);      if(a%2=1)        i+;      if(

26、a%2=0)        j+;                        while(a!=-1);      printf("%d %d",i,j);    return 0;10. 素數(shù)和題目內(nèi)容:我們認(rèn)為2是第一個素數(shù),3是第二個素數(shù),5是第三個素數(shù),依次類推。現(xiàn)在,給定兩個整數(shù)n和m,0<n<=m<=200,你的程序要計算第n個素數(shù)到

27、第m個素數(shù)之間所有的素數(shù)的和,包括第n個素數(shù)和第m個素數(shù)。輸入格式:兩個整數(shù),第一個表示n,第二個表示m。輸出格式:一個整數(shù),表示第n個素數(shù)到第m個素數(shù)之間所有的素數(shù)的和,包括第n個素數(shù)和第m個素數(shù)。輸入樣例:2 4 輸出樣例:15時間限制:500ms內(nèi)存限制:32000kb#include<stdio.h>int main() int m=0; int n=0; int i; int j; int sum=0; int isPrime=1; int num=0; scanf("%d %d",&n,&m); for(i=2;i<=

28、20000;i+) for(j=2;j<i;j+) if(i%j)=0) isPrime=0; break; if(isPrime=1) num+; if(num>=n&&num<=m) sum+=i; if(num=m) break; isPrime=1; printf("%dn",sum); return 0;11. 念整數(shù)題目內(nèi)容:你的程序要讀入一個整數(shù),范圍是-100000,100000。然后,用漢語拼音將這個整數(shù)的每一位輸出出來。如輸入1234,則輸出:1. yi er san si注意,每個字的拼音

29、之間有一個空格,但是最后的字后面沒有空格。當(dāng)遇到負(fù)數(shù)時,在輸出的開頭加上“fu”,如-2341輸出為:1. fu er san si yi輸入格式:一個整數(shù),范圍是-100000,100000。輸出格式:表示這個整數(shù)的每一位數(shù)字的漢語拼音,每一位數(shù)字的拼音之間以空格分隔,末尾沒有空格。輸入樣例:-30輸出樣例:fu san ling時間限制:500ms內(nèi)存限制:32000kb#include<stdio.h> int main() int x; int num; scanf("%d",&x); int length=0; int onum; int numbit=1; int numbox; if(x<0) printf("fu "); num=-x; else num=x; onum=num; while(num>9) num/=10; length+; while(length>0) numbit*=10; length-; num=onum; while(numbit>0) numbox=num/numbit; switch(nu

溫馨提示

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

最新文檔

評論

0/150

提交評論