




已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C C 語言編程競賽訓練題 部分 語言編程競賽訓練題 部分 1 編輯工具一般都具有字符串 查找 功能 試編程實現字符串的查找并統計匹 配的次數 要求如下 1 查找字符串以逗號為分隔符 若遇逗號 則從逗號后的字符重新開始查 找 2 區(qū)分字母大小寫 3 能支持通配符 和 查找 其中 可表示任意 1 個字符 為含空字符 代表任意 N 個字符 N 0 輸入描述 首先輸入要查找的字符串個數 M 接著輸入 M 個要查找的字符串 每 個字符串占一行 最后是被查找的文本 輸出描述 要求分行輸出每個字符串在文中出現的次數 運行后若輸入 3 A D a D abb DccABV AAAAABB accc Dabc 則結果輸出為 4 3 2 參考答案 include iostream h include string h char Strstr char s const char sub 自定義 s串中查找是否有sub子串內容 找到返回其起始位置 sub允許含 通配符 不允許含 char p int i 0 j 0 k 0 abbbcdefbcde bb f abbbcdefbcde fvr if strlen sub strlen s return NULL 若子串更長則退出 while sub i i k 跳過子串前導 if sub i 0 return s 若已經匹配返回其位置 if p strchr s k sub i NULL return NULL 若不含子串字符則退 出 while p j sub i sub i 有 效字符開始匹配 if sub i 0 return p k 若匹配返回其位置 else return Strstr p k 1 sub 否則從其下一位置查找是否有匹配位置 int Search const char s const char sub 在s串中查找sub子串出 現次數 char p t 80 s0 80 int n 0 strcpy t s strcpy s0 sub 備份文本 abbbcdefbcde bb fvr if p strstr s0 NULL 含 情況 不考慮同時含 p 0 return strstr t s0 NULL 含或不含 情況 while p Strstr t s0 NULL n strcpy t p strlen s0 return n int Sch const char s const char sub abcde 0defg abcdebcd char p t 80 strcpy t s 備份文本到t if p strstr t NULL 判斷文本中含逗號 若有則以此分界 p 0 p return Search t sub Sch p sub 逗號前部分匹配次數 逗號后部分匹配次數 else return Search t sub 不含逗號直接返回匹配次數 void main int n i char s 80 char p cin n cin getline s 80 p new char n for i 0 i n i cin getline s 80 p i new char strlen s 1 strcpy p i s cin getline s 80 讀被查找的文本 for i 0 i n i cout Sch s p i endl 2 平面上任取 n 個點 可以確定一個多邊形 在計算機中單擊鼠標即可獲得點的 并以此確定多邊形 現要求通過輸入三個點坐標值來確定一個三角形 并求這三 個點所圍成的三角形的面積 若這三個點不能確定一個三角形 則輸出 No exist 輸入描述 先輸入一個整數 表示后面有幾組三角形坐標值 接著每行兩個數 分 別代表一個點的橫坐標和縱坐標 三行一組 輸出描述 先要輸出三角形的序號 再輸出面積 運行后若輸入 2 00 05 22 11 14 18 則結果輸出為 5 No exist 請在 和 之間編寫程序 注意 不要刪除或增加 和 源程序 2 00 05 22 11 14 18 5 No exist 10 10 0 0 10 0 30 35 10 0 42 37 10 0 17 null 10 0 10 5 10 0 求三角形面積參考答案 include stdio h include math h double Dis double x1 double y1 double x2 double y2 return sqrt x1 x2 x1 x2 y1 y2 y1 y2 void sjx float x1 y1 x2 y2 x3 y3 float a b c p s scanf f f f f f f a Dis x1 y1 x2 y2 b Dis x1 y1 x3 y3 c Dis x2 y2 x3 y3 p a b c 2 s sqrt p p a p b p c if fabs s 1e 6 printf No exist n else printf g n s void main int n i scanf d for i 1 i n i sjx 求四邊形面積參考答案 include stdio h include math h double Dis double x1 double y1 double x2 double y2 return sqrt x1 x2 x1 x2 y1 y2 y1 y2 floatsjx doublex1 doubley1 doublex2 doubley2 double x3 double y3 float a b c p s a Dis x1 y1 x2 y2 b Dis x1 y1 x3 y3 c Dis x2 y2 x3 y3 p a b c 2 s sqrt p p a p b p c return s void sbx float x1 y1 x2 y2 x3 y3 x4 y4 s1 s2 s3 s4 scanf f f f f f f f f s1 sjx x1 y1 x2 y2 x3 y3 s2 sjx x1 y1 x3 y3 x4 y4 s3 sjx x1 y1 x2 y2 x4 y4 s4 sjx x2 y2 x3 y3 x4 y4 if fabs s1 1e 6 fabs s2 1e 6 fabs s3 1e 6 fabs s4 1e 6 printf No exist n else printf g n s1 s2 s3 s4 s1 s2 s3 s4 void main int n i scanf d for i 1 i n i sbx 3 某研究所研發(fā)了一種除草藥水 但其藥效會隨使用次數降低 經統計 若每次 使用 M 劑量 M 為整數 則第一次使用能除 M 棵草 第二次使用只能除 M 2 棵 草 第三次使用只能除 M 3 棵草 第 N 次使用只能除 M N 棵草 現要統計 M 劑量藥 使用 N 次共能除多少棵草 例如 若劑量為 5 使用 6 次 則可除草棵數為 5 1 5 2 5 3 5 4 5 5 5 6 10 輸入描述 先輸入若干行測試數據 每行包含兩個整數 MN 分別代表劑量和使 用次數 直到輸入 00 表示結束 輸出描述 輸出每組測試數據可除草棵數 運行后若輸入 2 56 62 則結果輸出為 10 9 請在 和 之間編寫程序 注意 不要刪除或增加 和 源程序 56 62 00 10 9 10 10 0 0 10 0 30 35 10 0 42 37 10 0 17 null 10 0 10 5 10 0 參考答案 include stdio h include math h double f long m long n int i k j double s 0 k sqrt m for i 1 in return s s m i j k for i k 1 i 0 i if j m i m i 1 n s i m i m i 1 j m i m i 1 else s i n j return s return s void main long m n i double s 0 scanf d d while m 效率高 for s 0 i 1 i n i s m i 效率低 printf g n s scanf d d 4 小明在處理一張圖像 他把圖像中的點寫成 x y 1 然后乘上矩陣 13020 010 001 于是圖像向右 向下分別移動了 20 30 個像素 接著他把圖像中的每一個點 x y 1 都乘上矩陣 100 030cos30sin 030sin30cos 結果圖像又旋轉了 30 弧度 小明發(fā)現了矩陣 的神奇 他準備計算矩陣斜下線元素的積 如果斜下線到右邊 則繼續(xù)從左邊的 下一行的第一個元素開始 如 307 645 231 有三條斜下線 積分別為 1 4 3 3 6 7 2 5 0 輸入描述 輸入的第一個數 n 代表矩陣的階 接著 n 行 每行 n 個數 接著輸入 另一個 n 矩陣的信息 直到輸入 0 階表示結束 輸出描述 要先輸出序號 運行后若輸入 3 13 2 446 403 2 02 14 0 則結果輸出為 12 72 0 0 2 請在 和 之間編寫程序 注意 不要刪除或增加 和 源程序 3 13 2 446 403 2 02 14 0 12 72 0 0 2 10 10 0 0 10 0 30 35 10 0 42 37 10 0 17 null 10 0 10 5 10 0 參考答案 include stdio h int JZ int n i j jj int a 100 100 s 100 ss 0 scanf d for i 0 i n i for j 0 j n j scanf d for j 0 j n j s j 1 jj j jj jj 1 n 為斜線乘積 jj jj 1 n n 為反斜線 乘積 for i 0 i1輸出n 然后再計新字符 cout 1 cout n n 1 c s i while s i 比完 0 后結束 cout n cin getline s 80 for i 0 i n i cin getline s 80 YS s 6 軍訓中甲班 n 位同學已經按從低到高排好隊 現有乙班 m 位同學 未排好序 要插入一起集訓 請編程實現將乙班同學插入甲班后使隊伍仍為從低到高排好的 隊列 輸入描述 先輸入兩個整數 nm 分別代表甲班和乙班的人數 然后輸入甲班 n 個同學的身高 接著輸入乙班 m 個同學的身高 接著輸入另兩個班的信息 直到 輸入班級人數 0 表示結束 輸出描述 輸出每組排好的 m n 個身高 運行后若輸入 53 150152158160168 159159153 24 159165 154167166163 00 則結果輸出為 150 152 153 158 159 159 160 168 154 159 163 165 166 167 請在 和 之間編寫程序 注意 不要刪除或增加 和 源程序 53 150152158160168 159159153 24 159165 154167166163 00 150 152 153 158 159 159 160 168 154 159 163 165 166 167 10 10 0 0 10 0 30 35 10 0 42 37 10 0 17 null 10 0 10 5 10 0 參考答案 C include include LinkList2 h void BInsA int n int m LinkList A int i j x for i 1 i x A InsElem i x 輸入表元素 for j 1 j x for i 1 ix A InsElem i x n break if i n A InsElem i x n A DispList 顯示表 void main int n m cin n m while ncin n m 7 某電視臺有一娛樂節(jié)目 主持人讓觀眾猜商品的價格 若觀眾能在規(guī)定的時間 內猜中商品的價格即可獲得該商品 例如 有一精美的水壺 假設實際價格為 282 元 事先觀眾不知道 觀眾只知道在市面上可能的價格范圍為 100 到 400 元 此時若觀眾猜的價格為 300 元 主持人會告訴觀眾 大了 若觀眾猜的價格為 200 元 主持人會告訴觀眾 小了 直到在規(guī)定的時間內觀眾猜中了商品的價 格 現請你編程模擬猜商品價格的過程 要求在最少的次數內猜中商品的價格 精 確到整數 輸入描述 先輸入一個整數 表示要猜商品價格的次數 然后每行輸入三個整數 BER B 和 E 表示觀眾估計的商品價格范圍 R 表示實際商品價格 輸出描述 輸出每種商品你所猜的價格 運行后若輸入 2 100400282 12015 則結果輸出為 250 325 287 268 277 282 10 15 請在 和 之間編寫程序 注意 不要刪除或增加 和 源程序 2 100400282 12015 250 325 287 268 277 282 10 15 10 10 1243728509 ABabcdCeDF 2 4 2 8 0 1 3 7 5 9 A B C D F a b c d e 10 0 30 35 10 0 42 37 10 0 17 null 10 0 10 5 10 0 參考答案 C include iostream h void CJ int B int E int R int m while B E 起 止 m B E 2 cout m if R m break 猜對退出 else 實價比中間數m小 則用m 1止點 否則用m 1作起點 if R m E m 1 else B m 1 cout n for i 0 i B E R CJ B E R 8 一群小朋友外出郊游 并分組做游戲 要求每組人數一致 現有 n 個小朋友 有幾種分法 輸入描述 輸入正整數 代表小朋友的人數 n 以 0 結束 輸出描述 先要輸出序號 然后輸出分成幾組 每組多少人 有多少種情況都要 輸出 運行后若輸入 5 6 0 則結果輸出為 5 能被分成 5 組 每組包含 1 人 6 能被分成 6 組 每組包含 1 人 6 能被分成 3 組 每組包含 2 人 6 能被分成 2 組 每組包含 3 人 請在 和 之間編寫程序 注意 不要刪除或增加 和 源程序 5 6 0 5 能被分成 5 組 每組包含 1 人 6 能被分成 6 組 每組包含 1 人 6 能被分成 3 組 每組包含 2 人 6 能被分成 2 組 每組包含 3 人 10 10 0 0 10 0 30 35 10 0 42 37 10 0 17 null 10 0 10 5 10 0 參考答案 C include stdio h void WS int x int i for i x i 1 i if x i 0 printf d能被分成 d組 每組包含 d人 n x i x i void main int x scanf d while x WS x scanf d 9 編寫程序判斷算術表達式的括號 大括號 方括號 圓括號三種 是否匹配 輸入描述 先輸入一個整數 N 表示要判斷的表達式個數 然后 N 行表達式 輸出描述 輸出每種商品你所猜的價格 運行后若輸入 2 3 2 f k dk f kk 則結果輸出為 匹配 不匹配 請在 和 之間編寫程序 注意 不要刪除或增加 和 源程序 1 dk f kk 匹配 10 2 1 a d ds d s d 匹配 10 4 1 s d 不匹配 10 4 42 37 10 0 17 null 10 0 10 5 10 0 參考答案 C include include sqStack2 h int Match char str int i 0 char c sqStack S while c str i switch c case case case S Push c break case if S GetTop S Pop else return 0 break case if S GetTop S Pop else return 0 break case if S GetTop S Pop else return 0 return S Empty void main int i n char s 80 cin n for i 0 i s if Match s cout 匹配 else cout 不匹配 10 編程實現過濾器功能 例如 若是整數 通過此過濾器分離出偶數和奇數 若是字母 通過此過濾器分離出大寫和小寫字母等 要求分離后兩部分的順序不 變 運行后若輸入 1 2 3 4 5 6 7 8 9 0 aABbCcDEde 則結果輸出為 2 4 6 8 0 1 3 5 7 9 A B C D E a b c d e 請在 和 之間的空白處填入適當語句或式子 注意 不要刪除或增加 和 源程序 1234567890 aABbCcDEde 2 4 6 8 0 1 3 5 7 9 A B C D E a b c d e 10 3 1243728509 ABabcdCeDF 2 4 2 8 0 1 3 7 5 9 A B C D F a b c d e 10 7 30 35 10 0 42 37 10 0 17 null 10 0 10 5 10 0 參考答案 C include include sqStack2 h int DX char x return x A 判斷x是否大寫 int OS int x return x 2 0 判斷x是否偶數 template voidFilter sqStacksqStackt while p Empty x p Pop if TJ x t Push x else q Push x while t Empty p Push t Pop while p Empty q Push p Pop void main sqStack a b int x 1 2 3 4 5 6 8 7 9 0 aABbCcDEde for int j 0 j x a Push x Filter a b OS while b Empty cout b Pop sqStack s r char c for int i 0 i c s Push c Filter s r DX while r Empty cout r Pop 特別說明 若要使用數據結構相關內容 可以添加 include 語句將相關頭文件包含到程 序中 也可以自己定義數據結構相關頭文件 具體內容如下 C描述順序堆棧頭文件sqStack h 定義的數據元素存于data 棧頂指針存于 top 函數原型如下 void InitStack sqStack S 初始化棧 int Empty sqStack S 判???int Full sqStack S 判棧滿 int Push sqStack S ElemType x 入棧 int Pop sqStack S ElemType x 出棧 int GetTop sqStack S ElemType x 取棧頂元素 C描述單鏈表頭文件LinkList h 定義的數據元素存于data 下一結點指針存 于next 函數原型如下 LNode InitList 初始化帶頭結點單鏈表 int GetLen LinkList L 求線性表長度 LNode GetElem LinkList L int i 取第i個元素地址 i 1 n int Locate LinkList L ElemType x 查找值為x元素位置 1 n 沒找到返回0 int InsElem LinkList L int i ElemType x 第i位置插入元素x i 1 n int InsNode LinkList L int i LNode s 第i位置插入結點x i 1 n int DelElem LinkList L int i 刪除線性表中第i個位置上的元素 void DispList LinkList L 鏈表元素輸出 C描述順序表頭文件sqList h 定義的數據元素存于data
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年水利工程師資格考試試卷及答案
- 2025年全國職業(yè)資格考試試卷及答案
- 2025年臨床醫(yī)學專業(yè)執(zhí)業(yè)考試試卷及解答
- 2025年交通運輸管理專業(yè)考試試題及答案
- 2025年航空工程技術考試試題及答案
- 2025年創(chuàng)新思維與團隊合作能力綜合考試試卷及答案
- 2025年互聯網金融的法律風險與合規(guī)路徑的考試卷及答案
- 2025年法學專業(yè)學位研究生入學考試試題及答案
- 物資發(fā)放領用管理制度
- 物資采購流程管理制度
- 2025年物業(yè)安全管理專家考試試題及答案
- 2025年醫(yī)保知識考試題庫及答案(醫(yī)保政策宣傳與解讀)綜合測試
- “臨床營養(yǎng)科建設與管理指南”實施細則-I級標準化臨床營養(yǎng)科建設示范基地
- 結直腸癌分子病理檢測臨床實踐指南(2025版)解讀
- 安全生產管理的技術規(guī)范與操作要求試題及答案
- GB/T 34110-2025信息與文獻文件(檔案)管理核心概念與術語
- 年地理中考熱點6銀發(fā)經濟課件
- 云南省昆明市盤龍區(qū)2023-2024學年四年級下學期語文期末質量檢測卷(含答案)
- Unit 7 Outdoor fun 單元教案 2024-2025學年譯林版(2024)七年級英語下冊
- 2025年北京市各區(qū)高三語文一模試卷《紅樓夢》試題匯集練附答案解析
- 《稅收基礎知識》課件
評論
0/150
提交評論