PTAC語言理論課_第1頁
PTAC語言理論課_第2頁
PTAC語言理論課_第3頁
PTAC語言理論課_第4頁
PTAC語言理論課_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、順序結(jié)構(gòu)7-1輸出三角形(10分)本題要求編寫程序,輸出指定的由“*”組成的三角圖案。輸入格式:本題無輸入輸出格式:按照下列格式輸出由“*”組成的三角圖案。*#include #include int main()printf(*n*n*n*);return 0;7-2混合類型數(shù)據(jù)格式化輸入(10分)本題要求編寫程序,順序讀入浮點(diǎn)數(shù)1、整數(shù)、字符、浮點(diǎn)數(shù)2,再按照字符、整數(shù)、浮點(diǎn)數(shù)1、浮點(diǎn)數(shù)2的順序輸出。輸入格式:輸入在一行中順序給出浮點(diǎn)數(shù)1、整數(shù)、字符、浮點(diǎn)數(shù)2,其間以1個(gè)空格分隔。輸出格式:在一行中按照字符、整數(shù)、浮點(diǎn)數(shù)1、浮點(diǎn)數(shù)2的順序輸出,其中浮點(diǎn)數(shù)保留小數(shù)點(diǎn)后2位。輸入樣例:2.12

2、 88 c 4.7輸出樣例:c 88 2.12 4.70#include #include int main()char c;int d;double f1,f2;scanf(%lf %d %c %lf,&f1,&d,&c,&f2);printf(%c %d %.2f %.2f,c,d,f1,f2);return 0;7-3交換a和b的值(10分)交換變量a,b的值,如輸入a的值為1,b的值為5,則輸出a的值為5,b的值為1。輸入格式:輸入兩個(gè)整數(shù),之間用一個(gè)空格間隔。輸出格式:在一行中按照“a=x,b=y”的格式輸出,其中x和y均是原樣輸出,不加寬度控制。輸入樣例:1 5輸出樣例:a=5,b

3、=1#include #include int main()int a,b,t;scanf(%d %d,&a,&b);t=a;a=b;b=t;printf(a=%d,b=%d,a,b);7-4A乘以B(10分)看我沒騙你吧 這是一道你可以在10秒內(nèi)完成的題:給定兩個(gè)絕對值不超過100的整數(shù)A和B,輸出A乘以B的值。輸入格式:輸入在第一行給出兩個(gè)整數(shù)A和B(100A,B100),數(shù)字間以空格分隔。輸出格式:在一行中輸出A乘以B的值。輸入樣例:-8 13輸出樣例:-104#include #include int main()int a,b;scanf(%d %d,&a,&b);printf(%d

4、,a*b);return 0;-5厘米換算英尺英寸(10分)如果已知英制長度的英尺foot和英寸inch的值,那么對應(yīng)的米是(foot+inch/12)0.3048?,F(xiàn)在,如果用戶輸入的是厘米數(shù),那么對應(yīng)英制長度的英尺和英寸是多少呢?別忘了1英尺等于12英寸。輸入格式:輸入在一行中給出1個(gè)正整數(shù),單位是厘米。輸出格式:在一行中輸出這個(gè)厘米數(shù)對應(yīng)英制長度的英尺和英寸的整數(shù)值,中間用空格分開。輸入樣例:170輸出樣例:5 6#include #include int main()int a,foot,inch;scanf(%d,&a);foot=(int)(0.01*a/0.3048);inch=

5、(int)(12*(0.01*a/0.3048-(double)foot);printf(%d %d,foot,inch);return 0;7-6然后是幾點(diǎn)(10分)有時(shí)候人們用四位數(shù)字表示一個(gè)時(shí)間,比如1106表示11點(diǎn)零6分。現(xiàn)在,你的程序要根據(jù)起始時(shí)間和流逝的時(shí)間計(jì)算出終止時(shí)間。讀入兩個(gè)數(shù)字,第一個(gè)數(shù)字以這樣的四位數(shù)字表示當(dāng)前時(shí)間,第二個(gè)數(shù)字表示分鐘數(shù),計(jì)算當(dāng)前時(shí)間經(jīng)過那么多分鐘后是幾點(diǎn),結(jié)果也表示為四位數(shù)字。當(dāng)小時(shí)為個(gè)位數(shù)時(shí),沒有前導(dǎo)的零,即5點(diǎn)30分表示為530。注意,第二個(gè)數(shù)字表示的分鐘數(shù)可能超過60,也可能是負(fù)數(shù)。輸入格式:輸入在一行中給出2個(gè)整數(shù),分別是四位數(shù)字表示的起始時(shí)間

6、、以及流逝的分鐘數(shù),其間以空格分隔。注意:在起始時(shí)間中,當(dāng)小時(shí)為個(gè)位數(shù)時(shí),沒有前導(dǎo)的零,即5點(diǎn)30分表示為530;流逝的分鐘數(shù)可能超過60,也可能是負(fù)數(shù)。輸出格式:輸出四位數(shù)字表示的終止時(shí)間。題目保證起始時(shí)間和終止時(shí)間在同一天內(nèi)。輸入樣例:1120 110輸出樣例:1310#include #include int main()int start,interval,end,m;scanf(%d %d,&start,&interval);m=(start/100)*60+(start%100)+interval;end=(m/60)*100+m%60;printf(%d,end);return

7、0;選擇結(jié)構(gòu)7-1計(jì)算符號函數(shù)的值(15分)對于任一整數(shù)n,符號函數(shù)sign(n)的定義如下:請編寫程序計(jì)算該函數(shù)對任一輸入整數(shù)的值。輸入格式:輸入在一行中給出整數(shù)n。輸出格式:在一行中按照格式“sign(n) = 函數(shù)值”輸出該整數(shù)n對應(yīng)的函數(shù)值。輸入樣例1:10輸出樣例1:sign(10) = 1輸入樣例2:0輸出樣例2:sign(0) = 0輸入樣例3:-98輸出樣例3:sign(-98) = -1#include #include int main()int n,sign;scanf(%d,&n);if(n0)sign = 1;elsesign = 0;printf(sign(%d)

8、= %d,n,sign);return 0;7-2成績轉(zhuǎn)換(15分)本題要求編寫程序?qū)⒁粋€(gè)百分制成績轉(zhuǎn)換為五分制成績。轉(zhuǎn)換規(guī)則: 大于等于90分為A; 小于90且大于等于80為B; 小于80且大于等于70為C; 小于70且大于等于60為D; 小于60為E。輸入格式:輸入在一行中給出一個(gè)整數(shù)的百分制成績。輸出格式:在一行中輸出對應(yīng)的五分制成績。輸入樣例:90輸出樣例:A#include #include int main()int score;char rank;scanf(%d,&score);if(score=90)rank=A;else if(score=80)rank=B;else if

9、(score=70)rank=C;else if(score=60)rank=D;elserank=E;printf(%c,rank);return 0;7-3兩個(gè)數(shù)的簡單計(jì)算器(15分)本題要求編寫一個(gè)簡單計(jì)算器程序,可根據(jù)輸入的運(yùn)算符,對2個(gè)整數(shù)進(jìn)行加、減、乘、除或求余運(yùn)算。題目保證輸入和輸出均不超過整型范圍。輸入格式:輸入在一行中依次輸入操作數(shù)1、運(yùn)算符、操作數(shù)2,其間以1個(gè)空格分隔。操作數(shù)的數(shù)據(jù)類型為整型,且保證除法和求余的分母非零。輸出格式:當(dāng)運(yùn)算符為+、-、*、/、%時(shí),在一行輸出相應(yīng)的運(yùn)算結(jié)果。若輸入是非法符號(即除了加、減、乘、除和求余五種運(yùn)算符以外的其他符號)則輸出ERROR

10、。輸入樣例1:-7 / 2輸出樣例1:-3輸入樣例2:3 & 6輸出樣例2:ERROR#include #include int main()int num1,num2;char operate;scanf(%d %c %d,&num1,&operate,&num2);switch(operate)case+:printf(%d,num1+num2);break;case-:printf(%d,num1-num2);break;case*:printf(%d,num1*num2);break;case/:printf(%d,num1/num2);break;case%:printf(%d,nu

11、m1%num2);break;default:printf(ERROR);return 0;-412-24小時(shí)制(15分)編寫一個(gè)程序,要求用戶輸入24小時(shí)制的時(shí)間,然后顯示12小時(shí)制的時(shí)間。輸入格式:輸入在一行中給出帶有中間的:符號(半角的冒號)的24小時(shí)制的時(shí)間,如12:34表示12點(diǎn)34分。當(dāng)小時(shí)或分鐘數(shù)小于10時(shí),均沒有前導(dǎo)的零,如5:6表示5點(diǎn)零6分。提示:在scanf的格式字符串中加入:,讓scanf來處理這個(gè)冒號。輸出格式:在一行中輸出這個(gè)時(shí)間對應(yīng)的12小時(shí)制的時(shí)間,數(shù)字部分格式與輸入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5

12、點(diǎn)零6分。注意,在英文的習(xí)慣中,中午12點(diǎn)被認(rèn)為是下午,所以24小時(shí)制的12:00就是12小時(shí)制的12:0 PM;而0點(diǎn)被認(rèn)為是第二天的時(shí)間,所以是0:0 AM。輸入樣例:21:11輸出樣例:9:11 PM#include #include int main()int h=0,m=0;char s;scanf(%d%c%d,&h,&s,&m);if(h12)printf(%d:%d PM,h-12,m);else if(h=12)printf(%d:%d PM,h,m);elseprintf(%d:%d AM,h,m);return 0;7-5出租車計(jì)價(jià)(15分)本題要求根據(jù)某城市普通出租車收

13、費(fèi)標(biāo)準(zhǔn)編寫程序進(jìn)行車費(fèi)計(jì)算。具體標(biāo)準(zhǔn)如下: 起步里程為3公里,起步費(fèi)10元; 超起步里程后10公里內(nèi),每公里2元; 超過10公里以上的部分加收50%的回空補(bǔ)貼費(fèi),即每公里3元; 營運(yùn)過程中,因路阻及乘客要求臨時(shí)停車的,按每5分鐘2元計(jì)收(不足5分鐘則不收費(fèi))。輸入格式:輸入在一行中給出輸入行駛里程(單位為公里,精確到小數(shù)點(diǎn)后1位)與等待時(shí)間(整數(shù),單位為分鐘),其間以空格分隔。輸出格式:在一行中輸出乘客應(yīng)支付的車費(fèi)(單位為元),結(jié)果四舍五入,保留到元。輸入樣例1:2.6 2輸出樣例1:10輸入樣例2:5.1 4輸出樣例2:14輸入樣例3:12.5 9輸出樣例3:34#include #incl

14、ude int main()double mile=0;int time=0;double price,price1,price2;scanf(%lf %d,&mile,&time);if(mile=3)price1=10;else if(mile=10)price1=10+(mile-3)*2.0;elseprice1=10+(10-3)*2.0+(mile-10)*3.0;price2=time/5*2;price=price1+price2;printf(%.0f,price);return 0;7-6階梯電價(jià)(15分)為了提倡居民節(jié)約用電,某省電力公司執(zhí)行“階梯電價(jià)”,安裝一戶一表的居

15、民用戶電價(jià)分為兩個(gè)“階梯”:月用電量50千瓦時(shí)(含50千瓦時(shí))以內(nèi)的,電價(jià)為0.53元/千瓦時(shí);超過50千瓦時(shí)的,超出部分的用電量,電價(jià)上調(diào)0.05元/千瓦時(shí)。請編寫程序計(jì)算電費(fèi)。輸入格式:輸入在一行中給出某用戶的月用電量(單位:千瓦時(shí))。輸出格式:在一行中輸出該用戶應(yīng)支付的電費(fèi)(元),結(jié)果保留兩位小數(shù),格式如:“cost = 應(yīng)付電費(fèi)值”;若用電量小于0,則輸出Invalid Value!。輸入樣例1:10輸出樣例1:cost = 5.30輸入樣例2:100輸出樣例2:cost = 55.50#include #include int main()double a,b;scanf(%lf,&

16、a);if(a=0&a50)b=0.53*50+(a-50)*0.58;printf(cost = %.2f,b);elseprintf(Invalid Value!);return 0;7-7計(jì)算工資(15分)某公司員工的工資計(jì)算方法如下:一周內(nèi)工作時(shí)間不超過40小時(shí),按正常工作時(shí)間計(jì)酬;超出40小時(shí)的工作時(shí)間部分,按正常工作時(shí)間報(bào)酬的1.5倍計(jì)酬。員工按進(jìn)公司時(shí)間分為新職工和老職工,進(jìn)公司不少于5年的員工為老職工,5年以下的為新職工。新職工的正常工資為30元/小時(shí),老職工的正常工資為50元/小時(shí)。請按該計(jì)酬方式計(jì)算員工的工資。輸入格式:輸入在一行中給出2個(gè)正整數(shù),分別為某員工入職年數(shù)和周工

17、作時(shí)間,其間以空格分隔。輸出格式:在一行輸出該員工的周薪,精確到小數(shù)點(diǎn)后2位。輸入樣例1:5 40輸出樣例1:2000.00輸入樣例2:3 50輸出樣例2:1650.00#include #include int main()int y,h;float s;scanf(%d %d,&y,&h);if(y40)s=(h-40)*1.5+40)*30;elses=h*30;printf(%.2f,s);if(y=5)if(h40)s=(h-40)*1.5+40)*50;elses=h*50;printf(%.2f,s);return 0;7-8后天(15分)如果今天是星期三,后天就是星期五;如果今

18、天是星期六,后天就是星期一。我們用數(shù)字1到7對應(yīng)星期一到星期日。給定某一天,請你輸出那天的“后天”是星期幾。輸入格式:輸入第一行給出一個(gè)正整數(shù)D(1D7),代表星期里的某一天。輸出格式:在一行中輸出D天的后天是星期幾。輸入樣例:3輸出樣例:5#include #include int main()int x,D;scanf(%d,&D);if(D=5)x=D+2;elsex=D-5;printf(%d,x);return 0;循環(huán)結(jié)構(gòu)7-1生成3的乘方表(15分)輸入一個(gè)非負(fù)整數(shù)n,生成一張3的乘方表,輸出303n的值??烧{(diào)用冪函數(shù)計(jì)算3的乘方。輸入格式:輸入在一行中給出一個(gè)非負(fù)整數(shù)n。輸出格

19、式:按照冪的遞增順序輸出n+1行,每行格式為“pow(3,i) = 3的i次冪的值”。題目保證輸出數(shù)據(jù)不超過長整型整數(shù)的范圍。輸入樣例:3輸出樣例:pow(3,0) = 1pow(3,1) = 3pow(3,2) = 9pow(3,3) = 27#include #include int main()int i,n,s;scanf(%d,&n);for(i=0;i=n;i+)s=pow(3,i);printf(pow(3,%d) = %dn,i,s);return 0;7-2統(tǒng)計(jì)學(xué)生成績(15分)本題要求編寫程序讀入N個(gè)學(xué)生的百分制成績,統(tǒng)計(jì)五分制成績的分布。百分制成績到五分制成績的轉(zhuǎn)換規(guī)則:

20、 大于等于90分為A; 小于90且大于等于80為B; 小于80且大于等于70為C; 小于70且大于等于60為D; 小于60為E。輸入格式:輸入在第一行中給出一個(gè)正整數(shù)N(1000),即學(xué)生人數(shù);第二行中給出N個(gè)學(xué)生的百分制成績,其間以空格分隔。輸出格式:在一行中輸出A、B、C、D、E對應(yīng)的五分制成績的人數(shù)分布,數(shù)字間以空格分隔,行末不得有多余空格。輸入樣例:777 54 92 73 60 65 69輸出樣例:1 0 2 3 1#include #include int main()int n,i,f,b,c,d,e,a1000;f=b=c=d=e=0;scanf(%d,&n);for(i=0;

21、i=90)f+;if(ai=80)b+;if(ai=70)c+;if(ai=60)d+;if(ai60)e+;printf(%d %d %d %d %d,f,b,c,d,e);return 0;7-3輸出閏年(15分)輸出21世紀(jì)中截止某個(gè)年份以來的所有閏年年份。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。輸入格式:輸入在一行中給出21世紀(jì)的某個(gè)截止年份。輸出格式:逐行輸出滿足條件的所有閏年年份,即每個(gè)年份占一行。輸入若非21世紀(jì)的年份則輸出Invalid year!。若不存在任何閏年,則輸出“None”。輸入樣例1:2048輸出樣例1:2004200820

22、12201620202024202820322036204020442048輸入樣例2:2000輸出樣例2:Invalid year!#include #include int main()int n,i,k=0;scanf(%d,&n);if(n2100)printf(Invalid year!);elsefor(i=2001;i=n;i+)if(i%4=0&i%100!=0|i%400=0)printf(%dn,i);k+;if(k=0)printf(None);return 0;7-4尋找250(15分)對方不想和你說話,并向你扔了一串?dāng)?shù) 而你必須從這一串?dāng)?shù)字中找到“250”這個(gè)高大上的

23、感人數(shù)字。輸入格式:輸入在一行中給出不知道多少個(gè)絕對值不超過1000的整數(shù),其中保證至少存在一個(gè)“250”。輸出格式:在一行中輸出第一次出現(xiàn)的“250”是對方扔過來的第幾個(gè)數(shù)字(計(jì)數(shù)從1開始)。題目保證輸出的數(shù)字在整型范圍內(nèi)。輸入樣例:888 666 123 -233 250 13 250 -222輸出樣例:5#include #include int main()int i=0,m;while(m!=250)scanf(%d,&m);i+;printf(%d,i);return 0;7-5最佳情侶身高差(15分)專家通過多組情侶研究數(shù)據(jù)發(fā)現(xiàn),最佳的情侶身高差遵循著一個(gè)公式:(女方的身高)1.

24、09 =(男方的身高)。如果符合,你倆的身高差不管是牽手、擁抱、接吻,都是最和諧的差度。下面就請你寫個(gè)程序,為任意一位用戶計(jì)算他/她的情侶的最佳身高。輸入格式:輸入第一行給出正整數(shù)N(10),為前來查詢的用戶數(shù)。隨后N行,每行按照“性別 身高”的格式給出前來查詢的用戶的性別和身高,其中“性別”為“F”表示女性、“M”表示男性;“身高”為區(qū)間 1.0, 3.0 之間的實(shí)數(shù)。輸出格式:對每一個(gè)查詢,在一行中為該用戶計(jì)算出其情侶的最佳身高,保留小數(shù)點(diǎn)后2位。輸入樣例:2M 1.75F 1.8輸出樣例:1.611.96#include int main () int n; char c; float

25、h; scanf(%d, &n); getchar(); while (n-) scanf(%c %f, &c, &h); getchar(); if (c = F ) printf(%.2fn, h * 1.09); else printf(%.2fn, h / 1.09); return 0; 7-6作品評分(15分)全國中小學(xué)生Scratch作品大賽拉開了序幕。每個(gè)參賽選手可以通過網(wǎng)絡(luò)直接上傳作品。本次比賽人人可做評委。每個(gè)網(wǎng)絡(luò)評委可以通過網(wǎng)絡(luò)對每一件作品進(jìn)行打分。評分系統(tǒng)也是請程序高手設(shè)計(jì)的,能自動去掉一個(gè)最高分和一個(gè)最低分,求出平均分。輸入格式:輸入數(shù)據(jù)包括兩行: 第一行為n,表示n

26、個(gè)評委,n2。 第二行是n個(gè)評委的打分,分?jǐn)?shù)之間有一個(gè)空格。打分是可以帶有小數(shù)部分的。輸出格式:輸出平均分,結(jié)果保留兩位小數(shù)。輸入樣例:610 9 8 7.9 9 9.5輸出樣例:8.88#include #include int main()int n,i;double k,max,min,sum=0;scanf(%d,&n);for(i=0;ik)min=k;if(maxk)max=k;printf(%.2lf,(sum-min-max)/(n-2);return 0;7-7求平方根序列前N項(xiàng)和(15分)本題要求編寫程序,計(jì)算平方根序列1+2+3+的前N項(xiàng)之和??砂^文件math.h,并

27、調(diào)用sqrt函數(shù)求平方根。輸入格式:輸入在一行中給出一個(gè)正整數(shù)N。輸出格式:在一行中按照“sum = S”的格式輸出部分和的值S,精確到小數(shù)點(diǎn)后兩位。題目保證計(jì)算結(jié)果不超過雙精度范圍。輸入樣例:10輸出樣例:sum = 22.47#include #include int main()int i,n;double sum;scanf(%d,&n);sum=0;for(i=0;i=n;i+)sum=sum+sqrt(i);printf(sum = %.2f,sum);return 0;7-8猴子吃桃問題(15分)一只猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個(gè);第二天早上又將剩

28、下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半加一個(gè)。到第N天早上想再吃時(shí),見只剩下一個(gè)桃子了。問:第一天共摘了多少個(gè)桃子?輸入格式:輸入在一行中給出正整數(shù)N(1N10)。輸出格式:在一行中輸出第一天共摘了多少個(gè)桃子。輸入樣例:3輸出樣例:10#include #include int main()int n,i,s=1;scanf(%d,&n);for(i=1;in;i+)s=(s+1)*2;printf(%d,s);return 0;7-9求分?jǐn)?shù)序列前N項(xiàng)和(15分)本題要求編寫程序,計(jì)算序列 2/1+3/2+5/3+8/5+. 的前N項(xiàng)之和。注意該序列從第2項(xiàng)起,每一

29、項(xiàng)的分子是前一項(xiàng)分子與分母的和,分母是前一項(xiàng)的分子。輸入格式:輸入在一行中給出一個(gè)正整數(shù)N。輸出格式:在一行中輸出部分和的值,精確到小數(shù)點(diǎn)后兩位。題目保證計(jì)算結(jié)果不超過雙精度范圍。輸入樣例:20輸出樣例:32.66#include #include int main()int n,i;double sum=0,temp,a,b;a=2;b=1;scanf(%d,&n);for(i=1;i=n;i+)sum=sum+a/b;temp=a;a=a+b;b=temp;printf(%.2lf,sum);return 0;7-10求給定精度的簡單交錯(cuò)序列部分和(15分)本題要求編寫程序,計(jì)算序列部分和

30、 1 - 1/4 + 1/7 - 1/10 + . 直到最后一項(xiàng)的絕對值不大于給定精度eps。輸入格式:輸入在一行中給出一個(gè)正實(shí)數(shù)eps。輸出格式:在一行中按照“sum = S”的格式輸出部分和的值S,精確到小數(shù)點(diǎn)后六位。題目保證計(jì)算結(jié)果不超過雙精度范圍。輸入樣例1:4E-2輸出樣例1:sum = 0.854457輸入樣例2:0.02輸出樣例2:sum = 0.826310#include #include int main()double fenmu=1;int flag=1;double eps,sum=0;double item=1;scanf(%lf,&eps);if(eps=item

31、)sum=1;elsewhile(fabs(item)eps)item=flag*1.0/fenmu;sum=sum+item;flag=-flag;fenmu=fenmu+3;printf(sum = %f,sum);return 0;7-11打印九九口訣表(15分)下面是一個(gè)完整的下三角九九口訣表:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=1

32、4 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 本題要求對任意給定的一位正整數(shù)N,輸出從1*1到N*N的部分口訣表。輸入格式:輸入在一行中給出一個(gè)正整數(shù)N(1N9)。輸出格式:輸出下三角N*N部分口訣表,其中等號右邊數(shù)字占4位、左對齊。輸入樣例:4輸出樣例:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4

33、 2*4=8 3*4=12 4*4=16#include #include 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,j*i);printf(n);return 0;7-12統(tǒng)計(jì)素?cái)?shù)并求和(15分)本題要求統(tǒng)計(jì)給定整數(shù)M和N區(qū)間內(nèi)素?cái)?shù)的個(gè)數(shù)并對它們求和。輸入格式:輸入在一行中給出兩個(gè)正整數(shù)M和N(1MN500)。輸出格式:在一行中順序輸出M和N區(qū)間內(nèi)素?cái)?shù)的個(gè)數(shù)以及它們的和,數(shù)字間以空格分隔。輸入樣例:10 31輸出樣例:7 143#include #include i

34、nt sushu(int n)int i,sign=1;if(n2)sign=0;elsefor(i=2;in;i+)if(n%i=0)sign=0;return sign;int main()int i,m,n,sum=0,count=0;scanf(%d %d,&m,&n);for(i=m;i=n;i+)if(sushu(i)sum=sum+i;count+;printf(%d %d,count,sum);return 0;7-13輸出三角形字符陣列(15分)本題要求編寫程序,輸出n行由大寫字母A開始構(gòu)成的三角形字符陣列。輸入格式:輸入在一行中給出一個(gè)正整數(shù)n(1n7)。輸出格式:輸出n行

35、由大寫字母A開始構(gòu)成的三角形字符陣列。格式見輸出樣例,其中每個(gè)字母后面都有一個(gè)空格。輸入樣例:4輸出樣例:A B C D E F G H I J #include #include int main()int i,n,j,count=0;scanf(%d,&n);for(i=n;i0;i-)for(j=i;j0;j-)printf(%c ,A+count);count+;printf(n);return 0;7-14特殊a串?dāng)?shù)列求和(15分)給定兩個(gè)均不超過9的正整數(shù)a和n,要求編寫程序求a+aa+aaa+aaa(n個(gè)a)之和。輸入格式:輸入在一行中給出不超過9的正整數(shù)a和n。輸出格式:在一行

36、中按照“s = 對應(yīng)的和”的格式輸出。輸入樣例:2 3輸出樣例:s = 246#include#includeint main ()int i, a, n, s1=0, s=0;scanf(%d%d, &a, &n);for(i=1; i=n; i+)s1+=pow(10,i-1)*a;s+=s1;printf(s = %d, s);return 0;7-15約分最簡分式(15分)分?jǐn)?shù)可以表示為分子/分母的形式。編寫一個(gè)程序,要求用戶輸入一個(gè)分?jǐn)?shù),然后將其約分為最簡分式。最簡分式是指分子和分母不具有可以約分的成分了。如6/12可以被約分為1/2。當(dāng)分子大于分母時(shí),不需要表達(dá)為整數(shù)又分?jǐn)?shù)的形式,

37、即11/8還是11/8;而當(dāng)分子分母相等時(shí),仍然表達(dá)為1/1的分?jǐn)?shù)形式。輸入格式:輸入在一行中給出一個(gè)分?jǐn)?shù),分子和分母中間以斜杠/分隔,如:12/34表示34分之12。分子和分母都是正整數(shù)(不包含0,如果不清楚正整數(shù)的定義的話)。提示:在scanf的格式字符串中加入/,讓scanf來處理這個(gè)斜杠。輸出格式:在一行中輸出這個(gè)分?jǐn)?shù)對應(yīng)的最簡分式,格式與輸入的相同,即采用分子/分母的形式表示分?jǐn)?shù)。如5/6表示6分之5。輸入樣例:66/120輸出樣例:11/20#include#includeint max(int a,int b)int r;r=a%b;while(r)a=b;b=r;r=a%b;r

38、eturn b;int main ()int a,b;scanf(%d/%d,&a,&b);int n=max(a,b);printf(%d/%d,a/n,b/n);return 0;數(shù)組7-1輸出整數(shù)各位數(shù)字(15分)本題要求編寫程序,對輸入的一個(gè)整數(shù),從高位開始逐位分割并輸出它的各位數(shù)字。輸入格式:輸入在一行中給出一個(gè)長整型范圍內(nèi)的非負(fù)整數(shù)。輸出格式:從高位開始逐位輸出該整數(shù)的各位數(shù)字,每個(gè)數(shù)字后面有一個(gè)空格。輸入樣例:123456輸出樣例:1 2 3 4 5 6 #include#includeint main()char s32;gets(s);int i;for(i=0;istrle

39、n(s);i+)printf(%c ,si);return 0;7-2冒泡法排序(15分)將N個(gè)整數(shù)按從小到大排序的冒泡排序法是這樣工作的:從頭到尾比較相鄰兩個(gè)元素,如果前面的元素大于其緊隨的后面元素,則交換它們。通過一遍掃描,則最后一個(gè)元素必定是最大的元素。然后用同樣的方法對前N1個(gè)元素進(jìn)行第二遍掃描。依此類推,最后只需處理兩個(gè)元素,就完成了對N個(gè)數(shù)的排序。本題要求對任意給定的K(N),輸出掃描完第K遍后的中間結(jié)果數(shù)列。輸入格式:輸入在第1行中給出N和K(1KN100),在第2行中給出N個(gè)待排序的整數(shù),數(shù)字間以空格分隔。輸出格式:在一行中輸出冒泡排序法掃描完第K遍后的中間結(jié)果數(shù)列,數(shù)字間以空

40、格分隔,但末尾不得有多余空格。輸入樣例:6 22 3 5 1 6 4輸出樣例:2 1 3 4 5 6#include#includeint main()int n,k;scanf(%d %d,&n,&k);int i,a100;for(i=0;in;i+)scanf(%d,&ai);int j,temp;for(i=0;ik;i+)for(j=0;jaj+1)temp=aj+1;aj+1=aj;aj=temp;for(i=0;in-1;i+)printf(%d ,ai);printf(%d,an-1);return 0;7-3查詢水果價(jià)格(15分)給定四種水果,分別是蘋果(apple)、梨(p

41、ear)、桔子(orange)、葡萄(grape),單價(jià)分別對應(yīng)為3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。首先在屏幕上顯示以下菜單:1 apple2 pear3 orange4 grape0 exit用戶可以輸入編號14查詢對應(yīng)水果的單價(jià)。當(dāng)連續(xù)查詢次數(shù)超過5次時(shí),程序應(yīng)自動退出查詢;不到5次而用戶輸入0即退出;輸入其他編號,顯示價(jià)格為0。輸入格式:輸入在一行中給出用戶連續(xù)輸入的若干個(gè)編號。輸出格式:首先在屏幕上顯示菜單。然后對應(yīng)用戶的每個(gè)輸入,在一行中按格式“price = 價(jià)格”輸出查詢結(jié)果,其中價(jià)格保留兩位小數(shù)。當(dāng)用戶連續(xù)查詢次數(shù)超過5次、或主動輸入0時(shí)

42、,程序結(jié)束。輸入樣例1:3 -1 0 2輸出樣例1:1 apple2 pear3 orange4 grape0 exitprice = 4.10price = 0.00輸入樣例2:1 2 3 3 4 4 5 6 7 8輸出樣例2:1 apple2 pear3 orange4 grape0 exitprice = 3.00price = 2.50price = 4.10price = 4.10price = 10.20作者: C課程組單位: 浙江大學(xué)時(shí)間限制: 400 ms內(nèi)存限制: 64 MB#include#includeint main()printf(1 applen2 pearn3 o

43、rangen4 grapen0 exitn);int n,i;for(i=0;i5;i+)scanf(%d,&n);if(n=0)break;switch(n)case 1:printf(price = 3.00n);break;case 2:printf(price = 2.50n);break;case 3:printf(price = 4.10n);break;case 4:printf(price = 10.20n);break;default:printf(price = 0.00n);break;return 0;7-4評委打分(15分)班級里要搞智力競賽啦!同學(xué)們都踴躍參加。進(jìn)入

44、最后決賽的是10個(gè)同學(xué),隨著一道道題目的出示,有時(shí)是1號選手得分,有時(shí)是5號選手得分,每次答對者得10分,最后結(jié)果如何呢?輸入格式:第一行有十個(gè)整數(shù),表示十位同學(xué)的初始分。第二行一個(gè)整數(shù)n,表示有n道題競賽。 接下去有n行,每行有一個(gè)數(shù)字x,x表示本次可以加分的選手序號(每次答對者得10分)。輸出格式:10個(gè)同學(xué)最終的得分值,每兩位同學(xué)之間有一個(gè)空格。輸入樣例:10 0 0 0 10 10 0 0 0 1031101輸出樣例:30 0 0 0 10 10 0 0 0 20#include#includeint main()int a10,i;for(i=0;i10;i+)scanf(%d,&a

45、i);int n,k;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&k);ak-1=ak-1+10;for(i=0;i9;i+)printf(%d ,ai);printf(%d,a9);return 0;7-5組合數(shù)的和(15分)給定 N 個(gè)非 0 的個(gè)位數(shù)字,用其中任意 2 個(gè)數(shù)字都可以組合成 1 個(gè) 2 位的數(shù)字。要求所有可能組合出來的 2 位數(shù)字的和。例如給定 2、5、8,則可以組合出:25、28、52、58、82、85,它們的和為330。輸入格式:輸入在一行中先給出 N(1N10),隨后給出 N 個(gè)不同的非 0 個(gè)位數(shù)字。數(shù)字間以空格分隔。輸出格式:輸出所有

46、可能組合出來的2位數(shù)字的和。輸入樣例:3 2 8 5輸出樣例:330#include#includeint main()int a10,i,n;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);int j,k,sum=0;for(j=0;jn;j+)for(k=0;kn;k+)if(j!=k)sum=sum+10*aj+ak;printf(%d,sum);return 0;7-6點(diǎn)贊(15分)微博上有個(gè)“點(diǎn)贊”功能,你可以為你喜歡的博文點(diǎn)個(gè)贊表示支持。每篇博文都有一些刻畫其特性的標(biāo)簽,而你點(diǎn)贊的博文的類型,也間接刻畫了你的特性。本題就要求你寫個(gè)程序,通過統(tǒng)計(jì)一個(gè)人點(diǎn)贊的紀(jì)錄,分析這個(gè)人的特性。輸入格式:輸入在第一行給出一個(gè)正整數(shù)N(1000),是該用戶點(diǎn)贊的博文數(shù)量。隨后N行,每行給出一篇被其點(diǎn)贊的博文的特性描述,格式為“KF1FK”,其中1K10,

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論