


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、算法與程序設計PTA習題集第4周本題目要求計算下列分段函數f(x)的值:輸入格式:輸入在一行中給出實數x。都保留一位小數。輸出格式:在一行中按“ f(x) = result”的格式輸出,其中x與result輸入樣例1: 10輸出樣例 1:f(10.0) = 0.1輸入樣例2: 0輸出樣例2: f(0.0) = 0.0#i nclude<stdio.h>int main()float x,result;sca nf("%f", &x);if (x=0)result=0;elseresult=1.0/x;prin tf("f(%.1f) = %.1
2、f",x,result);return 0;編寫一個程序,要求用戶輸入 24小時制的時間,然后顯示 12 小時制的時間。 輸入格式:輸入在一行中給出帶有中間的 :符號(半角的冒號) 的 24小時制的時間, 如 12:34 表示 12 點 34 分。當小時或分鐘數小于 10 時,均沒有前導的零,如 5:6 表示 5 點零 6 分。 提示: 在 scanf 的格式字符串中加入 : ,讓 scanf 來處理這個冒號。輸出格式: 在一行中輸出這個時間對應的 12 小時制的時間,數字部分格式與輸入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串 PM如5:6 PM表示下午5點
3、零 6 分。注意,在英文的習慣中, 中午 12 點被認為是下午, 所以 24 小時制的 12:00 就是 12小時制的12:0 PM ;而0點被認為是第二天的時間,所以是 0:0 AM。輸入樣例: 21:11輸出樣例: 9:11 PM#include<stdio.h>int main()int a,b;scanf("%d:%d",&a,&b); if(a>12)printf("%d:%d",a-12,b);if(a=12)printf("%d:%d",a,b);if(a<12)printf(&q
4、uot;%d:%d AM",a,b);elseprintf(" PM",a,b);return 0;給定平面上任意三個點的坐標 (x1,y1) 、 (x2,y2) 、 (x3,y3) ,檢驗它們能否構成三角形。輸入格式 :輸入在一行中順序給出六個 - 100,100 范圍內的數字,即三個點的坐標x1、y1、x2、 y2、 x3、 y3。輸出格式 : 若這 3 個點不能構成三角形,則在一行中輸出“ Impossible ”;若可以,則在一 行中輸出該三角形的周長和面積,格式為“ L = 周長 , A = 面積”,輸出到小數點后 2 位。輸入樣例 1: 4 5 6 9
5、 7 8輸出樣例 1: L = 10.13, A = 3.00輸入樣例 2: 4 6 8 12 12 18輸出樣例 2: Impossible#include<stdio.h>int main()int a,b,c;scanf("%d %d %d",&a,&b,&c); if(a+b>c)&&(b+c>a)&&(a+c>b)printf("YES");elseprintf("NO");return 0;輸入一個年份,判斷其是否為閏年,若是閏年輸出“
6、yes”的信息,否則輸出“no”的信息。輸入格式 :直接輸入一個 4 位數年份,沒有其它任何附加字符。輸出格式:直接輸出“yes”或“n o”,沒有其它任何附加字符。輸入樣例 :1900 輸出樣例 :no輸入樣例 :2000 輸出樣例 :yes輸入樣例 :1904 輸出樣例 :yes#include<stdio.h>int main()int a;scanf("%d",&a);if(a%4=0&&a%100!=0|a%400=0) printf("yesn");else printf("non");
7、return 0;輸入三個整數 x,y,z ,請把這三個數由小到大輸出。輸入格式 : 在一行中直接輸入 3 個整數,之間各用一個空格間隔。最大值、次大輸出格式:在一行中按照"x=最小值 y次小值,z=最大值”的順序輸出結果, 值和最小值均原樣輸出,沒有寬度控制。輸入樣例 :2 1 3 輸出樣例 : x=1,y=2,z=3#include<stdio.h>int main()int x,y,z,temp;scanf("%d %d %d",&x,&y,&z,&temp);if(x>y) temp=x,x=y,y=tem
8、p;if(x>z) temp=x,x=z,z=temp;if(y>z) temp=y,y=z,z=temp; printf("x=%d,y=%d,z=%d",x,y,z);return 0;第5周本題要求編寫程序將一個百分制成績轉換為五分制成績。轉換規則: 大于等于90分為A;小于90且大于等于80為B; 小于80且大于等于70為C;小于70且大于等于60為D;* 小于60為E。輸入格式:輸入在一行中給出一個整數的百分制成績。輸出格式:在一行中輸出對應的五分制成績。輸入樣例:90輸出樣例:A#i nclude<stdio.h>int main()in
9、t a,ch;sca nf("%d",&a);if(a>90|a=90)ch='A'else if(a>80|a=80)ch='B'else if(a>70|a=70)ch=C;else if(a>60|a=60)ch='D'elsech='E'prin tf("%c",ch);return 0;中國有句俗語叫“三天打魚兩天曬網”。假設某人從某天起,開始“三天打魚兩天曬網”, 問這個人在以后的第 N 天中是“打魚”還是“曬網”?輸入格式: 輸入在一行中給出一個
10、不超過 1000 的正整數 N。輸出格式:在一行中輸出此人在第 N天中是"Fishing ” (即"打魚”)還是"Drying ” (即 “曬網”),并且輸出“ in day N ”。輸入樣例 1: 103輸出樣例 1: Fishing in day 103輸入樣例 2: 34輸出樣例 2: Drying in day 34#include<stdio.h>int main()int N;scanf("%d",&N);if(N%5=4|N%5=0)printf("Drying in day %d",N);
11、elseprintf("Fishing in day %d",N);return 0;本題要求編寫一個簡單計算器程序,可根據輸入的運算符,對 2 個整數進行加、減、乘、除 或求余運算。題目保證輸入和輸出均不超過整型范圍。輸入格式: 輸入在一行中依次輸入操作數1、運算符、操作數 2,其間以 1 個空格分隔。操作數的數據類型為整型,且保證除法和求余的分母非零。輸出格式: 當運算符為 +、-、*、/ 、%時,在一行輸出相應的運算結果。若輸入是非法符號(即除了加、減、乘、除和求余五種運算符以外的其他符號)則輸出ERROR輸入樣例 1: -7 / 2輸出樣例 1: -3輸入樣例 2:
12、3 & 6 輸出樣例 2: ERROR#include <stdio.h>int main()int x,y;char ch;scanf("%d %c %d", &x, &ch, &y);switch(ch)case '+':printf("%dn",x+y);break;case '-':printf("%dn", x-y);break;case '*':printf("%dn", x*y);break;case '
13、;/':printf("%dn", x/y);break;case '%':printf("%dn", x%y);break;default:printf("ERRORn");break;return 0;股票價格漲跌趨勢,常用蠟燭圖技術中的K線圖來表示,分為按日的日K線、按周的周K線、按月的月K線等。以日K線為例,每天股票價格從開盤到收盤走完一天,對應一根蠟燭 小圖,要表示四個價格:開盤價格Open (早上剛剛開始開盤買賣成交的第1筆價格)、收盤價格 Close (下午收盤時最后一筆成交的價格)、中間的最高價
14、 High 和最低價 Low。如果Close<<<Open,表示為"BWASolid "(即"實心藍白蠟燭”);如果Close>»Open,表示為“R -Hol low"(即"空心紅蠟燭”);如果 Open等于Close,則為“R -Cross"(即"十字紅蠟燭”)。如果Low比Open和Close低,稱為"Lower Shadow (即"有下影線”), 如果High比Open和Close高,稱為"Upper Shadow (即"有上影線”)。請編程序
15、,根 據給定的四個價格組合,判斷當日的蠟燭是一根什么樣的蠟燭。輸入格式:輸入在一行中給出 4 個正實數,分別對應 Open、 High 、 Low、 Close ,其間以空格分隔。輸出格式: 在一行中輸出日 K 蠟燭的類型。如果有上、下影線,則在類型后加上with 影線類型。如果兩種影線都有,則輸出with Lower Shadow and Upper Shadow 。輸入樣例 1:5.110 5.250 5.100 5.105輸出樣例 1: BW-Solid with Lower Shadow and Upper Shadow輸入樣例 2:5.110 5.110 5.110 5.110輸出樣
16、例 2: R-Cross輸入樣例 3:5.110 5.125 5.112 5.126輸出樣例 3: R-Hollow#include <stdio.h>#include <math.h>int main()double open, high, low, close; scanf("%lf%lf%lf%lf", &open, &high, &low, &close); if(close < open) printf("BW-Solid");else if(close > open) pri
17、ntf("R-Hollow");else if(fabs(close - open) = 0) printf("R-Cross");if(low < open && low < close) && (high > open && high > close) printf(" with Lower Shadow and Upper Shadown");else if(low < open && low < close) printf(&q
18、uot; with Lower Shadown");else if(high > open && high > close) printf(" with Upper Shadown");return 0;本題要求編寫程序計算某年某月某日是該年中的第幾天。輸入格式:輸入在一行中按照格式"yyyy/mm/dd” (即"年 /月/日”)給出日期。注意:閏 年的判別條件是該年年份能被 4整除但不能被 100整除、或者能被 400 整除。閏年的 2月有 29 天。輸出格式 : 在一行輸出日期是該年中的第幾天。輸入樣例 1: 2
19、009/03/02輸出樣例 1: 61輸入樣例 2: 2000/03/02輸出樣例 2: 62#include<stdio.h>int main()int day,month,year; scanf("%d/%d/%d",&year,&month,&day);int i;int sum;sum=day;for(i=1;i<month;i+)switch(i)case 1:sum+=31;break;case 3:sum+=31;break;case 5:sum+=31;break;case 7:sum+=31;break;case
20、8:sum+=31;break;case 10:sum+=31;break;case 12:sum+=31;break;case 4:sum+=30;break;case 6:sum+=30;break;case 9:sum+=30;break;case 11:sum+=30;break;case 2: if(year%4=0&&year%100!=0)|(year%400=0) sum+=29;else sum+=28;printf("%dn",sum);return 0;第6周三個球A、B、C,大小形狀相同且其中有一個球與其他球重量不同。找出這個不一樣的
21、球。輸入格式:輸入在一行中給出 3個正整數,順序對應球 A、B C的重量。輸出格式: 在一行中輸出唯一的那個不一樣的球。輸入樣例: 1 1 2 輸出樣例: C#include<stdio.h>int main()int a,b,c;char ch;scanf("%d %d %d",&a,&b,&c);if(a=b)ch='C'else if(a=c)ch='B'elsech='A'printf("%cn",ch);return 0;40 小時,按正常工作時間計酬;1.5
22、倍計酬。員工按進公司時間分為5 年以下的為新職工。新職工的正常某公司員工的工資計算方法如下:一周內工作時間不超過 超出 40 小時的工作時間部分,按正常工作時間報酬的 新職工和老職工,進公司不少于 5 年的員工為老職工,工資為 30元/小時,老職工的正常工資為50 元/小時。請按該計酬方式計算員工的工資。輸入格式: 輸入在一行中給出 2 個正整數, 分別為某員工入職年數和周工作時間, 其間以空 格分隔。輸出格式: 在一行輸出該員工的周薪,精確到小數點后 2 位。輸入樣例 1: 5 40 輸出樣例 1: 2000.00輸入樣例 2:3 50 輸出樣例 2:1650.00#include <
23、stdio.h>int main()int time,year;double money;scanf("%d%d",&year,&time);if(year>=5)if(time<=40)money=time*50;elsemoney=2000+(time-40)*50*1.5;elseif(time<=40)money=time*30;elsemoney=1200+(time-40)*30*1.5;printf("%.2lfn",money);return 0;輸入三個實數,代表三條線段的長度。判斷這三條線段組成
24、的三角形是什么類型:等邊( equilateral triangle )、等腰( isosceles triangle )、不等邊( common triangle ) 或不能構成三角形( not a triangle )。輸入格式 : 輸入三條線段的長度,輸入保證所有數據均大于0。輸出格式 : 輸出三角形的類型: 等邊( equilateral triangle )、等腰( isosceles triangle )、 不等邊( common triangle )或不能構成三角形( not a triangle)。輸入樣例 :3 3 3 # 輸出樣例 :equilateral triangle
25、#include <stdio.h>int main()float a,b,c;scanf("%f %f %f",&a,&b,&c);if (a + b <= c | a + c <= b | b + c <= a)printf("not a trianglen");else if (a = b && b = c)printf("equilateral trianglen");else if (a = b | b = c | a = c)printf("i
26、sosceles trianglen");elseprin tf("com mon tria nglen");return 0;有一分段函數如下:-V3 -1(工 < -1)3x +1( 1蘭xWl)'嚴十5(l<x<10)5x + 31g(2x2-1)-13 (>10)根據輸入的x值,計算對應的y值。輸入格式:輸入x。輸出格式:輸出y的值,保留兩位小數。#i nclude<stdio.h>#in clude<math.h>int main()double x,y;scan f("%lf"
27、, &x);if(x<-1)y=pow(x,3)-1;if(x>=-1 && x<=1)y=-3*x+1;if(x>1 && x<=10)y=3*exp(2*x-1)+5;if(x>10)y=5*x+3*log10(2*x*x-1)-13;prin tf("%.2f",y);return 0;第7周本題要求編寫程序,輸入 10 個字符,統計其中英文字母、空格或回車、數字字符和其他字 符的個數。輸入格式 :輸入為 10 個字符。最后一個回車表示輸入結束,不算在內。輸出格式 : 在一行內按照 lette
28、r = 英文字母個數 , blank = 空格或回車個數 , digit = 字字符個數 , other = 其他字符個數的格式輸出。輸入樣例 :aZ &09 Az 輸出樣例 : letter = 4, blank = 3, digit = 2, other = 1 #include<stdio.h> int main()int l=0,b=0,d=0,o=0,i=1;char ch;scanf("%c",&ch); while(i<=10) if(ch>='a'&&ch<='z'
29、|ch>='A'&&ch<='Z')l+;else if(ch>='0'&&ch<='9')d+;else if(ch=' '|ch='n')b+;elseo+;scanf("%c",&ch);i+;printf("letter= %d, blank = %d, digit = %d, other = %d",l,b,d,o);return 0;本題要求編寫程序,找出給定一系列整數中的最小值。輸入
30、格式:輸入在一行中首先給出一個正整數nnn,之后是nnn個整數,其間以空格分隔。輸出格式: 在一行中按照“ min = 最小值”的格式輸出 nnn 個整數中的最小值。輸入樣例: 4 -2 -123 100 0輸出樣例: min = -123#include<stdio.h>int main()int n,x,y,i=1,min;scanf("%d%d",&n,&x);min=x;while(i<n)scanf("%d",&y);if(min>y)min=y;elsemin=min;i+;printf(&qu
31、ot;min = %dn",min);return 0;本題要求計算給定的一系列正整數中奇數的和。輸入格式 : 輸入在一行中給出一系列正整數,其間以空格分隔。當讀到零或負整數時,表示輸入結束,該數字不要處理。輸出格式 : 在一行中輸出正整數序列中奇數的和。輸入樣例 :8 7 4 3 70 5 6 101 -1輸出樣例 :116#include <stdio.h>int main()int n,sum=0; scanf("%d",&n);while(n>0) if(n%2=0) sum=sum;else sum=sum+n; scanf(&
32、quot;%d",&n); printf("%dn",sum);return 0;輸入若干學生成績, 以負數結束輸入。 計算所有學生的平均成績并統計成績在 80 到 90 分(不 含 90 )之間的人數。輸入格式 : 在一行輸入幾個百分制實型成績, 數據之間以一個空格間隔。 輸入負數結束輸入。輸出格式:在一行中按照“ ave=平均分,門=人數”的順序輸出結果,其中平均分要求保留兩 位小數,人數是正整數。輸入樣例 :58 89 84 55 -1輸出樣例 : ave=71.50,n=2#include<stdio.h>int main()int x
33、,n=0,sum=0,i=0; scanf("%d",&x); while(x>=0)i+;if(x>=80&&x<90)n=n+1; sum=sum+x;scanf("%d",&x);printf("ave=%.2f,n=%dn",sum*1.0/i,n);return 0;對于給定的正整數 N求它的位數及其各位數字之和。輸入格式:輸入在一行中給出一個不超過 109107109的正整數No輸出格式:在一行中輸出N的位數及其各位數字之和,中間用一個空格隔開。輸入樣例: 321 輸出樣例
34、: 3 6#include<stdio.h>int main()int n,x,i=0,sum=0;scanf("%d",&n);while(n!=0)sum=sum+n%10;n=n/10;i+;printf("%d %dn",i,sum);return 0;第8周以下程序統計輸入的一行字符中字母、數字、空格、其它字符的個數(行末以換行符結 束,最后的換行符不統計在內)。例如,輸入的一行字符為 aB 3* 則字母有 2 個,數字 有 1 個,空格有 1 個,其它字符有 1 個。#include <stdio.h>int
35、main()int letters, digits, spaces, others;letters=0,digits=0,spaces=0,others=0;char ch;while(ch=getchar()!='n')if(ch>='a'&&ch<='z'|ch>='A'&&ch<='Z')letters+;else if(ch>='0'&&ch<='9')digits+;else if(ch=&
36、#39; '|ch='n')spaces+;elseothers+;printf("字母、數字、空格、其它字符分別有:%d %d %d %(個n",letters,digits,spaces,others);自然常數e可以用級數1+1/1!+1/2!+ ?+1/n!來近似計算。本題要求對給定的非負整數n,求該級數的前 n 項和。輸入格式:輸入第一行中給出非負整數n (w 1000)。輸出格式 : 在一行中輸出部分和的值,保留小數點后八位。輸入樣例 :10輸出樣例 :2.71828180#include<stdio.h>int main()
37、int n,i=1;double sum=1,a=1;scanf("%d",&n);while(i<=n)a=a*i;sum=sum+1/a;i+;printf("%.8f",sum);return 0;一只猴子第一天摘下若干個桃子,當即吃了一半, 還不過癮, 又多吃了一個;第二天早上又 將剩下的桃子吃掉一半, 又多吃了一個。 以后每天早上都吃了前一天剩下的一半加一個。 到 第 N 天早上想再吃時,見只剩下一個桃子了。問:第一天共摘了多少個桃子?輸入格式 :輸入在一行中給出正整數 N(1<Nw10)。輸出格式 : 在一行中輸出第一天共
38、摘了多少個桃子。輸入樣例 :3 輸出樣例 :10#include<stdio.h>int main()int N,i;scanf("%d",&N);int sum=1;for(i=0;i<N-1;i+)sum=(sum+1)*2;printf("%dn",sum);return 0;給定兩個整數 A和B,輸出從A到B的所有整數以及這些數的和。輸入格式:輸入在一行中給出 2個整數A和B,其中-100W AW BW 100,其間以空格分隔。輸出格式:首先順序輸出從 A到B的所有整數,每5個數字占一行,每個數字占5個字符寬 度,向右對
39、齊。最后在一行中按Sum = X 的格式輸出全部數字的和 X。輸入樣例: -3 8輸出樣例:-3 -2 -1 0 12 3 4 5 67 8Sum = 30#include<stdio.h>int main()int a,b,i,sum=0,n=0;scanf("%d%d",&a,&b); for(i=a;i<=b;i+) sum=sum+i; printf("%5d",i); n+; if(n%5=0)printf("n");if(n%5!=0)printf("n");print
40、f("Sum = %dn",sum);return 0;n 次冪之和等于本 要求:輸出所有位所謂的水仙花數是指一個 n位數(n>=3 && n<=7),它的每個位上的數字 身。例如,3位數153是水仙花,各位數字的立方和 1A3+5A3+3A3=153。 數為 3 的水仙花數。輸入格式 : 無 輸出格式 : 位數為 3 的所有水仙花數,每行一個。輸入樣例 : 無輸出樣例 :153#include<stdio.h>int main()int i,a,b,c;for(i=100;i<1000;i+) a=i/100; b=(i/10
41、)%10; c=i%10;if(a*a*a+b*b*b+c*c*c)=i) printf("%dn",i);return 0;對于給定的正整數N需要你計算S=1!+2!+3!+.+N!。輸入格式: 輸入在一行中給出一個不超過 10 的正整數 N。輸出格式: 在一行中輸出 S 的值。輸入樣例: 3 輸出樣例: 9#include<stdio.h>int main()int n,i=1,a=1,sum=0; scanf("%d",&n); while(i<=n)a=a*i; sum=sum+a; i+;printf("%d
42、",sum);return 0;第9周 本題要求兩個給定正整數的最大公約數和最小公倍數。輸入格式:輸入在一行中給出兩個正整數M和N (W 1000)。1 空格分隔。輸出格式:在一行中順序輸出 M和N的最大公約數和最小公倍數,兩數字間以輸入樣例 :511 292 輸出樣例 : 73 2044 #include<stdio.h>int main()int m,n,i,j;scanf("%d %d",&m,&n); for(i=m;i>=1;i-) if(m%i=0&&n%i=0) break; for(j=m;j<
43、;=m*n;j+) if(j%m=0&&j%n=0) break;printf("%d %d",i,j);一對兔子, 從出生后第 3 個月起每個月都生一對兔子。 小兔子長到第 3 個月后每個月又生一 對兔子。 假如兔子都不死, 請問第 1 個月出生的一對兔子, 至少需要繁衍到第幾個月時兔子 總數才可以達到 N 對?輸入格式 : 輸入在一行中給出一個不超過 10000 的正整數 N。輸出格式 : 在一行中輸出兔子總數達到 N 最少需要的月數。輸入樣例 :30 輸出樣例 : 9#include<stdio.h>int main()int N,i,a,
44、b,c; scanf("%d",&N); a=1,b=0,i=1; if(N=a) printf("%dn",a);else+i;c=a+b;while(c<N)+i;b=a;a=c; c=a+b;printf("%dn",i);所謂完數就是該數恰好等于除自身外的因子之和。例如:6=1+2+3,其中 1、2、3為 6的因子。本題要求編寫程序,找出任意兩正整數m和n之間的所有完數。輸入格式:輸入在一行中給出 2個正整數m和n (0<mcnW 10000),中間以空格分隔。格式輸出格式: 逐行輸出給定范圍內每個完數的因
45、子累加形式的分解式, 每個完數占一行, 為“完數=因子1 +因子2 + . + 因子k”,其中完數和因子均按遞增順序給出。若區 間內沒有完數,則輸出“ None”。輸入樣例: 1 30輸出樣例:1 = 16 = 1 + 2 + 328 = 1 + 2 + 4 + 7 + 14 #include<stdio.h>int main()int m,n,i,j,sum; scanf("%d%d",&m,&n); for(i=m;i<=n;i+)/ 判斷 i 是否為完數 sum=1;for(j=2;j<=i/2;j+) if(i%j=0) su
46、m=sum+j; if(sum=i) printf("%d = 1",i);for(j=2;j<=i/2;j+) if(i%j=0) printf(" + %d",j); printf("n");return 0;面是一個完整的下三角九九口訣表:1*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=
47、427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=721*1=19*9=81本題要求對任意給定的一位正整數N,輸出從1*1到N*N的部分口訣表。輸入格式:輸入在一行中給出一個正整數N (I < NC 9)。輸出格式:輸出下三角N*N部分口訣表,其中等號右邊數字占4位、左對齊。輸入樣例: 4輸出樣例:1*1=11*2=22*2=41*3=32*3=6 3*3=91*4=42*4=8 3*4=12 4*4=16#incIude <stdi
48、o.h>int main()int i,j,n;scanf("%d",&n);for(i=1;i<=n;+i)for(j=1;j<=i;+j)printf("%d*%d=%-4d",j,i,i*j);printf("n");return 0;輸出斐波那契(Fibonacci )數列(1,1,2,3,5,8,13)的前 20項輸出格式 : 每個數輸出占 8 列。輸出樣例 :112 3 5 8 132134 5589144233 3776109871597#include<stdio.h>int ma
49、in()int i,f1,f2,f3;f1=1;f2=1;printf("%8d%8d",f1,f2);for(i=3;i<=20;i+)f3=f1+f2;f1=f2;f2=f3; printf("%8d",f3); if(i%20=0) putchar('n');return 0;第 10 周本題要求對兩個整數 a和b,輸出其中較大的數。函數接口定義: int max( int a, int b );其中 a 和 b 是用戶傳入的參數,函數返回的是兩者中較大的數。輸入樣例: -5 8 輸出樣例: max = 8#include&l
50、t;stdio.h>int max(int x, int y)int z;if (x>y)z=x;elsez=y;return(z);int main()int a,b,c; c=max(a,b);scanf("%d %d", &a, &b);printf("max = %dn", max(a, b);return 0;本題要求實現一個計算兩個數的最大公約數的簡單函數。 函數接口定義: int gcd( int x, int y );其中 x 和 y 是兩個正整數,函數 gcd 應返回這兩個數的最大公約數。 輸入樣例: 32
51、72 輸出樣例: 8#include<stdio.h> int gcd(int x,int y)int i;精品文檔for(i=y;i>=1;i-)if(x%i=0&&y%i=0)return i;int main()int a,b;scanf("%d%d",&a,&b);printf("%d",gcd(a,b);return 0;本題要求實現一個計算非負整數階乘的簡單函數, 使得可以利用該函數, 計算 1!+2!+ ? +10! 的值。函數接口定義: double fact( int n );其中 n
52、是用戶傳入的參數,其值不超過 10。如果 n 是非負整數,則該函數必須返回 n 的階 乘。輸入樣例: 本題沒有輸入。輸出樣例: 1!+2!+.+10! = 4037913.000000#include<stdio.h>double fact( int n )int i,a,sum;while(i<=n)a=a*i;sum=sum+a;i+;return i;int main()int i;double sum;sum = 0;for(i = 1; i <= 10; i+)sum = sum + fact(i);printf("1!+2!+.+10! = %fn
53、", sum);return 0;fun函數的功能是:找出大于m的最小素數,并將其作為函數值返回。函數接口定義: int fun( int m);并將其作為函函數fun中m是用戶傳入的參數,函數fun的功能是找出大于 m的最小素數, 數值返回。輸入樣例: 10輸出樣例: 11#include<stdio.h>int fun( int m)int i,j,fun;for(i=m+1;i>m;i+)for(j=2;j<i;j+)if(i%j!=0)fun=i;return fun;int main()int n;scanf("%d",&
54、n);printf("%dn",fun(n);return 0;0. 要求在主編寫函數, 判斷指定的字符是否是數字字符, 如果是函數返回 1,否則函數返回 調函數中輸入該字符,調用函數并輸出判斷結果。輸入格式 :在一行中給出 1 個字符。輸出格式 : 對于給定輸入的字符,輸出判斷結果 yes 或 no。輸入樣例 : 6 輸出樣例 : yes輸入樣例 : H 輸出樣例 : no#include<stdio.h>int s( char a)int s;if(a>='0'&&a<='9')s=1;elses=
55、0;return s;int main()char b;int c;scan f("%ch",&b);c=s(b);if(c=1)prin tf("yesn");elseprin tf(" non");return 0;編寫函數,計算下面分段函數的值。(x 5 2)(-2 < x < 3).(X > 3)-e2x+1 + 32x 12Zog0(3 尤 + 5) 11輸入格式:輸入一個實數x的值輸出格式:輸出y的結果值輸入樣例:0 輸出樣例:y=-1.000000 輸入樣例:3.5輸出樣例 : y=-8.619
56、337#include<stdio.h>#include<math.h> double hanshu( double x ) double t;if(x<=-2)t=-exp(2*x+1)+3;if(x<=3&&x>-2)t=2*x-1;if(x>3)t=2*log10(3*x+5)-11;return t;int main()double x;scanf("%lf",&x);printf("y=%.6lf",hanshu(x);return 0;第 11 周本題要求實現一個函數,
57、可統計任一整數中某個位數出現的次數。 例如-21252 中,2 出現了 3 次,則該函數應該返回3 。函數接口定義: int Count_Digit ( const int N, const int D );其中N和D都是用戶傳入的參數。N的值不超過int的范圍;D是0, 9區間內的個位數。函數須返回N中D出現的次數。輸入樣例: -21252 2輸出樣例: 3#include <stdio.h>int Count_Digit ( const int N, const int D );int main()int N, D;scanf("%d %d", &N
58、, &D);printf("%dn", Count_Digit(N, D);return 0;int Count_Digit ( const int N, const int D )int i=0,s=N;if(N<0) s=-N;if(N=0)if(D=0)i=1;elsei=0; while(s>0)if(s%10=D)i+; s=s/10;return i;的值。的值。本題要求實現一個計算非負整數階乘的簡單函數, 并利用該函數求 1!+2!+3!+.+n! 函數接口定義:double fact( int n );double factsum( int n );函數 fact 應返回 n 的階乘,建議用遞歸實現。函數 factsum 應返回 1!+2!+.+n! 題目保證輸入輸出在雙精度范圍內。輸入樣例 1: 10輸出樣例 1:fact(10) = 3628800sum = 4037913輸入樣例 2: 0輸出樣例 2:fact(0) = 1sum = 0#include <stdio.h>doub
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統編版-2024語文一年級下冊
- 餐飲加盟合同范本
- 統編版(2024)語文七年級下冊第2課《說和做-記聞一多先生言行片段》練習(含答案)
- 教育信息化推動教育教學質量提升
- 提升新媒體互動率的技巧與方法
- 環境空氣自動監測站運維服務投標方案
- 餐飲合伙企業股權交易合同書
- 茶具電商平臺入駐與運營合作協議
- 出租車掛靠車輛車輛調度服務協議
- 2025屆江西省宜春市豐城四中學七下英語期中達標檢測模擬試題含答案
- 大疆無人機內部管理制度
- 2025長沙市輔警考試試卷真題帶答案
- 胸痛健康教育課件
- 2025年合肥城建發展股份有限公司及所屬子公司招聘17人(二批次)筆試參考題庫附帶答案詳解
- 2025年項目終止協議
- 醫院員工手冊管理制度
- 2024大華網絡攝像機使用說明書全集
- 泉州水務集團有限公司招聘考試真題2024
- 東航客運崗位面試題目及答案
- 三級營養師考試復習重點題(附答案)
- 2025裝配式混凝土居住建筑首個標準層段聯合驗收規程
評論
0/150
提交評論