程式检定题库程度基本.docx
《程式检定题库程度基本.docx》由会员分享,可在线阅读,更多相关《程式检定题库程度基本.docx(16页珍藏版)》请在冰豆网上搜索。
![程式检定题库程度基本.docx](https://file1.bdocx.com/fileroot1/2023-6/2/601feac8-ed21-4f8f-b9f3-c7b1f47f8314/601feac8-ed21-4f8f-b9f3-c7b1f47f83141.gif)
程式检定题库程度基本
【程式檢定題庫—程度:
基本】(100年9月13號更新)
Q1.試利用迴圈撰寫出一程式可計算出n!
的值。
(若判斷輸入的n為負值,則須重新讓使用者輸入至正值再進行計算)
例如輸入:
8
輸出結果
8!
=40320
例如輸入:
6
輸出結果
6!
=720
Q2.試撰寫一程式可求出多項式(1+2)+(2+4)+(3+6)+…+(n+2*n)的和。
例如輸入:
8
輸出結果
(1+2)+(2+4)+(3+6)+(4+8)+(5+10)+(6+12)+(7+14)+(8+16)=108
例如輸入:
7
輸出結果
(1+2)+(2+4)+(3+6)+(4+8)+(5+10)+(6+12)+(7+14)=84
Q3.試撰寫一程式可由鍵盤輸入一個正整數,然後求其所有的因數。
例如輸入:
68
輸出結果
124173468
Q4.所謂"Armstrong數"是指一個三位數的整數,其各位數字之立方和恰等於該數的本身。
例如:
153是一個Armstrong數,因為153=13+53+33。
試撰寫一程式,找出所有的Armstrong數。
輸出結果
Armstrong數有153370371407
Q5.請設計一個程式,能判斷一數是否為迴文數。
所謂迴文數(palindrome)就是一個數從左到右與從右到左的讀法相同。
例如:
12321就是迴文數,1234則不是。
例如輸入:
1234
輸出結果
1234isnotapalindrome.
例如輸入:
25752
輸出結果
25752isapalindrome.
Q6.將一十進位的數轉換成二進位,秀出轉換後第幾個bit為1,有幾個bits為1。
例如輸入:
12
輸出結果
12
Bit’1’at{2,3}
Bit‘1’has2
例如輸入:
61
輸出結果
61
Bit’1’at{0,2,3,4,5}
Bit‘1’has5
Q7.試寫一個程式,要求使用者輸入兩個整數資料,而後將這兩個整數資料傳入處理函式(以傳址呼叫或傳參考呼叫方式,兩者擇其一實作),計算這兩個整數的算術平均數與幾何平均數,再將其傳回主程式予以輸出至螢幕上(請將使用者輸入的這兩個整數資料一併輸出)。
例如:
輸入資料
請輸入兩個整數:
49
輸出結果
算數平均數為6.5
幾何平均數為6
Q8.假設某便利商店的工讀生的月薪資,可以依照下列方式計算:
60個小時之內,每小時75元
61~75個小時,以1.25倍計算
76個小時以後以1.75倍計算
例如,如果工作時數為80小時,則薪資為60*75+15*75*1.25+5*75*1.75=6562.5元。
請撰寫一個程式,首先在螢幕上輸入某工讀生該月的工作時數(為一整數),然後計算並列印出實領薪資(取至小數點後第一位)。
結果如下:
1.工作時數=80
實領薪資=6562.5元
2.工作時數=70
實領薪資=5437.5元
3.工作時數=50
實領薪資=3750.0元
Q9.請撰寫一個程式,利用dowhile迴圈完成九九乘法表。
在螢幕上列印結果如下:
1*1=12*1=23*1=34*1=45*1=56*1=67*1=78*1=89*1=9
1*2=22*2=43*2=64*2=85*2=106*2=127*2=148*2=169*2=18
1*3=32*3=63*3=94*3=125*3=156*3=187*3=218*3=249*3=27
1*4=42*4=83*4=124*4=165*4=206*4=247*4=288*4=329*4=36
1*5=52*5=103*5=154*5=205*5=256*5=307*5=358*5=409*5=45
1*6=62*6=123*6=184*6=245*6=306*6=367*6=428*6=489*6=54
1*7=72*7=143*7=214*7=285*7=356*7=427*7=498*7=569*7=63
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=649*8=72
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
Q10.請撰寫一程式,包含二個函數:
fac(n)=1*2*3*…*n及sum(n)=1+2+3+…+n,首先請在螢幕上輸入一個整數n,然後以呼叫函數的方式,計算並列印出fac(n)=1*2*3*…*n=?
及sum(n)=1+2+3+…+n=?
結果範例如下:
請輸入整數n=7
fac(7)=1*2*3*…*7=5040
sum(7)=1+2+3+…+7=28
Q11.請分別計算下列運算式的值,寫出最後變數a~h的值為何?
c=4+(a=3+(b=4+5));
d=10.0+2.0*4.0–6.0/3.0;
e=10%3;
f=5+3*8/2+3;
g=(5+3)*8/2+3;
h=2*4>3*5;
Q12.請建立C程式計算下列運算式的值,如下所示:
(1)2x2-4x+1,x=3.0、4.0和2/3
(2)a2+b,a=2.0、4.0和2/3,b=10.0、5.0和12.0
(3)3y2+8y+4,y=2.0、4.0和2/3
Q13.請建立C程式將下列的八和十六進位值轉換成十進位值顯示,如下所示:
0277、0xcc、0xab、0333、0555、0xff
Q14.現在有200個蛋,一打是12個,請設計C程式計算200個蛋是幾打,還剩下幾個蛋。
Q15.請設計C程式輸入整數值,然後顯示數值的十進位、十六進位和八進位值。
Q16.請撰寫C程式執行從1到100的迴圈,但只顯示45~67之間的奇數,並且計算其總和。
Q17.請寫一個C程式依序顯示1~20的數值和其平方,每一數值成一列,如下所示:
11
24
39
………
Q18.目前商店正在周年慶折扣,消費者消費1000元,就有8折的折扣,請建立C程式輸入消費額為900、2500和3300時的付款金額?
Q19.請設計C程式計算網路購物的運費,基本物流處理費199,1~5公斤,每公斤50元,超過5公斤,每一公斤為30元,在輸入購物重量為3.5、10、25公斤,請計算和顯示購物所需的運費+物流處理費?
Q20.請設計printStars()函數傳入顯示幾列的參數,即可顯示星號符號表示的三角形圖形,如下圖所示:
*
**
***
****
*****
******
*******
Q21.請寫遞迴函數sum(int),計算1到參數值的和,例如:
sum(5),就計算5+4+3+2+1。
Q22.請使用巨集定義MAX(a,b)和MIN(a,b)函數,可以分別取得2個參數的最大和最小值(提示:
使用C語言的條件運算子)。
Q23.請使用巨集定義平方和三次方的函數SQUARE(a)和CUBE(a)。
Q24.請設計C程式建立2個各5個元素的一維陣列arr1和arr2,其初值如下所示,然後建立5個元素的一維陣列result,使用迴圈計算arr1和arr2相同索引元素的和,將它存入陣列result,最後顯示出的陣列內容,其格式如下所示:
索引arr1arr2result
02+3=5
134+56=90
233+10=43
323+20=43
467+73=140
Q25.請建立arrMax()和arrMin()函數傳入整數陣列,傳回值是陣列的最大值和最小值,C程式可以讓使用者輸入5個數字,其範圍為1~1000,在存入陣列後,找出陣列的最大值和最小值。
Q26.請利用srand及rand這兩個函式,藉srand函式設定亂數種子,以rand函式產生亂數方式,設計一個樂透開獎程式,隨機產生一組大樂透開獎號碼,並將其輸出至螢幕。
註:
大樂透開獎號碼為1至49的正整數。
(961考題)
Q27.請撰寫一程式,包含二個函數:
fac(n)=1*2*3*…*n及sum(n)=1+2+3+…+n,首先請在螢幕上輸入一個整數n,然後以呼叫函數的方式,計算並列印出fac(n)=1*2*3*…*n=?
及sum(n)=1+2+3+…+n=?
(962考題)
【輸入輸出範例】:
請輸入整數n=7
fac(7)=1*2*3*…*7=5040
sum(7)=1+2+3+…+7=28
Q28、請撰寫一個程式,使用一個for迴圈來計算下面的數學式:
my_fun(x,n)=
首先請在螢幕上輸入x及n,並在螢幕上列印出my_fun(x,n)之計算結果。
結果範例如下:
1.請輸入x=0.1
請輸入n=5
my_fun(0.100000,5)=0.105171
2.請輸入x=0.2
請輸入n=5
my_fun(0.200000,5)=0.221403
Q29.請設計一C程式,由使用者任意輸入三角形的三邊長(邊長為整數,且輸入值並未經過大小排列)後,判斷此三邊所組成之三角形是何種三角形(正三角形、等腰三角形、一般三角形或非三角形),並印出答案。
(972新增)
【輸入輸出格式】:
【提示】:
假設輸入的三邊長分別為:
a,b,c;且其中abc
若a=b或b=c則為等腰三角形(isoscelestriangle)
a=b=c則為正三角形(regulartriangle)
c>=a+b則為非三角形(nontriangle)
【註】:
任二邊長之總和皆大於第三邊則可形成三角形;若為正三角形,請勿再列印出等腰三角形。
Q30.請撰寫一個程式可由鍵盤輸入時間(小時、分鐘),然後在螢幕上顯示出對應的時鐘
上分針與時針之間的夾角為幾度。
(972考題)
例如:
請輸入現在時間(小時:
分鐘)
3:
15
3點15分時,時針與分針之夾角為7.5度
Q31.試寫一C程式,可以輸入兩個正整數a和b,然後以遞迴方式求出a和b的最大公因數。
(972考題)
Q32.請撰寫一個程式,可依輸入產生N個0至99的整數亂數,然後由小至大排序後輸出。
例如輸入:
5
輸出結果:
125253598
512253598
Q33.請撰寫一個程式,可輸入一元二次方程式的係數,計算後輸出解。
此程式必須能處理實根與虛根的問題。
判別式
若
則
若
則
例如輸入:
12-3
輸出結果:
X1=1.000000X2=-3.000000
例如輸入:
1-413
輸出結果
X1=2.000000+3.000000iX2=2.000000-3.000000i
Q34.請撰寫一個程式,可計算定期定額投資收益結果,利率採複利計算。
程式可輸入年存額為X元,年複利率為R%,第N年後領回。
(請將結果四捨五入至整數位)
例如:
每年存100000,存3年,若是複利率為2.25%,3年後的本利和如下:
第一年初存入100000,本金=100000
第二年初,前一年本利=100000*(1+2.25%)=102250,加上存入的100000,合計202250
第三年初,前一年本利=202250*(1+2.25%)=206801,加上存入的100000,合計306801
第三年尾合計領回的本利和=306801*(1+2.25%)=313704
例如輸入(XRN):
100001210
輸出結果
196546
例如輸入(XRN):
100001520
輸出結果
1178101
Q35.大於1的整數,除了1與本身以外沒有其他因數,稱之為『質數』。
換言之,質數僅被1及本身整除。
因此,2,3,5,7,11….等均稱為質數,而33可被1,3,11,33整除,非質數。
請撰寫一個程式,可輸入一整數N,計算出所有小於等於N的所有質數,並以每10個一列輸出,最後亦輸出質數總個數。
例如輸入:
100
輸出結果
2357111317192329
31374143475359616771
7379838997
Thereare25primes
Q36.試撰寫一程式可由鍵盤輸入兩個數字,並求得此兩數的最大公因數。
例如輸入:
5448
輸出結果
54與48的最大公因數為6
Q37.試撰寫一程式,可依據輸入的長度,列印出指定對角長度的星號菱形。
例如輸入:
13
輸出結果
*
***
*****
*******
*********
***********
*************
***********
*********
*******
*****
***
*
Q38.請設計一個程式,能隨機從1~100中取10個數,將它們由小到大排序。
輸出結果
Thenumbersare:
921253458636684879698
輸出結果
Thenumbersare:
24629505470798588
Q39.如果有一數n,其真因數(Properfactor)的總和等於n,則稱之為完美數(Perfect
Number),例如以下幾個數都是完美數:
6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
現在請寫一個程式,在輸入一個數字n後,能印出正因數的和並回答其是否為完美數。
例如輸入:
496
輸出結果
Thesumofthesedivisorsis992
496isaperfectnumber!
例如輸入:
49
輸出結果
Thesumofthesedivisorsis57
49isnotaperfectnumber!
Q40.請撰寫一程式,利用迴圈計算12−22+32−42+…+472−482+492−502的值。
輸出結果
1^2−2^2+3^2−4^2+...+49^2−50^2=−1275
Q41.撰寫一函數doublemy_fun(intn),可用來計算下面的數學式,並可由使用者任意輸入n的值後,列印出my_fun(n)的計算結果。
例如輸入:
10
輸出結果
1.718282
例如輸入:
8
輸出結果
1.718279
Q42.試撰寫一程式可計算Fibonaccisequence(費氏數列),並可由使用者任意輸入n的值後,產生fib(n)的計算結果。
例如輸入n:
9
輸出結果
fib(9)=34
例如輸入n:
10
輸出結果
fib(10)=55
Q43.試撰寫一程式可提供使用者查詢一星期中每一日的英文單字,若輸入的內容非星期一至星期日的範圍,則須顯示”查無此日outofrange”的訊息。
例如輸入:
星期五
輸出結果
星期五的英文單字為Friday
Q44.費式數列(Fibonacci)是第一個和第二個數字為1,F0=F1=1,其它是前兩個數字的合Fn=Fn-1+Fn-2,n>=2,請設計fibonacci()函數顯示費式數列,參數是顯示數字的個數。
Q45.請設計遞迴函數計算Xn的值,例如:
57、85等。
Q46.請設計一個程式由使用者輸入一個正整數n,計算下列級數計算至第n項的值,並將此計算值輸出至螢幕。
(961考題)
Q47.請撰寫一個程式,使用一個for迴圈來計算下面的數學式:
首先請在螢幕上輸入x及n,並在螢幕上列印出my_fun(x,n)之計算結果。
(962考題)
【輸入輸出範例】:
請輸入x=0.1
請輸入n=5
my_fun(0.100000,5)=0.105171
請輸入x=0.2
請輸入n=5
my_fun(0.200000,5)=0.221403
Q48.給予一整數n,請計算n!
。
n!
=n*(n-1)*(n-2)*…*3*2*1。
請注意:
程式中不可以使用任何四則運算(+-*/)。
提示:
使用++運算子。
例如輸入:
5
輸出結果
120
例如輸入:
6
輸出結果
720
Q49.試寫一個程式,可將使用者輸入的字串中小寫的英文字轉成大寫的英文字,字串中大寫的英文字轉成小寫的英文字。
(992新增)
例如:
輸入資料
Goodmorning
輸出結果
gOODMORNING
Q50.試寫一個程式,可將使用者輸入的字串做反轉。
(992新增)
例如:
輸入資料
Goodmorning
輸出結果
gninromdooG
Q51.寫一個程式讀入一個字串,然後用一個指標指向該字串,使用指標移動的方式將字元逐一轉換成大寫,並輸出前後之字串內容。
(100.1新增)
Q52.利用動態記憶體配置的方法,寫一個可以讀入n個整數的程式,其中n值於執行時期才決定。
最後統計其輸入的資料之和平均值和最小/大值。
(100.1新增)