第三屆華爲編程大賽【C語言試題】

 

編程題(共3題,第一題20分,第二題30分,第三題50分,共100分。請上機編寫程序,按題目要求提交文件。

 

本試題採用自動測試用例進行評分,測試用例不對考生公開,凡不滿足提交要求導致不能運行或用例不通過,不予評分)。

 

 

 

1、  排序算法(20分)

 

l  問題描述

 

將給定的無序整數數組降序排列後輸出,輸入的無序數組長度爲N,類型爲unsigned int

 

l  要求實現函數

 

void DscSort (const int InputArray[], unsigned int n, int OutputArray[])

 

【輸入】InputArray:  給定的無序數組

 

        n:                 數組長度

 

【輸出】OutputArray: 排序後的數組

 

【返回】無

 

l  示例

 

輸入:InputArray={1,5,4,8,3,2,9,6,7,0}

 

輸出:OutputArray={9,8,7,6,5,4,3,2,1,0}

 

 

 

2、查找最大的不重複數(30分)

 

l  問題描述

 

如果一個數字十進制表達時,不存在連續兩位相同,則稱之爲“不重複數”。例如,105、1234和12121都是“不重複數”,而11、100和1225不是。給定一個正整數A,返回大於A的最小“不重複數”。A小於100000

 

l  要求實現函數

 

unsigned int GetNotRepeatNum(unsigned int lValue)

 

【輸入】lValue:  給定的數字,返回大於該值的最小不重複數

 

【輸出】無

 

【返回】大於iValue的最小不重複數

 

l  示例

 

輸入:iValue =54

 

返回: 56

 

 

 

輸入:iValue =10

 

返回: 12    

 

 

 

輸入:iValue =98

 

返回: 101

 

 

 

輸入:iValue =21099

 

返回: 21201

 

 

 

3、字符串匹配(50分)

 

l  問題描述

 

判斷包含通配符的匹配字符串是否完全匹配輸入的字符串,匹配字符串中包含的通配符僅有‘*’和‘?’,且通配符不會連續出現 。(要求完全匹配,而不是包含)

 

其中,通配符‘*’:代替0個或多個字符,通配符‘?’:代替一個字符

 

l  要求實現函數

 

int GetMatchSta (const char *ArrStr, const char *KeyStr)

 

【輸入】 ArrStr:    給定的字符串

 

         KeyStr:      包含通配符的匹配字符串

 

【輸出】無

 

【返回】是否匹配,匹配返回1,不匹配返回0

 

l  示例

 

輸入:” abcdefg”, “a*'”

 

返回:1

 

 

 

輸入:“tommababcabc” , t?m*ab*abc

 

返回:1

 

發佈了62 篇原創文章 · 獲贊 10 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章