本學(xué)期C上機(jī)題_第1頁(yè)
本學(xué)期C上機(jī)題_第2頁(yè)
本學(xué)期C上機(jī)題_第3頁(yè)
本學(xué)期C上機(jī)題_第4頁(yè)
本學(xué)期C上機(jī)題_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、8.1背景:電視臺(tái)舉辦“超級(jí)學(xué)生”才藝大賽,由于報(bào)名人數(shù)狂多,所以要先進(jìn)行分組預(yù)賽。按規(guī)定,每10名學(xué)生為一個(gè)預(yù)賽小組,評(píng)委打出分?jǐn)?shù)(0100分),各小組第一名可以進(jìn)入下一輪;如果有多名學(xué)生得分相同都是第一名,則可同時(shí)進(jìn)入下一輪。輸入: 按順序給出一個(gè)小組10個(gè)人的最后得分(int)。輸出: 能夠出線的學(xué)生序號(hào)(09)。#include <stdio.h>#include <stdlib.h>int main() int score10; int i,max=0; for(i=0; i<10; i+) scanf("%d",&score

2、i); if(scorei>max) max=scorei; for(i=0; i<10; i+) if(scorei=max) printf("%dn",i); return 0;8.2描述實(shí)驗(yàn)室有一批小白鼠,為了評(píng)估他們的健康程度,我們?yōu)槊恳恢恍“资蠖荚O(shè)定了一個(gè)“健康指數(shù)”。現(xiàn)在我們需要進(jìn)一步的評(píng)估這批小白鼠的健康均衡程度,因此我們需要從中找到健康指數(shù)差距最大的兩只小白鼠的編號(hào),以此來進(jìn)一步的進(jìn)行評(píng)估。關(guān)于輸入第一行是一個(gè)整數(shù)n(2<= n <= 100),表示的是一共有n只小白鼠。 第二行是n個(gè)整數(shù)(互不相同),分別表示n只小白鼠的健康指數(shù),同

3、時(shí)根據(jù)輸入順序,從1開始為其編號(hào)1,2n。也就是說第一個(gè)整數(shù)是第一只小白鼠的健康指數(shù),第二個(gè)整數(shù)是第二只小白鼠的健康指數(shù),依次類推。關(guān)于輸出輸出健康指數(shù)差距最大的兩只小白鼠的編號(hào)。第一個(gè)數(shù)是健康指數(shù)較大的小白鼠的編號(hào),第二個(gè)數(shù)是健康指數(shù)較小的小白鼠的編號(hào)。#include <stdio.h>#include <stdlib.h>int main() int n; scanf("%d",&n); int f2n; int a,b,i,max,min; for(i=0; i<n; i+) scanf("%d",&

4、f1i); max=f10; min=f10; for(i=0; i<n; i+) if(max<=f1i) max=f1i; a=i+1; if(min>=f1i) min=f1i; b=i+1; printf("%d %dn",a,b); return 0;8.3求出 2 到 m 之間 ( 含 m,m<=1000) 所有素?cái)?shù)并放在數(shù)組 a 中。輸入:正整數(shù)m輸出:從小到大的所有素?cái)?shù),及個(gè)數(shù)(素?cái)?shù)輸出的時(shí)候用%4d來控制)如:輸入:10輸出:2 3 5 7 4#include <stdio.h>#include <stdlib.h

5、>#define z aint main() int a,i,k,m,d; scanf("%d",&a); int primez; m=0; for(i=1; i<a; i+) primei=i+1; for(i=1; i<a; i+) d=1; for(k=2; k<=primei&&(d!=0); k+) d=primei%k; if(d=0&&(primei!=0) if(k=primei) printf("%4d",primei); m=m+1; printf("n&quo

6、t;); printf("%dn",m); return 0;8.4描述 王師傅的發(fā)廊距開張已經(jīng)有10年之久了! 由于王師傅以及其他理發(fā)師傅洗剪吹技術(shù)嫻熟, 發(fā)廊有了許多??? 連畢業(yè)多年的學(xué)生也會(huì)不時(shí)回來學(xué)校, 到王師傅的發(fā)廊做洗剪吹. ??蛡兌加凶约合矚g理發(fā)師, 然而隨著運(yùn)營(yíng)規(guī)模的擴(kuò)張, 理發(fā)師的分配時(shí)常會(huì)出現(xiàn)問題. 現(xiàn)在你的任務(wù)就是為顧客們交換理發(fā)師傅. 假設(shè)有0.n-1共n名顧客, 他們的理發(fā)師傅恰巧安排反了. 也就是說n-1的理發(fā)師傅安排給了0, n-2的理發(fā)師傅安排給了1.請(qǐng)幫助他們找到喜歡的理發(fā)師傅吧!輸入第一行一個(gè)整型n(1<=n<=1000),

7、 表示顧客的人數(shù) 第二行n個(gè)整型, 分別表示現(xiàn)在安排給每位顧客的理發(fā)師傅的編號(hào)輸出以此輸出為0.n-1位顧客正確安排理發(fā)師傅之后的, 師傅們的編號(hào)每個(gè)數(shù)字由空格隔開, 最后一個(gè)數(shù)字后無空格。#include <stdio.h>#include <stdlib.h>#define size nint main()int i,n,a,b;scanf("%d",&n);int number 2size;for(i=0;i<n;i+) scanf("%d",&number1i);a=number10;for(i=0;

8、i<n-1;i+) b=number1n-i-1; printf("%d ",b);printf("%dn",a); return 0;8.5問題描述:程序定義了 4× 4 的二維數(shù)組,請(qǐng)編寫程序,給二維數(shù)組賦值,并使數(shù)組下半三角元素中的值乘以n 。例如: 數(shù)組中的值為1 2 3 42 2 3 43 2 3 44 2 3 4假設(shè)n為10,則輸出結(jié)果如下:(輸出的數(shù)按照4位寬度來輸出,即%4d)10 2 3 420 20 3 430 20 30 440 20 30 40#include <stdio.h>#include <

9、;stdlib.h>int main()int f44,n,i,j;for(i=0;i<4;i+) for(j=0;j<4;j+) scanf("%d",&fij);scanf("%d",&n);for(i=0;i<4;i+) for(j=0;j<=i;j+) fij=n*fij; for(i=0;i<4;i+) for(j=0;j<4;j+) printf("%4d",fij); printf("n"); return 0;8.6楊輝三角形,又稱賈憲三角形

10、,帕斯卡三角形,是二項(xiàng)式系數(shù)在三角形中的一種幾何排列。其實(shí),中國(guó)古代數(shù)學(xué)家在數(shù)學(xué)的許多重要領(lǐng)域中處于遙遙領(lǐng)先的地位。中國(guó)古代數(shù)學(xué)史曾經(jīng)有自己光輝燦爛的篇章,而賈憲三角的發(fā)現(xiàn)就是十分精彩的一頁(yè)。楊輝三角有如下性質(zhì):1、每行數(shù)字左右對(duì)稱,由1開始逐漸變大,然后變小,回到1。 2、第n行的數(shù)字個(gè)數(shù)為n個(gè)。 3、每個(gè)數(shù)字等于上一行的左右兩個(gè)數(shù)字之和。編寫程序,輸入正數(shù)n, 將所有數(shù)據(jù)存儲(chǔ)到二維數(shù)組中,并在屏幕上顯示對(duì)應(yīng)的楊輝三角形(注意數(shù)據(jù)之間的空格)。例如:n=5 圖形如下:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1#include <stdio.h>#

11、include <stdlib.h>#define N 100#define M 100int main() int i,j,n,aNM; scanf("%d",&n); for(i=0; i<=n; i+) for(j=0; j<=i; j+) if(i=0|i=1) aij=1; if(j=0) aij=1; for(i=2; i<=n; i+) for(j=1; j<=i; j+) aij=ai-1j-1+ai-1j; for(i=0; i<=n; i+) for(j=0; j<=i; j+) printf(&q

12、uot;%3d",aij); printf("n"); return 0;8.7如果一個(gè)數(shù)組中保存的元素是有序的(由小到大),向這個(gè)數(shù)組中插入一個(gè)數(shù),使得插入后的數(shù)組元素依然保持有序。定義一個(gè)數(shù)組,長(zhǎng)度為11,初始元素為10個(gè),按照從小到大的方式輸入,然后輸入一個(gè)要插入的元素,使得插入后仍然有序。#include <stdio.h>#include <stdlib.h>int main() int i,a11,n,b=0; for(i=0; i<10; i+) scanf("%d",&ai); scanf(

13、"%d",&n); for(i=0; i<10; i+) if(a9<=n) b=10; if(a0>=n) b=0; else if(ai>=n&&n>=ai-1) b=i; break; for(i=9; i>=b; i-) ai+1=ai; ab=n; for(i=0; i<11; i+) printf(" %d",ai); printf("n"); return 0;8.8任意輸入一個(gè)自然數(shù),輸出該自然數(shù)的各位數(shù)字組成的最大數(shù)。例如,輸入 1593 ,則輸出為

14、9531 。輸入: 自然數(shù) n輸出: 各位數(shù)字組成的最大數(shù)#include <stdio.h>#include <stdlib.h>#define N 100int main()int n,i,a,m=0,j,temp,numberN;scanf("%d",&n);doa=n%10;numberm=a;n=n/10;m+;while(n!=0);for(i=0;i<m-1;i+)for(j=i+1;j<m;j+)if(numberi<numberj)temp=numberj;numberj=numberi;numberi=t

15、emp;for(i=0;i<m;i+)printf("%d",numberi);printf("n");return 0;8.9問題描述: 上學(xué)期,環(huán)設(shè)13級(jí)兩個(gè)班同學(xué)的C語(yǔ)言考試成績(jī)(人數(shù)最多不超過70人)比較理想?,F(xiàn)要求從鍵盤輸入學(xué)生的成績(jī),編程將成績(jī)按從高到低順序進(jìn)行排序輸出,并同時(shí)輸入指定學(xué)生的學(xué)號(hào)和成績(jī)。輸入:有多行。從第一行開始,每行輸入兩個(gè)空格分隔的整數(shù),分別表示每個(gè)學(xué)生的學(xué)號(hào)和成績(jī),當(dāng)輸入負(fù)值時(shí),表示輸入結(jié)束。最后一行輸入需要查找的學(xué)生學(xué)號(hào)。輸出:有兩行。第一行是按由高到低排好序的學(xué)生成績(jī)。第二行輸出查找到的學(xué)生學(xué)號(hào)和成績(jī),若沒有找

16、到指定學(xué)生,則輸出未找到信息。#include <stdio.h>#define N 1000int main() int aN,bN; int i,j,h,k,m,n,p,flag=0; scanf("%d%d",&a0,&b0); for(i=1; ai-1>=0&&bi-1>=0; i+) scanf("%d%d",&ai,&bi); scanf("%d",&n); for(j=0; j<i; j+) k=j; for(h=j+1; h<

17、=i; h+) if(bh>bk) k=h; if(k!=j) m=bk; bk=bj; bj=m; p=ak; ak=aj; aj=p; for(j=0; j<i-2; j+) printf("%d ",bj); printf("%dn",bj); for(j=0; !flag&&j<=i; j+) if(aj=n) printf("%d %dn",aj,bj); flag=1; if(!flag) printf("not find!n"); return 0;8.10描述 我叫

18、王大錘,是一個(gè)剛找到工作的程序員。萬萬沒想到,剛開始工作的第一天,就發(fā)生了大事。某市高校P大與T大由于長(zhǎng)期矛盾的積累,終于在這天爆發(fā)了全面戰(zhàn)爭(zhēng)。 T大的導(dǎo)彈是突破了次元之壁的導(dǎo)彈,它會(huì)先在n維空間中運(yùn)動(dòng),抵達(dá)目標(biāo)后出現(xiàn)在P大相應(yīng)的位置。P大及時(shí)的發(fā)明了在n維空間中阻截的方法,并找到了導(dǎo)彈的方向,現(xiàn)在我需要做的是計(jì)算出導(dǎo)彈的速度大小。 P大找到了我所在的公司,而這個(gè)任務(wù)竟然落到了剛加入公司的我身上?,F(xiàn)在公司的諜報(bào)人員已經(jīng)獲知,T大的導(dǎo)彈的速度大小是由先發(fā)出的兩顆 信號(hào)彈的速度矢量決定的,他們還順便幫我捕獲到了最終發(fā)射出的導(dǎo)彈的速度大小與信號(hào)彈速度矢量之間的關(guān)系為v(-)=v1·v2(v

19、1,v2分別為2顆信 號(hào)彈與v(-)為導(dǎo)彈的速度大小,·為矢量?jī)?nèi)積)。 我的同事們會(huì)告知我信號(hào)彈的速度信息,展現(xiàn)我高深莫測(cè)的專業(yè)技術(shù)的時(shí)刻到了!計(jì)算出導(dǎo)彈的速度吧! 矢量?jī)?nèi)積公式: (a1,.,an)·(b1,.,bn)= a1b1 + . + anbn關(guān)于輸入 第一行一個(gè)整數(shù)n(1<=n<=1000),表示導(dǎo)彈所在空間的維度 第二行n個(gè)整數(shù),表示第一顆信號(hào)彈的速度矢量 第三行n個(gè)整數(shù),表示第二顆信號(hào)彈的速度矢量關(guān)于輸出一個(gè)整數(shù),表示導(dǎo)彈的速度大小,結(jié)果保證在int表示范圍之內(nèi)(結(jié)果可為負(fù),此時(shí)表示導(dǎo)彈在遠(yuǎn)離P大)#include <stdlib.h>

20、;#define N 1000int main()int i,n,s=0,aN,pN,tN; scanf("%d",&n); for(i=0;i<n;i+) scanf("%d",&pi); for(i=0;i<n;i+) scanf("%d",&ti); for(i=0;i<n;i+) ai=pi*ti; s=s+ai; printf("%dn",s); return 0;8.11編寫一個(gè)程序,求出4×5的二維數(shù)組周邊元素之和。輸入:二維數(shù)組元素輸出:周邊元素之

21、和如:輸入:1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0輸出:61#include <stdio.h>#include <stdlib.h>int main()int i,j,s=0,a45; for(i=0;i<4;i+) for(j=0;j<5;j+) scanf("%d",&aij); for(i=0;i<4;i+) for(j=0;j<5;j+) s=s+aij; for(i=1;i<3;i+) for(j=1;j<4;j+) s=s-aij; printf("

22、%dn",s); return 0;8.12編程,輸入 n ,存儲(chǔ)并輸出如下例( n=5 )所示的 圖形。1 2 3 4 51 1 2 3 41 1 1 2 31 1 1 1 21 1 1 1 1#include <stdio.h>#include <stdlib.h>#define N 100int main()int i,j,n,aNN;scanf("%d",&n);for(i=0;i<n;i+) for(j=0;j<=i;j+) aij=1; for(i=0;i<n;i+) for(j=i+1;j<n;

23、j+) aij=aij-1+1; for(i=0;i<n;i+) for(j=0;j<n;j+) printf(" %d",aij); printf("n"); return 0;8.13對(duì)數(shù)組 a10 中的十個(gè)整數(shù)從小到大進(jìn)行連續(xù)編號(hào),輸出各個(gè)元素的編號(hào)。要求不能改變數(shù)組 a 中元素的順序,且相同的整數(shù)要具有相同的編號(hào)。例如數(shù)組是: A=(5,3,4,7,3,5,6,8,9,10) 則輸出為: (4,1,3,7,1,4,6,8,9,10)#include<stdio.h>int main() int a11,b11; int i

24、,j,t,m; for(i=1; i<11; i+) scanf("%d",&ai); bi=ai; for(j=1; j<=10; j+) for(i=1; i<11-j; i+) if(ai>=ai+1) t=ai; ai=ai+1; ai+1=t; for(m=1; m<11; m+) for(i=1; i<11; i+) if(bm=ai) printf("%3d",i); break; printf("n"); return 0;8.14 方陣階數(shù)為n(n<100),例如當(dāng)n

25、=3時(shí),矩陣int a33,矩陣int b33。 矩陣的數(shù)據(jù)由用戶輸入。輸出新的矩陣c=a+b。 輸出格式: c00 c01 c02 c10 c11 c12 c20 c21 c22 每?jī)蓚€(gè)數(shù)字之間有1個(gè)空格關(guān)于輸入方陣階數(shù)n矩陣a:a00 a01 a02a10 a11 a12a20 a21 a22矩陣b:b00 b01 b02b10 b11 b12b20 b21 b22關(guān)于輸出矩陣c:c00 c01 c02c10 c11 c12c20 c21 c22注意:輸出時(shí)每行最后不能有空格#include<stdio.h>#define N 100int main()int n,i,j,aN

26、N,bNN,cNN;scanf("%d",&n);for(i=0;i<n;i+) for(j=0;j<n;j+) scanf("%d",&aij); for(i=0;i<n;i+) for(j=0;j<n;j+) scanf("%d",&bij); for(i=0;i<n;i+) for(j=0;j<n;j+) cij=aij+bij; for(i=0;i<n;i+) for(j=0;j<1;j+) printf("%d",cij); for(

27、j=1;j<n;j+) printf(" %d",cij); printf("n"); return 0;8.15給定一系列整數(shù),對(duì)每個(gè)整數(shù)的每一位數(shù)字統(tǒng)計(jì)09各個(gè)數(shù)字的出現(xiàn)次數(shù),求出現(xiàn)次數(shù)最多的數(shù)字。輸入:有兩行,第一行是整數(shù)n(1<=n<=100),表示有n個(gè)整數(shù);第二行是n個(gè)整數(shù)值輸出:出現(xiàn)次數(shù)最多的數(shù)字d(如果d不唯一,要列出全部)及其出現(xiàn)的次數(shù)輸入樣例:11233輸出樣例:出現(xiàn)次數(shù)最多2次的數(shù)字是 3#include <stdio.h>int main() int a100 ,i,j,x,max,n; int b1

28、0=0,0,0,0,0,0,0,0,0,0; scanf("%d",&n); x=0; for(i=0;i<n;i+) scanf("%d",&ai); for(i=0;i<n;i+) for(j=0;ai!=0;j+) x=ai%10; ai=ai/10; bx=bx+1; max=0; for(i=0;i<10;i+) if(bi>bmax) max=i; printf("出現(xiàn)次數(shù)最多%d次的數(shù)字是",bmax); for(i=0;i<10;i+) if(bi=bmax) printf

29、(" %d",i); printf("n"); return 0;8.16假設(shè)有n項(xiàng)物品,大小分別為s1,s2,.,sn,其中si是整數(shù)且滿足:1<=si<=100。要把這些物品裝入到容量為100的一批箱子(序號(hào)1n)中。裝箱方法是:對(duì)每項(xiàng)物品si,依次掃描所有這些箱子,把si放入足以能夠容下它的第一個(gè)箱子中(first-fit策略)。寫一個(gè)程序來模擬這個(gè)裝箱的過程。輸入:有兩行。第一行是整數(shù)n(n<=1000),表示物品的個(gè)數(shù);第二行是n個(gè)整數(shù)si(si<=100),分別表示n個(gè)物品的大小輸出:每個(gè)物品所在的箱子序號(hào),并輸出所需

30、的箱子數(shù)目輸入樣例:860 70 80 90 30 40 10 20輸出樣例:60 170 280 390 430 140 510 120 2所需的箱子數(shù)目為5#include <stdio.h>#include <stdlib.h>#define N 100int main() int n,i,j,sN,FnN; scanf("%d",&n); for(i=0;i<n;i+) scanf("%d",&si); for(i=0;i<n;i+) Fni=100; for(i=0;i<n;i+) fo

31、r(j=0;j<n;j+) if(Fnj>=si) Fnj=Fnj-si; printf("%d %dn",si,j+1); break; for(i=0; i<n+1; i+) if(Fni=100) printf("所需的箱子數(shù)目為%dn",i); break; return 0;8.(附加)1 我們通常使用的都是十進(jìn)制的數(shù)字,但其實(shí)在生活中也經(jīng)常會(huì)使用其它進(jìn)制。 這個(gè)題目會(huì)給你兩個(gè)不同的數(shù)字,它們不屬于同一進(jìn)制,要求你計(jì)算出當(dāng)它們分別處于何種進(jìn)制之中時(shí),兩個(gè)數(shù)字相等。譬如 12 和 5 ,在十進(jìn)制下它們是不等的,但若 12 使用

32、3 進(jìn)制而 5 使用六進(jìn)制或十進(jìn)制時(shí),它們的值就是相等的。因此只要選擇合適的進(jìn)制, 12 和 5 就可以是相等的。 程序的輸入是兩個(gè)數(shù)字 M 和 N( 其十進(jìn)制的值不超過 1000000000) ,它們的進(jìn)制在 236 之間。對(duì)于十以下的數(shù)字,用 09 表示,而十以上的數(shù)字,則使用大寫的 AZ 表示。 求出分別在 236 哪種進(jìn)制下 M 和 N 相等。若相等則輸出相應(yīng)的進(jìn)制,若不等則輸出錯(cuò)誤信息。信息的格式見測(cè)試用例。#include<stdio.h>#include<math.h>int main()int i,j,p,q,x=0,f=0,g=0; static lo

33、ng a37,b37; char m11 ,n11; scanf("%s %s",m,n); p=strlen(m); q=strlen(n); for(i=0;i<=p-2;i+) if(mi<mi+1) f=i+1; for(i=0;i<=q-2;i+) if(ni<ni+1) g=i+1; if(mf>64) f=mf-55; else f=mf-48 ; if(ng>64) g=ng-55; else g=ng-48 ; for(i=f+1;i<=36;i+) for(j=1;j<=p;j+) if(mj-1>6

34、4) ai=(mj-1-55)*pow(i,p-j)+ai; else ai=(mj-1-48)*pow(i,p-j)+ai; for(i=g+1;i<=36;i+) for(j=1;j<=q;j+) if(nj-1>64) bi=(nj-1-55)*pow(i,q-j)+bi; else bi=(nj-1-48)*pow(i,q-j)+bi; for(i=f+1;i<=36;i+) for(j=g+1;j<=36;j+) if(ai=bj) x=1; goto k; k: if(x=0)printf("%s is not equal to %s in

35、any base 2.36n",m,n); else printf("%s (base %d) = %s (base %d)n",m,i,n,j); return 0;8.(附加)2將任一正整數(shù)(<65536)轉(zhuǎn)換為 16 位二進(jìn)制形式。輸入: 正整數(shù)輸出: 正整數(shù)的 16 位二進(jìn)制數(shù)友情提示:定義一個(gè)整型數(shù)組,數(shù)組有16個(gè)元素,保存變換后的二進(jìn)制數(shù)。#include<stdio.h>int main() int n,i,a16; scanf("%d",&n); if(n<=0|n>=65536) prin

36、tf("Invalid input!n"); else if(n>0&&n<65536) for(i=15; i>=0; i-) ai=n%2; n=n/2; for(i=0; i<16; i+) printf("%d",ai); printf("n"); return 0;9.1請(qǐng)編寫函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。合并的方式是:將a的十位和個(gè)位依次存放在c數(shù)的十位和千位上,b的十位和個(gè)位依次存放在c數(shù)的個(gè)位和百位上。例如:當(dāng)a=45,b=12,調(diào)用該

37、函數(shù)后,c=5241。部分源程序如下,只需要完成Fun函數(shù)的編寫即可。前置代碼:#include <stdio.h>后置代碼:int main() int a,b,c; scanf("%d,%d",&a,&b); Fun(a,b,&c); printf("%dn",c); return 0;提交:void Fun(int a,int b,int *c)int d,e,f,g; d=a/10; e=a%10; f=b/10; g=b%10; *c=1000*e+100*g+10*d+f;9.2給定程序中,函數(shù)fun的功能

38、是:將形參n所指變量中,各位上為偶數(shù)的數(shù)去除,剩余的數(shù)按原來從高位到低位的順序組成一個(gè)新的數(shù),并通過形參指針n傳回所指變量。 例如,輸入一個(gè)數(shù):27638496,新的數(shù):為739。注意:本題只需提交Fun函數(shù)即可前置代碼:#include <stdio.h>后置代碼:int main( ) int n=-1; while(n>99999999|n<0) scanf("%d",&n); Fun(&n); printf("%dn",n); return 0;提交部分:void Fun(int *n) int b=0,c

39、=1,m; while(*n!=0) m=*n%10; if(m%2!=0) b=b+m*c; c=c*10; *n=*n/10; *n=b;9.3請(qǐng)編一個(gè)函數(shù) Fun ,其功能是對(duì)變量 h 中的值保留 2 位小數(shù),并對(duì)第三位進(jìn)行四舍五入(規(guī)定 h 中的值為正數(shù))。 例如: h 值為 8.32433 ,則函數(shù)返回 8.32 ; h 值為 8.32533 ,則函數(shù)返回 8.33 。注意:本題只需提交Fun函數(shù)即可前置代碼:#include <stdio.h>后置代碼:int main( ) double a,h; scanf("%lf",&a); Fun(

40、a,&h); printf("The result:%lfn",h); return 0;提交部分:#include <math.h>double Fun(double a,double*h) a=(int)(a*100+0.5)/100.0; *h=a; return *h;9.4請(qǐng)編一個(gè)函數(shù) Fun,函數(shù)的功能是分別求出數(shù)組中所有奇數(shù)之和以及所有偶數(shù)之和。形參 n 給了數(shù)組中數(shù)據(jù)的個(gè)數(shù):利用指針 odd 返回奇數(shù)之和,利用指針 even 返回偶數(shù)之和。 例如:數(shù)組中的值依次為: 1 , 8 , 2 , 3 , 11 , 6 ;則利用指針 odd 返回

41、奇數(shù)之和 15 ;利用指針 even 返回偶數(shù)之和 16 。注意:本題只需提交Fun函數(shù)即可前置代碼:#include <stdio.h>#define N 20后置代碼:int main() int aN,i,n,odd,even; scanf("%d",&n); for(i=0;i<n;i+) scanf("%d",&ai); Fun(a,n,&odd,&even); printf("The sum of odd numbers:%dn",odd); printf("Th

42、e sum of even numbers:%dn",even); return 0;提交部分:void Fun(int a,int n,int *odd,int *even) int i; *odd=0; *even=0; for(i=0; i<n; i+) if(ai%2!=0) *odd=*odd+ai; else *even=*even+ai; 9.5請(qǐng)編寫函數(shù)Fun ,它的功能是:求出能整除形參 x 且不是偶數(shù)的各整數(shù) , 并按從小到大的順序放在 aa數(shù)組中 , 這些除數(shù)的個(gè)數(shù)通過形參 n 返回。例如,若 x 中的值為 : 35 ,則有 4 個(gè)數(shù)符合要求,它們是 :

43、1, 5, 7, 35 。注意:本題只需提交Fun函數(shù)即可前置代碼:#include <stdio.h>后置代碼:int main( ) int x, aa1000, n, i ; scanf("%d", &x) ; Fun(x, aa, &n ) ; for( i = 0 ; i < n ; i+ ) printf(" %d", aai) ; printf("n") ; return 0;提交部分:void Fun(int x,int aa,int *n) int i,j=0; for(i=1;i&

44、lt;=x;i+) if(x%i=0)&&(i%2!=0) aaj=i; j+; aaj='0' *n=j;9.6請(qǐng)編寫一個(gè)函數(shù),其功能是:將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入xx所指的數(shù)組中。例如,若輸入17 5,則應(yīng)輸出19 23 29 31 37提醒:本題提交的時(shí)候,只需要提交Fun函數(shù)就可以。前置代碼:#include <stdio.h>后置代碼:int main() int m,n,zz1000; scanf("%d%d",&m,&n); Fun(m,n,zz); for(m=0;m<n;m+) pr

45、intf("%6d",zzm); printf("n"); return 0;提交部分:void Fun(int m,int n,int zz) int i,j,k=0; for(i=m+1; k<=n; i+) for(j=2; j<=i; j+) if(i%j=0) break; if(i=j) zzk=i; k+; 9.7請(qǐng)編寫函數(shù)Fun, 函數(shù)的功能是: 將M行N列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次放到一個(gè)字符串中。 例如,二維數(shù)組中的數(shù)據(jù)為: W W W W S S S S H H H H 則字符串中的內(nèi)容應(yīng)是: WSHWSHWSHWSH。注意:本題只需提交Fun函數(shù)即可前置代碼:#include <stdio.h> #define M 3 #define N 4后置代碼:int main() char a100,wMN='W','W','W','W','S','S','S','S','H','H','H','H' Fun(w,a);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論