中國(guó)石油大學(xué)華東C語(yǔ)言習(xí)題答案_第1頁(yè)
中國(guó)石油大學(xué)華東C語(yǔ)言習(xí)題答案_第2頁(yè)
中國(guó)石油大學(xué)華東C語(yǔ)言習(xí)題答案_第3頁(yè)
中國(guó)石油大學(xué)華東C語(yǔ)言習(xí)題答案_第4頁(yè)
中國(guó)石油大學(xué)華東C語(yǔ)言習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩84頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語(yǔ)言復(fù)習(xí)題【設(shè)計(jì)型】5.1 輸出一行星號(hào)編寫程序在一行中輸出 N 個(gè)星號(hào)。輸入: N值輸出: 一行中N個(gè)星號(hào) #include<stdio.h>int main() int a,i; scanf("%d",&a); for(i=1;i<=a;i+) printf("*"); printf("n"); return 0;【設(shè)計(jì)型】5.2 打印平行四邊形輸入圖形的高 n ,輸出如下例( n=5 )所示的圖形 . * * * * * 輸入:整數(shù)n例如 5 輸出:由*組成的高為5的平行四邊形#include<

2、stdio.h>int main() int i,j,num; scanf("%d",&num); for(i=0;i<num;i+) for(j=0;j<num;j+) printf("*"); printf("n"); return 0;【設(shè)計(jì)型】5.3 編程計(jì)算編寫程序,輸入n的值,求 :1-1/2+1/3-1/4+1/5-1/6+1/7-.+1/n (保留四位小數(shù)) #include<stdio.h>int main() double n,i,sum,k=1.0; scanf("

3、%lf",&n); i=1,sum=0; while(i<=n) sum=sum+k/i; i+; k=-k;(用這個(gè)式子實(shí)現(xiàn)正負(fù)交替) printf("sum=%.4lfn",sum); return 0;【設(shè)計(jì)型】5.4 分?jǐn)?shù)序列有一個(gè)分?jǐn)?shù)序列:.,輸入整數(shù)n,求出其前n項(xiàng)的和。 輸出語(yǔ)句格式為:printf("sum=%16.10fn",s);#include<stdio.h>int main() int n,a,b,i,temp; double sum; scanf("%d",&n)

4、; i=1,sum=0,a=2,b=1; while(i<=n) sum=sum+a*1.0/b; temp=a; a=a+b; b=temp;(幾個(gè)式子實(shí)現(xiàn)數(shù)值的變換) i+; printf("sum=%16.10fn",sum); return 0;【設(shè)計(jì)型】5.5 求e的值編寫程序,從鍵盤輸入整數(shù) n , 求 e 的值 . e=1+1/1!+1/2!+1/3!+.+1/n! 注意:用 double 型數(shù)據(jù)計(jì)算輸出語(yǔ)句:printf("sum=%16.10fn",sum); #include<stdio.h>int main() i

5、nt n,i; double sum,jc; scanf("%d",&n); i=1,sum注意題干中的紅色1=1.0 jc=1.0; while(i<=n) jc=jc*i; sum=sum+1.0/jc; i+; printf("sum=%16.10fn",sum); return 0;【設(shè)計(jì)型】5.6 最大公約數(shù)輸入兩個(gè)正整數(shù)m和n,求它們的最大公約數(shù)和最小公倍數(shù)比如,輸入m和n的值分別為14和21,則最大公約數(shù)為7,最小公倍數(shù)為42。#include<stdio.h>int main() int yu,m,n,temp,

6、bei,ji; scanf("%d%d",&m,&n); if(m<n) temp=m,m=n,n=temp; ji=m*n; yu=m%n; while(yu!=0) m=n; n=yu; yu=m%n; (最大公約數(shù)求法) bei=ji/n;(最小公倍數(shù)求法) printf("the greatest common divisor is %dn",n); printf("the least common multiple is %dn",bei); return 0;【設(shè)計(jì)型】5.7 水仙花數(shù)輸出所有的水仙花

7、數(shù)。所謂的水仙花數(shù)是指一個(gè)3位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如153是一水仙花數(shù),因?yàn)?53=13+53+33輸出語(yǔ)句:printf("%dn",n); #include<stdio.h>int main() int a,b,i,j,k; for(i=1;i<=9;i+) for(j=0;j<=9;j+) for(k=0;k<=9;k+) (三重循環(huán)從1到999) a=i*i*i+j*j*j+k*k*k; b=100*i+10*j+k; if(a=b) printf("%dn",b); return 0;【設(shè)計(jì)型】5.

8、8 完數(shù)一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為完數(shù)。例如,6的因子為1,2,3,且6=1+2+3,因此6是完數(shù),從鍵盤上輸入一個(gè)正整數(shù),判斷其是否為完數(shù)。如果是,則按照如下格式輸出。比如,輸入6,則輸出Yes,its factors are 1 2 3;如果輸入8,則輸出No#include<stdio.h>int main() int yinzi,num,i,sum=0; scanf("%d",&num); for(yinzi=1; yinzi<num; yinzi+) if(num%yinzi=0) sum=sum+yinzi; if(s

9、um=num) printf("Yes,its factors are "); for(i=1; i<num; i+) if(num%i=0) printf(" %d",i); (輸出因子具體值) printf("n"); else printf("Non"); return 0;【設(shè)計(jì)型】5.9 素?cái)?shù)輸入兩個(gè)正整數(shù)m和n,求出m,n區(qū)間的所有素?cái)?shù) #include<stdio.h>int main() int m,n,i,j,tag=1; scanf("%d%d",&

10、m,&n); for(i=m; i<=n; i+) for(j=2; j<i; j+) if(i%j=0) tag=0; break; else tag=1; if(tag) printf(" %d",i); printf("n"); return 0;【設(shè)計(jì)型】5.10 回文數(shù)輸入一個(gè)數(shù),判斷是否為回文數(shù),如果是,輸出Yes,否則輸出No#include<stdio.h>int main() double num; scanf("%lf",&num); int min=0, max=num;w

11、hile (max>0) min=min*10+(int)max%10;(將數(shù)字反過(guò)來(lái)) max=max/10; if(num=min) printf("Yesn"); else printf("Non");return 0;【設(shè)計(jì)型】5.11 貪吃的猴子有一只猴子,第一天摘了若干個(gè)桃子 ,當(dāng)即吃了一半,但還覺(jué)得不過(guò)癮 ,就又多吃了一個(gè)。第2天早上又將剩下的桃子吃掉一半,還是覺(jué)得不過(guò)癮,就又多吃了兩個(gè)。以后每天早上都吃了前一天剩下的一半加天數(shù)個(gè)(例如,第5天吃了前一天剩下的一半加5個(gè))。到第n天早上再想吃的時(shí)候,就只剩下一個(gè)桃子了。輸入:天數(shù)n輸出

12、:第一天的桃子個(gè)數(shù),輸出語(yǔ)句為printf("The monkey got %d peachs in first day.n",sum); Smaple:Input:5OutputThe monkey got 114 peachs in first day.提示:?jiǎn)栴}分析: 總共 t0 日 吃掉 剩余 1 t0/2+1 t0-(t0/2+1)=t0/2-1 t1=t0/2-1 =>t0=(t1+1)*2 2 t1/2+2 t1-(t1/2+2)=t1/2-2 t2=t1/2-2 =>t1=(t2+2)*2 . n-1 tn-2/2+(n-1) tn-2-(tn-

13、2/2+(n-1)=tn-2/2-(n-1) tn-1=tn-2/2-(n-1) => tn-2= (tn-1+n-1)*2 n 1 0 tn-1=1 #include<stdio.h>int main() int i,t,sum; scanf("%d",&t); sum=1; for(i=t;i>1;i-) sum=(sum+i-1)*2;? printf("The monkey got %d peachs in first day.n",sum); return 0;【創(chuàng)新型】5.12 馬戲團(tuán)觀眾人數(shù)一個(gè)馬戲團(tuán)表演,

14、n 個(gè)座位全滿,全部門票收入是 120 元,現(xiàn)在知道,男人每人 5 元,女人每人 2 元,小孩每人 1 角。編程,輸入總?cè)藬?shù) n ,輸出滿足要求的男人、女人和小孩人數(shù)的全部方案。若 n 人無(wú)法滿足條件,則輸出“No outputn”。輸入: 人數(shù) n 輸出: 男人、女人和小孩人數(shù) #include<stdio.h>int main() int man,woman,child,total,sum,tag=0; scanf("%d",&total); for(man=0; man<=total; man+) for(woman=0; woman<

15、=(total-man); woman+) child=total-man-woman; sum=50*man+20*woman+1*child; if(sum=1200) tag=1; printf("%d %d %dn",man,woman,child); if(tag=0) printf("No outputn"); return 0;【設(shè)計(jì)型】5.13 迭代法用迭代法求.求平方根的迭代公式為:要求前后兩次求出的x的差的絕對(duì)值小于10-5。#include<stdio.h>#include<math.h>int main()

16、 double x,a,b; double i; scanf("%lf",&x); b=x; for(i=1;) a=i; i=(i+x/i)/2; if(fabs(i-a)<=0.00001) printf("The square root of %.2lf is %.5lfn",b,i); break; return 0;【設(shè)計(jì)型】5.14 cos(x)-x=0利用以下所示的簡(jiǎn)單迭代方法求方程:cos(x)-x=0的一個(gè)實(shí)根。 Xn+1=cos(Xn) 迭代步驟如下: (1)取X1初值為0.0; (2)X0=X1,把X1的值賦給X0;

17、(3)X1=cos(X0),求出一個(gè)新的X1; (4)若X0-X1的絕對(duì)值小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2); (5)所求X1就是方程cos(X)-X=0的一個(gè)實(shí)根,輸出X1,輸出語(yǔ)句為printf("x=%lf",x);。 提示:本題x0和x1定義為double類型#include<stdio.h>#include<math.h>#include<stdlib.h>int main() double x0,x1; for(x1=0;) x0=x1; x1=cos(x0); if(fabs(x0-x1)<=0.

18、000001) printf("x=%lfn",x1); break; return 0;【設(shè)計(jì)型】5.15 求一個(gè)三位數(shù),其值等于其各位階乘之和編寫程序,求某三位數(shù),該數(shù)值的大小正好是組成這個(gè)數(shù)的三個(gè)位上的數(shù)字階乘之和。輸出格式:printf("%dn",num);#include<stdio.h>int main() int i,j,k,l,ge,shi,bai,s1,s2,s3; for(i=100; i<=999; i+) ge=i%10; shi=i%100/10; bai=i/100; s1=1; s2=1; s3=1; f

19、or(j=1; j<=ge; j+) s1=s1*j; for(k=1; k<=shi; k+) s2=s2*k; for(l=1; l<=bai; l+) s3=s3*l; if(i=s1+s2+s3) printf("%dn",i); break; 【研究創(chuàng)新型】6.1 誰(shuí)能出線背景:電視臺(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)。

20、輸出:能夠出線的學(xué)生序號(hào)(09)。#include<stdio.h>int main()int i,a10,max;for(i=0;i<10;i+)scanf("%d",&ai);max=a0;for(i=0;i<10;i+)if(max<=ai)max=ai;for(i=0;i<10;i+)if(ai=max) printf("%dn",i); return 0;【設(shè)計(jì)型】6.2 統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù)求出 2 到 m 之間 ( 含 m,m<=1000) 所有素?cái)?shù)并放在數(shù)組 a 中。輸入:正整數(shù)m輸出:從小到大

21、的所有素?cái)?shù),及個(gè)數(shù)(素?cái)?shù)輸出的時(shí)候用%4d來(lái)控制)如:輸入:10輸出:2 3 5 74 #include<stdio.h>int main() int i,j,k=0,a1001,m,yu,tag,num=0; scanf("%d",&m); for(i=2; i<=m; i+) tag=1; ak=i; for(j=2; j<i; j+) yu=i%j; if(yu=0) tag=0; num+; break; if(tag=1) printf("%4d",ak); k+; printf("n");

22、printf("%dn",m-num-1); return 0;【設(shè)計(jì)型】6.3 冒泡法排序冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個(gè)數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個(gè)和第2個(gè)數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個(gè)數(shù)和第3個(gè)數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個(gè)數(shù),將小數(shù)放前,大數(shù)放后。至此第一趟結(jié)束,將最大的數(shù)放到了最后。在第二趟:仍從第一對(duì)數(shù)開(kāi)始比較(因?yàn)榭赡苡捎诘?個(gè)數(shù)和第3個(gè)數(shù)的交換,使得第1個(gè)數(shù)不再小于第2個(gè)數(shù)),將小數(shù)放前,大數(shù)放后,一直比較到倒數(shù)第二個(gè)數(shù)(倒數(shù)第一的位置上已經(jīng)是最大的),第二趟結(jié)束

23、,在倒數(shù)第二的位置上得到一個(gè)新的最大數(shù)(其實(shí)在整個(gè)數(shù)列中是第二大的數(shù))。如此下去,重復(fù)以上過(guò)程,直至最終完成排序。 由于在排序過(guò)程中總是小數(shù)往前放,大數(shù)往后放,相當(dāng)于氣泡往上升,所以稱作冒泡排序。編寫程序,對(duì)輸入的十個(gè)數(shù)按照從小到大排序#include<stdio.h>int main() int i,j,a10,z; for(i=0; i<10; i+) scanf("%d",&ai); for(j=0; j<9; j+) for(i=0; i<9-j; i+) if(ai>ai+1) z=ai+1; ai+1=ai; ai=z

24、; for(j=0; j<10; j+) printf(" %d",aj); printf("n"); return 0;【設(shè)計(jì)型】6.4 插入法排序如果一個(gè)數(shù)組中保存的元素是有序的(由小到大),向這個(gè)數(shù)組中插入一個(gè)數(shù),使得插入后的數(shù)組元素依然保持有序。 定義一個(gè)數(shù)組,長(zhǎng)度為11,初始元素為10個(gè),按照從小到大的方式輸入,然后輸入一個(gè)要插入的元素,使得插入后仍然有序。#include<stdio.h>int main() int a11,i,j,t; for(i=0; i<10; i+) scanf("%d",

25、&ai); scanf("%d",&a10); for(i=0; i<10; i+) if(ai>a10) t=a10; for(j=10; j>i; j-) aj=aj-1; ai=t; break; for(i=0; i<11; i+) printf(" %d",ai); printf("n"); return 0;【設(shè)計(jì)型】6.5 求各位數(shù)字組成的最大數(shù)任意輸入一個(gè)自然數(shù),輸出該自然數(shù)的各位數(shù)字組成的最大數(shù)。例如,輸入 1593 ,則輸出為 9531 。輸入: 自然數(shù) n 輸出: 各位數(shù)字

26、組成的最大數(shù) #include<stdio.h>int main() int a12,num,i,j,k,m,t; scanf("%d",&num); for(i=0;i+) k=num%10; num=num/10;(分離各個(gè)位數(shù)) ai=k; if(num=0) break; for(m=0; m<i; m+) for(j=0; j<i-m; j+) if(aj>aj+1) t=aj+1; aj+1=aj; aj=t; for(j=i;j>=0;j-) printf("%d",aj); printf(&qu

27、ot;n"); return 0;【設(shè)計(jì)型】6.6 數(shù)組逆序輸出問(wèn)題描述從鍵盤上輸入一個(gè)數(shù)組(10個(gè)元素),將原數(shù)組逆序重新排列后輸出。要求輸出每個(gè)元素時(shí)以一個(gè)空格隔開(kāi)。提示:用第一個(gè)與最后一個(gè)交換。#include<stdio.h>int main() int a10,i,t; for(i=0;i<=9;i+) scanf("%d",&ai); for(i=0;i<5;i+)(第一個(gè)與最后一個(gè)調(diào)換) t=ai; ai=a9-i; a9-i=t; for(i=0;i<=9;i+) printf("%d ",

28、ai); printf("n"); return 0;【設(shè)計(jì)型】6.7 求最大值問(wèn)題描述要求從鍵盤輸入10個(gè)整型數(shù)據(jù),找出其中的最大值并顯示出來(lái)。輸入范例3 0 54 -710 27 32767 10 1 500 2輸出范例32767提示先假定第一個(gè)元素時(shí)最大值,然后和其他的元素一個(gè)一個(gè)的進(jìn)行比較,直到找到最大值。#include<stdio.h>#define n 10int main() int an,i,max; for(i=0; i<10; i+) scanf("%d",&ai); max=a0; for(i=1; i&

29、lt;10; i+) if(ai>max) max=ai; printf("%d",max); printf("n"); return 0;【設(shè)計(jì)型】6.8 二維數(shù)組程序定義了 4× 4 的二維數(shù)組,請(qǐng)編寫程序,給二維數(shù)組賦值,并使數(shù)組下半三角元素中的值乘以n 。 例如:數(shù)組中的值為 假設(shè)n為10,則輸出結(jié)果如下:(輸出的數(shù)按照4位寬度來(lái)輸出,即%4d)#include<stdio.h>int main() int a44,i,j,n,count=0; for(i=0; i<=3; i+) for(j=0; j<=

30、3; j+) scanf("%d",&aij); scanf("%d",&n); for(j=0; j<=3; j+) for(i=j; i<=3;i+) aij=n*aij; for(i=0; i<=3; i+) for(j=0; j<=3; j+) count+; printf("%4d",aij); if(count%4=0) printf("n"); return 0;【設(shè)計(jì)型】6.9 在屏幕上顯示楊輝三角形楊輝三角形,又稱賈憲三角形,帕斯卡三角形,是二項(xiàng)式系數(shù)在三角

31、形中的一種幾何排列。其實(shí),中國(guó)古代數(shù)學(xué)家在數(shù)學(xué)的許多重要領(lǐng)域中處于遙遙領(lǐng)先的地位。中國(guó)古代數(shù)學(xué)史曾經(jīng)有自己光輝燦爛的篇章,而賈憲三角的發(fā)現(xiàn)就是十分精彩的一頁(yè)。楊輝三角有如下性質(zhì):1、每行數(shù)字左右對(duì)稱,由1開(kāi)始逐漸變大,然后變小,回到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>int main() int i,j,

32、n; int a1010; scanf("%d",&n); n=n+1; for(i=0; i<n; i+) ai0=1; aii=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("%3d",aij); printf("n"); return 0;【設(shè)計(jì)型】6.10 求二維數(shù)組周邊元素之和編寫一個(gè)程序,求出4×5的二維數(shù)組周邊元素之和

33、。輸入:二維數(shù)組元素輸出:周邊元素之和 如:輸入:1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 輸出:61#include<stdio.h>int main() int a45,i,j,sum1=0,sum2=0,sum; for(i=0;i<4;i+) for(j=0;j<5;j+) scanf("%d",&aij); for(j=0;j<5;j+) sum1=sum1+a0j+a3j; for(i=0;i<4;i+) sum2=sum2+ai0+ai4; sum=sum1+sum2-a00-a

34、04-a34-a30; printf("%dn",sum); return 0;【設(shè)計(jì)型】6.11 存儲(chǔ)并輸出一個(gè)矩陣編程,輸入 n ,存儲(chǔ)并輸出如下例( n=5 )所示的 圖形。 1 2 3 4 5 1 1 2 3 4 1 1 1 2 3 1 1 1 1 2 1 1 1 1 1 #include<stdio.h>int main() int a55,i,j,n,count=0; scanf("%d",&n); for(i=0; i<n; i+) for(j=0; j<=i; j+) aij=1; for(i=0; i&l

35、t;n-1; i+) for(j=i+1; j<n ; j+) aij=aij-1+1; for(i=0; i<n; i+) for(j=0; j<n; j+) printf(" %d",aij); count+; if(count%n=0) printf("n"); return 0;【設(shè)計(jì)型】6.12 給數(shù)組中的元素按順序編號(hào)對(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) 則輸出為:

36、 (4,1,3,7,1,4,6,8,9,10) #include<stdio.h> int main() int a11,c11; int i,j,t,m; for(i=1;i<11;i+) scanf("%d",&ai); ci=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(cm=ai) printf("%3d",i)

37、; break; printf("n"); return 0; 【設(shè)計(jì)型】8.1 字符轉(zhuǎn)換描述提取一個(gè)字符串中的所有數(shù)字字符(0.9)將其轉(zhuǎn)換為一個(gè)整數(shù)輸出。輸入一個(gè)以回車符為結(jié)束標(biāo)志的字符串(少于80個(gè)字符)。輸出把字符串中的所有數(shù)字字符(0.9)轉(zhuǎn)換為一個(gè)整數(shù)并輸出。#include<stdio.h>#include<string.h>int main() char word20; int i,n; scanf("%s",word); n=strlen(word); for(i=0; i<=n; i+) if(wordi

38、>='0'&&wordi<='9') printf("%c",wordi); printf("n"); return 0;【設(shè)計(jì)型】8.2 合并字符串輸入兩個(gè)已經(jīng)按從小到大順序排列好的字符串,編寫一個(gè)合并兩個(gè)字符串的函數(shù),使合并后的字符串,仍然是從小到 大排列。輸入:兩個(gè)已經(jīng)排好順序(升序)的字符串輸出:一個(gè)合并在一起的有序(升序)的字符串要求:設(shè)計(jì)一個(gè)效率盡量高的算法,對(duì)每個(gè)字符串只掃描一遍就可以了。如果采用先進(jìn)行串連接,然后再進(jìn)行排序的算法,則效率太低了。#include<stdio.

39、h>#include<string.h>int main() char a100,b100; char n200,t; int i,j,k,m; gets(a); gets(b); for(i=0;ai!=0;i+) ni=ai; for(j=0;bj!=0;j+,i+) ni=bj; ni='0' for(k=0;k<i;k+) for(m=k+1;m<i;m+) if(nk>nm) t=nk; nk=nm; nm=t; printf("%sn",n); return 0;【設(shè)計(jì)型】8.3 刪除重復(fù)字符背景: 輸入一個(gè)長(zhǎng)

40、度不超過(guò) 100 的字符串,刪除串中的重復(fù)字符。輸入:輸入要檢查的字符串,長(zhǎng)度不超過(guò)100個(gè)字符。例如:abacaeedabcdcd。輸出:刪除重復(fù)字符后的字符串。例如:abced。 #include<stdio.h>#include<string.h>int main() char str1100,str2100; int i,j,n,k=0,tag=0; scanf("%s",str1); str20=str10; printf("%c",str20); n=strlen(str1); for(i=0; i<n; i+)

41、 for(j=0; j<k+1; j+) if(str1i=str2j) tag=0; break; tag=1; if(tag=1) str2k+1=str1i; printf("%c",str2k+1); k+; printf("n"); return 0;【設(shè)計(jì)型】8.4 刪除字符串中指定字符輸入兩個(gè)字符串 s1 和 s2 ,在 s1 中刪除任何 s2 中有的字符。例如, s1 :“ abc123ad ”, s2 :“ a1 ” ,則輸出“bc23d ”。輸入: 兩個(gè)字符串 s1 和 s2 輸出: 刪除后的字符串 s1 #include<

42、;stdio.h>#include<string.h>int main() char str1100,str2100; int i,j,n1,n2,tag=0; scanf("%s%s",str1,str2); n1=strlen(str1); n2=strlen(str2); for(i=0; i<n1; i+) for(j=0; j<n2; j+) if(str1i=str2j) tag=0; break; tag=1; if(tag=1) printf("%c",str1i); printf("n"

43、); return 0;【設(shè)計(jì)型】8.5 單詞有多少用空格或換行分開(kāi)的字符串稱為單詞。輸入多行字符串,直到遇到了單詞 "stop" 時(shí)才停止。最后輸出單詞的數(shù)量。用于分割單詞的空格或換行可能多于1個(gè)。輸入: 多個(gè)字符串 輸出: 單詞的數(shù)量#include<stdio.h>#include<string.h>int main() char str1020,str2='s','t','o','p','0' int i,num=0; for(i=0;i+) scanf(&quo

44、t;%s",stri); if(strcmp(stri,str2)=0) break; num+; printf("%dn",num); return 0;【設(shè)計(jì)型】8.6 在指定位置插入字符串輸入兩個(gè)字符串 s1 、 s2 和 s1 中任意字符 k ,在 s1 中的指定字符 k 第一次出現(xiàn)的位置處插入字符串 s2 并輸出。輸入: 兩個(gè)字符串 s1 、 s2 和 s1 中任意字符 k 輸出: 插入后的字符串 s1 #include<stdio.h>#include<string.h>int main() char str115,str215

45、,t; int i,n,num=0; gets(str1); gets(str2); t=getchar(); n=strlen(str1); for(i=0; i<n; i+) if(str1i=t) break; num+; for(i=0; i<num; i+) printf("%c",str1i); printf("%s",str2); for(i=num; i<n; i+) printf("%c",str1i); printf("n"); return 0;【研究創(chuàng)新性】8.7 Your

46、 Ride Is HereIt is a well-known fact that behind every good comet is a UFO. These UFOs often come to collect loyal supporters from here on Earth. Unfortunately, they only have room to pick up one group of followers on each trip. They do, however, let the groups know ahead of time which will be picked up for each comet by a clever scheme: they pick a name for the comet which, along with the name of the group, can be used to determine if it is a particular group's turn to go (who do you think names the comets?). The details of the matching scheme are given bel

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論