1
.鍵盤輸入正整數
n,求出
n與其反序數之和並輸出。例如,輸入
2038
,輸出應為
2038+8302=10340。2.
利用迭代公式:
計算實數
x的立方根
,當|yn+1
-yn|≤ε時,yn+
1為的近似值。
3.輸入正整數i和
n,由程式負責從
i開始找起,連續找出
n個素數並顯示在螢幕上。如輸入10和
8後,輸出的
8個素數應為:11,
13,17,
19,23,
29,31,
37。4.求下述三個序列的累加和(每一串行各累加
n項,正整數n通過
cin從鍵盤輸入)。
s1 = 1/5 + 1/4 + 3/11 + 2/7 + 5/17 + 3/10 + 7/23 + …
s2 = 2/1 + 3/2 + 5/3+ 8/5+ 13/8 + 21/13 + 34/21 + …
s3 = 1/1 - 3/(1+4) + 5/(1+4+7) - 7/(1+4+7+10) + 9/(1+4+7+10+13) - …
5.對於
n=2,5,
8,11,…,20,
23,分別求出
e(n) = 1/1! + 1/2! +
…+ 1/n!
之值並輸出它們。要求按如下三種方式來進行求解,並對它們的執行速度及優劣性進行比較。(1
)使用如下輪廓的三重迴圈來實現:
for(int n=2; n<=23; n+=3)//
求出多個不同的e
for (int i=1; i<=n; i++)//
共累加n
個項for (int j=1; j<=i; j++)//
每個項中用到
j的階乘…
(2)去掉最內層用來求階乘的迴圈,而改為使用二重迴圈的實現方法:
for(int n=2; n<=23; n+=3)//
求出多個不同的e
for (int i=1; i<=n; i++)//
共累加n個項…
(3)改寫成使用一重迴圈的實現方法:除了去掉用來求階乘的最內層迴圈外,還要在求
e(5)
時接著使用(而不再重新計算)已算出的
e(2)
值,求e(8)
時接著使用已算出的
e(5)
值,如此等等。
for(int n=1; n<=23; n++)
//從第
1項開始,一共(最多)累加23項
…//當累加到2,
5,8,…,20,
23項時,輸出當時的累加結果e值
6.求滿足下述兩個條件的最小自然數n:
(1)n
的個位數字為8;
(2)將n
的個位數字
8移到其它各位數字之前(如
205128
移過後為
820512
),所得的新數恰為n的
4倍。點評:若將
n的個位數字改為
6時(如
153846
移過後為
615384
),求解方法完全類似。
思考:可否任意指定個位數(的數值),以求解相同性質的更具有一般性的問題?
7.任意輸入
10個正整數,求出其中互不相同的數的個數
num,以及此
num個數中哪乙個數的出現次數最多,共出現了幾次。
8.程式設計序,輸入字串
s,而後統計出
s中各數字字元的出現次數並輸出結果。
9 程式設計序,輸入任意乙個字串
s1,而後由
s1形成另兩個字串s2和
s3並顯示在螢幕上。其中s2是
s1甩掉其尾部的所有非字母字元後得到的字串,而
s3則由
s2甩掉其前導的所有非字母字元後形成的字串。例如,程式執行後的螢幕顯示結果可為:
input s1:36 262/x+y*z-a d007 end! %%% 60++=--!
s2=36 262/x+y*z-a d007 end
s3=x+y*z-a d007 end
10.將輸入的
2進製數(乙個非「0」
即「1」的字串)化為
10進製數。
a盛放所輸入的二進位制數;而後從後往前逐一計算每一位的「位權」
w (2的0
次方、2的1
次方、...)
,再計算「位權」乘以「位值」並累加到乙個初值為
0的變數
value
上,最後輸出該
value
。思考:如何把
8進製數或
16進製制數化為
10進製數。更進一步,如何把某乙個
k進製的數化為
10進製數呢?
11.將輸入的羅馬資料化為
10進製數。假設羅馬資料中只使用如下
7個「基值」字母:m、
d、c、
l、x、
v、i,分別用來表示
1000
、500
、100、50
、10、5
、1。如,羅馬資料
l***vii
表示10
進製的87
。12.
將輸入的
10進製正整數化為
2進製數。
2,倒者排餘數」的方法實現。即是說,使用乙個
int型陣列
a盛放逐次得到的各餘數,最後將陣列
a中的各餘數倒著輸出來。
思考:如何把
10進製正整數化為
8進製數或
16進製制數。更進一步,如何把
10進製正整數化為某乙個
k進製的數呢?
13.將輸入的
10進製正整數轉換為羅馬資料。假設羅馬資料中只使用「基值」字母:m、
d、c、
l、x、
v、i,分別用來表示
1000
、500
、100、50
、10、5
、1。
14.由
20個正整數排成一圈,編乙個程式找出連續的四個數,其和是最大的(不小於圈上任何其它連續的四個數之和)。
int型陣列來存放那
20個正整數,而後通過迴圈,從累加出的
20個不同和數中找出其中的最大者。注意,由於將陣列看成是「圈狀」的,最後乙個數的「後繼」應是第乙個數,所以要用到取模的運算。
15.對於整型陣列a[
10]和b[
10],編制程式完成下列任務:(1
)由使用者從鍵盤為兩個陣列輸入值;(2
)求出兩個陣列的最大元和最小元;(3
)把陣列a和
b中的整數分別從小到大和從大到小排序;(4
)把兩個有序的陣列a和
b組成乙個長度為
20的有序陣列c[
20]。
16.用折半查詢方法,在元素呈公升序排列的具有
15個元素的陣列
a中查詢值為
key的那一元素的序號即下標號並輸出(其中的
key值通過鍵盤輸入)。若陣列中沒有值為
key的元素,則提示資訊「
no such element!
」。所謂的折半查詢方法如下:先用
key值與處於
15個元素之「中間」的那一元素進行比較,若恰好相等,則那一「中間」元素的序號即為所求;若
key值大於那一「中間」元素,則將查詢範圍縮小到陣列的後一半去繼續查詢,否則將查詢範圍縮小到前一半去繼續查詢。
17.設計乙個程式,它可以把最近的
20天的氣溫值以柱形圖的形式顯示出來,假設氣溫在22~
35度之間(取整),溫度的高低以由「
*」組成的「柱」的高低來表示。
18.設有4行
4列的陣列
b,其元素
b[i][j]=3*i+2*j-6(i
、j = 0,1
,2,3
)。程式設計序,實現:(1
)求第二行
4元素的累加和;(2
)求第四列
4元素之平均值;(3
)求主對角線
4元素中負數的個數。
19.設有二維字元陣列
dig[10][10]
,其元素值均為數字字元(
'0',
'1',
…,'9'
),程式設計序,首先通過使用
rand
函式來為陣列
dig設定初值,而後統計出其中
10個數字字元各自出現的次數。
rand()%10+48」
可生成乙個隨機數字字元值。
20.說明5
個行列數有關係的二維陣列用於表示矩陣a、
b、c、
d、e。首先給a、
b二矩陣賦初值,而後計算a、
b的和矩陣
c,乘積矩陣
d,以及
a的轉置矩陣
e,並顯示出各運算結果。
21.使用者從鍵盤輸入任意乙個正整數
n,程式負責將該正整數轉換為如下形式的「混英表示字串」並顯示出來:如輸入n為
302時,輸出:
three(100)-zero(10)-two(1)
;輸入n
為14895
時,相應的輸出應為:
one(10000)-four(1000)-eight(100)-nine(10)-five(1)
。eng
並在轉換過程中使用。
char eng[10][6]=;
C語言程式設計題目21至25
將1 100的資料以10x10矩陣輸出 include include intmain printf n system pause return0 八進位制與十進位制相互轉換 include include intconvertdecimaltooctal int decimalnumaber re...
一道有趣的迴圈題目
問題 輸入為 n,求乙個 n n的矩陣,規定沿 45度線遞增,形成乙個 zigzag 陣列 jepg 編碼裡取畫素資料的排列順序 用 c 實現。本人的實現思路 在 程式設計師面試寶典 中有另一種解法 問題的實質是把 0,n 1 中的整數依之字形填入乙個二維陣列。於是考慮按之字形遍歷陣列,遍歷時,方向...
一道有趣的迴圈題目
問題 輸入為 n,求乙個 n n的矩陣,規定沿 45度線遞增,形成乙個 zigzag 陣列 jepg 編碼裡取畫素資料的排列順序 用 c 實現。本人的實現思路 在 程式設計師面試寶典 中有另一種解法 問題的實質是把 0,n 1 中的整數依之字形填入乙個二維陣列。於是考慮按之字形遍歷陣列,遍歷時,方向...