程序設(shè)計基礎(chǔ) 上機(jī)題庫_第1頁
程序設(shè)計基礎(chǔ) 上機(jī)題庫_第2頁
程序設(shè)計基礎(chǔ) 上機(jī)題庫_第3頁
程序設(shè)計基礎(chǔ) 上機(jī)題庫_第4頁
程序設(shè)計基礎(chǔ) 上機(jī)題庫_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C+程序設(shè)計基礎(chǔ) 上機(jī)題庫 說明: 本上機(jī)題庫按內(nèi)容分為四部分, 即程序設(shè)計初步、 函數(shù)、 數(shù)組、 指針, 其中每一部分又根據(jù)難度不同分為 A、 B、 C 三類。 第一部分 程序設(shè)計初步 一、 A 類程序設(shè)計題 1、 將用戶輸入的字母自動轉(zhuǎn)換為大寫字母后輸出, 假定用戶輸入的字符均是字母。 2、 判斷用戶所輸入的整數(shù)是否為偶數(shù) 3、 編程實(shí)現(xiàn)并輸出兩個數(shù)的大小判斷, 將大數(shù)輸出 4、 編程實(shí)現(xiàn)并輸出兩個數(shù)的和值 5、 將括號中的字符串分別按每行一個單詞的方式分行顯示。(This is a C+program)6、 編程計算并輸出字符、 無符號整數(shù)與長整型數(shù)值在內(nèi)存中所占字節(jié)數(shù)7、 定

2、義三個變量, 由用戶指定其值, 并將值輸出顯示給用戶8、 定義三個變量, 并完成初始化后輸出顯示給用戶9、 完成9除3后的求余操作并輸出結(jié)果 10、 編程計算表達(dá)式a×b÷c一1. 5+a11、 將China譯成密碼, 密碼規(guī)律是: 用原字母后面第四個字母代替原來的字母, 例如,字母A后面第四個字母是E, 用E代替A。 因此China應(yīng)譯為Glmre。 請編寫一程序, 用賦初值方法使c1, c2, c3, c4, c5這5個變量值分別為C、 h、 i、 n、 a, 經(jīng)過去處,使c1, c2, c3, c4, c5分別為為G、 l、 m、 r、 e 12、 將一個用戶輸入的整

3、數(shù)分別以十六進(jìn)制、 八進(jìn)制、 十進(jìn)制方式、 科學(xué)計數(shù)法輸出。 13、 求矩形面積, 長、 寬值由用戶指定 14、 運(yùn)輸公司對用戶計算運(yùn)費(fèi)。 路程(s)越遠(yuǎn), 每公里運(yùn)費(fèi)越低。 標(biāo)準(zhǔn)如下: s250km 沒有折扣 250s500 2折扣 500s1000 5折扣 1000s2000 8折扣 2000s3000 10折扣 3000s 15折扣 設(shè)每公里每噸貨物的基本運(yùn)費(fèi)為p(price的縮寫) , 貨物重為w(wright的縮寫) , 距離為 , 折扣為d(discount的縮寫) , 則總運(yùn)費(fèi)f(freight的縮寫) 的計算公式為: f = p * w * s * (1 - d) 要求采用if

4、語句嵌套完成。 15、 采用do while循環(huán)結(jié)構(gòu)完成1至100之間的奇數(shù)相加。 16、 用循環(huán)語句編程打印下列矩陣形式, 盡量使語句簡捷, 注意第一列與第二列間距為一個Tab的位置, 其余寬度為兩個空格:1 0 1 2 3 4 5 62 1 2 3 4 5 6 0 3 2 3 4 5 6 0 1 4 3 4 5 6 0 1 2 5 4 5 6 0 1 2 3 6 5 6 0 1 2 3 4 17、 編程求圓面積, 并輸出結(jié)果。 其中圓半徑以用戶運(yùn)行時指定 2 +bx+c=0的根。 18、 編程求一元二次方程ax19、 編程實(shí)現(xiàn)由底和高求三角形的面積。 20、 計算y, 其中y=(x+1)

5、/(x-1) 21、 用for循環(huán)語句編程打印下列矩陣形式, 盡量使語句簡捷, 注意各列相距兩個空格: (1, 1) (1, 2) (1, 3) (1, 4) (1, 5) (1, 6) (1, 7) (2, 1) (2, 2) (2, 3) (2, 4) (2, 5) (2, 6) (2, 7) (3, 1) (3, 2) (3, 3) (3, 4) (3, 5) (3, 6) (3, 7) (4, 1) (4, 2) (4, 3) (4, 4) (4, 5) (4, 6) (4, 7) (5, 1) (5, 2) (5, 3) (5, 4) (5, 5) (5, 6) (5, 7) (6,

6、 1) (6, 2) (6, 3) (6, 4) (6, 5) (6, 6) (6, 7) 二、 B類程序設(shè)計題1、 實(shí)現(xiàn)用戶輸入的三個整數(shù)的排序 2、 實(shí)現(xiàn)在響玲后, 將字符串“Hello world” 輸出 3、 實(shí)現(xiàn)任一字符和字符串長度的輸出, 其中字符和字符串內(nèi)容由編程者自定 4、 將括號內(nèi)的字符串輸出, (He said : "I have done it". ) 5、 定義一個符號常量, 并在主函數(shù)中加以應(yīng)用 6、 編輯實(shí)現(xiàn)計算并輸出字符、 無符號整數(shù)與長整型數(shù)值在內(nèi)存中所占字節(jié)數(shù) 7、 將用戶輸入的五個字母(大小寫均可) 譯成密碼, 密碼規(guī)律是: 用原字母后面

7、第四個字母代替原來的字母, 例如, 字母A后面第四個字母是E, 用E代替A。 要求: 字符由用戶指定輸入五個, 程序采用循環(huán)體完成, 增加對輸入合法性進(jìn)行判斷 8、 使用scanf函數(shù)輸入一個整數(shù)、 浮點(diǎn)數(shù)和字符, 并用printf輸出 2+bx+c=0 的根, 其中 a、 b、 c 的值由用戶指定 10、 根據(jù)用戶輸入的成績, 判定其優(yōu)良等級, 其中優(yōu)是 85 分以上, 良是 75 至 84 之間,中是 65 至 74 之間, 及格是 60 至 64, 其余為不及格 11、 編寫程序, 判斷某一年是否為潤年 12、 編寫程序, 判斷某整數(shù)是否為素數(shù) 13、 給出一個不多于5位的正整數(shù), 要求

8、: 求出它是幾位數(shù); 分別打印出每一位數(shù)字;按逆序打印各位數(shù)字, 例如原數(shù)為321, 則輸出123 14、 輸入兩個正整數(shù)m和n, 求其最大公約數(shù)和最小公倍數(shù) 15、 采用循環(huán)結(jié)構(gòu)完成1至100之間的偶數(shù)相加。 16、 鍵盤輸入正整數(shù) n, 求出 n 與其反序數(shù) x 之和并輸出。 例如, 輸入 2038, 輸出應(yīng)為: n + x = 2038 + 8302 = 10340。 17、 編程打印乘法九九表 * 1 2 3 4 5 6 7 8 9 - 1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 21 24 27 4 4

9、8 12 16 20 24 28 32 36 5 5 10 15 20 25 30 35 40 45 6 6 12 18 24 30 36 42 48 54 7 7 14 21 28 35 42 49 56 63 8 8 16 24 32 40 48 56 64 72 9 9 18 27 36 45 54 63 72 81 19、 編程實(shí)現(xiàn)輸入一個整數(shù), 判斷其能否被3、 5、 7整除, 并輸出以下信息之一: (1) 能同時被3、 5、 7整除 (2) 能被其中兩數(shù)(要指哪兩個整除) (3) 能被其中一個數(shù)(要指出該數(shù)) 整除 (4) 不能被3、 5、 7整除 20、 編程輸出以下格式的乘法九

10、九表 * 1 2 3 4 5 6 7 8 9 - 1 1 2 2 4 3 3 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81 22、 輸入年份, 判斷是否為閏年。 輸入月號, 輸出每月的天數(shù) 23、 輸入三角形三邊, 編寫程序判斷三角形的種類: 等腰三角形、 等邊三角形或一般三角形。 24、 輸入一個字符, 編寫程序判斷該輸入字符的種類: 數(shù)字、 字母或其它。 25、 兩個數(shù)的十、 一、 *和

11、/的簡易計算器程序。 26、 編程輸入整數(shù)a和b, 若 大于100, 則輸出 百位以上的數(shù)字, 否則輸出兩數(shù)之和。 27、 給一個不多于5位的正整數(shù), 要求: 求出它是幾位數(shù); 分別打印出每一位數(shù)字;按逆序打印出各位數(shù)字, 例如原數(shù)是321, 應(yīng)輸出123。 28、 若 a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b。 想得到以下的輸出格式和結(jié)果, 請寫出程序(包括定義變量類型和設(shè)計輸出)。 a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20

12、 z+x=-2.40 u= 51274 n= 128765 c1=a or 97(ASCII) c2=b or 98(ASCII) 29、 設(shè)圓半徑r=1.5, 圓柱高h(yuǎn)=3, 求圓周長, 圓面積, 圓球表面積, 圓球體積, 圓柱體積。 用scanf輸入數(shù)據(jù), 輸出計算結(jié)果; 輸出時要求有文字說明, 取小數(shù)點(diǎn)后2位數(shù)字, 請編寫程序。 31、 用一個循環(huán)體結(jié)構(gòu)求1!+2!+3!+19!+20! 三、 C 類程序設(shè)計題 1、 判斷三角形是否成立, 并求其面積和周長5、 輸入一行字符, 分別統(tǒng)計出其中英文字母、 空格、 數(shù)字和其它字符的個數(shù) 6、 輸出所有的水仙花數(shù), 所謂水仙花數(shù)是指一個 3 位

13、數(shù), 其各位數(shù)字的立方之和等于該數(shù)本身。 例如 153 是一個水仙花數(shù), 因為 153=13+53+33 9、 兩個乒乓球隊進(jìn)行比賽, 各出 3 人。 甲隊為 A、 B、 C3 人, 乙隊為 X、 Y、 Z3 人。 已抽簽決定比賽名單。 有人向隊員打聽比賽名單, A 說他不和 X 比, C 說他不和 X、 Z比, 請編程找出 3 對賽手名單。 10、 編程求所有的 3 位素數(shù), 且該數(shù)是對稱的。 所謂對稱是指一個數(shù), 倒過來還是該數(shù),例如, 375 不是對稱, 因為倒過來后變成 573。 11、 編程求解母牛問題。 若一頭母牛, 從出生起第四個年頭開始每年生一頭母牛, 按這規(guī)律, 第 n 年時

14、有多少頭母牛? n 為用戶在運(yùn)行時指定的數(shù)值。 12、 百錢買百雞問題: 雄雞 7 元/只, 母雞 5 元/只, 小雞 1 元/3 只. 花 100 元錢, 買100 只雞, 如果雄雞、 母雞和小雞都必須有, 則雄雞、 母雞和小雞應(yīng)各買幾只? 13、 一球從 100m 落下, 每次落地后反跳回原高度的一半, 再落下。 編程求它在第 10 次落地時, 共經(jīng)過多少 m? 第 10 次反彈多高? 第二部分 函數(shù) 一、 A 類程序設(shè)計題 1、 編寫一個求梯形面積的函數(shù), 在主函數(shù)中調(diào)用 2、 編寫函數(shù), 求sinh(x) 的值, sinh(x) =(ex-e-x) /2 3、 已知三角形的三邊, 求三

15、角形面積, 將其編寫成一個函數(shù)。 4、 編寫一個函數(shù)實(shí)現(xiàn)10個數(shù)的最大值函數(shù) 5、 編寫一個函數(shù)來檢驗輸入的一個字符是大寫字母還是小寫字母英文字母。 6、 使用函數(shù)重載的方法定義兩個重名函數(shù), 分別求出整型數(shù)的兩點(diǎn)間距離和浮點(diǎn)型數(shù)的兩點(diǎn)間距離。 7、 編寫函數(shù)將華氏溫度轉(zhuǎn)換為攝氏溫度, 公式為C=(F-32) *5/9; 并在主函數(shù)中調(diào)用。 8、 編寫一個函數(shù)來檢驗輸入的一個字符是0-9。 9、 利用重載編寫求整數(shù)絕對值和求實(shí)數(shù)絕對值兩個函數(shù)。 10、 使用靜態(tài)局部變量, 編寫一個函數(shù)計算13的階乘。 11、 重載求平方的函數(shù), 實(shí)現(xiàn)求整數(shù)、 單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)的平方值。 12、 完成

16、函數(shù), 參數(shù)為兩個 unsigned short int 型數(shù), 返回值為第一個參數(shù)除以第二個參數(shù)的結(jié)果, 數(shù)據(jù)類型為 short int; 如果第二個參數(shù)為 0, 則返回值為-1。 在主程序中實(shí)現(xiàn)輸入輸出。 13、 編寫一個函數(shù)求長方體的體積, 長方體的長、 寬、 高的默認(rèn)值分別為 30、 20、 10。在主函數(shù)中進(jìn)行輸入輸出。 14、 編寫程序求 的值, 其中arctan用如下形式的級數(shù)計算: (編寫函數(shù)) 直到級數(shù)某項絕對值不大于 10-15 為止; 和 x 均為 double 型。 15、 編寫三個名為 add 的重載函數(shù), 分別實(shí)現(xiàn)兩整數(shù)相加、 兩實(shí)數(shù)相加和兩個復(fù)數(shù)相加的功能。 16

17、、 求方程b02=+0cbxax的根, 用三個函數(shù)分別求當(dāng)042> acb、042= acb和42< ac是的根, 并輸出結(jié)果。 從主函數(shù)輸入系數(shù)。 17、 寫一個判別素數(shù)的函數(shù), 從主函數(shù)輸入一個整數(shù), 輸出是否為素數(shù)的信息。 18、 定義一個帶參數(shù)的宏, 求三角形的周長。 在主程序中, 使用它 19、 定義一個參數(shù)的宏, 求梯形的面積。 在主程序中, 使用它 20、 編寫帶默認(rèn)參數(shù)的函數(shù), 求 2 個或 3 個整數(shù)中的最大數(shù)。 并在組程序中實(shí)現(xiàn) 二、 B 類程序設(shè)計題1、 編寫兩個函數(shù), 輸入的整數(shù)按字符串形式逆序輸出, 要求分別用遞歸算法和非遞歸算法實(shí)現(xiàn)。 如: 輸入 123

18、45, 輸出: 5 4 3 2 1 2、 編寫一個函數(shù), 要求鍵盤輸入正整數(shù) n, 求出 n 與其反序數(shù) x 之和并輸出。 例如,輸入 2038, 輸出應(yīng)為: n + x = 2038 + 8302 = 10340。 3、 編寫函數(shù)利用數(shù)組名作參數(shù)計算數(shù)組 arr34所有元素的和 4、 編寫函數(shù)利用遞歸的方法計算 x 的 n 階勒讓德多項式的值。 該公式如下: 5、 利用全局變量并編寫函數(shù)統(tǒng)計數(shù)組中奇數(shù)和偶數(shù)的個數(shù)。 6、 利用函數(shù)調(diào)用求組合數(shù) 。=ini1 7、 在主程序中, 輸入 n, 用遞歸方法編寫函數(shù), 求 1+2+3+n 8、 在主程序中, 輸入 n, 用遞歸方法編寫函數(shù)求 n! 9

19、、 將一個整數(shù)的各個位上的數(shù)字加起來(用函數(shù)完成) , 并輸出結(jié)果。 10、 編寫一個函數(shù), 求出數(shù)組中最大元素的下表 11、 分別利用非遞歸和遞歸的方法編寫函數(shù)求斐波那契數(shù)列第 n 項。 k + 212、 編程計算 1k + 3k + + nk, 用帶兩個參數(shù)的函數(shù)實(shí)現(xiàn) 13、 input 函數(shù)輸入 10 個整數(shù), 并求出它們的最大值、 最小值和總和。 主函數(shù) main 調(diào)用 input 函數(shù), 并輸出這 10 個整數(shù)的最大值、 最小值和總和。 14、 設(shè)計一個遞歸函數(shù), 計算一個整數(shù)的各位數(shù)字之和。 15、 用內(nèi)聯(lián)函數(shù)實(shí)現(xiàn)求出一維數(shù)組的最大值。 在主函數(shù)中輸入數(shù)組元素值, 調(diào)用求

20、最大值函數(shù), 并輸出數(shù)組最大值。 16、 用弦截法, 求方程 ( )17、 用牛頓迭代法, 求方程在 1 附近的根,080316523=2x+=xxxxf的根, 用函數(shù)實(shí)現(xiàn) 43=+x02+x, 用函數(shù)實(shí)現(xiàn) 18、 編寫函數(shù), 計算, 當(dāng)最后一項小于 0. 00001 時, 累加結(jié)束。 x 在主函數(shù)中, 通過從鍵盤輸入 19、 編無參函數(shù), void print() , 并結(jié)合使用全局變量 k 與 n, 使每調(diào)用一次該函數(shù),總顯示出 k 行 “+”符號來, 且每行均顯示連續(xù)的 n 個 “+”符號。 并編制主函數(shù) main,對該函數(shù)進(jìn)行具體調(diào)用。 20、 編寫兩個數(shù)的最大公約數(shù)的函數(shù), 在主程序

21、中調(diào)用 三、 C 類程序設(shè)計題 1、 編寫函數(shù) prime, 用來判斷某個整數(shù)是否為素數(shù)。 而后編寫主函數(shù) main, 輸入任意一個大于 4 的偶數(shù) d, 找出滿足 d=d1+d2 的所有數(shù)對, 其中要求 d1 與 d2 均為素數(shù)(通過調(diào)用 prime 來判斷素數(shù))。 如偶數(shù) 80 可以分解為: 7+73、 13+67、 19+61、37+43。 2、 編寫一個函數(shù)求滿足以下條件的最大的 n: 12+22+32+n2<1000 3、 編制具有如下原型的函數(shù) long dif(int y1, int m1, int d1, int y2, int m2, int () 1111132>

22、;+=xxxxs83 d2) ; 它負(fù)責(zé)計算出兩個日期的間隔天數(shù)并返回。 其中的 y1、 m1、 d1 表示第一個日期的年、 月、 日; 而 y2、 m2、 d2 表示第二個日期的年、 月、 日。 而后編制主函數(shù),對 dif 進(jìn)行調(diào)用, 以驗證它的正確性。 4、 在主程序中提示輸入 n,編寫函數(shù)用遞歸的方法求 1+2+n 的和。 5、 編寫一個將 x 進(jìn)制正整數(shù) n 化為 10 進(jìn)制數(shù)并輸出結(jié)果的函數(shù)(x 為 2 或 8), 具有如下原型: void ChgXTo10 (int n, int x) ; 并編寫主函數(shù)對它進(jìn)行調(diào)用來驗證其正確性。 6、 編寫判斷勾股數(shù)的函數(shù)。 打印出 100 內(nèi)的

23、所有的勾股數(shù)。 勾股數(shù)就是滿足 x2+y2=z2的自然數(shù)。 最小是勾股數(shù) 5, 4, 3。 7、 編寫一個函數(shù) countk(long k, count10), 求出證書 k 中數(shù)字 0 到 9 出現(xiàn)的次數(shù), 并計入 count10中。 8、 編寫求最大公約數(shù)和最小公倍數(shù)的函數(shù), 輸入 m, n(要求輸入數(shù)均大于 0), 輸出它們的最大公約數(shù)和最小公倍數(shù)。 其中, 寫最小公倍數(shù)的函數(shù)時, 要求調(diào)用求最大公約數(shù)的函數(shù) 9、 尋找四位數(shù)的超級素數(shù)。 超級素數(shù)的定義為: 若一個素數(shù)從低位到高位依次去掉一位數(shù)后仍然是素數(shù), 則此數(shù)為超級素數(shù)。 例如, 數(shù) 2333 是素數(shù), 且 233、 23、 2

24、均是素數(shù), 所以 2333 是一個超級素數(shù), 用定義函數(shù)的方式實(shí)現(xiàn)。 主程序中, 輸入位數(shù)。 10、 漢諾塔問題。 有三根柱子 A、 B、 C。 設(shè) A 柱上有 n 個盤子, 盤子的大小不等, 大的盤子在下, 小的盤子在上, 如下圖所示。 要求將 A 柱上的 n 個盤子移到 C 上, 每一次只能移一個盤子。 在移動過程中, 可以借助于任一根柱子, 但必須保證三根柱子上的盤子都是大的盤子在下, 小的盤子在上。 要求編一個程序打印出移動盤子的步驟。 11、 編寫一個排序函數(shù)用選擇法對一批整數(shù)按從大到小的次序進(jìn)行排序。 在主函數(shù)內(nèi)輸入數(shù)據(jù), 調(diào)用排序函數(shù)對數(shù)據(jù)排序, 輸出排序結(jié)果。 12、 尋找并輸

25、出 11999 之間的數(shù) m, 它滿足 m、 m2 和 m3 均為回文數(shù)。 回文: 各位數(shù)字左右對稱的整數(shù), 用定義函數(shù)的方式實(shí)現(xiàn)。 主程序中, 輸入范圍(兩個參數(shù))。 13、 輸出所有的“水仙花數(shù)”, 所謂“水仙花數(shù)” 是指一個 3 位數(shù), 其各位數(shù)字的立方之和等于該數(shù)本身。 例如, 153 是一個水仙花數(shù), 因為 153 = 13 + 53 +33。 用函數(shù)來判斷時否是“水仙花數(shù)”。 14、 一個數(shù)如果恰好等于它的因子之和(這里的因子不包括這個數(shù)本身), 這個數(shù)就稱為“完數(shù)”。 例如, 6 的因子為 1、 2、 3, 而 6 = 1+2+3, 因此 6 是“完數(shù)”。 編程求出 1000 以

26、內(nèi)的所有完數(shù), 并按下面格式輸出其因子: 6, its factors are 1, 2,3。 用函數(shù)來判斷時否是“完數(shù)”。 15、 用戶任意輸入一個年份以及該年的 1 月 1 日是星期幾, 而后任意指定某一天(再輸入該年的任意一個月份日期), 由程序計算出這一天是星期幾。 注意, 2 月份閏年為29 天, 非閏年為 28 天; 可被 4 整除而不可被 100 整除的年份、 或者可被 400 整除的年份均為閏年。 思考: 利用元年元月元日(即 1 年 1 月 1 日) 是星期一的已知事實(shí), 可對程序進(jìn)行改造, 讓用戶僅輸入一個表示日期的年月日, 則程序就應(yīng)計算出那一天是星期幾。 主程序中輸入一

27、個年份以及該年的 1 月 1 日是星期幾, 而后任意指定某一天(再輸入該年的任意一個月份日期) 16、 編一個返回真假值(布爾值) 的函數(shù) p, 其函數(shù)原型為: bool p(int x) ; 具有如下功能: 若正整數(shù) x 的各位數(shù)字之積等于 x2-10x-22 的話, 返回 true, 否則返 false。并編主函數(shù), 通過調(diào)用 p, 找出 1000 以內(nèi)的滿足上述關(guān)系的所有 x。 17、 編寫具有如下原型的函數(shù): bool f(long x) ; 其功能為: 若整數(shù) x 僅由偶數(shù)字(0、2、 4、 6、 8) 組成時(如 x=26480), 函數(shù)返回 true, 否則返回 false(如當(dāng)

28、 x=22034時)。 并編制主函數(shù)對它進(jìn)行調(diào)用。 18、 編寫具有如下函數(shù)原型的遞歸與非遞歸兩種函數(shù) myMin, 負(fù)責(zé)求出 a 數(shù)組中前 n 個整數(shù)中的最小者并返回該值。 并編制主函數(shù), 通過調(diào)用它來驗證其正確性。 int myMin(int a, int n) ; 提示: 遞歸函數(shù)中, n 等于 1 時最小者即為 a 數(shù)組的第 1 個元素(即 a0), 遞歸出口; 當(dāng) n 大于 1 時, 首先通過遞歸調(diào)用來求出 a 數(shù)組的前 n-1 個元素中的最小者tmp, 則函數(shù)返回值應(yīng)為如下表達(dá)式之值: “an-1<tmp?an-1: tmp”。 19、 輸入兩個二進(jìn)制正整數(shù)(兩個非“0” 即

29、“1” 的字符串), 而后輸入一個運(yùn)算符( “+”、“-”、“*”、“/”), 按int 型整數(shù)運(yùn)算方式求出這兩個二進(jìn)制整數(shù)的運(yùn)算結(jié)果并輸出。 提示: 設(shè)計將 2 進(jìn)制數(shù)化為 10 進(jìn)制數(shù)、 以及將 10 進(jìn)制數(shù)化為 2 進(jìn)制數(shù)的函數(shù)“int Chg2To10(char a) ; ” 和“ void Chg10To2(int n, char result) ; ”,而后在主函數(shù)中通過調(diào)用 Chg2To10 先將兩個輸入串轉(zhuǎn)化為 10 進(jìn)制數(shù), 而后對這兩個 10 進(jìn)制數(shù)進(jìn)行指定運(yùn)算, 再將運(yùn)算結(jié)果通過 Chg10To2 轉(zhuǎn)化為 2 進(jìn)制數(shù)(結(jié)果在result) 而后輸出。 20、 編

30、寫一個將 x 進(jìn)制正整數(shù)化為 10 進(jìn)制數(shù)并輸出結(jié)果的函數(shù), 具有如下原型: void ChgxTo10(char a, int x) ; 參數(shù) a 中放的是 x 進(jìn)制正整數(shù)的各位數(shù)字字符(如 x可為 2 或 8 或 16 等), 要將其化為 10 進(jìn)制數(shù)并輸出。 并編寫主函數(shù)對它進(jìn)行調(diào)用以驗證其正確性。 第三部分 數(shù)組 一、 A 類程序設(shè)計題 1、 求一個4x4矩陣對角線元素之和。 2、 用數(shù)組的方法求Fibonacci數(shù)列的值(要求輸出前20個數(shù))。 3、 將一個3x4矩陣轉(zhuǎn)置(行列互換) 存放。 4、 將一個數(shù)組中的數(shù)按逆序存放, 例如原來的順序為8, 7, 6, 4, 2, 要求改為2

31、, 4, 6,7, 8。 5、 用選擇法對 10 個整數(shù)進(jìn)行降序排序。 6、 用冒泡法對 10 個整數(shù)進(jìn)行升序排序。 7、 編寫一個簡單程序, 要求: (1) 從鍵盤上輸入 8 個整數(shù)放入數(shù)組 a8中(用 for 循環(huán)實(shí)現(xiàn)); (2) 求出數(shù)組元素的最大值及數(shù)組的平均值。 8、 求 3×4 矩陣中每一列元素的最大值并輸出。 9、 求 4×4 矩陣中每一行元素的最小值并輸出。 10、 某班有 30 個學(xué)生, 進(jìn)行了數(shù)學(xué)考試, 編寫程序?qū)⒖荚嚦煽冚斎胍痪S數(shù)組, 并求數(shù)學(xué)的平均成績及不及格學(xué)生的人數(shù)。11、 有一個3x4矩陣, 求出最大元素, 以及其所在的行號和列號。 12、 從

32、鍵盤上輸入10個實(shí)數(shù), 然后按輸入順序的逆序輸出這10個數(shù)。 13、 從鍵盤輸入 10 個整數(shù), 找出其中最大值和最小值。 14、 輸入 10 個學(xué)生的姓名、 學(xué)號和成績, 將其中不及格者的姓名、 學(xué)號和成績輸出。 15、 輸入字符串 s, 統(tǒng)計出 s 中共出現(xiàn)了多少個數(shù)字字符。 二、 B 類程序設(shè)計題1、 對一個已按由小到大排好順序的整型數(shù)組, 若從鍵盤輸入一個數(shù) x, 現(xiàn)要查詢該數(shù)是否在此整型數(shù)組中, 若存在則刪除該數(shù), 否則顯示“不存在” 信息。 2、 對一個已按由小到大排好順序的整型數(shù)組, 若從鍵盤輸入一個數(shù) x, 現(xiàn)要將該數(shù)插入到該數(shù)組中, 使其插入后整個數(shù)組排序規(guī)律不變。 3、 編

33、寫一程序, 要求從鍵盤上輸入 10 個整數(shù)放入一個數(shù)組中(用 for 循環(huán)實(shí)現(xiàn)), 并編 寫求最大值的函數(shù) max, 在主程序調(diào)用這個函數(shù)實(shí)現(xiàn)輸出數(shù)組中 10 個整數(shù)的最大值, 要求用數(shù)組名作為函數(shù)參數(shù)。 4、 輸入一個 4 行 4 列的二維數(shù)組, 編程實(shí)現(xiàn): (1) 求出其中的最大值和最小值及其對應(yīng)的行列位置; (2) 求出對角線上各元素之和。 5、 用篩選法求 100 之內(nèi)的素數(shù)。 6、 對一個整形數(shù)組進(jìn)行由小到大排序。 要求: 用函數(shù)調(diào)用實(shí)現(xiàn)排序過程。 7、 將一個數(shù)組中的元素按逆序存放。 要求: 用函數(shù)調(diào)用實(shí)現(xiàn)。 8、 編寫一個 strlen 函數(shù), 它能對一個字符串測出其長度, 函數(shù)

34、返回值就是字符串的長度(說明: 長度不包括字符串結(jié)束標(biāo)志0)。 9、 設(shè)有5 行5 列的數(shù)組b, 其元素bij=2*i+3*j-8(i、 j = 0, 1, 2, 3, 4)。 編寫程序?qū)崿F(xiàn): (1) 求第4 行的5 個元素之累加和。 (2) 求第5 列的5 個元素之平均值。 (3) 求主對角線( “” 狀對角線) 以及反斜對角線( “/” 狀對角線) 上各有多少個負(fù)數(shù)。、 10、 不用 strcat 函數(shù), 將兩個字符串連接起來。 11、 打印出以下的楊輝三角形(要求打印出 10 行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 12、 對于一個

35、二維數(shù)組, 分別求各行、 各列及所有元素之和。 13、 有一行電文, 已按如下規(guī)律譯成密碼: 第 1 個字母變成第 26 個字母, 第 i 個字母變成第(26-i+1) 個字母非字母字符不變。 要求將密碼譯回原文, 并打印出密碼和原文。 14、 有一篇文章, 共有 3 行文字, 每行有 80 個字符。 要求分別統(tǒng)計出其中英文大寫字母、小寫字母、 數(shù)字、 空格以及其他字符的個數(shù)。 15、 輸入 n 個字符串, 把其中以字母 A 打頭的字符串輸出。 16、 編寫一個程序, 將字符數(shù)組 S2 中的全部字符拷貝到字符數(shù)組 S1 中。 不用 strcpy 函數(shù)。 拷貝時, 0 也要拷貝過去, 0 后面的

36、字符不拷貝。 17、 按照如下方式從頭到尾逐字符地對輸入字符串 is 進(jìn)行處理, 以生成輸出字符串 os 并作為結(jié)果輸出: (1) 若 is 的當(dāng)前字符不是數(shù)字字符, 則將該字符復(fù)制到結(jié)果串 os 中; (2) 若 is 的當(dāng)前字符是一個數(shù)字字符, 且假設(shè)其大小值為 n, 則將該數(shù)字字符替換為n+1 個相關(guān)字母存放到結(jié)果串 os 中: 字符 0 替換為 1 個 a, 字符 1 替換為 2 個 b, 字符 2 替換為 3 個 c, . . . , 字符 9 替換為 10 個 j。 例如: 當(dāng)輸入字符串為“s1k02” 時, 輸出字符串應(yīng)為“sbbkaccc” ; 輸入的 is 為“abc5uf2

37、0t” 時, 輸出字符串 os 應(yīng)為“abcffffffufcccat” 。 18、 假設(shè)對整型數(shù)組 a、 b、 t 已按下述方式進(jìn)行了說明并對 a 賦了初值: int a8=2, 33, -6, 5, -82, 30, 99, 21 , b8, t88; 編程序?qū)崿F(xiàn): (1) 挑選 a 中的某些數(shù)按如下順序依次放入數(shù)組 b 中: 先挑選所有負(fù)數(shù)放入 b; 再挑選所有正數(shù)中是 3 的倍數(shù)的奇數(shù)放入 b; 最后將 b 的其它元素(即尚未被賦予 a 元素值的那些元素) 均置為 0。 ( 2) 將 a 數(shù)組中的 8 個數(shù)依次賦給 t 數(shù)組的首列各元素( 即: t00=a0 ;t10=a1; . .

38、. ) , 將 b 數(shù)組中的 8 個數(shù)依次賦給 t 數(shù)組的末列(第 8 列) 各元素,并將其它各列的 tij賦值為 i-j+3。 (3) 在屏幕上輸出 a、 b、 t 各數(shù)組元素的具體值。 19、 將輸入的 2 進(jìn)制數(shù)(一個非“0” 即“1” 的字符串) 化為 10 進(jìn)制數(shù)并輸出結(jié)果。 20、 編寫程序, 在有序的數(shù)組中查找某數(shù), 若該數(shù)在此數(shù)組中, 則輸出它所在的位置,否則輸出 no found。 21、 定義一個含有 30 個元素的數(shù)組, 按順序分別賦予從 2 開始的偶數(shù), 然后按順序每 5 個數(shù)求一個平均值, 放在另一個數(shù)組中并輸出。 22、 在 5 行 5 列的二維數(shù)組中查找第一次出現(xiàn)

39、的負(fù)數(shù)。 23、 輸入字符串 s, 求 s 中相鄰字母對(比如 ab) 出現(xiàn)的次數(shù)。 24、 定義數(shù)組 int a46、 b46、 c46, 并完成以下操作: (1) 從鍵盤上輸入數(shù)據(jù)給數(shù)組 a、 b。 (2) 將數(shù)組 a 和數(shù)組 b 各對應(yīng)元素作比較, 如果相等, 則數(shù)組 c 的對應(yīng)元素為 0; 若前者大于后者, 則數(shù)組 c 的對應(yīng)元素為 1; 若前者小于后者, 則數(shù)組 c 的對應(yīng)元素為-1。 (3) 輸出數(shù)組 c 各元素的值。 25、 在電視歌手大獎賽時, 有 10 個評委評分。 從鍵盤輸入 10 個評委給某歌手的評分,要求找出 10 個評委中哪一個給了最低分, 哪一個給了最高分。 去掉一

40、個最低分并去掉一個最高分后剩下的八個評分的平均值為該歌手的最后得分, 求該歌手的最后得分。 26、 輸入 10 個整數(shù), 判斷它們是否為素數(shù)。 要求: 編寫一個函數(shù) int prime(int m) 來判斷形參變量 m 是否為素數(shù), 如果是素數(shù)則返回 1, 否則返回 0。 27、 輸入一段英文, 將其格式化后輸出。 格式化的要求是: (1) 每一個單詞首字母大寫, 其余字母小寫; (2) 所有標(biāo)點(diǎn)符號(. , ! ?) 均改為句號; (3) 非英文字母作為非法字母去除。 如輸入: i am a 54stuDe#Nt12, right? 則輸出: I Am A Student. Right. 2

41、8、 有 4 個學(xué)生 5 門課程的成績存放在數(shù)組 score45中, 編寫兩個函數(shù)分別求第 m個學(xué)生 5 門課程的平均成績和第 n 門課 4 個學(xué)生的平均成績, 主函數(shù)中只實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出, 其中 m 和 n 的值也在主函數(shù)中輸入。 三、 C 類程序設(shè)計題 1、 用冒泡排序法對輸入的 10 個數(shù)進(jìn)行降序排序并存入數(shù)組中。 然后輸入一個數(shù), 查找該數(shù)是否在數(shù)組中存在, 若存在, 打印出該數(shù)在數(shù)組中對應(yīng)的下標(biāo)值。 2、 輸入一個 4x5 的二維數(shù)組, 請編程實(shí)現(xiàn)如下轉(zhuǎn)換。 原矩陣 轉(zhuǎn)換后矩陣 3、 從鍵盤輸入 20 個數(shù), 要求寫一函數(shù)實(shí)現(xiàn)逆序處理, 并按每行 5 個數(shù)輸出。 4、 寫一函數(shù),

42、 使輸入的一個字符串按逆序存放, 要求在主函數(shù)中輸入、 輸出字符串, 函數(shù)中實(shí)現(xiàn)數(shù)據(jù)的逆序處理。 5、 輸入 n 個字符串, 要求按由小到大順序輸出。 6、 采用函數(shù)的遞歸編程, 實(shí)現(xiàn)求一個整型數(shù)組 20 個元素中的最大值 。 遞歸函數(shù)原型為:int max(int a, int n) 。 最后編制主函數(shù), 對 max 函數(shù)進(jìn)行調(diào)用, 以驗證其正確性。 7、 從鍵盤輸入兩個字符串 a 和 b, 要求不用庫函數(shù) strcat 把串 b 的前五個字符連接到串a(chǎn) 中; 如果 b 的長度小于 5, 則把 b 的所有元素都連接到 a 中。 a00 a01 a02 a03 a04 a10 a11 a12

43、a13 a14 a20 a21 a22 a23 a24 a30 a31 a32 a33 a34 a34 a33 a32 a31 a30 a24 a23 a22 a21 a20 a14 a13 a12 a11 a10 a04 a03 a02 a01 a00 8、 編程序, 實(shí)現(xiàn)如下功能: (1) 按如下方式說明數(shù)組x 與y const int k=8; int xk, yk; (2) 鍵盤輸入k 個整數(shù)到數(shù)組x 中。 (3) 計算x 中k 個數(shù)的平均值ave 及大于平均值的元素個數(shù)n 并輸出。 (4) 將數(shù)組x 中的k 個數(shù)放入數(shù)組y 中, 但不重復(fù)放(一個數(shù)只放一次), 而后輸出y的這些有效元

44、素。 例如, 程序執(zhí)行后的輸入輸出界面可設(shè)計為: x=? 23 55 -6 0 23 23 0 -12 ave=13.25 n=4 y= 23 55 -6 0 -129、 編寫程序, 實(shí)現(xiàn) str=str1+str2 的操作, 此處運(yùn)算符“+” 表示將二個字符串 str1、str2 連接成一個字符串 str。 用鍵盤將二個字符串輸入字符數(shù)組 str1 與 str2 中, 連接后的字符串存放在字符數(shù)組 str 中, 并輸出連接后的字符串 str。 (1) 用 C+提供的字符串處理函數(shù)完成上述要求。 (2) 不用 C+提供的字符串處理函數(shù)完成上述要求。 10、 輸入一行字符, 統(tǒng)計其中有多少個單詞

45、。 11、 輸入 3 個字符串, 找出其中最大者。 12、 找出一個二維數(shù)組中的鞍點(diǎn), 即該位置的元素在該行上最大, 在該列上最?。ㄒ部赡軟]有鞍點(diǎn))。 13、 給出年、 月、 日, 計算該日是該年的第幾天。 14、 有 15 個數(shù)按由大到小的順序存放在一個數(shù)組中, 輸入一個數(shù), 要求用折半查找法找出該數(shù)是數(shù)組中的第幾個元素的值。 如果該數(shù)不在數(shù)組中, 則打印出“無此數(shù)”。 15、 輸入一個字符串, 把其中的字符按逆序輸出。 如輸入 LIGHT, 則輸出 THGIL。 (1) 用字符數(shù)組方法; (2) 用 string 方法。 16、 編程序, 輸入正整數(shù) m, 它代表人民幣的 m 元。 試求取

46、這樣一個方案, 使用最少張數(shù)的人民幣紙幣(如 k 張) , 湊成上述的錢數(shù) m, 并輸出求取結(jié)果。 注意, 目前共有 7 種元以上面值的人民幣紙幣, 其面值分別為: 100, 50, 20, 10, 5, 2, 1。 程序執(zhí)行后的輸入輸出交互界面可設(shè)計為: m=? 192 1(100) 1(50) 2(20) 1(2) => k=5 17、 編程序, 輸入任意一個十進(jìn)正整數(shù) N, 而后將其轉(zhuǎn)換為二進(jìn)制整數(shù)后輸出。 例如,程序執(zhí)行后的顯示結(jié)果為: Input positive N: 86 86_2=1010110 第四部分 指針 一、 A 類程序設(shè)計題 1、 編寫函數(shù)int length(

47、char *str) 返回字符串str的長度。 在main函數(shù)中調(diào)用該函數(shù)。 2、 編寫函數(shù)int num(char *str) 返回字符串str中非數(shù)字的個數(shù)。 在main函數(shù)中調(diào)用該函數(shù)。 3、 編寫函數(shù)void strTrim(char *str) 去掉字符串str首部與尾部的空格。 在main函數(shù)中調(diào)用該函數(shù)。 4、 編寫函數(shù)int strFind(char *str, char c) 在字符串str中查找指定字符c; 如果有該字符, 則返回該字符在字符串中第一次出現(xiàn)的位置; 否則返回0。 在main函數(shù)中調(diào)用該函數(shù)。 5、 編寫函數(shù)int count(char *str, char

48、c) 返回字符串str中字符c出現(xiàn)的次數(shù)。 在main函數(shù)中調(diào)用該函數(shù)。 6、 編寫函數(shù)void strExcept(char *str, char c) 刪除字符串str中的字符c。 在main函數(shù)中調(diào)用該函數(shù)。 7、 編寫一個程序, 該程序根據(jù)鍵盤輸入的一個正整數(shù)建立一個動態(tài)數(shù)組, 然后為該動態(tài)數(shù)組的元素賦值, 接著顯示動態(tài)數(shù)組的值并刪除該動態(tài)數(shù)組。 8、 編寫函數(shù)int arrMax(int *a, int n) 返回數(shù)組a的元素的最大值。 形參n表示數(shù)組中元素的個數(shù)。 在main函數(shù)中調(diào)用該函數(shù)。 9、 編寫函數(shù)int arrMin(int *a, int n) 返回數(shù)組a中值最小的元

49、素的下標(biāo)。 形參n表示數(shù)組中元素的個數(shù)。 在main函數(shù)中調(diào)用該函數(shù)。 10、 編寫函數(shù)void arrSort(int *a, int n) 將數(shù)組a的值按升序排列。 形參n表示數(shù)組中元素的個數(shù)。 在main函數(shù)中調(diào)用該函數(shù)。 11、 編寫函數(shù)int fun(int *arr, int n) 將有序數(shù)組arr壓縮成各元素互不相同的有序數(shù)組, 即相同數(shù)只保留一個, 多余的被刪除。 形參n表示原數(shù)組中元素的個數(shù); 函數(shù)返回壓縮后的數(shù)組元素的個數(shù)。 在main函數(shù)中調(diào)用該函數(shù)。 二、 B 類程序設(shè)計題 1、 編寫函數(shù)char maxChar(char *str) 返回字符串str中ASCII碼最大的字符(如字符串"program"中字符' r' 的ASCII碼最大)。 若字符串str為空, 則返回' 0' 。 在main函數(shù)中調(diào)用該函數(shù)。 2、 編寫函數(shù)void fun(char *str) 將字符串str按字符的ASCII碼值的升序重新排列(如將字符串"program"處理成"agmoprr")。 在main函數(shù)中調(diào)用該函數(shù)。 3、 編寫函數(shù)void fun(char *str)

溫馨提示

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

最新文檔

評論

0/150

提交評論